软件过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. CMM分哪几个成熟度等级?每个等级的名称是什么?有什么含义?
CMM分为5个成熟度等级,分别是初始级、可重复级、已定义级、已管理级、优化级,具体含义如下:
初始级
组织缺乏明文的管理办法,软件工作没有稳定的环境,制定了计划又不执行,反应式驱动工作开展。
紧急情况下已定的规程丢在一边,急于编码和测试。
个别项目的成功依赖于某个有经验的管理人员。
个别管理人员能顶住削减过程的压力,但他们离职则全然不同。
规定的过程无法克服由于缺乏有效管理带来的不稳定性。
现象往往表现为过程无一定之规,项目进度、预算、功能及产品质量无法保证,项目的实施不可预测。
初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证时,那么它仍然被视为初始级。
可重复级
建立了为跟踪成本、进度和功能的基本项目管理过程。
基于以往项目经验,制定了过程实施规范,使类似的项目可再次成功。
能追踪成本、进度、功能,及时发现问题。
如有分包,其质量也能得到控制。
第二级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面。其中项目管理分为计划过程和跟踪监控过程两个过程。通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。
已定义级
制定了组织的标准过程文件,这是软件工程基础设施的重要组成部分。
建立了组织的软件工程过程组(SEPG),负责软件过程活动。
制定和实施了人员培训大纲,保证人员能够胜任岗位知识和技能要求。
针对特定项目,可将标准软件过程(OSSP)进行剪裁。
项目成本、工期和功能已受控,质量可跟踪。
管理者了解所有项目对技术进步的要求。
在第二级仅定义了管理的基本过程,而没有定义执行的步骤标准。在第三级则要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程,剪裁出该项目的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。
已管理级
已为产品和过程建立了量化的目标。
对项目的过程活动,包括生产率和质量均作了度量。
利用过程数据库收集和分析过程的信息。
可量化评价项目过程和产品。
可有效地控制过程和产品的性能,使其限制在规定的范围内。
新应用领域的风险可知可控。
可预知产品的质量。
已管理级(4级) 是量化的管理。所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的产品)需有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品,量化控制将使软件开发真正变成为工业生产活动。
优化级
集中注意于过程的持续改进。
自知过程的薄弱环节,可预防缺陷的出现。
可通过对当前过程的分析,评价对新技术或将出现的变更作出评价。
重视探索创新活动,并将成功的创新推广。
出现的缺陷得到分析,找出原因,防止再次发生,教训为其它项目吸取
优化级(5级)是达到一个持续改善的境界。所谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。
如果一个企业达到了这一级,那么表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。
2. CMMI是在什么历史条件下产生的?与CMM之间的关系是怎样的?
CMMI起源
CMMI 的全称为Capability Maturity Model Integration,即能力成熟度模型集成。CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD)1.02版本是应用于软件业项目的管理方法,SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,CMMI演绎成为一种被广泛应用的综合性模型。
1994 年,SEI 正式发布软件CMM。随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等。
虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况。这时他们就会发现存在一些问题,其中主要问题体现在:
•不能集中其不同过程改进的能力以取得更大成绩;
•要进行一些重复的培训、评估和改进活动,因而增加了许多成本;
•不同模型对某些相同事物说法不一致,或活动不协调,甚至相抵触。
于是,希望整合不同CMM 模型的需求产生了。1997 年,美国联邦航空管理局(FAA)开发了FAA-iCMM SM(联邦航空管理局的集成CMM),该模型集成了适用于系统工程的SE-CMM、软件获取的SA-CMM 和软件的SW-CMM 三个模型中的所有原则、概念和实践。该模型被认为是第一个集成化的模型。
接着SEI在其基础之上更进一步,开发了更为广泛的CMMI。
CMMI与CMM的关系
CMMI是CMM模型的最新版本,CMMI 与CMM 最大的不同点在于:CMMISM-SE/SW/IPPD/SS 1.1 版本有四个集成成分,即:系统工程(SE)和软件工程(SW)是基本的科目,对于有些组织还可以应用集成产品和过程开发方面(IPPD)的内容,如果涉及到供应商外包管理可以相应的应用SS(Supplier Sourcing)部分。
3. CMMI有哪两种表现形式?CMMI与CMM相比,在过程域方面有什么变化?
CMMI 有两种表示方法,一种是阶段式表现方法,另一种是连续式的表现方法。
变化:
阶段式表现方法和软件CMM一样,仍然把CMMI 中的若干个过程区域分成了5 个成熟度级别,帮助实施CMMI 的组织建议一条比较容易实现的过程改进发展道路。而连续式表现方法则通过将CMMI 中过程域分为四大类:过程管理、项目管理、工程以及支持。对于每个大类中的过程域,又进一步分为基本的和高级的。这样,在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑。
4. 什么是软件过程的改进?CMM/CMMI对于指导软件过程改进有什么意义?
用于提高软件过程能力的实践通称为软件过程改进。
CMM用之于软件过程改进时,是通过按CMM给出的准则对软件过程实施评价,从而为作出改进决策和实施改进提供支持;所以,往往又把CMM在过程改进方面的应用看成是过程评价。CMM的两种主要用途又归结为两种评定方法: 软件过程评估: 用于确定组织目前的软件过程状态,确定组织面临的突出软件过程问题,从而求得组织的软件过程改进的支持。
软件能力评价: 用于识别合格的软件工作承包商,或用于监控现行软件工作项目上用的软件过程的状态。
CMM是软件过程评估和软件能力评价的公共基础。不过,两种用法的目的不同,而且具体用法也有很大差异。软件过程评估侧重于确定本组织软件过程改进的轻重缓急;软件能力评价侧重于确定在选择软件项目承包商时可能碰到的风险,或者说是确定软件组织在软件能力方面的置信程度。后面这一点正是许多软件组织看好按CMM评定等级的原因。软件过程评估与软件能力评价在动机,目标,范围以及审核结果所有权等方面都有所不同。