4.1 软件工程的目标
软件工程可定义为三元组:<目标,原则,活动>
(1)给出了软件所涉及软件工程的工程要素
(2)给出了各要素之间的关系
(3)给出了软件工程学科所研究的主要内容
目标
生产具有正确性、可用性以及开销合宜的产品。
正确性:软件产品达到预期功能的程度
可用性:软件基本结构、实现及文档为用户可用的程度
开销合宜:软件开发、运行的整个开销满足用户要求的程度
4.2 软件工程的活动
活动
生产一个最终满足需求且达到工程目标的软件产品所需要的步骤。
主要包括需求、设计、实现、确认和支持等活动。
a、需求:
定义问题,即建立系统模型
主要任务包括:
需求获取
需求定义:系统功能的一个正确的陈述。
需求规约:系统需求规格说明,主要成分是系统模型,系统功能的一个精确、系统的描述。
需求验证:验证需求陈述和需求规约之间的一致性、完整性和可跟踪性。
b、设计:
在需求分析的基础上,给出系统的软件设计方案。
包括总体设计(概要设计)和详细设计。
总体设计建立整个软件体系结构:
包括子系统、模块以及相关层次的说明,每一模块的接口定义
体系结构类型可分为:层次模块体系结构、C/S体系结构、以数据库为中心的体系结构、管道结构和面向对象的结构等。
详细设计:针对总体设计结果,给出体系结构中每一模块或构件的详细描述。
c、实现:
把设计结果转换为可执行的程序代码。
具体做法可分为两种:
选择可用的模块或构件
或以一种选定的语言,对每一模块或构件进行编码。
d、确认:
确认活动贯穿于整个开发过程
实现完成后的确认,保证最终产品满足用户的需求
确认活动主要包括:
需要复审、设计复审以及程序测试
主要任务是:软件测试
e、支持活动:
包括修改和完善
为系统的运行提供完善性维护、纠错性维护和适应性维护
4.3 软件工程的原则
1.选取适宜的开发模型
必须认识需求定义的易变性
采用适宜的开发模型予以控制,保证软件产品满足用户的需求
使用合适的设计方法
在软件设计中,要考虑软件的模块化、抽象与信息隐蔽、局部和、一致性以及适应性等特征。
合适的设计方法有助于这些特征的实现。
2.提供高质量的工程支持
在软件工程中,软件工具和环境对软件过程的支持非常重要。
软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
3.重视开发过程的管理
软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。
4.4 软件工程框架的作用
(1)给出了软件所涉及软件工程的工程要素
(2)给出了各要素之间的关系
每一活动根据特定的软件工程目标,采用合适的开发模型、设计方法、支持过程以及过程管理。
(3)给出了软件工程学科所研究的主要内容
软件开发模型
软件开发模型是软件开发全部过程、活动和任务的框架
软件开发方法
为建造软件提供技术上的解决方法,包括沟通、需求分析、设计建模、编程、测试和支持等
软件过程
为建造高质量的软件所需完成任务的框架