资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第六章 软件质量管理,首都师范大学 教育技术系,方海光,2006年11月,1,第六章 软件质量管理首都师范大学 教育技术系1,回忆:项目管理知识体系的构成,PMI将项目管理知识体系分为,9大知识领域,:,1项目集成管理,2项目范围管理,3项目时间管理,4项目成本管理,5项目质量管理,6项目人力资源管理,7项目沟通管理,8项目风险管理,9项目采购管理,2,回忆:项目管理知识体系的构成2,项目管理知识领域与项目管理过程和过程组图解(PMBOK2000),风险管理,规划,项目计划,实施,综合,变更控制,项目计划,开发,启动,范围计划,范围定义,活动定义,范围核实,范围,变更控制,活动排序,活动工期,估计,进度开发,进度控制,资源规划,成本估算,成本预算,成本控制,质量规划,组织规划,质量保证,质量控制,人员招募,团队开发,沟通规划,采购规划,信息发布,绩效报告,管理收尾,风险识别,定性风险,分析,定量风险,分析,风险应对,计划,风险监测,和控制,询价规划,询价,供方选择,合同管理,合同收尾,集成,范围,时间,成本,质量,人力资源,沟通,风险,采购,3,项目管理知识领域与项目管理过程和过程组图解(PMBOK200,软件质量管理,软件开发过程,5,项目质量管理的概念,19,软件质量的概念,48,软件质量管理,87,软件质量的综合评价,144,4,软件质量管理软件开发过程54,软件开发过程,软件的含义,软件 = 程序 + 文档 + 服务,为解决软件危机,人们提出用工程化的原则及方法来组织软件开发工作,这就是软件工程的由来。,在软件工程中可将软件的生存周期分为6个阶段(传统生命周期,即瀑布模型,),(1)计划(Planning),(2)需求分析(Requirement Analysis),(3)设计(Design),(4)编码(Coding),(5)测试(Testing),(6)运行与维护(Run and Maintenance),5,软件开发过程软件的含义5,软件开发瀑布模型,6,软件开发瀑布模型 6,软件开发过程,1.,需求分析,需求分析是根据客户的要求,清楚地了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。软件产品需求分析是软件开发过程的第一个环节,也是最重要的一个环节。如果需求分析做不好,下面的设计、编程做得再好,客户(用户)也不可能对开发出来的软件产品感到满意。软件产品需求分析的结果要文档化,而且这类文档的描述尽量不要用专业术语,从而使用户能够完全理解需求分析的结果,参与对其复审的过程。,7,软件开发过程1. 需求分析7,软件开发过程,2.,设计,软件设计是根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等。可以分为概要设计和详细设计,也可以分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、算法设计、界面设计等。设计过程将需求转换成软件表示,设计的结果将作为编码的框架和依据,以提高编码的效率和质量。设计的文档化体现在产品规格说明书(,functional specification)、技术设计文档(development design document)和软件配置文档(software configuration document)。,8,软件开发过程2. 设计8,软件开发过程,3. 编程,经过需求分析、设计之后,接下来就是用一种或多种具体的编程工具(如VS.Net,JBuild、Eclipse、Delphi、PB等)进行编码,即将设计转换成计算机可读的形式。如果设计做得好、做得仔细,编程就容易了。,4. 测试,任何编程,免不了存在这样或那样的错误,所以有必要进行软件测试。测试过程集中于软件的内部逻辑保证所有语句都测试到,以及外部功能即引导测试去发现错误,并保证定义好的输入能够产生与预期结果相同的输出。测试按不同的过程阶段分为单元测试、集成测试、功能测试、系统测试、验证测试等。,9,软件开发过程3. 编程9,软件开发过程,5. 维护,从理论上,软件测试的覆盖率不可能做到百分之百,所以软件在交付给用户之后有可能存在某些问题,而且用户的需求会发生变化,特别是开始使用产品之后,对计算机系统有了真正的认识和了解,会提出适用性更好的、功能增强的要求。所以,软件交付之后不可避免地要进行修改、升级等。,软件维护复杂、周期长,其成本必然很高。通过提高软件的需求分析、设计和编程的质量,强化软件测试,可以大幅度降低软件的维护成本。,10,软件开发过程5. 维护10,软件开发过程,软件开发模式,软件开发模式是指从最初构想到公开交付发行软件的过程。,大棒模式或边写边改模式,瀑布模式,原型模式,快速应用(RAD)模式,螺旋模式,增量模式和跌代模式,11,软件开发过程软件开发模式11,大棒模式或边写边改模式,大棒模式,优点是简单。几乎无计划。项目成员精力都花在开发软件和编写代码上。最终的软件产品是什么样不可知。,边写边改模式,在大棒模式的基础上考虑了产品的要求。项目成员通常只有粗略的想法就进行简单的设计,然后开始漫长的编码、测试、修复。,12,大棒模式或边写边改模式 大棒模式12,大棒模式或边写边改模式,探索测试,如果采用大棒模式或者边写边改模式,就不会有作为测试依据的各类文档。尽管这对于软件测试员不是理想的状况,但是此时可以采用称为探索测试的解决方案。,这需要把软件当产品说明书来对待。分步骤地逐项探索软件特性。记录软件执行情况,详细描述功能。在这种情况下,无法像有产品说明书那样完整测试软件-比如无法判定是否遗漏功能,但是可以进行系统测试。找到软件缺陷。,另外,,与同类型软件进行比较也是一个有效的方法。,13,大棒模式或边写边改模式 探索测试13,软件开发模式 - 原型模型,在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。,一般步骤如下:,(1),先定义软件的总体目标,根据已知的需求来规划出可实现的区域。,(2) 然后是“快速设计”,集中于系统的总体框架、基本功能和直观的输入方式和输出格式等。,(3),有了原型,使客户对系统实现哪些具体功能、功能实现到什么程度有更好的理解。开发者可以边开发边评估,不断细化软件的需求,逐步调整原型使其满足客户的要求。这形成一个迭代的过程。,14,软件开发模式 - 原型模型 在进行了基本需求分析之后,快速开,原型模型,即使开始建立的原型过于简单或性能很差,难以使用,但为下一次建立适用的模型积累了经验,而浪费的成本、时间有限。,原型模型的优点是使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。,原型模型的缺点是产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。,15,原型模型即使开始建立的原型过于简单或性能很差,难以使用,但为,RAD模型,RAD模型,RAD(rap application development)模型,即快速应用开发模型。由于其模型构图形似字母“V”,故也称V模型,是属于线性顺序一类的软件开发模型。它通过使用基于构件的开发方法来缩短产品开发的周期,提高开发的速度。RAD模型实现的前提是能做好需求分析,并且项目范围明确,这一点正好和原型模型相反。,16,RAD模型 RAD模型 16,螺旋模型,螺旋模型,最早是由Boehm提出来的,是一个演化软件过程模型,它将原型的迭代特征与线性顺序模型中控制和系统化方面结合起来,使得软件增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸上的模型或原型;在以后的迭代中,更加完善的被开发系统版本逐步产生。,17,螺旋模型 螺旋模型,最早是由Boehm提出来的,是一个演化软,增量模式和跌代模式,软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。,增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要的功能,然后,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。,迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分。先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能或完善已有功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。,18,增量模式和跌代模式软件开发分阶段可以通过两种模型来描述,即增,项目质量管理的概念,产品:过程的结果,四类:,硬件:有形产品,有计数的特性;,服务:无形的,并且是在供方和顾客接触面上至少需要完成一项活动的结果,软件:由信息组成,通常是无形产品并可以方法论文或程序的形式存在.,流程性材料:有形产品,有一定的连续性.,19,项目质量管理的概念产品:过程的结果19,质量的定义,ISO8402-1994质量管理和质量保证术语中对质量所下的定义是:,质量是反映,实体(产品、过程或活动等),满足明确和隐含需要的能力的特性总和。,20,质量的定义ISO8402-1994质量管理和质量保证术语,实体,(entity, item),:,“可单独描述和研究的事物” ,实体可以是活动或过程,可以是产品,可以是组织、体系或人,也可以是上述各项的任何组合。,需求( requirements),: 包括“明确需要”和“隐含需要”。,21,实体(entity, item): “可单独描述和研究的事物,为使“,需求,”可以实际运用,一般应将其转化为质量要求。所谓质量要求,是指“对需要的表述或将需要转化为一组对实体特性的定量或定性的规定要求,以使其实现并进行考核”。,22,22,质量不仅包括活动或过程的结果,还包括它们形成和实现的活动及过程本身;,质量不仅包括产品质量,还包括它们形成和实现过程中的工作质量;,质量不仅要满足顾客的需要,还要满足社会的需要,并使顾客、从业人员、业主、供方和社会都收益;(stakeholder, 受益者),质量问题不仅存在于工业,还存在于服务业及其他各行各业。,产品质量,服务质量,过程质量,工作质量,质量,23,质量不仅包括活动或过程的结果,还包括它们形成和实现的活动及,产品质量,产品质量是指产品能够满足使用要求所具备的特性。一般包括,性能,、,寿命,、,可靠性,、,安全性,、,经济性,以及,外观质量,等。,产品质量的概念,在不同历史时期有不同的要求。随着生产力发展水平不同和由于各种因素的制约,人们对产品质量会提出不同的要求。,产品质量,服务质量,过程质量,工作质量,质量,24,产品质量产品质量是指产品能够满足使用要求所具备的特性。一般包,服务质量,服务质量,是指服务满足明确和隐含需要的能力的特性总和。,定义中的,服务,,主要指服务性行业提供的服务,如交通运输、邮电、商业、金融保险、饮食、宾馆、医疗卫生、文化娱乐、仓储、咨询、法律等组织提供的服务。由于服务含义的延伸,有时也包括工业产品的售前、售中和售后服务,以及企业内部上道工序对下道工序的服务。,反映服务质量要求的质量特性主要有功能性、经济性、安全性、时间性、舒适性和文明性。,产品质量,服务质量,过程质量,工作质量,质量,25,服务质量服务质量是指服务满足明确和隐含需要的能力的特性总和。,过程质量,过程,是指“将输入转化为输出的一组彼此相关的资源和活动”。其中资源可包括人员、资金、设施、设备、技术和方法。,过程质量,,是指过程满足明确和隐含需要的能力的特性之总和。,过程质量,,可分为,开发设计过程质量,、,制造过程质量,、,使用过程质量,与,服务过程质量,四个子过程的质量。,产品质量,服务质量,过程质量,工作质量,质量,26,过程质量过程是指“将输入转化为输出的一组彼此相关的资源和活动,工作质量,工作质量,,是指与质量有关的各项工作对产品质量、服务质量、过程质量的保证程度。,产品质量,服务质量,过程质量,工作质量,质量,27,工作质量工作质量,是指与质量有关的各项工作对产品质量、服务质,质量特性的概念:,质量特性:产品或服务满足人们明确或隐含需求的能力、属性和特征的总和。,28,质量特性的概念:28,质量内涵:,内在质量特性:在产品或服务的持续使用中体现出来的特性(产品的特性、性能、强度、精度等),外在质量特性:在产品或服务外在表现方面的属性和特性(产品外形、包装、色泽、味道等),经济质量特性:与产品或服务的购买和使用成本有关的特性(产品的寿命、成本、价格、运营费等),商业质量特性:与产品或服务提供企业承诺的各种商业责任有关的特性(产品的保质期、保修期、售后服务水平等),环保质量特性:与产品或服务对环境的影响有关的特性,29,质量内涵:29,质量的决定因素:,一件产品或一项服务能否成功地完成它预定的使命取决于四个主要因素,它们是:,(1) 设计质量:,设计人员对产品或服务的一些性能所做出的接受或拒绝的选择,。,(2) 质量符合设计的程度:,产品或服务符合(即实现)设计人员意图的程度,。,(3) 便于使用。,(4) 售后服务。,30,质量的决定因素:一件产品或一项服务能否成功地完成它预定的使命,戴明:W.E. Deming,戴明总结出14条质量管理原则,他认为一个公司要想使其产品达到规定的质量水平必须遵循这些原则。,主要观点,是引起效率低下和不良质量的原因在公司的管理系统而不在职员。部门经理的责任就是要不断调整管理系统以取得预期的结果。,戴明还强调了减少质量波动(与一定标准之间的偏差)的必要性。要减少质量波动,就需要辨别引起波动的特殊原因(即可纠正的原因)和共同原因(即随机原因)。,质量管理专家 戴明,31,戴明:W.E. Deming戴明总结出14条质量管理原则,他,戴明14条原则的核心:,目标不变、持续改善和知识渊博;,知识渊博包括,(1)以所在公司为荣;(2)掌握质量波动的原理;(3)知识体系;(4)心理学原理;,戴明知识渊博的概念使得日本成为世界经济强国的好学信条和价值观具体化了,戴明14条原则的核心,32,戴明14条原则的核心:目标不变、持续改善和知识渊博; 戴明1,朱兰: Juran,朱兰视质量为适用性(Fitness for use)。,认为通过管理可以控制大约80%的质量缺陷的发生。,包含质量计划、质量控制和质量改进的质量三元论的思想来描述质量管理。,根据朱兰的观点,为建立有能力满足质量标准的工作程序,质量计划是必要的。为了掌握何时采取必要措施纠正质量问题就必须实施质量控制。质量改进有助于发现更好的管理工作方式。,管理就是不断改进工作是朱兰理论的一个核心,。朱兰被确认为第一个提出计算质量成本的质量管理专家。他解释了如果不良质量的成本可以降低的话,那么就有可能增加公司利润。,质量管理专家 朱兰,33,朱兰: Juran 朱兰视质量为适用性(Fitness fo,费根鲍姆: Armand Feigenbaum,前通用电器生产和质量控制经理,,,他因提出,把质量责任推广到生产领域以外,而在质量运动中闻名。,在推行,“缺陷成本”,方法方面起重要作用。根据这一方法,管理应服从于质量。,质量管理专家 费根鲍姆,34,费根鲍姆: Armand Feigenbaum前通用电器生产,1.全面质量控制是一个在公司内部使质量标准制定、维持和改进集成于一体的系统。公司应该能够使工程部、生产部和服务部门共同发挥作用,在达到用户满意的同时实现最佳经济目标;,2.质量控制的“控制”方面应该包括制定质量标准、评价与这些标准有关的行为、当没有达到预定标准时采取纠正措施以及制定改进质量标准计划;,3.影响质量的因素可分为两大类:技术性的和人为的。人为的因素更为重要;,4.质量成本可被分为四类:预防成本、鉴定成本、外部损失成本和内部损失成本;,5.重要的是要控制源头质量,费根鲍姆质量控制基本原理要点,35,1.全面质量控制是一个在公司内部使质量标准制定、维持和改进集,质量管理的基本概念:,古津进的定义:,向消费者或顾客提供高质量产品与服务的一项活动,。这种产品和服务必须保证满足需求、价格便宜和供应及时。,定义说明:,质量管理目的:向消费者或顾客提供高质量产品与服务,目标和作用:使产品和服务达到三项要求,即满足需求、价格便宜和供应及时,36,质量管理的基本概念:36,质量管理定义:,ISO8402一1994(质量管理和质量保证术语)对质量管理的定义是:,质量管理是确定质量方针、目标和职责,并在质量体系中通过诸如质量策划、质量控制、质量保证和质量改进使其实施的全部管理职能的所有活动。,37,质量管理定义:ISO8402一1994(质量管理和质量保证术,质量管理定义:,质量管理是各级管理者的职责,但必须由最高管理者领导。质量管理的实施涉及到组织中的所有成员。,在质量管理中要考虑到经济性因素。质量管理是企业管理的重要组成部分,是企业管理职能中的重要职能。企业一般包括经营决策、计划、生产、技术、质量、劳资、供应、销售、销后服务、成本财务等管理部门。质量管理处于重要的地位,我国有关领导人提出:“企业管理应以质量管理为纲,质量管理带动、推动和联系其它部门完成企业生产经营活动的任务。,38,质量管理定义:质量管理是各级管理者的职责,但必须由最高管理,质量方针:指由组织的最高管理者正式发布的该组织总的质量宗旨和方向。,质量目标:在质量方面所追求的目的,是对质量方针的展开。,质量管理的术语和内涵:,39,质量方针:指由组织的最高管理者正式发布的该组织总的质量宗旨和,质量策划:是质量管理的一部分,致力于制定质量目标并规定必要的运行过程和相关资源以实现质量目标。,包括:质量管理体系策划、产品实现策划以及过程运行策划。质量计划是策划的结果之一。最终的目的是满足顾客要求。,质量控制:致力于满足质量要求。包括设定标准、测量结果、判定、采取措施。,40,质量策划:是质量管理的一部分,致力于制定质量目标并规定必要的,质量保证:致力于提供质量要求会得到满足的信任。,质量改进:致力于增强满足质量要求的能力。,Im trying!,41,质量保证:致力于提供质量要求会得到满足的信任。Im tr,质量管理的任务:,正确制订和贯彻执行质量方针和政策;,保证和提高产品质量和服务质量,生产出物美价廉的产品,以满足用户需要;,不断降低物质消耗,降低质量成本和提高经济效益;,提高领导和职工的质量意识和素质,促进企业素质和管理水平的提高;,研究和发展质量理论和质量科学。,42,质量管理的任务: 正确制订和贯彻执行质量方针和政策;42,项目质量的概念,项目的质量(双重性:产品质量,服务质量),从项目作为一次性的活动来看,项目质量体现在由WBS反映出的项目范围内所有的阶段、子项目、项目工作单元的质量所构成,也即,项目的工作质量,;,从项目作为一项最终产品来看,项目质量体现在其性能或者使用价值上,也即,项目的产品质量,。,项目是应业主/客户的要求进行的,不同的业主/客户有着不同的质量要求,其意图已反映在项目合同中。因此,,项目合同是进行项目质量管理的主要依据,。,43,项目质量的概念 43,项目质量管理的概念:,为保障项目产出物能够满足项目业主、客户以及项目其他相关利益者的需要,所开展的对于项目产出物质量和项目工作质量的,全面管理工作,。,包括:,项目质量方针的确定,项目质量目标和质量责任的制定,项目质量体系的建设,为实现项目质量目标所开展的项目质量计划、项目质量控制和项目质量保障等一系列质量管理工作,44,项目质量管理的概念:44,项目质量管理的思想:,全面质量管理的思想-质量管理的全员性、全过程性、全要素性。,项目质量管理的几个重要理念:,使顾客满意是项目质量管理的目的,项目质量是干出来的,不是检验出来的,项目质量管理的责任是全体团队成员的,项目质量管理的关键是不断监控和改进,项目质量确定与项目质量实施,项目质量等级与项目质量好坏,45,项目质量管理的思想:45,ISO10006国际项目质量管理标准:,国际标准ISO10006是由ISOTCl76SC2国际标准化组织,质量管理和质量保证技术委员会质量体系分委员会制定的,这,一文件是1997年12月发布的,文件的全称是:,质量管理项,目质量管理指南,。该文件分为两个部分,一个是,主文件,部分,,另有三个附件。其中主文件部分的核心内容包括三个部分,,其一是该标准所涉及的范围和所引用的标准及其相关定义,其,二是有关项目特征的说明,其三是项目管理过程中的质量规范。,第二部分是,主要内容,,它包括了项目策划、集成管理、范围管,理、时间管理、成本管理、资源管理、组织与人力资源管理、,沟通管理、风险管理、采购管理等各方面质量保障与质量控制,方面的规定。,46,ISO10006国际项目质量管理标准:国际标准ISO1000,ISO10006标准的内容:,本标准的适用范围,本标准引用的标准条款,相关的定义,项目的特性,项目过程中的质量管理,总结项目经验,47,ISO10006标准的内容:47,软件质量的概念,软件质量的定义,软件质量模型,48,软件质量的概念软件质量的定义48,软件质量的定义,1.软件质量的定义,1),ANSI/IEEE Std 729-1983定义软件质量为:“,与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体,”。,2)M.J.Fisher将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合。”,3)GB/T6583 ISO 8402(1994)定义软件质量为:“,反映实体满足明确和隐含需要的能力和特性总和,”,也就是说,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。,49,软件质量的定义1.软件质量的定义49,软件质量的定义,软件质量反映了以下三方面的问题:,软件需求是度量软件质量的基础 。不符合需求的软件就不具备质量。,规范化的标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。,往往会有一些隐含的需求没有显式地提出来。如软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。,50,软件质量的定义软件质量反映了以下三方面的问题:50,软件质量的定义,2.软件质量特性,软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。而定义一个软件的质量,就等价于为该软件定义一系列质量特性。,51,软件质量的定义2.软件质量特性51,软件质量的定义,通常,软件质量可由以下主要特性来定义:,(1),功能性:软件所实现的功能达到它的设计规范和满足用户需求的程度;,(2)效率:在规定条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度;,(3)可靠性:在满足一定条件的应用环境中,软件能够正常维持其工作的能力;,(4)安全性:为了防止意外或人为的破坏,软件应具备的自身保护能力能力;,52,软件质量的定义通常,软件质量可由以下主要特性来定义:52,软件质量的定义,(6)可维护性:当环境改变或软件运行发生故障时,为了使其恢复正常运行所做努力的程度;,(7)可扩充性:在功能改变和扩充情况下,软件能够正常运行的能力;,(8)可移植性:为使一个软件从现有运行平台向另一个运行平台过度所做努力的程度,(9)重用性:整个软件或其中一部分能作为软件包而被再利用的程度。,53,软件质量的定义(6)可维护性:当环境改变或软件运行发生故障时,软件质量的定义,3.软件生存期与质量特性,从用户的角度看,软件的生存期可分为如下三个阶段:,1)初期运用:运行新开发的软件产品。,2)维护与扩充:在运行过程中修改缺欠的内容;而且,为了进一步的使用,需根据运行环境(主要指应用环境和技术环境)的变化做功能上和性能上的扩充。,3)移植和连接:把在原有平台上运行的软件向其它新的运行环境转移、或者组成软件包以便重用、或与其它软件进行连接。,54,软件质量的定义3.软件生存期与质量特性54,软件质量的定义,对于软件所需求的质量特性,在软件生存期的不同阶段中情况各有不同,要求也不一样,这可由下图说明。,Back,55,软件质量的定义 对于软件所需求的质量特性,在软件生存期的不同,软件质量模型,所谓质量模型是指提供声明质量需求和评价质量基础的特性以及特性之间关系的集合。换句话说质量模型是用来描述质量需求以及对质量进行评价的理论基础。,早在1976年,由Boehm等提出软件质量模型的分层方案。1979年McCall等人改进Boehm 质量模型又提出了一种软件质量模型。模型,包括质量要素,(factor),、准则,(criteria),和度量,(metric),三层次。如图所示。,特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的优劣。,56,软件质量模型所谓质量模型是指提供声明质量需求和评价质量基础的,软件质量模型,McCall质量度量模型框,要素(,特性,),评价,准则,评价,准则,评价,准则,度量,度量,度量,面向管理观点的产品质量,决定产品质量的软件属性,定量化地度量软件属性,57,软件质量模型McCall质量度量模型框要素(特性)评价评价评,软件质量模型,软件质量要素直接影响软件开发过程各个阶段的产品质量。,由于对软件质量理解的不断深化,软件质量要素不是一成不变的。,McCall,等人给出的软件质量要素共,11,个,分为三类,,分别面向软件产品的运行、修正、转移。它们与特性的关系如图所示。,58,软件质量模型软件质量要素直接影响软件开发过程各个阶段的产品质,软件质量模型,产品修正,产品转移,产品运行,可维护性,测试性,灵活性,互联性,可移植性,复用性,正确性 可靠性,可使用性 效率,完整性,McCall软件质量模型,59,软件质量模型产品修正产品转移产品运行可维护性互联性正确性,软件质量模型,正确性:,在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。,可靠性:,软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。,效率:,为了完成预定功能,软件系统所需的计算机资源的多少。,完整性:,为了某一目的而保护数据,避免它受到偶然的,或有意的破坏、改动或遗失的能力。,可使用性:,对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。,60,软件质量模型正确性:在预定环境下,软件满足设计规格说明及用户,软件质量模型,可维护性:,为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。,可测试性:,测试软件以确保其能够执行预定功能所需工作量的大小。,灵活性:,修改或改进一个已投入运行的软件所需工作量的大小。,61,软件质量模型可维护性:为满足用户新的要求,或当环境发生了变化,软件质量模型,可移植性:,将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。,复用性:,一个软件(或软件的部件)能再次用于其它应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。,互连性:,连接一个软件和其他系统所需工作量的大小。如果这个软件要联网,或与其他系统通信,或要把其他系统纳入到自己的控制之下,必须有系统间的接口,使之可以联结。互连性很重要。它又称相互操作性。,62,软件质量模型可移植性:将一个软件系统从一个计算机系统或环境移,软件质量模型,通常,对以上各个质量特性直接进行度量是很困难的,在有些情况下甚至是不可能的。因此,McCall定义了一,组比较容易度量的软件质量要素评价准则,,使用它们对反映质量特性的软件属性分级,以此来估计软件质量特性的值。,定义评价准则的关键是确定影响软件质量要素的属性。这些属性必须满足,比较完整、准确的描述软件质量要素;,比较容易量化和测量,能够反映软件质量的优劣。,McCall定义的软件质量要素评价准则共21种,它们是:,63,软件质量模型通常,对以上各个质量特性直接进行度量是很困难的,,McCall,软件质量要素评价准则,1.,可审查性,(Auditability) :,检查软件需求、规格说明、标准、过程、指令、代码及合同是否一致的难易程度。,2.准确性,(Accuracy) :,计算和控制的精度,最好表示成相对误差的函数,值越大表示精度越高。,3.通信通用性,(Communication Commonality) :,使用标准接口、协议和频带的程度。,4.完全性,(Completeness),:,所需功能完全实现的程度。,5.简明性,(Conciseness):,程序源代码的紧凑性。,6.一致性,(Consistency,):设计文档与系统实现的一致性。,7.数据通用性,(Data Commonality):,在程序中使用标准的数据结构和类型。,8.容错性,(Error,tolerance) :,系统在各种异常条件下提供继续操作的能力,64,McCall软件质量要素评价准则1.可审查性(Auditab,McCall,软件质量要素评价准则,9.执行效率,(Execution Efficiency):,程序运行效率。,10.可扩充性,(Expandability):,能够对结构设计、数据设计和过程设计进行扩充的程度,11.通用性,(Generality):,程序部件潜在的应用范围的广泛性,12.硬件独立性,(Hardware Independence):,软件同支持它运行的硬件系统不相关的程度。,13.检测性,(Instrumentation):,监视程序的运行,一旦发生错误时,标识错误的程度。,14.模块化,(,Modularity):程序部件的功能独立性。,65,McCall软件质量要素评价准则9.执行效率(Executi,McCall,软件质量要素评价准则,15.可操作性,(Operability):,操作一个软件的难易程度。,16.安全性,(Security):,控制或保护程序和数据不受破坏的机制,以防止程序和数据受到意外的或蓄意的存取、使用、修改、毁坏或泄密。,17.自文档化(Self-documentation):源代码提供有意义文档的程度。,18.简单性(Simplicity):理解程序的难易程度。,19.软件系统独立性(Software System Independence):程序与非标准的程序设计语言特征、操作系统特征、以及其他环境约束无关的程度。,20.可追踪性(Tracebility):对软件进行正向和反向追踪的能力。,21.易培训性(Training):软件支持新用户使用该系统的能力。,66,McCall软件质量要素评价准则15.可操作性(Operab,计算软件质量要素,软件质量要素,F,j,的值可用下式计算,L,F,j,C,jk,M,k,j=1,2,,,.,11.,k=1,其中,M,k,是软件质量要素,F,j,对第,k,种评价准则的测量值,C,jk,是相应的加权系数,McCall,定义的评价准则多数都没有客观的测量方法,只能凭主观印象为评价准则定值。,McCall,将评价准则分为,0-10,级。,0,级最低,10,级最高。,M,k,的取值是,0 ,0.1 ,0.2 , 1.0,67,计算软件质量要素软件质量要素Fj的值可用下式计算67,质量要素与评价准则 (1/2),要素,关系,准则,正确性,可靠性,有效性,完整性,可维护,可测试,可移植,可重用,互操作,可用性,灵活性,可审查性,V,V,准确性,V,通信通用性,V,完全性,V,简明性,V,V,V,一致性,V,V,V,V,数据通用性,V,容错性,V,执行效率,V,可扩充性,V,通用性,V,V,V,V,68,质量要素与评价准则 (1/2) 要素正确性可靠性有效性,质量要素与评价准则 (2/2),要 素,关 系,准 则,正确性,可靠性,有效性,完整性,可维护,可测试,可移植,可重用,互操作,可用性,灵活性,硬件独立性,V,V,V,V,检测性,V,V,V,模块化,V,V,V,V,V,V,V,可操作性,V,V,安全性,V,自文挡化,V,V,V,V,V,简单性,V,V,V,V,软件独立性,V,V,可追踪性,V,易培训性,V,69,质量要素与评价准则 (2/2) 要 素 正确性可靠性,McCall,软件质量要素评价准则,McCall,软件质量度量模型为软件质量管理奠定了基础,模型由软件质量要素和评价准则组成,加权系数,C,jk,满足,C,jk,1,其中,C,jk,0,当质量要素,F,j,与,k,项评价准则无关时,,C,jk,=0,McCall,评价准则项数,L=21,70,McCall软件质量要素评价准则McCall软件质量度量模型,软件质量模型,ISO,软件质量度量模型,1985,年国际标准化组织,(ISO),建议,软件质量度量模型由三层组成。,高层称软件质量需求评价准则,(SQRC);,中层称软件质量设计评价准则,(SQDC);,低层称软件质量度量评价准则,(SQMC),。,分别对应,McCall,等人的要素、评价准则和度量。,ISO,认为应对高层和中层建立国际标准,以便在国际范围内推广软件质量管理,而低层可由各单位自行制定。,ISO,高层由,8,个要素组成、中层由,23,个评价准则组成。它们之间的关系如表所示。,71,软件质量模型ISO 软件质量度量模型71,ISO的质量要素与评价准则,(1/2),要素,关系,准则,正确性,可容性,有效性,安全性,可用性,可维护,灵活性,互操作,可追踪性,V,完全性,V,一致性,V,V,V,准确性,V,容错性,V,简单性,V,V,模块化,V,V,通用性,V,可扩充性,V,检测性,V,自描述性,V,V,72,ISO的质量要素与评价准则(1/2) 要素正确性可容性有效,ISO的质量要素与评价准则,(2/2),要素,关系,准则,正确性,可容性,有效性,安全性,可用性,可维护,灵活性,互操作,执行效率,V,存储效率,V,存取控制,V,存取审查,V,可操作性,V,易培训性,V,通信性,V,软件独立性,V,硬件独立性,V,通信通用性,V,数据通用性,V,简明性,V,73,ISO的质量要素与评价准则 (2/2) 要素正,软件质量模型,1991年,ISO发布了ISO/IEC9126质量特性的国际标准,将质量特性降为6个,即功能性、可靠性、可维护性、效率、可使用性、可移植性,并定义了21个子特性。,1991年发布的ISO/IEC9126标准现在被分为了两部,ISO/IEC9126(软件产品质量)和ISO/IEC14598(软件产品评价)。,74,软件质量模型1991年,ISO发布了ISO/IEC9126质,软件质量模型,75,软件质量模型75,软件质量特性之间的竞争,在软件的质量特性与质量特性之间、质量特性与质量子特性之间存在着有利的影响和不利的影响。例如,由于效率的要求,应尽可能采用汇编语言。但是用汇编语言编制出的程序,可靠性、可移植性以及可维护性都很差。,因此在系统设计过程中应根据具体情况对各种要素的要求进行折衷,以便得到在总体上用户和系统开发人员都满意的质量标准。,质量要素之间的关系表,76,软件质量特性之间的竞争 在软件的质量特性与质量特性之间、,软件质量特性之间的竞争,77,软件质量特性之间的竞争77,软件质量的度量和评价,软件质量的度量,是软件属性的量化,是经验关系系统到数值关系系统的一种映射。软件质量特性度量有两类:预测型和验收型。,预测度量是利用定量的或定性的方法,对软件质量的评价值进行估计,以得到软件质量的比较精确的估算值。它是用在软件开发过程中的。,尺度度量:这是一种定量度量。它适用于一些能够直接度量的特性,一般它作为相对量进行度量。如可靠性度量、复杂度度量、缺陷度量和规模度量等。,二元度量:这是一种定性度量。它适用于一些只能间接度量的特性。,验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它可以看成是对预测度量的一种确认,是对开发过程中的预测进行评价。,78,软件质量的度量和评价 软件质量的度量78,软件质量的度量和评价,软件质量度量的实施,在确定要对一个软件(系统)进行度量之后,一般,采取以下几个步骤,来实施对该软件的度量:,(1)确定软件质量需求;,在用户需求中,除功能需求外,还有非功能需求,包括:质量需求、环境需求、设计约束、开发策略等。质量需求是用户比较关心的内容。,但是,我们已经知道,软件的功能需求的确定,存在一定的难度。而非功能需求的确定,则难度更大。这些困难包括:需求如何获取,需求冲突如何协调、需求的确认和变更的授权等。,过程:,需求获取:首先,你要理解用户的需求,区分哪些是质量需求,把这些需求记录下来,获得用户的确认。,需求分析:拿到用户确认的需求后,你可以开始把用户的质量需求与我们设定的质量特性联系起来,一直区分到子特性。这种联系,就是把用户语言描述的需求,转变为计算机工程师语言的需求。建立了这种关联后,可以根据分类,分级,确定直接度量。,79,软件质量的度量和评价软件质量度量的实施79,软件质量度量的实施,(,2)确定直接度量,直接度量就是实际的软件质量测量活动,它的输入是软件或软件过程,输出是一个测量值。它通过执行一系列的任务,获得一个质量值。,例如:对一个没有经过培训的用户,让他使用软件系统的某一功能,在界面提示、联机帮助、使用手册的帮助下,他学会掌握该功能所花的时间。而用户需求对此项指标的要求(目标)和现实系统所达到的实际值(比如:10个人次测量后统计意义上的)的比较,就是将提交质量评审的质量值。,在进行直接度量前,你应该有以下准备:,(1)工具:有助于计算度量值的硬件/软件工具,如:缺陷跟踪工具;,(2)应用:描述度量结果的希望值、度量值的意义、作用和对度量结果数据的使用方法;,(3)数据:获得度量结果所需的数据、程序、过程等度量对象;,(4)计算:度量程序、步骤和方法。,(5)费用:测试是要花钱(人力、物力、时间等)的。,80,软件质量度量的实施(2)确定直接度量80,软件质量度量的实施,(3)分析度量结果,对度量过程进行跟踪和分析,需要时,可能会对度量程序、度量工具、度量方法,甚至原始数据,做出补充和调整。,(4)确认质量度量,在度量过程中,进行度量结果的确认非常重要。首先,要确认度量过程是否与事实相符,脱离现实真实的度量,与目标再相符的结果也是没有意义的。其次,是确认方法的有效性,例如:在度量中,我们用到很多统计学方法,在这些方法中,我们有一些概率分布假设(例如:某些错误的发生,我们假设符合随机概率分布),当这些假设并不成立时,度量的结果是不真实的。,81,软件质量度量的实施(3)分析度量结果81,软件质量的度量和评价,软件质量评价,定量地评价软件的质量,目前还不能精确地做到。一般采取由若干(610)位软件专家进行打分来评价。这些软件专家应是富有实际经验的项目带头人。软件质量评价分两步走。,(1)评分,对每一阶段要达到的质量指标(质量特性目标值或标准)详细开列/建立度量工作表,在表中,以提问题方式,列出在某一阶段为实现某一质量指标,应达到什么标准。所以它也可称为检查表。特别地,有些检查表是针对子系统或模块的。,为了回答度量工作表上的问题,必须积累原始资料。最重要的原始资料是在软件定义与开发的各个阶段提供的文档。其次是在开发过程中积累的各种数据,特别是对出错数据的记录。,评分主要是依据软件实际成果进行的、由于软件使用环境不同,使用目的不同,各人打分会有一定差别。,(2)分析结果,根据评分的结果,对照评价指标,检查某个质量特性是否达到了要求的质量标准。如果某个质量特性不符合规定的标准,就应当分析这个质量特性,找出为什么达不到标准的原因。,分析原因应该自顶向下进行。按系统级、子系统级、模块级逐步分析。,82,软件质量的度量和评价软件质量评价 82,四层模型,四层模型,软件质量的度量关键是要定出评定质量的指标和评定优劣的标准。有一种四层模型,,第一层是,软件产品质量(质量需求),,第二层是质量特性,第三层是质量子特性,第四层是度量指标。,软件产品质量层(质量需求):是产品必须满足的质量需求。它是用用户术语描述的,主要有四点:,(1)产品将在用户所在组织当前使用的平台和操作系统上运行。,(2),产品将是可靠的并能防止数据丢失的机制。,(3),产品将提供完成某些任务所必需的功能。,(4),产品将易于使用。,83,四层模型四层模型83,四层模型,质量特性:表示与整个质量需求有关的特殊质量特性,它代表了用户的质量需求。它采用从用户角度考虑的立场,把软件质量分解成四类质量特性,这四个质量特性是软件的基本特征。,IEEE,的四个质量特性是:可移植性、可靠性、功能性、可使用性。,可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时能继续运行的程度。,功能性:软件所实现的功能满足用户需求的程度功能性反映了所开发的软件满足用户指明的或隐含的需求的程度,即用户要求的功能是否全部实现了。,可移植性:从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。,易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。,84,四层模型质量特性:表示与整个质量需求有关的特殊质量特性,它代,四层模型,质量需求,质量特性,质量子特性,直接度量,度量描述(例子),产品将在多平台和当前用户正在使用的操作系统上运行,可移植性,硬件独立性,硬件依赖性,计算硬件的依赖性,软件独立性,软件依赖性,计算软件的依赖性,易安装性,安装时间,测量安装时间,可重用性,能够用于其他应用软件中,计算能够或已经应用于其他软件系统的模块数量,产品将是可靠的并能提供防止数据丢失的机制,可靠性,无缺陷性,测试覆盖,测量测试覆盖度,审查覆盖,计算已做过的代码审查模块,容错性,数据完整性,统计用户数据被破坏情况,数据恢复,测量恢复被破坏的数据的能力,可用性,软件可用的百分比,软件可用时间除以总的软件使用时间,85,四层模型质量需求质量特性质量子特性直接度量度量描述(例子)产,产品将提供完成某些任务所必需的功能,功能性,完备性,测试覆盖,计算调用或分支测量覆盖,正确性,缺陷密度,计算每一版本发布前的缺陷,安全性,数据安全性,统计用户数据被破坏的情况,用户安全性,没有被阻止的非法用户入侵数,兼容性,环境变化,软件安装后必须修改的环境变量数量,互操作性,混合应用环境下软件的可操作性,混合应用环境下可正确运行的数量,产品将易于使用,可使用性,易理解性,学习所用时间,新用户学习软件特性所花费的时间,易学性,学习所用时间,新用户学会操作软件提供的基本功能所花费的时间,易操作性,人的因素,新用户基于人类工程学对软件消极方面的评价数量,沟通性,人的因素,新用户基于人类工程学对软件消极方面的评价数量,质量需求,质量特性,质量子特性,直接度量,度量描述(例子),四层模型,Back,86,产品将提供完成某些任务所必需的功能功能性完备性测试覆盖计算调,软件质量管理,基本概念,软件质量管理的主要活动,软件质量管理的内容,软件质量标准简介,软件文件标准与规范,87,软件质量管理基本概念87,软件质量管理的,基本概念,质量管理体系,为实施质量管理所需的组织结构,程序、过程和资源。,组织结构:组织为行使其职能按某种方式建立的职责、权限及其相互关系。,程序:为进行某项活动所规定的途径。,1 在很多情况下,程序可形成文件如质量体系程序。,2 程序形成文件时,通常称之为“书面程序”或“文件化程序”。,3 书面或文件化程序中通常包括活动的目的和范围;做什么和谁来做,何时、何地和如何做;应使用什么材料、设备和文件;如何对活动进行控制和记录。,过程:将输入转化为输出的一组彼此相关的资源和活动。,资源:可包括人员、资金、设施、设备、技术和方法。,对于质量管理体系:,1 质量体系的内容应以满足质量目标的需要为准。,2 一个组织的质量体系主要是为满足该组织内部管理的需要而设计的。它比特定顾客的要求要广泛。顾客仅仅评价质量体系中的有关部分。,3 为了合同或强制性质量评价的目的,可要求对已确定的质量体系要求的实施进行证实。,88,软件质量管理的基本概念质量管理体系88,软件质量管理的,基本概念,质量方针,由组织的最高管理者正式发布的该组织总的质量宗旨和质量方向。,质量策划,确定质量以及采用质量体系要素的目标和要求的活动。,质量策划包括:,a) 产品策划:对质量特性进行识别、分类和比较,并建立其目标、质量要求和约束条件。,b) 管理和作业策划:为实施质量体系进行准备,包括组织和安排。,c) 编制质量计划和作出质量改进的规定。,89,软件质量管理的基本概念质量方针 89,软件质量管理的,基本概念,质量控制,为达到质量要求所采取的作业技术和活动。,1 质
展开阅读全文