软件过程管理
CMM:软件过程能力成熟度模型
CMM基本概念
1、过程:为实现既定目标的一系列操作步骤
2、软件过程:指人们用于开发和维护软件及其相关产品的一系列活动、方法、实践和革新。
3、软件过程能力:描述了在遵循一个软件过程后能够先到的预期结果的界限范围,是对能力的一种衡量,用它可以预测一个组织在承接下一个软件项目时,能期望得到的最可能的结果。
4、软件过程性能:表示遵循一个软件过程后所得到的实际结果,软件过程性能关注的是实际得到的结果,软件过程能力关注的是期望得到的结果。由于项目要求和客观环境的差异,软件过程性能不可能充分反映软件过程整体能力,即软件过程性能受限于它的环境。
5、软件过程成熟度:指一个具体的软件过程被明确地定义、管理、评价、控制和产生实效的程度。表明了组织实施软件过程的实际水平。
6、关键过程域:指一系列相互关联的操作活动。这些活动反映了一个软件组织改进软件过程时所必须满足的条件。KPA标志了达到某个成熟程度级别时所必须满足的条件。
7、关键实践:指关键过程域中的一些主要实践活动。每个KPA由关键实践组成,通过实现关键实践达到关键过程域的目标,关键实践描述了该做什么,但没有规定如何去做。
8、软件过程评估:用来判断一个组织当前所涉及的软件过程的状态,以确定组织该如何对其进行有效的改进。
9、软件能力评价:用来判断有意承担某个软件项目的软件组织的软件过程能力,或判断已进行的软件过程所处的状态是否正确或是否正常。
10、 软件工程组:负责一个项目的软件开发和维护活动的团队,如分析、设计、编码测试等
11、 软件相关组:支持但不直接负责软件开发和维护工作的团队,如质量保证组,软件工程过程组等
12、 软件工程过程组:由专家组成的组,推进组织采用的软件过程的定义、维护和改进工作。
13、 系统工程组:包括分析系统需求,将系统需求分配给硬件、软件和其他成分,规定硬件、软件和其他成分的界面。
14、 系统测试组
15、 软件质量保证组
16、 软件配置管理组
17、 培训组
CMM分级标准
1、初始级:软件过程定义无章法和无步骤可循的状态,成功往往依赖个别人或机遇
2、可重复级:建立了基本的项目管理过程,对类似的项目,能重复以往所取得的成功
3、已定义级:定义了组织级的标准软件过程
4、已管理级:是量化的管理,所有过程都建立了相应的度量方式
5、优化级:通过各种定量分析,能够不断地、持续地进行过程改进。
除第一级外,每一级都设定了一组目标,如果达到这组目标,则表明达到了这个成熟级别,每个低级别的实现均是高级别实现的基础,上升一组需12~30个月之间。
CMM分级标准有两个用途:
1、软件组织利用它可以评估自己当前的过程成熟度,并以此提出严格改进策略
2、作为客户选择软件开发商的一种评价标准。
CMM的内部结构
除第一级外,每一级按完全相同的内部结构构成。
1、最顶层为成熟度等级,反映了软件组织的软件过程能力
2、成熟度等级包含关键过程域:要达到某个成熟度等级,必须完全满足关键过程域所规定的的要求。单个项目管理在可重复级,集成、同组评审,过程、培训在已定义级,定量管理和软件质量管理在已管理级,改进和缺陷预防在优化级
1、可重复级:需求管理、软件项目计划、软件项目跟踪与监控、软件子合同管理、软件质量保证、软件配置管理
2、已定义级:集成软件管理、组间协调、组织过程焦点、组织过程定义、培训程序、软件产品工程、同级评审
3、已管理级:定量管理过程、软件质量管理
4、优化级:技术改进管理、过程改进管理、缺陷预防
3、KPA用5个公共属性对关键实践分组,
1、执行约定:也称实施保证,是组织为了建立和实施KPA必须采取的行动,与政策和管理方式有关
2、执行能力:也称实施能力,是企业实施KPA的前提条件,满足了这些条件后,可有可能执行KPA的实践活动,关注项目计划的实践,资源的配置,责任的分配,培训等
3、实施活动:执行KPA所需的必要行动、任务和步骤。包括计划、执行的任务,任务的跟踪等。是惟一与项目执行相关的的属性,其他属性涉及CMM能力基础设施的建立。
4、度量和分析:确定执行活动的状态和执行活动的有效性
5、实施验证:验证执行活动是否与建立的过程一致。如管理评审和审计,质量保证等
软件过程评估(SPE)和软件能力评价(SCE)
软件过程评估(SPE)针对的是软件组织自身内部软件过程的改进问题,目的在于发现缺陷,提出改进方向。
软件能力评价(SCE)是对接受评价者在一定条件下、规定时间内能否完成特定项目的能力的考核。
SPE和SCE的过程:
1、成立评估小组
2、问卷调查和取样
3、结果分析
4、现场访问
5、与CMM模型对照分析
6、依据KPA的基本情况列出评估提纲
SPE和SCE不同:
1、SPE和SCE在出发点和目标上的不同,使会谈、调查、收集的信息和输出的表示方式有本质的不同
2、SPE和SCE结果和结果所起的作用不同
3、SPE和SCE对被评价单位的影响不同,进而也影响到单位对SPE和SCE的态度,一般对SPE的态度比较开放,对SCE的态度比较慎重。
软件企业如何实施CMM
1、提高思想认识
2、进行CMM培训和咨询工作
3、确定合理的目标
4、成立工作组
5、制定和完善软件过程
6、内部评审:组织内部成员,对自己的软件过程进行评审,找出其中的不足并进行改进
7、正式评估:由美国卡内基梅隆大学的软件工程研究所(CMU/SEI)授权的主任评估师领导一个评审小组进行。
8、根据评估结果改进软件过程
CMMI综述
能力成熟度模型集成是CMM模型的最新版本,专业领域覆盖软件工程、系统工程、集成产品开发和系统采购。
CMMI模型的表示
CMMI模型两种表示法:阶段式和连续式。连续式表示法强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力”。而阶段式表示法强调的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度”。
阶段式模型分为5个级别
1、级别1(初始级):代表了以不可预测结果为特征的过程成熟度,过程处于无序状态,成功主要取决于团队的技能
2、级别2(已管理级):代表了可以重复项目执行为特征的过程成熟度,主要的过程焦点在于项目级的活动和实践。
3、级别3(严格定义级)代表了以组织内改进项目执行为特征的过程成熟度。建立组织级的活动和实践。
4、级别4(定量管理级)代表了以改进组织性能为特征的过程成熟度。在业务表现的竞争尺度方面的结果是可预测的。
5、级别5(优化级)代表了以可快速进行重新配置的组织性能,以及定量的、持续的过程改进为特征的过程成熟度。
CMMI评估分为三类
1、A类评估:全面综合的评估方法,要求在评估中全面覆盖评估中所使用的模型,并且在评估结果中提供对组织的成熟度等级的评定结果。
2、B类评估:较少综合,花费也较少。在开始时做部分自我评估,并集中于需要关注的过程域。不评定组织的成熟度等级。
3、C类评估:也称为快估。主要是检查特定的风险域,找出过程中的问题所在。
CMMI阶段式的基本结构从CMM演变而来,但是CMMI的结构更加形式化和精致,也更加复杂,尤其为了保证连续式和阶段式的统一性,增加了结构的理解难度
CMMI与CMM相比,强调对需求、工程过程、度量、风险的管理。
CMM是作为评估标准出现的,所以是必要的才能保证评估的标准,CMMI是作为改进模型出现的,罗列了较多的最佳实践,以利于过程的改进。
个体软件过程(PSP)
个体软件过程是一种可用于控制、管理和改进个人工作方式的自我持续改进过程。是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术相对独立,其原则能够应用到几乎软件工程任务之中。
CMM侧重于软件企业中有关软件过程的宏观管理,面向软件开发单位,PSP则侧重于有关软件过程的微观优化,面向软件开发人员。
PSP分为四个级别:
1、个体度量过程PSP0和PSP0.1:建立个体过程基线,学会使用PSP的各种表格采集过程的有关数据,记录过程中存在的问题、解决问题的措施,以提高软件开发人员的质量意识和过程意识。
2、个体规划过程PSP1和PSP1.1:重点是个体计划,学会编制项目开发计划。
3、个体质量管理过程PSP2和PSP2.1:重点是个体质量管理,根据程序的缺陷建立检测表,按照检测表进行设计复查和代码复查,以便及早发现缺陷,使修复缺陷的代价最小。
4、个体循环过程PSP3:把个体开发小程序所能达到的生产效率和生产质量,延伸到大型程序。其方法是采用迭代增量式开发方法。
群组软件过程(TSP)
TSP对群组软件过程的定义、度量和改革提出了一套原则、策略和方法,描述了如何创建高效且具有自我管理能力的工程小组。
实施TSP的五个先决条件:
1、高层主管和各级管理人员的支持
2、全体有关人员的积极参与
3、循环往复、持续改善,不能一蹴而就
4、项目组的开发人员需要经过PSP培训
5、整个开发单位的能力成熟度在应处于CMM二级以上
TSP一般将一个软件项目的开发工作分为四个阶段。
CMM/TSP/PSP三者的结合
CMM/TSP/PSP为软件产业提供了一个集成化的、三维的软件过程改进框架。CMM是过程改善的第一步,它提供了评价组织能力的方式,并为TSP提供了指导原则。PSP为TSP的实施提供了软件工程师的个人技能。TSP结合了CMM的管理方法和PSP的工程技能。