计算机软件软件质量保证_第1页
计算机软件软件质量保证_第2页
计算机软件软件质量保证_第3页
计算机软件软件质量保证_第4页
计算机软件软件质量保证_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件质量保证:软件质量保证:概念、管理、模型及评估体系概念、管理、模型及评估体系魏文王之问扁鹊,曰:魏文王之问扁鹊,曰:“子昆弟三人其孰最善为子昆弟三人其孰最善为医?医?”扁鹊曰:扁鹊曰:“长兄最善,中长兄最善,中兄次之,扁鹊最为下。兄次之,扁鹊最为下。”魏文侯曰:魏文侯曰:“可得闻邪?可得闻邪?”扁鹊曰:扁鹊曰:“长兄于病视神,长兄于病视神,未有形而除之,故名不出未有形而除之,故名不出于家。中兄治病,其在毫于家。中兄治病,其在毫毛,故名不出于闾。若扁毛,故名不出于闾。若扁鹊者,镵鹊者,镵(chan)血脉,投血脉,投毒药,副肌肤,闲而名出毒药,副肌肤,闲而名出闻于诸侯。闻于诸侯。” - 鶡鶡(

2、he)冠子冠子卷卷下下世贤第十六。世贤第十六。课程内容质量案例质量案例软件质量软件质量软件质量保证软件质量保证软件质量管理软件质量管理软件质量模型软件质量模型软件质量评估体系软件质量评估体系要确保软件系统的质量(1/3)软件项目已经开始实施,工作完全按照计划的要求进行,一切似乎非常顺利按照计划要求,需求分析小组在需求分析截至时间的前一天撰写好了软件需求规格说明书,项目经理对他们的进度感到满意,因为他们没有拖延时间和进度由于进度的紧迫性,需求分析完成后的第二天,项目开发组马上转入到了软件设计阶段的工作,令人欣慰的是软件设计的工作同样进展顺利,并且提前一周完成软件设计工作,撰写了软件设计规格说明书

3、尽管软件设计提前完成,项目组仍然决定立即进入编码阶段的工作,期望能够尽快完成在进度约束范围内完成编码工作,提交软件产品各个程序员工作的非常卖力,已经编写了各个软件模块并且对所编写的各个软件模块进行了测试,认为软件已经没有什么大的问题,即使有也是微不足道的,最终将目标软件提交给了用户要确保软件系统的质量(2/3)用户在使用了该软件后发现了诸多的问题,用户对项目组的工作很有意见,于是项目组不得不重新作需求分析软件没有完全满足他的要求有些软件功能与他所想象的不一致软件系统不稳定,经常出现死机现象在将用户需求了解清楚之后,设计小组对该软件重新进行改造,发现软件结构不好,要对软件进行调整和修改非常困难要

4、确保软件系统的质量(3/3)然而为了完成项目的要求,设计小组只好硬着头皮对软件设计进行修改和调整经过调整后的软件系统问题更多,系统不稳定,有大量的错误,软件变得极为脆弱,为此项目组不得不推翻原有的设计,对整个软件重新进行设计和编码项目最终在拖延了8个月后交货,然而此时项目组成员已经筋疲力尽回顾整个项目的历程,项目组成员发现导致这种状况的主要回顾整个项目的历程,项目组成员发现导致这种状况的主要原因是在整个项目实施过程中,项目组没有对项目进行有效原因是在整个项目实施过程中,项目组没有对项目进行有效的质量监控的质量监控案例提示我们质量保证是极为重要的在软件项目实施过程中必须提供待开发软件质量的可视性

5、缺乏质量保证,将会导致所开发的软件不能满足用户的期望和要求缺乏质量保证,将会导致整个软件项目延期,甚至失败为什么需要关注软件质量?高质量的产品才能提高客户满意度,占领市场降低软件开发的风险确保软件项目按照计划实施防止软件项目由于质量问题而流产或者失败提高企业的影响力质量管理发展五个阶段1900手工操作者专职检验员1920过程统计技术1931全面质量管理19602010以顾客为中心阶段时间课程内容质量案例软件质量软件质量软件质量保证软件质量保证软件质量管理软件质量管理软件质量模型软件质量模型软件质量评估体系软件质量评估体系什么是软件质量(1/3)软件质量的概念定义软件产品满足用户要求的程度“软件

6、质量软件质量”(ISO9126ISO9126):):软件满足规定或潜在用户需求特性的总和。包括“内部质量内部质量”、“外部质量外部质量”和“使用质量使用质量”三部分。“软件质量软件质量”(ISO14598ISO14598):):软件特性的总和,软件满足规定或潜在用户需求的能力。“软件质量软件质量” ” (软件工程实践者理论):(软件工程实践者理论):满足明确声明的功能和性能需求,明确文档化的开发过程以及专业人员开发的软件所具有的所有隐含特征注意要从客户(而不是开发人员或者企业)的角度看质量测试软件质量的内外因素外在因素:软件所提供的功能、性能、人机交互界面是否美观、易于操作内在因素:软件的设计

7、好坏、故障的数目和严重程度什么是软件质量(2/3)影响影响软件软件质量质量的具的具体因体因素素 产产品品修修正正性性 产产品品转转移移性性 产品运行性产品运行性 可维护性可维护性 灵活性灵活性 可测试性可测试性 可移植性可移植性 可重用性可重用性 可互操作性可互操作性 正确性正确性 可靠性可靠性 有效性有效性 完整性完整性 有用性有用性 什么是软件质量(3/3)用户对软件质量的理解:没有功能(功能)运行速度太慢(性能)有太多的错误(故障)软件不好改动(维护)界面不美观(人机界面)这个软件不好使用(易用性)等等。我们对软件质量的理解软件质量是一个复杂的概念,不同的人从不同的角度来看软件质量是一个

8、复杂的概念,不同的人从不同的角度来看待软件质量问题会有不同的理解待软件质量问题会有不同的理解用户视角:用户视角:质量就是满足客户的需求 开发者的视角:开发者的视角:质量就是与需求说明保持一致产品视角:产品视角: 质量就是产品的内在特点价值视角:价值视角:质量就是客户是否愿意购买项目经理视角:项目经理视角:质量就是能“令人满意”地工作以完成预期功能的软件产品软件质量指标p 正确性正确性:实现的功能达到设计规范,并满足用户需求的程度p 可靠性可靠性:规定的时间和条件下,仍能维持其性能水准的程度p 易用性易用性:用户掌握软件操作所要付出的时间及努力程度p 效率效率:软件执行某项功能所需电脑资源(含时

9、间)的有效程度p 可维护性可维护性:当环境改变或软件发生错误时,执行修改或恢复所做努力的程度p 可移植性可移植性:从一个系统/环境移到另一系统/环境的容易程度功能性和可用性 功能性:p功能的正确性p功能的准确性p软件功能的完整性可用性:p可操作性 p通用性 p一致性可靠性和性能 可靠性:p系统自我恢复能力(Autonomy) p健壮性 p系统的分布性 性能:p有效性(Efficiency) p安全管理/完整性 p易存取性(System Accessibility) 可维护性 p模块化(Modularity) p增强能力/灵活性(Augment ability) p可测试性(Testabilit

10、y) p可追溯性(Traceability) p简单性 (Simplicity) p自我描述性(Self Descriptiveness) p系统兼容性(System Compatibility) p文档质量(Document Quality) 可移植性 p独立性(Independence) p可重用性(reusability) p互操作性(Interoperability) p虚拟性 ( Virtuality) p一般性(Generality) 软件产品的质量因素软件过程的质量因素p 项目计划过程项目计划过程:和客户的沟通能力、软件产品特性定义的方法、项目计划策略、评审的流程、范围、方式和程

11、度、协同工作流程、合同和用户管理流程和方法、文档编写、管理等的规范和流程p 项目设计过程项目设计过程:软件产品指标的定义和解释、设计流程、设计标准、协同工作流程、文档编写、管理等的规范和流程p 项目实施过程项目实施过程:变更控制流程、执行过程跟踪方法、流程和相适应的系统、缺陷处理流程、文档编写、管理等的规范和流程p 软件维护过程软件维护过程:变更控制流程、用户反馈、相应处理机制、回归测试流程p 软件商业环境过程软件商业环境过程:软件改进的策略、产品开发模式、市场定位、产品标准等课程内容质量案例软件质量软件质量保证软件质量保证软件质量管理软件质量管理软件质量模型软件质量模型软件质量评估体系软件质

12、量评估体系软件质量保证 的定义软件质量保证(软件质量保证(SQASQA:Software Quality AssuranceSoftware Quality Assurance):):为管理层提供为获知产品质量信息所需的数据,从而获得产品质量是否符合预定目标的认识和信息对软件质量保证的理解:软件质量保证的重要工作是通过预防预防、检查检查与改进改进来保证软件质量。SQA通过“全面质量管理全面质量管理”和“过程改进过程改进”的原理开展质量保证工作虽然在SQA的活动中也有一些测试活动,但SQA所关注的是对软件质量的检查检查与度量度量。SQA的工作是对软件生命周期的管理对软件生命周期的管理以及验证软件

13、是否满足规定的质量和用户需求验证软件是否满足规定的质量和用户需求,因此主要着眼于软件开发活动中的过程、软件开发活动中的过程、步骤和产物步骤和产物,而不是对软件剖析,找出问题或评估。SQA的注意职责是检查和评价当前软件开发的过程,找出过程改进的方法,已达到防止软件缺陷出现的目标要为软件产品的质量提供某种可视性,知道哪些地方有质量问题,便于改进方法和措施,提高软件产品的质量软件质量保证活动软件质量保证(SQA)是一种应用于整个软件过程的活动,它包含:一种质量管理方法有效的软件工程技术(方法和工具)在整个软件过程中采用的正式技术评审一种多层次的测试策略对软件文档及其修改的控制保证软件遵从软件开发标准

14、度量和报告机制了解产品质量(例如,软件测试)提交软件质量报告(例如,软件测试报告),说明质量问题为项目组和管理层服务(例如,告诉问题所在,便于改进管理和技术)软件质量保证工作内容和方法计划计划 针对具体项目制定 SQA计划,确保项目组正确执行过程。制定SQA计划应当注意如下几点: 有重点:依据企业目标以及项目情况确定审计的重点 明确审计内容:明确审计哪些活动,那些产品 明确审计方式:确定怎样进行审计 明确审计结果报告的规则:审计的结果报告给谁 审计审计/ /证实证实 依据 SQA计划进行SQA审计工作,按照规则发布审计结果报告。 注意审计一定要有项目组人员陪同,不能搞突然袭击。双方要开诚布公,

15、坦诚相对。 审计的内容:是否按照过程要求执行了相应活动,是否按照过程要求产生了相应产品。 问题跟踪问题跟踪 对审计中发现的问题,要求项目组改进,并跟进直到解决。 软件质量保证人员素质SQASQA的素质的素质 以过程为中心以过程为中心:应当站在过程的角度来考虑问题,只要保证了过程, SQA就尽到了责任。 专业的服务精神专业的服务精神:为项目组服务,帮助项目组确保正确执行过程 了解过程了解过程:深刻了解企业的工程,并具有一定的过程管理理论知识 了解开发了解开发:对开发工作的基本情况了解,能够理解项目的活动 良好的沟通技巧良好的沟通技巧:善于沟通,能够营造良好的气氛,避免审计活动成为一种找茬活动。软

16、件质量保证的组织结构在国内大多数企业,SQA组织结构可划分为三类:职能结构职能结构、矩阵结构矩阵结构以及两者结合而成的柔性结构柔性结构。职能结构职能结构在职能结构中,各个职能部门设立自己的岗位,位于高级经理之下,独立于项目组。SQA直接对高级经理负责,但业务上需要向项目经理汇报,属于项目成员。职能结构的优点职能结构的优点SQA容易融入项目组,易于发现实质性的问题,解决问题也很快捷。职能结构的缺点职能结构的缺点各职能部门相对独立,部门之间的经验缺乏交流和共享,还可能出现对过程、方法和工具研究的重复性投资。在这种组织结构下,由于高级经理专注于业务的发展,SQA的职业发展容易受到忽视,难于接受到应有

17、的培训和提升。软件质量保证的组织结构矩阵结构矩阵结构在矩阵结构中,设立了专门的SQA部门,与各业务职能部门平级。SQA隶属于SQA部,行政上向SQA经理负责,业务上向业务部门的高级经理和项目经理汇报。在这种组织结构中,由SQA部经理对SQA考评和授权,有利于保证SQA的独立性和评价的客观性,也有利于确保组织的长期利益与项目(或个人)的短期利益之间的平衡。SQA资源为所有项目所共享,可按照项目优先级动态调配,资源利用更充分,但也可能出现资源竞争冲突。此外,SQA部门对QA流程的改进、SQA知识的管理、SQA人员的发展负责,并可集中资源进行SQA平台的建设,以防止重复性的投资。但另一方面,在矩阵结

18、构中,SQA难于融入项目组,发现的问题也很少能得到及时有效的解决。柔性结构柔性结构柔性结构是职能结构和矩阵结构的混合形态,在职能结构的基础上建立了SQA组。软件质量保证的岗位职责在CMMI中,SQA的主要工作是过程评审过程评审和产品审计产品审计。从实践经验来看,SQA只完成这两项工作很难体现出SQA的价值。为了让SQA组织的产出大于组织的投入,实现增值,就应该根据企业需要适当增加SQA的职责,比如过程指导过程指导、过程度量过程度量和过程改进过程改进等。过程指导过程指导主要是项目前期辅助项目经理制定项目计划(包括辅助定义或修改项目过程和过程模型、协助项目估计、建立项目验收准则、设置质量目标等),

19、对项目成员进行过程和规范的培训以及在过程中进行指导等。过程度量过程度量(包括产品度量)在CMMI中已经成为CMMI ML2级中一个单独的过程域,但却是对所有过程的一个共性要求。特别是成熟度越高,对度量的要求也越高,难度也越大。这就要求有专业的人员来负责,SQA就是一个很好的选择。主要职责包括收集、统计、分析度量数据,以支持管理信息需求。过程改进过程改进在CMMI中主要是EPG的职责。但事实上,SQA更接近于过程实施的环节,更了解过程运行的情况,也就更容易发现“木桶中最短的那块”。同时,SQA也是改进过程实施的重要推动力量。 从哪些方面关注软件质量(1/3)文档文档程序代码程序代码软件产品软件产

20、品需求分析需求分析软件设计软件设计编码编码标准和规程标准和规程开发活动开发活动从哪些方面关注软件质量(2/3)软件产品软件需求规格说明书软件设计规格说明书源程序代码,.开发活动需求分析软件设计编码标准和规程从哪些方面关注软件质量(3/3)组织内部或者在项目开始之时要制定软件开发的标准和规程软件产品文档类:审核,产生审核报告代码类:测试,产生测试报告开发活动审查,产生审查报告谁来执行和实施软件质量保证软件项目质量保证小组(SQA小组)独立于项目开发小组具有比较大的权限如何保证软件质量正确理解用户的要求制定标准和规程审查软件开发活动审核软件工作产品测试源程序代码记录开发活动和软件产品的偏差记录所有

21、不符合项,报告高级管理者软件测试与质量保证软件测试:软件测试:关注的是软件开发的产物,以及对软件进行剖析,运行软件,找出问题,报告质量。软件测试是保证软件质量的一个重要环节。测试工作无法遍历软件测试只是质量保证活动中的一个重要环节,而不是唯一环节力图通过测试提高软件的质量如同经常称体重来达到减肥的目的。如果你想减肥,不要买一个新称,而是节食。如果你想提高你软件质量的话,不是更多的测试,而是更好的分析、设计和开发。 -Steve McConnell in Code Complete课程内容质量案例软件质量软件质量保证软件质量管理软件质量管理软件质量模型软件质量模型软件质量评估体系软件质量评估体系

22、软件质量管理体系的建立质量管理体系的持续改进质量管理体系的持续改进管理职责资源管理产品实现测量、分析和改进顾客(和其他相关方)要 求顾客(和其他相关方)满意产品建立和实施质量体系的方法 p 确定顾客和其他相关方的需求和期望;确定顾客和其他相关方的需求和期望;p 建立组织的质量方针和质量目标;建立组织的质量方针和质量目标;p 确定实现质量目标必需的过程和职责;确定实现质量目标必需的过程和职责;p 确定和提供实现质量目标必需的资源;确定和提供实现质量目标必需的资源;p 规定测量每个过程的有效性和效率的方法;规定测量每个过程的有效性和效率的方法;p 应用这些测量方法确定每个过程的有效性和效率;应用这

23、些测量方法确定每个过程的有效性和效率;p 确定防止不合格并消除产生原因的措施;确定防止不合格并消除产生原因的措施;p 建立和应用持续改进质量管理体系的过程。建立和应用持续改进质量管理体系的过程。软件质量管理体系的构成全面质量管理TQM是一种管理模式,目标是通过连接质量和用户满意度来取得长期的成功,基本方法是通过营造一种组织文化,使得组织内部的每个成员都参与到过程、产品和服务的改善中HP的TQC策略:管理承诺、领导能力、客户重点、全面参与、系统分析Motorola的6Sigma:核心是降低周期时间和参与管理IBM的市场驱动策略:客户是最终的评判者l关注客户:关注客户:目标是取得全面客户满意度,包

24、括收集和研究客户的期望和需求,测量和管理客户满意度l过程改进:过程改进:目标是降低过程的变化性,获得持续的过程改进,包括商业过程和产品过程l质量的人性化要素:质量的人性化要素:目标是在全组织内营造质量文化,重点包括领导能力、管理承诺、全面参与、职员授权及其他社会、心理、人文因素l度量和分析:度量和分析:目标是推进所有质量参数的持续改进度量和分析度量和分析关注客户关注客户 过程改进过程改进质量质量人文要素人文要素全面质量管理全面质量管理全面质量管理:四个要素全面质量管理:三个原则 1. 1. 系统的原则系统的原则产品质量的形成和发展过程包括了许多相互联系、相互制约的环节,不论是保证和提高产品质量

25、还是解决产品质量问题,都应该把生产企业看成一个开放的系统,运用系统科学的原理和方法,对所有环节进行全面的组织管理。2. 2. 向用户服务的观点,用户满意是第一原则向用户服务的观点,用户满意是第一原则要树立质量第一、用户第一的思想,满足广义用户(产品的使用者以及企业生产过程的下一阶段)对产品质量的要求。3. 3. 预防为主的原则,事前主动进行质量管理预防为主的原则,事前主动进行质量管理这个观点要求生产企业的质量管理重点应从事后检验把关转移到事前预防,从管结果转变为管因素,找出影响产品质量的各种因素,抓住主要因素,使生产经营活动处于受控状态。全面质量管理方法:PDCA循环 APCD检查执行经验教训

26、遗留问题问题原因主要原因 计划质量管理的PDCA循环图最早由美国质量管理专家戴明提出来的,所以又称为“戴明环”。PDCA的含义如下:P(PLAN)-计划;D(Do)-执行;C(CHECK)-检查;A(Action)-行动,对总结检查的结果进行处理,成功的经验加以肯定并适当推广、标准化;失败的教训加以总结,未解决的问题放到下一个PDCA循环里。大循环套小循环大循环套小循环全面质量管理方法:PDCA循环 PDCA循环四个明显特点 周而复始 PDCA循环的四个过程不是运行一次就完结,而是周而复始地进行。一个循环结束了,解决了一部分问题,可能还有问题没有解决,或者又出现了新的问题,再进行下一个PDCA

27、循环,依此类推。大环带小环 类似行星轮系,一个公司或组织的整体运行的体系与其内部各子体系的关系,是大环带小环的有机逻辑组合体。阶梯式上升 PDCA循环不是停留在一个水平上的循环,不断解决问题的过程就是水平逐步上升的过程PDCA循环四个明显特点统计的工具 PDCA循环应用了科学的统计观念和处理方法。作为推动工作、发现问题和解决问题的有效工具,典型的模式被称为四个阶段、八个步骤和七种工具。四个阶段就是P、D、C、A;PDCA循环四个明显特点PDCA的八个步骤 分析现状,发现问题; 分析问题中各种影响因素; 分析影响问题的主要原因; 针对主要原因,采取解决的措施;-为什么要制定这个措施?-达到什么目

28、标?-在何处执行?-由谁负责完成?-什么时间完成?-怎样执行? 执行,按措施计划的要求去做; 检查,把执行结果与要求达到的目标进行对比; 标准化,把成功的经验总结出来,制定相应的标准; 把没有解决或新出现的问题转入下一个PDCA循环中去解决七种工具是指在质量管理中广泛应用的直方图、控制图、因果图、排列图、相关图、分层法和统计分析表等PDCA的八个步骤7种工具是指在质量管理中广泛应用的:直方图、控制图、因果图、排列图、相关图、分层法统计分析表PDCA的7种工具课程内容质量案例软件质量软件质量保证软件质量管理软件质量模型软件质量模型软件质量评估体系软件质量评估体系软件质量模型 McCall 软件质

29、量模型 (GE模型, 1977) 由11个指标构成,分为产品操作,产品修订和产品转移 Boehm 模型 (1978) 基于很多特性和 19个标准 ISO 9126 包括6个质量目标,每个质量目标有很多属性早期的软件质量模型是1977年McCall和他的同事建立的,提出了影响质量因素的有用的分类,集中在软件产品的三个重要方面:操作特性(产品运行)操作特性(产品运行)、承受可改变能承受可改变能力(产品修订)力(产品修订)、新环境适应能力(产品变迁)新环境适应能力(产品变迁)MCCall质量模型McCall质量模型Boehm质量模型1978年Boehm和他的同事们提出了分层结构的软件质量模型,除包含

30、了用户的期望和需要的概念,还包括了McCall模型中没有的硬件特性Boehm模型始于软件的整体效用,从系统交付后涉及不同类型的用户考虑。第一种用户是初始顾客初始顾客,系统做了顾客所期望的事情。第二种用户是要将软件移植到其他软硬件系统下使用的客户要将软件移植到其他软硬件系统下使用的客户第三种用户是维护系统的程序员维护系统的程序员这三种用户都希望系统是可靠有效的,因此,Boehm模型反映了对软件质量的理解,即软件做了用户要它做的软件做了用户要它做的;有效的使用系统资源有效的使用系统资源;易于学习和使用易于学习和使用;易于维护和测试易于维护和测试Boehm质量模型ISO9126质量模型20世纪90年

31、代早期,软件工程组织试图将诸多的软件质量模型统一到一个模型中,并把这个模型作为度量软件质量的一个国际标准。国际标准化组织1991年颁布了ISO9126-1991标准软件产品评价-质量特性及其使用指南我国也与1996年颁发了同样的软件产品质量评价标准GB/T 16260-1996。它是一个分层质量模型,有6个影响质量的特性。ISO9126质量模型ISO简化的软件质量模型 用户自定义软件产品度量标准SQRC SQDC SQMC 课程内容质量案例软件质量软件质量保证软件质量管理软件质量模型软件质量评估体系软件质量评估体系ISO9000质量管理认证体系ISO9000 是关于质量管理和质量保证的一系列标

32、准,定义了一套基本达标的时间,帮助公司不断的交付符合公司质量要求的产品或服务。ISO 9000ISO 9000用的比较好的两个原因就是:用的比较好的两个原因就是:它的目标在于开发过程,而不产品ISO 9000只决定过程的要求是什么,而不管如何达到注意:注意:一家公司得到了ISO 9000认证,表示它在开发过程中达到某种质量控制等级,这不意味着其产品达到了某种质量等级。ISO 9000是一个质量体系,制定了质量保障的规范与标准ISO 9000ISO 9000标准中针对软件的部分是ISO 9001和ISO 9000-3。ISO 9001ISO 9001负责设计、开发、生产、安装和服务产品方面的事物

33、ISO 9000-3 ISO 9000-3 负责开发、供应、安装和维护计算机软件方面的事物我国已建立等同采用的质量保障标准族GB/T 19000ISO9000质量管理认证体系能力成熟度模型CMMCMM CMM ( Capability Maturity Model Capability Maturity Model ):):CMM是由美国软件工程学会美国软件工程学会(software engineering institue,简称SEI)制定的一套专门针对软件产品的质量管理针对软件产品的质量管理和质量保证标准质量保证标准.CMM全称为(Capability Maturity Model),中文

34、名称为能力成熟度模型能力成熟度模型.CMM最早始于1987年,为了满足美国联邦政府评估软件供应商能力的要求,美国卡内基-梅隆大学的软件工程研究学院SEI牵头,发布了一份能力成熟框架(Capability Maturity Framework)以及一个成熟度问卷(Maturity Qestionnaire)。四年后(即1991年),SEI将成熟度框架进化为软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM,即CMM1.0)自1991年SW-CMM1.0版本使用两年后,SEI与1993年又推出了CMM1.1版.近几年来,CMM又推出了

35、2.0版本,同时进入了ISO体系,称为ISO/IEC15504或SPICE.CMM定义了5级成熟度级别级成熟度级别,共计18个过程域(个过程域(KPA)能力成熟度模型CMMCMM ICMM I级级 初始级:初始级:软件开发过程是随意的、混乱的,项目成功依靠个人英雄的行为和运气过程没有通用的计划、监视和过程控制开发软件的时间和费用无法预知,无法预知项目的前景与结果测试过程与其他过程混杂在一起CMM IICMM II级级 可重复的可重复的具备项目级的思想使用基本项目管理过程来跟踪项目的进度、功能和质量以前的项目经验可以应用到当前项目中具有一定的组织性,使用了基本的软件测试行为,例如软件测试计划和测

36、试用例关键过程域(KPA):需求管理,项目策划,项目监督和控制,供方协定管理,测量和分析,过程和产品质量保证,配置管理能力成熟度模型CMMCMM IIICMM III级级 定义级:定义级:具备组织化的思想,而不仅仅针对某个项目通用管理和过程活动被标准化和文档化标准在项目中采用并得到证实,压力增加时,不会放弃规则测试之前要审查和批准测试文档和计划测试团队和开发团队独立测试结果用于确定软件完成时间关键过程域(KPA):需求开发,技术解决,产品集成,验证,确认,组织级过程焦点,组织级过程定义,组织培训,集成项目管理,风险管理以及决策分析和决定.CMM IVCMM IV级级 可管理的可管理的组织过程处

37、于统计的控制之下。产品质量事先以量化的方式指定(例如,产品直到每行代码只有0.5个以下问题才能发布),并且在未达到目标之前不允许发布加强了项目的监督和控制,在整个项目开发过程中,收集开发过程和软件质量的详细情况,经过调整校正偏差,使项目按计划进行关键过程域(KPA):定量过程管理,软件质量管理能力成熟度模型CMMCMM VCMM V级级 不断优化的:不断优化的:从CMM IV级不断提高,尝试新的技术和处理过程,评价结果,采用提高和创新的变动以期达到质量更佳的等级。正当所有人认为已经达到最佳时,新的想法又出现了,再次提高到下一个等级注意:注意:倡导公司提高软开发成熟度不是软件测试员的事情。CMM

38、 的五层体系结构 初始级(1)可重复级(2)已定义级(3)已管理级(4)优化级(1)训练过程标准化、一致化过程可预计过程持续改进过程CMM结构成熟度级别 关键过程区域 关键惯例 CMM 级别关键惯例目标关键过程区域关键惯例成熟度级别PSP使用自底向上的方法来改进过程,向每个软件工程师表明过程改进的原则,使他们能够明白如何有效地生产出高质量的软件。为基于个体和小型群组软件过程的优化提供了具体而有效的途径。其研究与实践填补了CMM的空白。个体软件过程PSP的演化个体管理基线个体管理基线PSP0并行过程并行过程工作时间记录工作时间记录程序差错记录程序差错记录程序差错类型标准程序差错类型标准个体过程循

39、环个体过程循环PSP3循环开发循环开发个体规划过程个体规划过程PSP1程序规模估计程序规模估计测试报告测试报告个体质量管理个体质量管理PSP2编码评审编码评审设计评审设计评审PSP1.1任务规划任务规划进度安排进度安排PSP2.1设计模板设计模板PSP0.1编码标准编码标准软件规模度量软件规模度量过程改善建议过程改善建议TSP致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。实现TSP方法需要具备的条件整个软件开发小组至少应在CMM的第二级(可重复层)。全体软件开发人员必须经过PSP的培训。开发小组成员应在

40、2到20个人之间。CMM、PSP和TSP组成的软件过程框架 CMMPSPTSP原则原则技能技能费用费用期限期限组织级能力组织级能力高质量的产品高质量的产品个人的技能个人的技能建立建立生产并交付生产并交付建立建立CMM对企业的要求和帮助基于CMM模型的软件成熟度实践要求要求尽量采用更加规范的开发标准和方法;使用更加科学和精确的度量手段;选择更便于管理和使用的开发工具.因此造成了整个工程的可重构性、可分解性和最优化;明确了整个项目中必要和不必要的工作;明确了整个项目的风险,以及各个阶段进行评估的指标与应急措施能力成熟度模型集成CMMICMMI CMMI (Capability Maturity M

41、odel IntegrationCapability Maturity Model Integration)自CMM1.0版本后,SEI又开发了其他成熟度模型,包括:软件工程软件工程(SW-CMM),系统工系统工程程(SE-CMM system engineering CMM),软件采购软件采购(SA-CMM,software acquistion CMM),人力资源管理人力资源管理(P-CMM,people CMM)和集成产品开发集成产品开发(IPT-CMM integrated product team CMM)等.虽然各个模型针对的专业领域不同,但是彼此之间有一定的重叠;另外,这些模型在

42、表现形工上又有不统一之处:系统工程模型是连续式的,而其它模型采用了分级式.为了整合不同模型的最佳实践,建议统一模型,覆盖不同领域,供企业进行整个组织的全面过程改进,并于2001年正式发布了能力成熟度集成模型(CMMI)1.1版本,这次发布标志着CMMI的正式使用.SEI也正式宣布,将不再维护CMM的CBA-IPI评估方法.SEI并没有废除CMM模型,而是以CMMI的SCAMPI评估方法取代CMM的CBA-IPI评估方法.CMMI定义了5级成熟度级别,共计25个过程能力成熟度模型集成CMMICMMI ICMMI I级级 初始级初始级: :代表了不可预测结果为我自的成熟度.过程包括了一些特别的方法

43、,符号,工作和反应管理,成功主要取决于团队的技能.CMMI IICMMI II级级 已管理级已管理级: :代表了以可重复项目执行为特征的过程成熟度.组织使用基本纪律进行需求管理,项目计划,项目监督和控制,供应商协议管理,产品和过程质量保证,配置管理,以及度量和分析.本级别主要的过程焦点在于项目级的活动和实践.强调级别2的关键过程域的前后一致的、项目级的纪律,以建立组织级的活动和实践。能力成熟度模型集成CMMICMMI IICMMI II级级 已管理级已管理级: :附加的组织级过程域包括:附加的组织级过程域包括:需求开发:需求开发:多利益相关者的需求发展。技术方案:技术方案:展开的设计和质量工程

44、。产品集成:产品集成:持续集成、接口控制、变更控制。验证:验证:保证产品正确建立的评估技术。确认:确认:保证建立正确的产品的评估技术。风险管理:风险管理:检测、优先级,相关问题和意外的解决方案。组织级培训:组织级培训:建立机制,培养更多熟练人员。组织级过程焦点:组织级过程焦点:为项目过程定义建立组织级框架。决策分析和方案:决策分析和方案:系统的可选的评估。组织级过程定义:组织级过程定义:把过程看做组织的持久的发展的资产。集成项目管理:集成项目管理:在项目内统一各个组和利益相关者。能力成熟度模型集成CMMICMMI IIICMMI III级级 严格定义级:严格定义级:代表了以组织内改进项目执行为

45、特征的过程成熟度.CMMI IVCMMI IV级级 定量管理级:定量管理级:代表了以改进组织性能为特征的过程成熟度.3级项目的历史结果可用来交替使用,在业务表现的竞争尺度(成本,时间,质量)方面的结果是可预测的.附加的过程域包括附加的过程域包括: :组织级过程执行:为过程执行设定规范和基准.定量的项目管理:以统计质量控制方法为基础实施项目.CMMI VCMMI V级级 优化级:优化级:代表了可快速进行重新配置的组织性能和定量的,持续的过程改进为牲的过程成熟度.附加过程域包括附加过程域包括: :因果分析和解决方案:主动避免错误和强化最佳实践组织级改革和实施:建议一个能够有机适应和改进的学习组织.

46、TickIT-欧洲的规则是根据ISO9000认证软件开发组织的体系(system)是为软件的需要对ISO9000的诠释(interpretation)包括对审核员的表现和竞争力的一组标准要求包括对审核员标准化培训的课程包括审核员注册的程序(scheme)从事TickIT认证的认证机构的认可制度软件企业的认证与认可选择在数量上,软件、计算机及相关企业采用ISO9000认证的为最多。欧洲的企业较多地采取TickIT/ISO9001认证 的方式。申请CMM认证的多为美国的公司或者是有美国背景的公司。在已取得CMM认证的企业当中,以CMM级居多,能够达到级的企业寥寥可数,甚至、级的都不多ISO9000

47、认证ISO9000:机构必须经过认可人员必须取得注册经认可的认证中心可发证书结论只有通过或不通过CMM的评估采用CBA-IPICBA-IPI方法方法(即CMM-Based Assessment for Internal Process Improvement).CBA-IPI方法是一种诊断工具,它借助识别其现行过程的优劣使一个组织能识别其现行过程的优劣使一个组织能了解其软件开发能力了解其软件开发能力,把这些优缺点与这些优缺点与CMMCMM对照起来对照起来,安排软件改进计划的安排软件改进计划的优先顺序优先顺序, ,并把注意力集中关注到最有利的软件改进上把注意力集中关注到最有利的软件改进上,以及给

48、出其现行过给出其现行过程的成熟度等级程的成熟度等级和业务目标业务目标;此方法是受过培训的专业组受过培训的专业组对组织的软件过程能力作出评估,该组全体人员作为一个团队一起对评估范围内的CMM关键过程域进行评估和评分.此评估结果是依据所采集的数据作出的,这些数据来自问卷回答来自问卷回答文档审核文档审核陈述以及与中层经理陈述以及与中层经理项目负责人和软件专业人员的深层访谈项目负责人和软件专业人员的深层访谈.CMM认证(1)CMM认证(2)CMM:评审员由SEI认定授权每隔两年重新评定一次资格基本要求是:至少年软件开发质量保证经验至少两年软件项目管理经验评估框架同ISO9000类似结果报SEI评定结果有五个等级CMM认证(3)目前全球通过CMM五级的企业已有23家印度通过CMM5级的企业就有15家CMM在中国 北京鼎新信息系统开发有限公司ASDC (中国首家通过CMM2级评审) 沈阳东大阿尔派软件股份有限公司(成功通过CMM2级评审) 摩托罗拉中国软件中心 (通过国际CMM顶级5级认证) 联想软件事业部 (通过CMM2级) TickIT认证TickIT:机构必须取得UKAS(英国皇家认可委员会)的认可审核员必须是TickIT审核员(经过专门的认可)其它基本同ISO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论