质量和风险管理

 

 

 质量和风险管理

 摘要

本文的目的是比较软件质量和软件风险管理之间的关系。文章首先回顾了基本原理、技术,以及它们在质量软件开发过程中的应用。读者可以知道风险管理的基本概念,包括Boehmis的六步风险管理过程。文章讨论了质量软件技术是如何既是软件开发风险的贡献者又是缓和者。

质量入门介绍

根据国际标准组织(ISO)的定义,质量是依靠特定的或暗指的能力满足特定需要的产品或服务的全部功能和特征。这个定义说明了质量是产品的内在特征,描绘了产品的质量观点。第二个学术派的观点坚持如果要达到质量的目标必须在这个质量的概念上要加强。这个学派认为,质量不是单独以产品为中心的,而是和客户和产品都有联系的,其中客户是出资金者或受影响的部分人,而产品包括利益和服务。进一步讲,质量的概念会随着时间响应和环境价值的改变而改变,价值会使人们弄清什么是好的、什么是不好的。因此,软件的质量作为产品或服务需要的功能/特征,也必须定位于客户和组织间的内容(R.T. Vidgen,A.T. Wood-Harper)。这是关于质量的有用的观点。这些回顾的细节包含在以下几段文字里,第一步是人为因素。

质量观点

对于质量的观点,开发过程中的每个人都有不同的看法和矛盾。以下几点由开发过程中的几个关键角色提供的简要描述:

u       开发经理:产品是可靠的、可维护性好的,能够让客户满意,如此直到项目结束或强制终止(这导致折衷的需要)。

u       商业分析者:客户和开发小组联合,保护用户定义的功能和需求不受外部改变干扰。

u       QA审计师:发现从质量方案/产品中脱轨的现象——所有使过程偏离质量控制的活动将受到与项目有关的人员的反对。

u       最终用户:初级雇员很少给系统输入什么,但是对它的操作必须有责任。最终用户不满意,当他们不愿意为系统付支票时,就需要监察系统的可接受程度了。

u       生产线经理:最终用户的老板通常持有这样的态度,即他们不需要太大的时间周期。

u       项目投资者:付钞票的人,需要按时、按预算地交付产品。

最后,是开发人员的质量观点,这直接影响到选择最终产品生产的方法。这不仅起源于开发者的质量观点(产品相对于使用),也起源于如何获得需求(主管相对于客观),和他们如何创造他们工作的环境(协调相对于冲突)。R.T.Vidgen和A.T.Wood-Harper提出了四种可能的开发者对质量的认识观点:

u       客观的/协调的:在目标没有问题并且得到很好的描述时,开发人员会客观地认为质量是一个合理的工程过程。质量是和详细阐述、实现开发过程严格控制的需要结合的。开发者趋向于接受质量是产品的属性的观点(这是目前大多数软件工程师的观点)。

u       客观的/矛盾的:开发者不仅明白质量是客观的,而且理解矛盾的兴趣是可以解决的,于是不可能满足所有人的质量需求,而会确定满足谁的需求(使管理者的还是工人的呢?)。

u       客观的/一致的:开发者认为质量关系到团体的结构,要解决许多不同团体(投资者/受益者)的不同的观点和兴趣。最终的结果反映了不同观点的一致意见。

u       客观的/矛盾的:开发者考虑了不同的观点和兴趣,但是,假定会有冲突和功能上的限制,解放者构造质量的新思路,这要求满足多的兴趣而忽视少部分功能。这一点更像一种协调而不是意见统一。

质量特征和属性

所有学派都认为质量软件有两个有区别的特征:第一,即是规范的一致性(如这是一个好的方案吗?),第二,即适合它的有意的目标(是问题的正确定位吗?)。另外,所有学派都认为有一个构成高质量的软件的属性。搜索有关不同质量相关的文献都会有许多不同的属性列表,下面是Glass建议的七个属性:

轻便性:允许软件能够从一台计算机很容易地传输到另一台需要运行的计算机上的能力。

可靠性:软件正确无误地满足需求的能力。

效率:软件最小是用计算机资源(如内存、外存和机器时钟周期等)的能力。

人性化工程:软件能够容易地被人们理解和学习的能力。

易测性:为了测试软件的可执行性能的测试能力。

可理解性:软件能够被软件维护人员阅读并理解的方便程度。

可修改性:软件能够被软件维护人员修改的方便程度。

以上例出的属性并没有一个特定的先后顺序,就像质量本身一样,对这些属性没有绝对的层次关系。不是所有这些属性在任何软件工程项目里都有用。此外,用于实现这些属性的技术可能导致确实的、消极的相互冲突。因此,质量属性的优先此序列表必须在程序开发生命期之前定义,以弥补程序目标的不足和在各属性之间保留一定距离。

质量法则

有一条规律可以决定软件开发过程是如何引入软件质量因素的,那就是质量法则。软件开发团体已经认识到这个问题,并认为这有助于对生产软件过程的风险测试。在软件质量书籍《软件开发和支持成功框架》中,Curran和Sanders指出,软件质量过程要注意四点:

u       从一开始就要保证不出错,至少应该努力是错误尽量不在代码是发生。为了做到这一点包括采用适当的软件工程标准和过程,建立独立的质量保证将来标准和过程;根据过去的经验和教训制订正式的方法;象软件工具和合同软件一样的高质量输入。

u       确保尽早发现错误并纠正,错误隐蔽得越久,修正错误花得代价就越大。因此,质量控制必须在开发生命周期重的每一个阶段都要重视,如需求分析、设计、文档和代码。这些都隶属于所有的回顾方法,如检查、预排和技术回顾。

u       消除引起错误的引导因素,还没有找到错误的诱因就纠正错误是不巧党的。通过排除错误的诱因你就达到了改良过程的目的(回忆连续改良过程是全面质量管理TQC原则中用于软件质量的另一个关键原则)。

u       运用独立的按照标准和过程来的质量审核工作方式,通常有两种方法用于检查项目活动是否按照预定的标准和过程进行的,即SEI和SPR。

质量因素和风险

我们已经讨论了质量,接下来的问题就是软件质量,或程序的质量,在软件开发项目中要讨论的风险因素。在《软件风险的评估和控制》一书中,Jones描述了他在软件开发中的评估经验。运用软件生产力研究(SPR,Software Productivity Research)和软件工程技术(SEI,Software Engineering Institute)方法来回顾几百个企业的项目,这些项目产生的软件可以分为六类:

u       管理信息系统:财务和管理系统;

u       象操作系统、通讯软件或其他物理设备控制软件等系统软件;

u       商务开发项目,如给最终用户出租/出售产品等;

u       军事软件项目;

u       合同/采购软件项目(民间),一些零散的用于职员和雇主的客户端软件;

u       最终用户软件项目,即一些给特定的用户开发的软件。

这些程序中有超过100多个的风险因素。少数项目有超过15个风险因素,但大多数是6个因素影响。分析这些项目中的风险模式,结论是它们不都是所有软件中的共同因素。这儿列出了几个在样本程序中出现最多的风险因素。

MIS:

u       缓慢的用户需求分析(80%)

u       过大的时间进度压力(65%)

u       低质量(60%)

u       严重超成本(55%)

u       不充分的配置控制(50%)

低质量的软件被定义为根本不工作,或是重复出现操作失败的现象。Jones定义低质量的软件是,用户报告中每日历年、每个功能点出现超过0.5个错误。MIS系统低质量表现在两个方面:(1)不确定的错误出现,如偶然或非专业的使用检查或运行测试时出现错误;(2)不充分的错误预防,如使用象联合应用设计(JAD)或信息工程(IE)的标准技术失败,一些错误可以产生项目的说明。

系统软件风险:

u       长期的计划(70%)

u       不充分的成本估计(65%)

u       过多的文档工作(60%)

u       错误的模块(50%)

u       项目取消(35%)

过多的文档工作并没有严格的规律,但是可以从以下几点来判断是否是“过多”:(1)超过50种分散类型的文档;(2)文档费用接近或超过了整个项目费用的50%;(3)每个功能点有超过2000词的描述。系统软件的文档在数量级上仅次于军事软件,太多的文档对工作来讲是多余的。(注意,过多的文档会引起额外的问题,目前,还没有出版相关的作品说明怎样数量、卷、结构或什么样的文档风格对于软件项目来讲是合适的。)

商业软件风险

u       不充分的用户文档(70%)

u       低用户满意度(55%)

u       太多的市场营销时间(50%)

u       有害的竞争活动(45%)

u       诉讼费用(40%)

不充分的用户文档定义为不完整的、不清楚的、错误的或理解有困难的用户信息。用户信息包括在线帮助和出版材料,这在商业软件世界里是广泛存在的问题。这个问题可以有一下因素来描述:

u       技术描述缺乏相当的技巧

u       用户文档不充分:

n         新的软件包发布的文档每次都很困难;

n         一些厂商不愿使用有能力的作者;

n         用户文档的陈述还是很原始的方法;

低的用户满意度意味着用户对以下一点或多个因素不满意(在1993年,一半多商业软件存在这些问题):

u       低质量;

u       不完整的功能;

u       复杂的不可思议的命令结构;

u       很难学习;

u       麻烦的安装过程;

u       用户服务和支持力量不足;

u       过多的占用磁盘空间或其他硬件资源;

军用软件

据用软件有相当严格的项目连续性,同时也有其相应的代价高昂的问题和风险。

u       过多的文档(90%)

u       低产率(85%)

u       长周期(75%)

u       缓慢的用户需求(70%)

u       不用或不能用的软件(45%)

合同/采购软件项目风险

u       高维护费用(60%)

u       委托人和承包人间的摩擦(50%)

u       缓慢的用户需求(45%)

u       不可预料的认可标准(30%)

u       交付的软件法律所有权(20%)

维护费用是指每年一次的修复错误或按照显著高于U.S标准的项目维护费用,一个人能够维护的目前软件总数显著的低于U.S标准。

不可预料的标准认可定义为有时存在项目委托人和承包人之间的对于产品交付条件、付款、超出最初的合同或协议的条件方面的问题。例如一个典型的问题就是过高的质量要求、对软件性能目标的过高要求,或者软件的特殊需要或文档。这种情况最终会使认可失败,或导致用户感到工作不满意。这会对项目造成伤害,影响客户关系,极端的情况会引起法律诉讼。

最终用户软件风险

u       不可转让的应用(80%)

u       隐藏的错误(65%)

u       不可维护的软件(60%)

u       多余的应用(50%)

u       交付的物品和软件的法律关系(版权)(20%)

应藏错误定义为隐藏在最终用户系统中不为开发者或任何其他人知道的逻辑或程序错误。在没有最后回顾、检查、测试、审核和质量分析活动的情况下更容易出现。

不可维护的软件。一旦软件开发者离开了公司之后,谁来维护软件呢?一些应用软件机构化很差、注释不全,以至于一旦开发者离开了公司,就没有谁能够维护该软件了。

Boehmis的六步风险管理

正如Jones所说,质量保证活动直接影响到软件开发过程的风险。目前的软件风险管理已经从概念、实践和规则方面同其他工程或管理领域对应起来。软件风险管理的目标用于标识、定位和消除各种风险因素,在其来临之前阻止其发生,以使项目成功操作或使软件重写的机率降低。这种征兆是在一定条件下发生的。如果操作者不注意,这些风险可能就会趁你不注意发生。决策树结构显示了复合风险是由每个决策项构成的,复合风险是各部分风险的综合。这种决策树提供了一种量化的用于描述不同的选项影响程度的方法,就像决定各个风险因素部分的决策参数。这种分析方法在风险发生概率和没有精确的分析方法时很有用。

Boehm归纳了六步风险管理法则,其中有两步关键法则,每个法则有三个子步骤。Boehm建议采用适当的技术来实现每个关键步骤和子步骤。第一步是评估,包括:

u       风险确认,确认详细的影响软件成功的项目风险因素;

u       风险分析,检查每个风险因素的发生概率和降低其发生的概率的可能性;

u       给确认和分析的风险因素确定级别,即风险考虑的先后顺序;

一旦项目风险因素的先后顺序排列出来了,第二步就是风险管理。这一步中,要对这些风险因素进行控制,包括:

u       风险管理计划,制定每个风险因素如何定位,这些风险因素的管理如何与整个项目计划融为一体;

u       在每个实现活动或工作中的风险解决方案,消除或解决风险因素的特殊活动;

u       风险监视,跟踪解决风险活动的风险过程的趋势;

质量因素的风险管理应用

正如我在本文的“质量因素和风险”一节中提到的,几种方式的软件开发直接或间接地受到相关的软件质量问题影响,在本节中,我们要讨论几种可以帮助我们控制、减轻或防止风险发生的技巧。(Jones)

因素:缓慢的用户需求

减轻风险的技巧:

u       使用原型;

u       在MIS系统中利用JADS技术分析需求;

u       使用信息工程(IE)技术创建需求——主要使用在MIS系统中;

u       运用功能规格方法监视需求的进展,一旦在需求阶段确定了规格,研究就是和需求收集过程结合起来了。现在创建需求功能列表的自动工具技术是可行的了。这些工具的先进之处在于:严格而快速地收集需求,不仅可以填写功能点计算和成本预算,也能够把这些数据增加到CASE工具、数据模型和设计工具中。

u       新技术——基于功能点的分解和每个功能点的成本估算。这将迫使用户承认缓慢的用户需求将会导致财政(成本)的增加。

因素:低质量和错误倾向的模块

减轻风险的技巧:按照进度计划进行的质量控制和成本控制。已经证明影响软件质量控制的四中技巧是:

质量评估和可靠的评估工具。质量/评估工具是一个新的市场(在1993年只有6种这样的工具),在所有的软件开发项目经理的人员中使用的不足10%。

过失预防方法。过失预防方法包括所有减少市场误差或错误的技术,包括:(a)所有结构化分析和设计技术;(b)原型;(c)高级的面向对象语言;(d)在过程语言中严格地使用结构化语言;(e)开展质量功能开发(QFD);(f)开展全面质量管理(TQC);(g)开展软件质量分析(SQA);(h)清洁的空间发展方法(译者:?)。

过失消除方法。过失消除方法包括设计回顾、结构化预演(原型)、正规的代码检验、正确性校验和所有的测试步骤。正规回顾和验证已经被被有效地运用于消除过失,几乎被所有美国的质量管理领导采用了。测试工作最好经过正规的专家培训后采用。

质量管理程序。Jones指出在美国的软件质量控制领导人(如Bladrige获胜者)已经具有完整的质量管理程序。其中之一就是在软件质量领域的功能方法学的扩展。过时的代码方法很不明确、很荒谬,以至于在管理需求分析、设计和文档方面有很多错误,在质量主体方面也没有很多重要的文献资料。功能点方法是在1991年被美国国家质量部门和军事系统、MIS项目等采用的。1993年,功能点方法也用于控制或预测软件项目的测试用例或测试运行。

 

参考书目

Wallmueller, Ernest. 《软件质量保证的实践方法》 Prentice Hall, Inc 1994. ISBN 0-13-819780-6

Schulmeyer, G. Gordon 《零过失错误软件》. McGraw-Hill, Inc. 1990. ISBN 0-07-055663-6

Glass, Robert. 《构造软件质量》. Prentice-Hall, Inc. 1992. ISBN 0-13-086695-4

Boogaard, Martin.《在信息系统的适应性中通过数据无关性减少软件错误》. Thesis Publishers, Amsterdam, 1994. ISBN 90-5170-289-2

Curran, E. and Sanders, J. 《软件质量:软件开发和支持的成功框架》. Addison-Wesley Publishing Co., Inc. 1994, ISBN 0-201-63198-9

Blackman, M., Jeffreys, M. 《原型的质量系统》. 从《软件质量管理, 》扩展。Elsevier Science Publishers, London. 1993 ISBN 1-85166-963-9

Vidgen, R.T. and Wood-Harper, A.T., 《确定和管理质量的有关概念》,从《软件质量管理, 》扩展。 Elsevier Science Publishers, London. 1993 ISBN 1-85166-963-9

 

(窗外软件工程译于2000-5-2,原文 http://www.huxley.baz.com/kjordan/swse625/htm/tp-rm.htm)

时间: 2024-12-03 14:58:45

质量和风险管理的相关文章

只要懂风险管理,P2P依然可以成为屌丝的福音

中介交易 SEO诊断 淘宝客 云主机 技术大厅 [P2P这种基于互联网的新型金融业门槛究竟是低还是高?说它低是因为P2P行业把大部分人都纳入到了服务体系当中,一度被打上无准入门槛的标签.说它高是因为从业者一方面要懂互联网体验,另一方面要懂风险管理,理解金融核心的本质.陈凯歌分析,只要使用合理,P2P仍然是可以成为屌丝的福音,比如,P2P可以为为屌丝理财者建立实现主人翁投资.理财地位的实践.] 何谓屌丝,屌丝这个词汇,最开始来自于一篇文章,而后因为其符合了大多数人自嘲的心态而风靡中华大地.百度百科

云效2.0助力企业成功实施DevOps,让软件交付质量更快更好

DevOps是近几年非常热门的话题,企业如何成功实施DevOps,是企业迫切想要解决的.在2017杭州云栖大会企业高效研发实践专场上,阿里巴巴研发效能事业部高级技术专家章屹,为大家分享了<云效2.0助力企业成功实施DevOps>议题,为大家提供了解决思路和实施方案. 嘉宾简介 章屹:阿里巴巴研发效能事业部高级技术专家.毕业于清华大学电子工程系硕士,多年从事软硬件的测试.开发.系统设计工作.现为阿里云-云效平台业务负责人,负责研发效能事业部的技术商业化工作. DevOps定义   从维基百科定义

浅谈软件测试风险管理

摘要:软件测试作为保证软件质量的重要手段,越来越引起人们的重视,而软件测试项目中存在着风险,如果能预先重视风险的评估,并对可能会出现的风险制定积极的应对计划,就可以在风险到来的时候,最大限度的避免风险或者降低风险所带来的损失. 关键词:测试风险:测试管理:软件测试 软件本身的复杂性以及测试本身的特性决定了测试活动实施过程中风险的大量存在,而风险会影响测试活动的成败,严重时还可能导致整个项目的失败.因此,对测试风险的管理越来越引起人们的重视. 1.风险存在的必然性 软件测试项目的风险来自于软件和测

实时控制软件的质量

如何确保嵌入式实时控制软件的质量?对这类软件的生产过程如何进行有效的质量控制?这是一个重要的研究课题.为解决软件危机而产生和发展起来的软件工程成功地解决了软件开发中存在的许多问题.它不仅对软件开发.设计和生产有直接影响,而且对提高软件质量有显著成效.实践表明,使用软件工程方法,可达到一般的质量要求.但当软件质量要求更高时,则必须在实施软件工程的同时,采取一些专门的可靠性工程技术和方法,以保证需求的可靠性. 软件工程是指按照工程的规律来组织软件的生产与开发.软件工程化要求以软件质量控制为核心,紧紧

【PMP】Head First PMP 学习笔记 第十一章 风险管理

第十一章 风险管理 计划再仔细的项目也会遇到麻烦. 什么是风险 风险是任何可能影响项目的不确定时间或状况,但并非所有风险都是负面的 风险(risk) 事件(event) 状况(condition) 机会(opporunity) 风险偏好.为了预期的回报,一个实体愿意承受不确定的程度. 风险承受力.组织或个人能承受的风险程度.数量或容量. 风险临界值.干系人特别关注的特定的不确定程度或影响程度. 规划风险管理 规划风险管理过程在项目构思阶段就应开始,并在项目规划阶段的早期完成. 输入 项目管理计划

呼叫中心嵌入式业务风险管理

联想集团柳传志经常跟公司里的年轻人们说,要"退出画面看画",工作就像是画画,有时站得太近会看不清画中的某一局部是什么,离远点反而能看明白.呼叫中心技术复杂.人员密集.系统繁多,受系统故障.流程不完善或人为过失的影响,可能会出现各种影响客户及公司利益的风险,如若等到发生状况时再去灭火,往往需要花费几倍的精力和资源去弥补,甚至应接不暇.顾此失彼.因此,呼叫中心业务风险管理其实就是一个"退出画面看画"的过程,先系统地思考和梳理可能存在的风险隐患,再将风险提醒和检查的动作嵌

信贷规模稀释不良率标普谨慎乐观09年新增贷款质量

6月份新增贷款1.53万亿的数据引起了市场的各种忧虑.7月13日,标普指出,上半年银行信贷增长7.5万亿元,可能导致信用风险上升以及资产质量的潜在不良趋势. "今年新增贷款的平均质量弱于去年同期,"标准普尔表示.6月新增的1.53万亿贷款中,工.农.中.建四大行占了4967亿元,占比32.02%,比一季度的超过50%有所下降,意味着中小银行在5-6月份加快了信贷增速. 标普金融分析师廖强接受本报记者采访时表示,中国银行体系应能抵御资产质量的不良趋向,但银行信用状况可能出现分化.&quo

卓越风险管理 护航普惠金融

本文讲的是卓越风险管理 护航普惠金融,费埃哲公司(纽约证交所代码:FICO)今日宣布十一家中国P2P.小微贷行业的领军企业已与该公司签约,将采用该公司最新发布的费埃哲信贷评分决策云平台(FICO? Alternative Lending Platform)服务,举行业之力来提升中国P2P互联网金融和小微贷行业的风险管理水平,增加风险管理实效性. 费埃哲公司于2015年2月在中国市场推出了费埃哲信贷评分决策云平台服务,短时间内迅速收到了市场的积极反馈.该平台基于全球领先的分析技术,功能强大但操作便

做好风险管理 从测试开始

当在软件领域考虑风险时,作为山东省软件评测中心的技术人员,我想大家应该要关注以下问题:什么样的风险会导致软件项目的彻底失败?软件质量要达到什么程度才是"足够的"? 当没有办法消除风险,甚至连试图降低该风险也存在疑问时,这些风险就是真正的风险了.在我们能够标识出软件项目中的真正风险之前,通过测试识别出对管理者和开发者而言均为明显的风险是很重要的.风险预防便成了全程软件质量保证的重点之一. 在前面的几篇文章中我们也阐述了风险管理的重要性,怎样才能做好风险管理以及预防哪?以下是我们评测中心在