随笔-1  评论-1  文章-7  trackbacks-0

软件能力成熟度是属于软件质量和软件生产组织管理问题。
这里,先给出软件质量概念;然后讨论软件质量模型;最后评论软件质量控制方法。

1.软件质量概念和问题
   软件质量是一模糊的、捉摸不定的概念。对于什么是产品质量,可以从以下几个观点来看:
* 透明性观点:质量是产品一种可以认识但不可定义的性质;
* 使用者观点:质量是产品满足使用目的之程度;
* 制造者观点:质量是产品性能和规格要求的符合度;
* 产品观点:质量是联结产品固有性能的纽带;
* 基于价值观点:质量依赖于顾客愿意付给产品报酬的数量。

     概括地说,有三类方法来改进软件质量:控制软件生产过程、提高软件生产者组织性和软件生产者个人能力,已经应用的著名的方法有:
净化软件工程(Clearnroom Software Engineering):这是把软件生产过程,放在统计质量控制下的软件工程管理过程。其特点是:劳动质量管理、重视生产过程和定量分析。这一方法的本质是干干净净生产,以求提高产品质量。
* 评估软件能力成熟度:用软件能力成熟度模型(CMM:Capability Maturity Model)来评估软件生产组织研制软件能力的成熟度。CMM是从软件生产组织过程角度,来评估其生产能力和技术水平。软件能力成熟度分5级,当前一般的软件生产组织的软件能力成熟度水平没超过3级。
* 提高软件生产力和个人技能:用人事软件过程(PSP:Personal Software Process)作为一个工具和方法,它给软件工程师提供了测量和分析的工具,并帮助他(她)们理解自己的软件生产水平和技巧的高低,以求得到提高。

     软件质量和很多研究领域及实际问题有关,主要相关领域和因素有:
     需求工程(RE:Requirements Engineering), 理论上,需求工程是应用已被证明的原理、技术和工具,帮助系统分析人员理解问题或描述产品的外在行为。
     软件复用(SR:Software Reuse), 定义为利用工程知识或方法,由一已存在的系统,来建造一新系统, 这种技术,可改进软件产品质量和生产率。还有软件检查、软件计量、软件可靠性、软件可维修性、软件工具评估和选择等。

2.软件质量模型 
     McCall模型
     McCall,J.A. 等人对软件质量因素进行了研究,将软件需求按照3个纬度对11个软件质量因素进行分类。其模型分为三层:因素、准则、计量。这就是说,软件质量是正确性、可靠性、效率……的函数。正确性、可靠性、效率……称之为软件质量因素,或软件质量特征。每一因素又由一些准则来衡量,例如正确性由跟踪性、完全性、相容性来判断;而每一准则又有一些定量化指标来计量。McCall模型可用下图表达。

                  
     软件质量特征,在国际标准化组织软件质量测量标准(ISO9126)“信息技术----软件产品评估----和应用指南”中,给出了一些定义(和McCall,J.A. 等人软件质量因素不尽相同)如下表1。


     还有人提出了软件质量计量模型(SQM:Software Quality Metrics Model)。软件质量计量模型是把软件质量因素-准则-计量三者综合的软件质量结构模型;其思路如图2示。
图2  

     可把SQM改为目标规则检查计量层次结构(GRCM)模型:例如评估可读性、可扩充性。
     规则1:可读性----目的在于理解类结构,界面和方法。 
     规则2:可扩性----目的在于可以扩充,保持先进性。 
     要进行:
          可读性检查.1
          查看在一个类中方法数目是否小于20 * 计量1.1 方法个数(NIS) 
          可读性检查.2
          查看在一个类层次机构层次数是否小于6 * 计量2.1 层次结构的层数(HNL) (从底层开始数)
          可读性检查.3 
          查看在一个子类服务于子类是否合理 * 计量3.1 方法不理会需求的个数(NMO)
           ……
      一般的思路是:
     在GRCM结构中,因素(Factor)对应于目的(Goal);准则(Criteria)对应于规则(Rules)。关于计量(Metric)可以参考[2]。

     SQM综合模型和ISO9216对比如图3所示:
  图3

     GRCM模型在软件工程过程中的作用和地位如图4所示:

图4


实际上,软件质量特性通过有形的质量载体性质表达。而这可由一些计量(定量化)指标表示。

软件生产部门能力成熟模型 Capability Maturity Model(CMM)
1993年,美国防部设在卡内基-梅隆大学的软件研究所(SEI)正式发表了能力成熟度模型。这是评估软件生产部门(组织、厂家)软件生产能力成熟度的模型,是从软件生产组织过程角度,来评估其达到的水平级别。它分5级(如图5),当前我国一般的软件生产组织的水平没超过3级。 


图5

     这5个级别包含18项内容
          5(优化):过程变化管理、技术变化管理、缺点防止;
          4(管理):软件质量管理、过程定量化管理; 
          3(确定):仔细观察、整体协调、软件生产工程、集成软件管理、训练规划、组织过程确定、组织过程中心点;
          2(重复):软件构形管理、软件质量保证、软件合同管理、软件工程跟踪和统筹、软件工程计划、需求管理;
          1(初始):经验和个人行为。

     还可以进一步分解,例如:软件工程跟踪和统筹可分解为13项活动。软件生产组织的这13项活动水平,可进行评分;0分;1分;2分……9分;10分。比如第6项,软件计划费用跟踪并采取修正。评分标准是0~10,分为:差-0分;弱-2分;中等-4分;基本合格-6分;合格-8分;优秀-10分。事实上,每一级别、每一项内容都有丰富的内涵,为CMM实施奠定了基础。
     目前,SEI研制和保有的能力成熟度模型有:
* 软件集成能力成熟度模型(CMMISM: CMM IntegrationSM );
* 软件能力成熟度模型(SW-CMM :Capability Maturity Model(r) for Software);
* 人力能力成熟度模型( P-CMM :People Capability Maturity Model );
* 软件采办能力成熟度模型(SA-CMM:Software Acquisition Capability Maturity Model );
* 系统工程能力成熟度模型(SE-CMM: Systems Engineering Capability Maturity Model );
* 一体化生产研制能力成熟度模型( IPD-CMM :Integrated Product Development Capability Maturity Model )。
建立这些模型的指导思想和方法论,都是一样的:评估能力,发现问题,帮助改进。

3.软件质量—系统工程问题和系统方法
     软件质量是一复杂系统工程问题,它必需用系统方法(Systems Approach)来研究。软件研制是一过程,是以个人智力为基础的有组织的团队性生产活动。这一过程可用水滴模型或螺旋模型来描述,基本内容是:需求、设计、编程、测试、运用,如图6所示。
       图6

     用全面质量管理思想方法,把软件研制和运用过程全寿命全系统科学的管理,这就是我们的软件质量管理观点和思路,可称之为软件质量系统管理。这是保证软件质量的必由之路。根本原因在于,影响软件质量的因素太多、太复杂。软件质量系统管理,是要把上述水滴模型的每一阶段、每一步骤都管起来。例如,对设计、编程和测试活动的质量保证,如图7所示。
       图7

     图7中,拿显微镜这位老专家,代表质量系统管理组,根据质量管理规范、程序和方法,实施其质量管理职责。重要的问题在于质量管理规范、程序和方法制定与选择,必需从三个方面进行研究和实施:
* 软件生产组织;
* 软件生产过程;
* 软件生产者个人。 
     给定软件生产组织环境和个人水平,研究软件生产规律,通过生产过程质量特性计量,反过来对软件质量进行控制。把软件质量控制和软件可靠性、可维修性、测试和监控接合起来。当前,对软件生产组织可用CMM方法,评估其能力成熟程度; 用个人能力软件评价其软件生产水平。然后,再深入软件生产过程中,研究软件计量(定量)和质量控制方法,就能够取得成功。


posted on 2007-08-28 18:03 乱游 阅读(939) 评论(0)  编辑  收藏 所属分类: 软件能力成熟度模型 - Capability Maturity Model(CMM)

只有注册用户登录后才能发表评论。


网站导航: