第一章  软件工程基础

本章重点:

  • 软件工程基本原理;
  • 质量管理体系ISO9001;
  • 项目管理知识体系PMBOK;
  • 软件能力成熟度模型集成CMMI;

1.1 软件工程基本原理

1.1.1七条基本原理

1.按照软件生命周期的阶段划分制定计划,严格依据计划进行管理

2.坚持进行阶段评审

3.实行严格的产品控制

4.采用现代程序设计技术

5.结果能清楚地审查

6.开发小组的人员应该少而精

7.承认不断改进软件工程实践的必要性

1.1.2  PM/PMOK、ISO9001和CMM、CMMI与软件公司的关系

1.三者不存在互相包含的关系,但有很强的关联性。

        2.三者不存在互相替代的关系,但侧重点各有不同。

        3.PM/PMOK和ISO9001并不专门针对软件公司,但可用于软件公司,特别是提供包含软件产品、集成工程和服务的软件公司。

        4.CMM、CMMI专用于软件公司或软件项目、系统集成公司或系统集成项目。

1.2 质量管理体系ISO9001

        ISO9001是迄今为止世界上最成熟的质量框架。ISO9001规定了公司质量管理体系的基本要求,它是同用的,适用于所有行业或经济领域,不论其提供何种类别的产品,但ISO9001本身并不规定产品质量的要求。

1.2.1 质量管理原则(8项管理原则)

1.以顾客为中心。

2.高层管理者推动。

3.全员参与。

4.采用过程方法。

5.系统的管理。

6.持续改进。

7.基于事实的决策。

8.互利的供方关系。

1.2.2 建立和实施质量管理体系的步骤

1.确定顾客的需求和期望。

2.建立公司的质量方针和质量目标。

3.确定实现质量目标所必需的过程和职责。

4.针对每个过程实现质量目标的有效性确定测量方法。

5.通过测量,确定每个过程的现行有效性。

6.确定防止不合格项并消除产生原因的措施。

7.寻找提高过程有效性的效率和机会。

8.确定并优先考虑那些能提供最佳结果的改进。

9.为实施已确定的改进,对战略、过程和资源进行策划。

10.实施改进计划。

11.监控改进效果。

12.对照预期效果,评价实际结果。

13.评审改活动,确定必要的纠正、跟踪措施。

1.2.3 过程方法

通常一个过程的输出将直接形成下一个过程的输入。系统识别和管理组织内的所使用的过程,特别是这些过程之间的相互作用,称为“过程方法”。

ISO9001标准鼓励采用过程方法建立和实施质量管理体系。

1.2.4 实例介绍

1.过程识别

   体系管理过程、资源管理过程、产品实现过程、监测、分析和改进过程。

2.过程关系

3.质量体系文件的分层结构(4个层次)

    质量手册、程序文件、规定/规范、表单模板。

1.3项目管理知识体系PMBOK

PMBOK是Project Management Body Of Knowledge 的缩写,即项目管理知识体系,是美国项目管理协会对项目管理所需知识技能和工具进行的概括性描述。

1.3.1 项目的基本属性

1.整体性:是一系列活动的有序组合;

2.唯一性:每个项目均是具体的特殊的,没有两个完全相同的项目;

3.一次性:目标一旦完成,项目即告结束;

4.目标性:一个项目有确定的成果性目标;

5.多约束性:在多种约束条件下完成项目的成果性目标,约束包括时间、资源、质量及其他非技术性约束;

6.依赖性:项目活动的进行涉及多个方面的因素,有对内部各级各部门的依赖,有对用户条件的依赖,有对标准的依赖和对各类变更的依赖等等;

7.冲突性:项目内部会有多种冲突,需要沟通,协调和培训;

8.周期性:基本生命周期属性,经历大体相同的阶段。

1.3.2 项目参数

用于刻画一个项目的主要参数有:范围、进度、资源、成本和质量。

1.3.3 项目生命周期

项目生命周期划分为4个阶段:定义、策划、实施、收尾。

项目生命周期与软件生命周期表

项目生命周期 软件生命周期
项目定义 立项管理,需求开发及管理
项目计划 项目计划
项目实施 系统设计,编码,测试
项目收尾 发布,提交,运行维护,技术支持和产品退役

1.3.4 项目管理基本过程

项目管理基本过程共五个:启功过程、策划过程、执行过程、控制过程和结束过程。

1.3.5 项目管理基本职能

项目管理基本职能有9个,分别为:项目整体管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理、项目采购管理。

1.3.6项目管理成熟度模型

PMMM V5.0标准文本与CMM非常相似,也分成5级,分别是:初始级,可重复级,已定义级,受管理级,优化级。

1.4软件能力成熟度模型集成CMMI

1.4.1 什么叫CMMI

软件能力成熟度模型集成的英文全名是Capability Maturity Model Integration,缩写为CMMI。

目的是为组织过程和提高管理产品开发、发布和维护能力提供保障帮助组织客观评价自身能力成熟度和过程域能力,为过程改进建立优先级以及执行过程改进。

1.4.2 CMMI和过程改进

软件过程改进是一个持续的、全员参与的过程。

CMMI实施或软件过程改进采用的方法称为IDEAL模式,分5步:启动、诊断、建立、行动和推进。 

1.4.3 CMMI结构框架

        在CMMI模型中,最基本的概念是“过程域”(即PA),每个PA分别表示了整个过程改进活动中应侧重关注的或改进的某个方面的问题。模型的全部描述就是按过程域作为基本构件而展开的,针对每个过程域分别规定了应达到什么目标即了达到这些目标应当做哪些“实践”,但模型并不规定这些模型由谁做、如何做,等等。在V1.3版本中,共计22个过程域。

       22个过程域可从机构和项目组、项目管理、过程管理三个方面加以考察,分为四大类:过程管理类、项目管理类、工程类、支持类。 22个过程域并非各自完全独立,而是互有联系。 

1.4.4 CMMI的阶梯表示

成熟度等级:为机构的过程改进提供了一种阶梯式的上升顺序。按照这个顺序实施过程改进,不需要同时处理可能涉及的所有过程,而是把过程改进的注意力集中于当前本机构最需要改进的一组过程域上。在以上几个成熟度级别中,每个成熟度等级为提升到更高一级奠定了基础。

在阶梯式表示法中,CMMI所包含的22个过程域,按照成熟度的概念分成4个组。

 

 

详细请见书P12-15