注:本资料根据伟帅的课件整理
一、软件过程基础
引言:影响软件产品质量和软件项目生产率的共同因素主要有三个:人员、技术、过程。
软件过程理论的基石:软件产品和服务的质量,很大程度上取决于生产和维护该软件或者服务的过程的质量。
质量管理领域重要的人物:
1.休哈特(Shewhart)--统计质量控制(SQC)之父,质量改进的奠基人
最早提出“计划-执行-检查(Plan-Do-See)”的概念
2.戴明(Deming)--a.质量改进
b.PDCA 戴明环--计划(Plan)、实施(Do)、检查(Check)、行动(Action)
c.十四点原则
3.朱兰(Juran)--《质量控制手册》被称为当今世界质量控制科学的“圣经”,为奠定全面质量管理(TQM)的理论基础和基本方法坐出了卓越的贡献。
a.适用性质量
b.质量三部曲:质量计划、质量控制、质量改进
c.Juran质量螺旋(Quality Loop)
d.80/20原则
4.克劳士比(Crosby)--a.质量管理的绝对性
b.质量改进的基本要素:领悟、承诺、能力、沟通、改正、坚持。
软件过程
1.过程定义:*《牛津简明词典》中,“过程”被定义为活动与操作的集合,例如一系列的生产阶段或操作。
*《书氏大词典》定义“过程”是用于产生某结果的一整套操作、一系列的活动、变化以及作为最终结果的功能。
*IEEE-Std-610定义“过程”是为完成一个特定的目标而进行的一系列操作步骤,如软件开发过程。
*SEI-CMM定于过程是用于软件开发及维护的一系列活动、方法及实践。
2.过程要素:
过程应具有以下几个构成元素,:
?(1) 输入;
? (2) 输出;
? (3) 活动及进一步分解的任务(或作业);
?(4) 资源是支持活动执行所必须的,包括人员、设备及相关的耗费;
? (5) 测量与验证能保证过程中的相关元素是合格的(在图中这些过程元素标有△记号);
? (6) 过程目标,如活动取得的效果是增值。
3.软件过程的分类与组成
软件基本过程:软件获取、供应、开发、运行和维护的过程,包括需求分析、软件设计、编码等过程。
软件支持过程:对软件主要过程提供支持的过程,包括文档编制过程、配置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。
软件组织过程:对软件主要过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程。
4.常用软件过程改进模型
CMM/CMMI
软件能力成熟度模型(Capability Maturity Model,CMM)是美国卡内基.梅隆大学软件工程研究所(SEI)汇集了世界各地软件过程管理者的经验和智慧而产生的软件过程改进 的指导性模型。该模型经过世界各地软件组织的实际应用,证明其对软件过程改进具有建设性作用。
代表人物:Watts Humphrey 软件质量之父、CMM之父
a.提出CMM理论
b.将TQM(Total Quality Management,全面质量管理)的思想运用到软件过程改进中,并根据软件的特殊性提出适合软件开发的成熟度模型,是传统行业质量管理思想的深入运用
c.力推个体软件过程(Personal Software Process,PSP)和团队软件过程(Team Software Process,TSP),这两个过程理论在解决软件零缺陷方面取得了令人瞩目的成绩
5.CMM五个级别
1).初始级 特定过程 个别的、混乱的过程
2).可重复级 已经规划的过程 (直觉的)过程依赖于个人
3).已定义级 标准过程 (量化的)已定义且制度化的过程(量化的)已度量的过程
4).已管理级 可预测的过程 (量化的)已度量的过程人
5).优化级 持续改进过程 经反馈得以改进的过程