-
c
目前常见的软件质量管理体系:
-
ISO9000系列
-
CMM,能力成熟度模型
-
六西格玛
软件质量模型,从哪些方面保证软件质量
全面质量管理代表人物
戴明(Deming):最著名的就是PDCA循环,PDCA循环是美国质量管理专家休哈特博士首先提出的,由戴明采纳、宣传,获得普及,所以又称戴明环。全面质量管理的思想基础和方法依据就是PDCA循环。PDCA循环的含义是将质量管理分为四个阶段,即计划(Plan)、执行(Do)、检查(Check)、处理(Act)。在质量管理活动中,要求把各项工作按照作出计划、计划实施、检查实施效果,然后将成功的纳入标准,不成功的留待下一循环去解决。这一工作方法是质量管理的基本方法,也是企业管理各项工作的一般规律。
https://img2018.cnblogs.com/blog/1168165/201911/1168165-20191106233251061-478103240.bmp
ISO9000:2000版的八项质量管理原则
原则 | 内容 | ISO9001标准条款 | |
---|---|---|---|
一 | 以顾客为中心 | 组织依存与其顾客,因此,组织应理解顾客当前和未来的需求,满足顾客要求争取超越顾客期望。 | 0.1、5.2、7.2.1、7.2.3、7.3、7.5.3、7.5.4、8.2.1 |
二 | 领导作用 | 领导者将本组织的宗旨、方向和内部环境统一起来,并创造使用员工能够充分参与实现组织目标的环境。 | 5.1、5.3、5.4.1、5.4.2、5.5.2、5.5.3、5.6、6.1 |
三 | 全员参与 | 各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组织带来最大的收益。 | 5.1、5.3、6.2、7.5.4 |
四 | 过程方法 | 将相关的资源和活动作为过程进行管理,可以更高效的得到期望的结果。 | 0.3、5、6、7、8(标准的每一条款都涉及过程) |
五 | 管理的系统方法 | 针对设定的目标,识别、理解并管理一个由相互关联的过程所组织成的体系,有助于提高组织的有效性和效率 | 4.1、7.1、8.2.2 |
六 | 持续改进 | 持续改进是组织的一个永恒的目标 | 5.2、5.6、7.5、8.2.2、8.5.1、8.5.3 |
七 | 基于事实的决策方法 | 对数据和信息的逻辑分析或者直觉判断是有效决策的基础。 | 7.5.2、7.5.5、7.6、8.2.3、8.3、8.4、8.5.2、8.5.3 |
八 | 互利的供方关系 | 通过互利的关系,增强组织及其供方创造价值的能力 | 7.4、8.3 |
八项质量管理原则的意义
是质量管理的理论基础。
用高度概括、易于理解的语言所表述的质量管理的最基本、最通用的一般性规律。
为组织建立质量管理体系提供了理论依据。
是组织的领导者有效地实施质量管理工作必须遵循的原则。
cmm
CMM级别考核依据
过程能力等级 | 特点 | 关键过程域 |
---|---|---|
1. 初始级 | 软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力,管理是反应式的。 | |
2. 可重复级 | 建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。 | a.需求管理 b.软件项目计划 c.软件项目跟踪和监督 d.软件子合同管理 e.软件质量保证 f.软件配置管理 |
3. 已定义级 | 已将软件管理和工程两方面的过程文档化、标准化、并综合成该组织的标准软件过程。所有项目均使用经批准、裁剪的标准软件过程来开发和维护软件。 | a.组织过程定义 b.组织过程焦点 c.培训大纲 d.集成软件管理 e.软件产品工程 f.组际协调 g.同行评审 |
4. 已管理级 | 收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。 | a.定量的过程管理 b.软件质量管理 |
5. 优化级 | 过程的量化反馈和先进的新思想、新技术促使过程不断改进 | a.缺陷预防 b.技术变更管理 c.过程变更管理 |
划定流程成熟度的依据就是该级别的KPA 。
第一级别没有KPA,在CMM中,共有18个KPA分布在4个级别中。
什么是KPA呢?KPA(Key Process Area)是关键过程域。
如果你的公司想申请CMM3级,那么评定组织会首先评定你公司的二级6个KAP是否达到目标,如果达到则再评定3级的KPA,达到则是3级,否则还是2级。
每个KPA都设定了2~4
个目标,我们称为KG(Key Goal)关键目标。这些关键目标是通过关键实践(key Practice)来完成的。
通过关键实践达到关键目标,关键目标达到,那么你的关键过程域也就达到了,这些关键过程域都达到了,你公司也就达到了某个级别。
但是,你也不要忽略非关键过程域,而是关键过程域和非关键因素相结合来评定。比如第2级别中的缺少某些工程活动,比如说软件测试活动。
如果你对这些理解起来比较困难,相对抽象,那么你可以参考医院的评定级别来考虑。比如医院如何被评选为三级甲等的,要达到哪些硬性指标,或者其他的指标,这跟CMM很相似。
那么这些我们都需要重点了解什么呢?如上表加粗部分,2级的需求管理、配置管理,3级的同行评审。
CMM:1级特点
一个软件公司成立之后,默认的就是CMM1级。
那么初始级的软件公司是处于什么样的状况呢?
-
一般不能提供开发和维护软件的稳定环境,缺乏健全的管理实践,不适当的规划和反应式的驱动体系会降低良好的软件工程实践所带来的效益。
-
在危急时刻,项目一般抛弃预定的规程,恢复到仅做编码和测试,项目的成功完全依赖于有一个杰出的经理及一个有经验的、战斗力强的软件团队,但当他们离开项目后,他们能使过程稳定的影响也随之消失。
-
等级1组织的过程能力是不可以预测的,过程是无序的。进度、预算、功能性和产品质量一般是不可预测的,实施情况依赖于个人的技能、知识和动机。
总的来说,全靠英雄主义来救场了。
CMM:2级特点
再来看可重复级的特点:
-
已建立管理软件项目的方针和实施这些方针的规程,基于在类似项目上的经验对新项目进行策划和管理,达到等级2目的是使软件项目的有效管理过程制度化,这使得组织能重复在以前类似项目上的成功实践。
-
项目已设置基本的软件管理和控制。
-
过程能力课概括为有纪律的,因为软件项目的策划和跟踪是稳定的, 能重复以前的成功,由于遵循切实可行的计划,项目过程处于项目管理系统的有效控制之下。
总的来说,根据以往的经验,总结下来,应用到新项目中,降低对人的依赖,并且项目是可控的。
但这仍然是不完善的, 因为这一级别只是项目级的,而不是组织级的。
CMM:3级特点
CMM2级只能针对项目的成功,会使下一个类似项目成功,但仍然是有局限性的,那么我们来寻求更高层次的成功,比如说组织级的成功,也就是已定义级。
-
全组织的开发和维护软件的标准过程已文档化,包括软件工程过程和软件管理过程,而且这些过程被集成为一个有机的整体,称为组织的标准软件过程。
-
组织中有一个专门组织的软件过程活动的组,例如软件工程过程组(SEPG,Software Engineering Process Group)。它负责整个组织的流程活动,明确组织各个角色以及角色职责,当然还要制定并实施全组织的培训计划。
-
项目根据其特征剪裁组织的标准软件过程,建立项目定义软件过程。
-
过程能力可概括为标准的和一致性的。在所建立的产品线内,成本、进度和功能性均受控制、对软件质量进行跟踪,整个组织范围内对已定义过程中的活动、角色和职责有共同的理解。
CMM:4级特点
再来看CMM4级,已管理的特点:
-
组织对软件产品的过程都设置定量的质量目标,对所有项目都测量其重要的软件过程活动的生产率和质量。利用全组织的软件过程数据库收集和分析从项目定义软件过程中得到的数据,软件过程均已配备有妥善定义的和一致的度量。
-
项目通过将其过程实施的变化限制在定量的可接受的范围之内,从而实现对其产品和过程的控制,开发新应用领域的软件所带来的风险是已知的,并得到精心的管理。
-
过程能力可概括为可预测的,因为过程是已测量的并在可测的范围内运行,组织能定量地预测过程和产品质量方面的趋势,软件产品具有可预测的高质量。
三级简单来说,就是说这个人漂亮不漂亮,下了定义,但4级可以通过调整一些量让这个人变得更漂亮,也就是纠正偏差(纠偏)。
4级也就是有了更多的度量指标,来调控整个项目的过程,所以软件的质量是可预测的,它强调的是量化管理。
那么我们根据度量指标来纠偏,以致于软件质量有更大的进步,所以,我们来看优化级。
CMM:5级特点
优化级的特点是:
-
整个组织集中精力进行不断的过程改进。为了预防缺陷出现,组织有办法识别出过程的弱点并预先予以加强。利用有关软件过程有效性的数据,识别出最佳技术创新,推广到整个组织。
-
所有软件项目组都分析缺陷,确定期原因,并且认真评价软件过程,以防止已知类型的缺陷再次出现,同时将经验教训告知其它项目。
-
过程能力的基本特征是不断改进,不断改善期项目的过程性能,为此,即采用现有过程中增量式前进的办法,也采用借助新技术、新方法进行革新的办法。
第5级强调的是流程的持续改进思想。
再回过头来看软件组织的流程,从无到有,从杂乱无章到某一个相同项目的成功重复,再到一致标准性到定量的发展,再到持续的优化。
所以,1~4
级着重创建,而第5级,重点在优化、持续改进。
处于第5级的软件组织已经具备了自我改进的基础架构,因为它经历了前面的经验积累、技术储备,有了相当陈厚的沉淀。
六西格玛
西格玛:指的是统计学的偏差,表示数据的离散程度。那六西格玛就是六倍的西格玛,也就是六倍的标准偏差。
六西格玛管理法
-
六西格玛管理法是以质量作为主线,以客户需求为中心,利用对事实和数据的分析,改进提升一个组织的业务流程能力,从而增强企业竞争力,是一套灵活,综合性的管理方法体系。
-
六西格玛要求企业完全从外部客户角度,而不是从自己的角度,来看待企业内部的各种流程。
-
利用客户的要求来建立标准,设立产品与服务的标准与规格,并以此来评估企业流程的有效性与合理性。
-
它通过提高企业流程的绩效来提高产品服务的质量和提升企业的整体竞争力。
-
通过贯彻实施来整合塑造一流的企业文化。
六西格玛管理法原则
以质量为主线,以客户需求为中心:
-
注重客户。
-
注重流程。
-
全员参与。
-
预防为主。
-
事实依据的决定。
-
持续和突破性改进。
-
周期时间(流程速度,回应能力)。
-
输出物的变差(产品或服务的直通率,缺陷成本降低,客户满意升高)。
-
营运效率(更低成本)。
软件质量模型
质量模型:一组特性及特性之间的关系,它提供规定质量需求和评价质量的基础。
首先来看质量模型中的内部和外部质量。
各质量的关系是相互影响又相互依赖的关系。
过程质量
对于软件的质量好坏,要从软件的研发过程来控制,有严格的方式方法,这也是一个质量保证。
过程质量由公司的QA(Quality assurance)人员来保证,QA保证软件的研发过程是按照比较科学的方式方法进行,并将科学的方式贯彻到项目团队,这个活动我们称为软件质量保证(SQA,software quality assurance)。
内部质量
内部质量是指软件研发过程中软件的质量,在这个过程中会产生的需求文档、概要设计、详细设计等文档依据,这些文档的优劣直接影响内部质量。内部质量是由开发来把控。
外部质量
外部质量指地是软件开发完成后,整体运行时暴露出来质量特性,外部质量的界定是由系统测试的来对软件进行质量评判的工作,外部质量由测试人员把控。
使用质量
当软件交付用户后,由用户在使用时感受及目标的符合程度,简单来说就是用户说你的软件好不好,这就是使用质量。
前面的过程、内部、外部质量都是由公司的内部人员来进行评估的;使用质量由用户来评估的。
ISO9126提出了如下图的质量模型。
六大特性包含了27个子特性,但它只是一个质量模型,我们还是要根据具体的软件环境、背景去考察其他方面的特性。
软件质量活动
软件组织主要的软件质量活动:
-
软件质量保证(SQA,Software Quality Assurance)。
-
测试。
SQA和测试的关系
软件质量由组织、流程和技术三方面决定:
-
SQA从流程方面保证软件的质量。
-
测试从技术方面保证软件的质量。
-
只进行SQA活动或者只进行测试活动不一定能产生好的软件质量。
SQA监控整个项目的流程,比如项目的立项、开发、测试、发布。
测试活动就是项目流程中的一部分。