独立与客观—CMM中的软件质量保证实施准则

转载 2006年05月30日 12:58:00

软件企业必须通过CMM认证标准的锤炼,这是软件企业逐渐达成的共识。国内众多的软件企业正在围绕CMM进行研究、讨论和实施,可谓跃跃欲试、紧锣密鼓。截止到目前,已经有几家国内软件企业通过了CMM3认证。

  
确立工作目标
  SQA(Software Quality Assurance,软件质量保证)是CMM的一个关键过程域,CMM的每个关键过程域几乎都涉及软件质量的验证,它在软件开发过程中起着非常重要的作用。在CMM中,软件质量保证的目标是为管理者提供当前软件项目进行过程与最终产品的可视性。它的主要工作包括:评审软件工程活动、审计软件产品、将结果通知项目组成员及相关经理。从CMM的框架结构来看,软件质量保证人员的主要工作目标是保证软件过程质量。软件最终产品的质量则是项目经理与质量工程师关心的问题,而不是由软件质量保证人员负责。

  软件质量保证的价值依赖于一些前提,其中最重要的是以下两个:
  首先,软件项目开发过程遵循明确定义好的既定规则,由此所获得的利益远大于为它所付出的代价。先有稳定、明确的用户需求再进行开发,虽然进度可能有所延迟,但与开发后发现不是用户所需要的产品相比,这个代价要小得多。
  其次,在没有独立评价系统的情况下,人们有时候会偏离既定的规则。软件开发人员由于各种各样的原因,总是自觉或不自觉地忽视过程,这时就需要软件质量保证人员来发现问题。

确保人员的独立性
  好的过程质量并不等于好的产品质量,但是糟糕的过程很难带来好的产品质量。如果一个项目按照既定的过程完成开发工作,没有偏离,说明软件质量保证人员尽到了他的职责。
  为了较好地开展软件质量保证工作,软件质量保证人员应该是独立的,与项目经理没有任何行政隶属关系,对他的考核与评价也不应由项目经理做出,同时他也不能承担本项目中除软件质量保证外的其他任何工作,以确保其独立性。
  建议在企业中将软件质量保证机构设立成专门的独立机构。如果企业规模较小,可以由测试人员兼任。在某些企业中,测试人员从属于项目组,此时,软件质量保证人员应该由其他项目组的测试人员担任。

标准的客观性
  软件质量保证的目的是给管理者提供可视性。如果存在主观因素,管理者看到的就不是软件开发过程的真实情况,这一点对软件质量保证工作至关重要。例如,联想公司的软件产品是通过“质量保证检查表”来实现的。针对每个软件工程活动与软件工作产品,都有一个软件质量保证检查表。软件质量保证人员可以根据检查表来判断当前的软件工程活动是否存在偏离以及软件工作产品是否符合要求。软件工程活动是否有所偏离,主要看软件工程活动的进入准则是否达到、输入是否正确、执行任务是否符合要求、结束时是否符合完成准则以及是否具有合乎要求的输出。在审计软件工作产品时,软件质量保证人员主要审计软件产品是否符合规程、标准等要求,一般不考虑技术问题。

  所有软件开发人员都应当接受软件质量保证方面的定向培训,了解软件质量保证的目的、工作方式以及其他相关内容。只有所有的人都认识到软件质量保证工作的意义,这项工作才能很好地开展起来。

几个误区
误区之一:软件质量保证人员对软件产品质量负责。
  软件质量保证人员一般只对软件过程质量负责,如果一个项目按照既定的过程完成了开发工作,没有发生偏离,软件质量保证人员就算尽到了职责,他的价值主要体现在过程质量上而不是最终的软件产品质量上。
误区之二:软件质量保证人员对软件工作产品的审计包括发现其中的技术问题。
  软件质量保证人员对软件工作产品的审计主要是针对过程,例如是否采用过程所规定的模板,所有必要的内容是否都具备等,而不是关注技术问题。
误区之三:软件质量保证人员要负责解决所发现的质量问题。
  软件质量保证的最大作用是发现问题,提供可视性,而不是解决问题。软件质量保证人员发现问题后,必须提交到相关责任人那里,由相关责任人给出解决方法并予以解决。软件质量保证人员只是跟踪问题直至得到解决。如果在相关责任人处无法得到解决,则将问题提交给项目经理。如果仍然无法解决,则提交给高层经理。这样一层层提交,直到问题有了结论。至于最终的结论是解决问题还是暂时搁置问题,由做出决策的人员对此负责。如果要求软件质量保证人员负责解决质量问题,他就可能陷入其中,失去了软件质量保证人员最为宝贵的独立性与客观性。
误区之四:软件质量保证人员是专门监督项目组成员的。

  软件质量保证人员不是监督项目组成员的,他只是从第三方、客观的角度将项目组的情况反映给管理者,让管理者了解项目与规定过程之间存在的偏差。如果软件质量保证人员将自己放到项目组的对立面,专门去找项目组的毛病,那么项目组成员就可能将真实问题隐藏起来,使问题无法得到解决。软件质量保证人员对项目组是有帮助作用的,他要帮助项目组提高开发和管理活动的规范化、标准化,发现问题时,要首先在项目组内解决。
  总之,要在企业内开展软件质量保证工作,最重要的是让所有员工都认识到,质量不是依赖于某个或某几个高手,而是依赖于整个过程。好的过程是好产品的必备条件,这一点要成为企业文化的一部分,深深扎根于每个员工的心中。

独立与客观—CMM中的软件质量保证实施准则

确立工作目标   SQA(Software Quality Assurance,软件质量保证)是CMM的一个关键过程域,CMM的每个关键过程域几乎都涉及软件质量的验证,它在软件开发过程中起着非常重要的...
  • Shimizu
  • Shimizu
  • 2005年04月05日 14:04
  • 4927

CMM中的软件质量保证实施准则

确立工作目标   SQA(Software Quality Assurance,软件质量保证)是CMM的一个关键过程域,CMM的每个关键过程域几乎都涉及软件质量的验证,它在软件开发过程中起着非常重要的...
  • nilxin
  • nilxin
  • 2006年06月07日 12:39
  • 1275

[DIP]客观保真度准则与主观保真度准则

根据解码图象对原始被压缩图象的保真程度,图象压缩的方法可分成两大类:信息保存型和信息损失型。信息保存型在压缩和解压缩过程中没有信息损失,最后得到的解码图象与原始图象一样。信息损失型常能取得较高的压缩率...
  • CristianoJason
  • CristianoJason
  • 2015年12月13日 19:17
  • 1269

图像质量客观评价

1、均方差        MSE 2、平均绝对值 MAD 3、信噪比        SNR 4、峰值信噪比 PSSNR...
  • chenchong_219
  • chenchong_219
  • 2013年11月13日 00:48
  • 910

CMM实施中容易被忽视的方面

面对中国的现实,我们不得不承认,中国的软件工程水平和软件生产力水平还是处在较低水平。这里一方面有素质问题,中国软件科研和教育水平的滞后,对于国际上先进的软件工程的实践和理论的研究和传播的不足,导致了软...
  • lizl
  • lizl
  • 2005年08月21日 23:06
  • 935

CMM软件成熟度

Table of Contents 1. 一、绪论1.1. 软件的定义 1.2. 软件的特征 1.3. 软件危机产生的原因 1.4. 软件过程 1.5. 软件过程能力 1.6. 软件过程性...
  • u013225150
  • u013225150
  • 2016年06月17日 22:58
  • 9237

实验二:CMM语言词法分析

笔记 (一)、扫描处理 最主要的是正则表达式( regular expression)和有穷自动机( finite automata)。 扫描程序的任务是从源代码中读取字符并形成由编译器的以后部...
  • ancientmoondjay
  • ancientmoondjay
  • 2016年11月11日 11:12
  • 1600

Re:CMM和RUP、XP的关系是什么?

SEI官方说法:XP与CMM没有冲突。而在实践中,两者冲突比较明显。以需求为例。CMM要求有方法论得到文档化的需求。XP重视迭代,现场用户快速反馈。用户故事+程序反映需求。以计划为例,CMM要求有全面...
  • zhangmike
  • zhangmike
  • 2005年10月10日 07:19
  • 2013

敏捷和CMM

关于敏捷和CMM,以及怎样在CMMI的框架下有效的引入敏捷的开发,是我所一直关注的话题,最近在网上闲逛,看到ThoughtWorks总经理郭晓在软博会上的演讲,觉得讲得不错,现转载如下(转载于网易科技...
  • itsoft2006
  • itsoft2006
  • 2007年02月13日 14:14
  • 627

如何实施软件质量保证

如何实施软件质量保证软件质量保证(即SQA——Software Quality Assurance),是CMM2级中的一个关键过程域,它是贯穿整个软件过程的第三方独立审查活动,出现在大多数关键过程域的...
  • Sara_2007
  • Sara_2007
  • 2008年06月06日 09:52
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:独立与客观—CMM中的软件质量保证实施准则
举报原因:
原因补充:

(最多只允许输入30个字)