第2章 软件过程
2.1 引言
生命周期
软件过程
2.2 什么是软件过程
2.2.1 软件过程的定义
软件过程
-
软件的诞生及其生命周期是一个过程,这个过程称之为软件过程。
-
一个为了构造高质量软件所需完成的一系列活动的过程框架,即形 成软件产品的一系列步骤,包括中间产品、资源、角色及过程中采 取的方法、工具等范畴。
-
软件的整个生命周期,从需求获取、需求分析、设计、实现、测试 到发布和维护的一个过程模型。
2.2.2 软件过程框架
定义(软件过程框架)
企业运行的基本框架,并且能够对软件过程改进活动提供支持与帮助。
两个方面
-
组织及管理框架— 包含实现软件过程改进活动时所涉及的角色与职责
-
方法及工具框架— 包括实现过程活动自动化及实现不同角色及其职责时所需的设备与工具
普适性活动
沟通 计划 建模 构建 部署
软件生存周期过程(ISO/IEO 12207: 2008)
2.3 软件产品与过程
软件过程作用
-
提高软件工程活动的稳定性、可控性和有组织性
-
过程受到严格约束
-
保证软件活动有序运行
软件过程选择
-
产品(软件)特征
-
软件团队自身特点
示例
-
产品复杂、开发周期长、开发成本高-> 重型软件工程
-
产品简单、开发周期短、开发人员少-> 轻型软件工程
软件过程评估
软件过程评估方法
-
用于过程改进的标准CMMI评估方法SCAMPI提供了一个过程评估模型,包括启动、诊断、建立、执行和学习。
-
用于团队内部过程改进的CMM评估方法CBAIPI提供了一种诊断方法,用以分析软件或软件团队的相对成熟度。
-
SPICE标准定义了软件过程评估的一系列要求,帮助软件开发团队建立客观的评价体系,以评估定义的软件过程的有效性
-
软件ISO 9001:2000标准,用于评估软件产品、系统或服务的整体质量。
软件过程改进
- 个人软件过程 (Personal Software Process, PSP):一种可用于控制、 管理和改进个人工作方式的自我持续改进过程,是一个包括软件开 发表格、指南和规程的结构化框架。
明确质量目标
度量产品质量
理解当前过程,查找问题,对过程进行调整
应用调整之后的过程,度量实践结果,将结果与目标比较,找出差 距,分析原因,对软件过程进行持续改进
- 团队软件过程 (Team Software Process, TSP)帮助软件开发组织建 立成熟和纪律性的工程实践,生产安全和可信的软件。
2.4 软件生存周期
软件生存周期关键阶段
-
问题的定义与可行性分析
-
项目计划
-
需求分析
-
软件设计
-
编码与测试
-
运行与维护 时间最长
2.5 软件工程活动
-
沟通活动
-
计划活动
-
建模活动
-
实现活动
-
部署活动
-
维护活动
-
管理活动
-
过程改进活动
2.6 总结
软件过程 (定义和框架)
软件产品与过程
软件生存周期
软件工程活动
-
计划活动
-
建模活动
-
实现活动
-
部署活动
-
维护活动
-
管理活动
-
过程改进活动