文档介绍:软件危机:P1 笔记P4 是一种现象,是指由于软件复杂程度愈来愈高,在计算机软件开发和维护时所遇到的一系列问题,具体表现在:
软件开发成本高,成本难以控制;
研制周期长,软件开发进度难以控制,周期拖得很长;
正确性难保证,软件质量差,可靠性难以保证;
软件维护困难,维护人员和维护费用不断增长;
软件发展跟不上硬件的发展和用户的要求。
软件工程
软件工程是一类求解软件的工程。它应用计算机科学、数学及管理科学等原理。借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法。工程科学用于制定规范、设计范型、评估成本及确定权衡;管理科学用于计划、资源、质量、成本等管理。软件工程是一门指导计算机软件开发和维护的工程学科。软件工程是一门交叉学科。
软件工程框架(软件工程的三要素:之间的关系及内容)
是目标、原则、活动的三维框架。
目标:
可用性:软件基本结构的实现及文档的可用程度。
正确性:软件产品达到预期功能要求的程度。
合算性:软件开发、运行的整个开销满足用户要求的程度。
原则:
采用适当的开发模型作为开发的指导,以控制软件开发的易变性:
运用良好的设计方法,提高软件质量和软件生产率:
有效的工程支持(工具支持);
有效的管理。
活动:
软件生命周期的各个阶段。(需求、设计、实现、确认、支持)
软件工程原则
抽象、信息隐蔽、模块化、局部化、一致性、完整性
软件工程学
包括软件开发技术(软件开发方法学,软件工具,软件工程环境)和软件管理技术(软件管理学,软件工程经济学
软件工程学出现的直接诱因好象是软件危机,但实际上,软件工程技术出现的深刻历史背景是计算机应用技术的发展,尤其是硬件技术的迅猛发展。计算机应用软件的规模和复杂性不断增加,带有强烈个体手工生产特性的软件作坊式的开发技术,己不能与之相适应。因此,软件工程学的出现是软件开发技术发展的必然结果,软件开发的大生产规模特性注定了要用工程的方式进行,即对项目开发人员进行严密的组织管理,良好的协同配合。软件工程技术有两个明显的特点:
强调规范化:为了使由许多人共同开发的软件系统能正确无误地工作,开发人员必须遵守相同的约束规范(用统一的软件开发模型来统一软件开发步骤和应进行的工作,用产品描述模型来规范文档格式,使其一致性和兼容性),规范化使软件生产摆脱了个人生产方式,进入了标准化、工程化阶段。
强调文档化:一个复杂的软件要让其他人员读懂并理解,除程序代码外,还应有完备的设计文档来说明设计思想、设计过程和设计的具体实现技术等有关信息。因此文档是十分重要的,它是开发人员相互进行通信以达到协同一致工作的有利工具。而且,按要求进度提交指定的文档,能使软件生产过程的不可见性变为部分可见,从而便于对软件生产进度进行管理。最后,通过对提交的文档进行技术审查和管理审查,以保证软件的质量和有效的管理。所以必须十分重视文档工作。
软件工程管理
研究如何有效地对软件开发项目进行管理,以便于按照进度和预算完成软件项目计划,实现预期的经济和社会效益。软件工程管理包括成本估算、进度计划、人员组织、质量保证等多方面内容。
软件生命周期
从软件的计划起到废弃不用为止,划分为若干阶段,并赋予任务和活动,它们分别是:软件计划、软件需求分析、软件设计、编码、软件测试、软件维护。
软件开发方法学
以软件方法为研究对象的学科。主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。狭义的也指某种特定的软件设计指导原则和方法体系。从构造的角度,软件开发方法学主要由三部分组成: ·NOTATION ·PROCESS ·TOOLS
软件开发模型
软件开发模型是软件开发全部过程、活动和任务的结构框架。软件开发模型能清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务,它用来作为软件项目工作的基础。模型应该是稳定和普遍适用的。本质与目的:表征了软件开发活动的组织,给出了软件求解的计算逻辑。
瀑布模型
是一种软件开发方法,它遵循软件生命周期的划分,将软件生存周期的各项活动规定为按固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品。其特点是:阶段间的顺序性和依赖性,上一阶段结束才能进入下一阶段;每一阶段以前一阶段的结果为基础;要求软件需求阶段十分完善。
原型法(演化模型)
是一种软件开发方法(主要针对事先不能完整定义需求的软件开发),具体是借助开发工具尽快地构造一个实际系统的简化模型,作为系统的框架,便于开发者与用户之间进行交流,从而根据用户的反馈准确地获得用户的需求,再根据需求增加系统的功能,以支持系统的最终设计和实现。
增量模型
即对软件开发活动进行如下组织:在设计了软件系