第十章软件工程
1.软件工程概述
1.1.软件开发生命周期
软件定义时期:可行性研究和详细需求分析,问题定义、可行性研究、需求分析
软件开发时期:软件的设计与实现,可分为概要设计、详细设计、编码和测试
软件运行和维护:把软件产品移交给用户使用
1.2.系统软件文档
用户文档和系统文档。
用户文档:系统功能和使用方法
系统文档:系统设计、实现、测试等内容
1.3.PDCA
P(plan):软件规格说明
D(do):软件开发
C(check):软件确认
A(action):软件演进
1.4.软件系统工具
软件开发工具:需求、设计、编码、测试等工具
软件维护工具:版本、文档分析、开发信息库、逆向工程、再工程等工具
软件管理和软件支持工具:项目管理、配置管理、评价等工具
1.5.软件设计活动
数据设计、架构(体系结构)设计、人机交互界面(接口)设计和过程设计
2.软件能力成熟度模型
2.1.CMM
2.2.CMMI
若干过程模型的综合和改进,不仅是软件,也支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率。
两种表示方法:
2.2.1.阶段式模型
类似CMM关注组织的成熟度
能力等级 | 特点 | 关键过程区域 |
---|---|---|
初始级 | 过程不可预测且缺乏控制 | |
已管理级 | 过程为项目服务 | 需求管理、项目计划、配置管理、项目监督与控制、供应商合同管理、度量和分析、过程和产品质量保证 |
已定义级 | 过程为组织服务 | 需求开发、技术解决方案、产品集成、验证、确认组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境 |
定量管理 | 过程已度量和控制 | 组织过程性能、定量项目管理 |
优化级 | 集中于过程改进和优化 | 组织级改革与实现、因果分析和解决方案 |