1、1软件质量管理软件质量管理2回忆:项目管理知识体系的构成回忆:项目管理知识体系的构成将项目管理知识体系分为将项目管理知识体系分为9大知识领域:大知识领域:1项目集成管理项目集成管理2项目范围管理项目范围管理3项目时间管理项目时间管理4项目成本管理项目成本管理5项目质量管理项目质量管理6项目人力资源管理项目人力资源管理7项目沟通管理项目沟通管理8项目风险管理项目风险管理9项目采购管理项目采购管理3项目管理知识领域与项目管理过程和过程组图解(项目管理知识领域与项目管理过程和过程组图解(PMBOK2000)风险管理风险管理规划规划项目计划项目计划实施实施综合综合变更控制变更控制项目计划项目计划开发开
2、发启动启动范围计划范围计划范围定义范围定义活动定义活动定义范围核实范围核实范围范围变更控制变更控制活动排序活动排序活动工期活动工期估计估计进度开发进度开发进度控制进度控制资源规划资源规划成本估算成本估算成本预算成本预算成本控制成本控制质量规划质量规划组织规划组织规划质量保证质量保证质量控制质量控制人员招募人员招募团队开发团队开发沟通规划沟通规划采购规划采购规划信息发布信息发布绩效报告绩效报告管理收尾管理收尾风险识别风险识别定性风险定性风险分析分析定量风险定量风险分析分析风险应对风险应对计划计划风险监测风险监测和控制和控制询价规划询价规划询价询价供方选择供方选择合同管理合同管理合同收尾合同收尾集
3、成集成范围范围时间时间成本成本质量质量人力资源人力资源沟通沟通风险风险采购采购4软件质量管理o软件开发过程软件开发过程5o项目质量管理的概念项目质量管理的概念19o软件质量的概念软件质量的概念48o软件质量管理软件质量管理87o软件质量的综合评价软件质量的综合评价1445软件开发过程o软件的含义o软件=程序+文档+服务o为解决软件危机,人们提出用工程化的原则及方法来组织软件开发工作,这就是软件工程的由来。o在软件工程中可将软件的生存周期分为6个阶段(传统生命周期,即瀑布模型)o(1)计划()o(2)需求分析()o(3)设计()o(4)编码()o(5)测试()o(6)运行与维护()6软件开发瀑布
4、模型软件开发瀑布模型 7软件开发过程1.需求分析需求分析是根据客户的要求,清楚地了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。软件产品需求分析是软件开发过程的第一个环节,也是最重要的一个环节。如果需求分析做不好,下面的设计、编程做得再好,客户(用户)也不可能对开发出来的软件产品感到满意。软件产品需求分析的结果要文档化,而且这类文档的描述尽量不要用专业术语,从而使用户能够完全理解需求分析的结果,参与对其复审的过程。8软件开发过程2.设计软件设计是根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等。可以分为概要设计和详细设计
5、,也可以分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、算法设计、界面设计等。设计过程将需求转换成软件表示,设计的结果将作为编码的框架和依据,以提高编码的效率和质量。设计的文档化体现在产品规格说明书()、技术设计文档()和软件配置文档()。9软件开发过程3.编程经过需求分析、设计之后,接下来就是用一种或多种具体的编程工具(如,、等)进行编码,即将设计转换成计算机可读的形式。如果设计做得好、做得仔细,编程就容易了。4.测试任何编程,免不了存在这样或那样的错误,所以有必要进行软件测试。测试过程集中于软件的内部逻辑保证所有语句都测试到,以及外部功能即引导测试去发现错误,并保证定义好的输入
6、能够产生与预期结果相同的输出。测试按不同的过程阶段分为单元测试、集成测试、功能测试、系统测试、验证测试等。10软件开发过程5.维护从理论上,软件测试的覆盖率不可能做到百分之百,所以软件在交付给用户之后有可能存在某些问题,而且用户的需求会发生变化,特别是开始使用产品之后,对计算机系统有了真正的认识和了解,会提出适用性更好的、功能增强的要求。所以,软件交付之后不可避免地要进行修改、升级等。软件维护复杂、周期长,其成本必然很高。通过提高软件的需求分析、设计和编程的质量,强化软件测试,可以大幅度降低软件的维护成本。11软件开发过程o软件开发模式o软件开发模式是指从最初构想到公开交付发行软件的过程。o大
7、棒模式或边写边改模式o瀑布模式o原型模式o快速应用()模式o螺旋模式o增量模式和跌代模式12大棒模式或边写边改模式 o大棒模式o优点是简单。几乎无计划。项目成员精力都花在开发软件和编写代码上。最终的软件产品是什么样不可知。o边写边改模式o在大棒模式的基础上考虑了产品的要求。项目成员通常只有粗略的想法就进行简单的设计,然后开始漫长的编码、测试、修复。13大棒模式或边写边改模式 o探索测试o如果采用大棒模式或者边写边改模式,就不会有作为测试依据的各类文档。尽管这对于软件测试员不是理想的状况,但是此时可以采用称为探索测试的解决方案。o这需要把软件当产品说明书来对待。分步骤地逐项探索软件特性。记录软件
8、执行情况,详细描述功能。在这种情况下,无法像有产品说明书那样完整测试软件比如无法判定是否遗漏功能,但是可以进行系统测试。找到软件缺陷。o另外,与同类型软件进行比较也是一个有效的方法。14软件开发模式-原型模型 在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。一般步骤如下:(1)先定义软件的总体目标,根据已知的需求来规划出可实现的区域。(2)然后是“快速设计”,集中于系统的总体框架、基本功能和直观的输入方式和输出格式等。(3)有了原型,使客户对系统
9、实现哪些具体功能、功能实现到什么程度有更好的理解。开发者可以边开发边评估,不断细化软件的需求,逐步调整原型使其满足客户的要求。这形成一个迭代的过程。15原型模型即使开始建立的原型过于简单或性能很差,难以使用,但为下一次建立适用的模型积累了经验,而浪费的成本、时间有限。原型模型的优点是使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。原型模型的缺点是产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。16模型 o模型 o()模型,即快速应用开发模型。由于其模型构图形似字母“V”,故也称V模型,是属于线性顺序一类的软件开发
10、模型。它通过使用基于构件的开发方法来缩短产品开发的周期,提高开发的速度。模型实现的前提是能做好需求分析,并且项目范围明确,这一点正好和原型模型相反。17螺旋模型 o螺旋模型,最早是由提出来的,是一个演化软件过程模型,它将原型的迭代特征与线性顺序模型中控制和系统化方面结合起来,使得软件增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸上的模型或原型;在以后的迭代中,更加完善的被开发系统版本逐步产生。18增量模式和跌代模式o软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。o增量模型描述软件产品的不同阶段是按产品所具有的功能进行划
11、分,先开发主要功能或用户最需要的功能,然后,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。o迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分。先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能或完善已有功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。19项目质量管理的概念项目质量管理的概念o产品产品:过程的结果过程的结果o四类四类:o硬件硬件:有形产品有形产品,有计数的特性有计数的特性;o服务服务:无
12、形的无形的,并且是在供方和顾客接并且是在供方和顾客接触面上至少需要完成一项活动的结果触面上至少需要完成一项活动的结果o软件软件:由信息组成由信息组成,通常是无形产品并通常是无形产品并可以方法可以方法 论文或程序的形式存在论文或程序的形式存在.o流程性材料流程性材料:有形产品有形产品,有一定的连续有一定的连续性性.208402-19948402-1994质量管理和质量保证术语质量管理和质量保证术语中对质中对质量所下的定义是量所下的定义是:质量是反映实体质量是反映实体(产品、过程或活动等产品、过程或活动等)满足满足明确和隐含需要的能力的特性总和。明确和隐含需要的能力的特性总和。21实体(实体(,)
13、:“:“可单独描述和研究的事物可单独描述和研究的事物”,实体,实体可以是活动或过程,可以是产品,可以是组织、体可以是活动或过程,可以是产品,可以是组织、体系或人,也可以是上述各项的任何组合。系或人,也可以是上述各项的任何组合。需求需求():():包括包括“明确需要明确需要”和和“隐含需要隐含需要”。22 为使为使“需求需求”可以实际运用,一般应将其转化可以实际运用,一般应将其转化为质量要求。所谓质量要求,是指为质量要求。所谓质量要求,是指“对需要的表述对需要的表述或将需要转化为一组对实体特性的定量或定性的规或将需要转化为一组对实体特性的定量或定性的规定要求,以使其实现并进行考核定要求,以使其实
14、现并进行考核”。23q 质量不仅包括活动或过程的结果,还包括它们形成和实现的质量不仅包括活动或过程的结果,还包括它们形成和实现的活动及过程本身;活动及过程本身;q 质量不仅包括产品质量,还包括它们形成和实现过程中的工质量不仅包括产品质量,还包括它们形成和实现过程中的工作质量;作质量;q 质量不仅要满足顾客的需要,还要满足社会的需要,并使顾质量不仅要满足顾客的需要,还要满足社会的需要,并使顾客、从业人员、业主、供方和社会都收益;客、从业人员、业主、供方和社会都收益;(,(,受益者受益者)q 质量问题不仅存在于工业,还存在于服务业及其他各行各业。质量问题不仅存在于工业,还存在于服务业及其他各行各业
15、。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量24产品质量是指产品能够满足使用要求所具备的特性。一般包产品质量是指产品能够满足使用要求所具备的特性。一般包括性能、寿命、可靠性、安全性、经济性以及外观质量等。括性能、寿命、可靠性、安全性、经济性以及外观质量等。产品质量的概念,在不同历史时期有不同的要求。随着生产产品质量的概念,在不同历史时期有不同的要求。随着生产力发展水平不同和由于各种因素的制约,人们对产品质量会力发展水平不同和由于各种因素的制约,人们对产品质量会提出不同的要求。提出不同的要求。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量2
16、5服务质量是指服务满足明确和隐含需要的能力的特性总和。服务质量是指服务满足明确和隐含需要的能力的特性总和。定义中的服务,主要指服务性行业提供的服务,如交通运输、定义中的服务,主要指服务性行业提供的服务,如交通运输、邮电、商业、金融保险、饮食、宾馆、医疗卫生、文化娱乐、邮电、商业、金融保险、饮食、宾馆、医疗卫生、文化娱乐、仓储、咨询、法律等组织提供的服务。由于服务含义的延伸,仓储、咨询、法律等组织提供的服务。由于服务含义的延伸,有时也包括工业产品的售前、售中和售后服务,以及企业内有时也包括工业产品的售前、售中和售后服务,以及企业内部上道工序对下道工序的服务。部上道工序对下道工序的服务。反映服务质
17、量要求的质量特性主要有功能性、经济性、安全反映服务质量要求的质量特性主要有功能性、经济性、安全性、时间性、舒适性和文明性。性、时间性、舒适性和文明性。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量26过程是指过程是指“将输入转化为输出的一组彼此相关的资源和活将输入转化为输出的一组彼此相关的资源和活动动”。其中资源可包括人员、资金、设施、设备、技术和方。其中资源可包括人员、资金、设施、设备、技术和方法。法。过程质量,是指过程满足明确和隐含需要的能力的特性之总过程质量,是指过程满足明确和隐含需要的能力的特性之总和。和。过程质量,可分为开发设计过程质量、制造过程质量、使用过
18、程质量,可分为开发设计过程质量、制造过程质量、使用过程质量与服务过程质量四个子过程的质量。过程质量与服务过程质量四个子过程的质量。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量27工作质量,是指与质量有关的各项工作对产品质量、服务质工作质量,是指与质量有关的各项工作对产品质量、服务质量、过程质量的保证程度。量、过程质量的保证程度。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量282930一件产品或一项服务能否成功地完成它预定的使命一件产品或一项服务能否成功地完成它预定的使命取决于四个主要因素取决于四个主要因素,它们是它们是:(1)(1)设计质
19、量:设计人员对产品或服务的一些性能设计质量:设计人员对产品或服务的一些性能所做出的接受或拒绝的选择。所做出的接受或拒绝的选择。(2)(2)质量符合设计的程度:产品或服务符合质量符合设计的程度:产品或服务符合(即实即实现现)设计人员意图的程度。设计人员意图的程度。(3)(3)便于使用。便于使用。(4)(4)售后服务。售后服务。31戴明总结出戴明总结出1414条质量管理原则,他认为一个公司要想使其产条质量管理原则,他认为一个公司要想使其产品达到规定的质量水平必须遵循这些原则。品达到规定的质量水平必须遵循这些原则。主要观点是引起效率低下和不良质量的原因在公司的管理系主要观点是引起效率低下和不良质量的
20、原因在公司的管理系统而不在职员。部门经理的责任就是要不断调整管理系统以统而不在职员。部门经理的责任就是要不断调整管理系统以取得预期的结果。取得预期的结果。戴明还强调了减少质量波动戴明还强调了减少质量波动(与一定标准之间的偏差与一定标准之间的偏差)的必要的必要性。要减少质量波动,就需要辨别引起波动的特殊原因性。要减少质量波动,就需要辨别引起波动的特殊原因(即即可纠正的原因可纠正的原因)和共同原因和共同原因(即随机原因即随机原因)。质量管理专家质量管理专家 戴明戴明32目标不变、持续改善和知识渊博;目标不变、持续改善和知识渊博;知识渊博包括(知识渊博包括(1 1)以所在公司为荣;()以所在公司为荣
21、;(2 2)掌握质量波动的)掌握质量波动的原理;(原理;(3 3)知识体系;()知识体系;(4 4)心理学原理;)心理学原理;戴明知识渊博的概念使得日本成为世界经济强国的好学信条戴明知识渊博的概念使得日本成为世界经济强国的好学信条和价值观具体化了和价值观具体化了 戴明戴明1414条原则的核心条原则的核心33q 朱兰视质量为适用性(朱兰视质量为适用性()。)。q 认为通过管理可以控制大约认为通过管理可以控制大约80%80%的质量缺陷的发生。的质量缺陷的发生。q 包含质量计划、质量控制和质量改进的质量三元论的思包含质量计划、质量控制和质量改进的质量三元论的思想来描述质量管理。想来描述质量管理。q根
22、据朱兰的观点根据朱兰的观点,为建立有能力满足质量标准的工作程序,为建立有能力满足质量标准的工作程序,质量计划是必要的。为了掌握何时采取必要措施纠正质量问质量计划是必要的。为了掌握何时采取必要措施纠正质量问题就必须实施质量控制。质量改进有助于发现更好的管理工题就必须实施质量控制。质量改进有助于发现更好的管理工作方式。管理就是不断改进工作是朱兰理论的一个核心。朱作方式。管理就是不断改进工作是朱兰理论的一个核心。朱兰被确认为第一个提出计算质量成本的质量管理专家。他解兰被确认为第一个提出计算质量成本的质量管理专家。他解释了如果不良质量的成本可以降低的话,那么就有可能增加释了如果不良质量的成本可以降低的
23、话,那么就有可能增加公司利润。公司利润。质量管理专家质量管理专家 朱兰朱兰34前通用电器生产和质量控制经理,他因提出把质量责任推广前通用电器生产和质量控制经理,他因提出把质量责任推广到生产领域以外而在质量运动中闻名。到生产领域以外而在质量运动中闻名。在推行在推行“缺陷成本缺陷成本”方法方面起重要作用。根据这一方法,方法方面起重要作用。根据这一方法,管理应服从于质量。管理应服从于质量。质量管理专家质量管理专家 费根鲍姆费根鲍姆351.1.全面质量控制是一个在公司内部使质量标准制定、维持和改进全面质量控制是一个在公司内部使质量标准制定、维持和改进集成于一体的系统。公司应该能够使工程部、生产部和服务
24、部门集成于一体的系统。公司应该能够使工程部、生产部和服务部门共同发挥作用共同发挥作用,在达到用户满意的同时实现最佳经济目标;在达到用户满意的同时实现最佳经济目标;2.2.质量控制的质量控制的“控制控制”方面应该包括制定质量标准、评价与这些方面应该包括制定质量标准、评价与这些标准有关的行为、当没有达到预定标准时采取纠正措施以及制定标准有关的行为、当没有达到预定标准时采取纠正措施以及制定改进质量标准计划;改进质量标准计划;3.3.影响质量的因素可分为两大类影响质量的因素可分为两大类:技术性的和人为的。人为的因素技术性的和人为的。人为的因素更为重要;更为重要;4.4.质量成本可被分为四类质量成本可被
25、分为四类:预防成本、鉴定成本、外部损失成本和预防成本、鉴定成本、外部损失成本和内部损失成本;内部损失成本;5.5.重要的是要控制源头质量重要的是要控制源头质量费根鲍姆质量控制基本原理要点费根鲍姆质量控制基本原理要点363784028402一一19941994(质量管理和质量保证术语)对质量管(质量管理和质量保证术语)对质量管理的定义是:质量管理是确定质量方针、目标和职理的定义是:质量管理是确定质量方针、目标和职责,并在质量体系中通过诸如质量策划、质量控制、责,并在质量体系中通过诸如质量策划、质量控制、质量保证和质量改进使其实施的全部管理职能的所质量保证和质量改进使其实施的全部管理职能的所有活动
26、。有活动。38质量管理是各级管理者的职责质量管理是各级管理者的职责,但必须由最高管理者领导。但必须由最高管理者领导。质量管理的实施涉及到组织中的所有成员。质量管理的实施涉及到组织中的所有成员。在质量管理中要考虑到经济性因素。质量管理是企业管理在质量管理中要考虑到经济性因素。质量管理是企业管理的重要组成部分的重要组成部分,是企业管理职能中的重要职能。企业一般是企业管理职能中的重要职能。企业一般包括经营决策、计划、生产、技术、质量、劳资、供应、销包括经营决策、计划、生产、技术、质量、劳资、供应、销售、销后服务、成本财务等管理部门。质量管理处于重要的售、销后服务、成本财务等管理部门。质量管理处于重要
27、的地位地位,我国有关领导人提出我国有关领导人提出:“:“企业管理应以质量管理为纲企业管理应以质量管理为纲,质量管理带动、推动和联系其它部门完成企业生产经营活动质量管理带动、推动和联系其它部门完成企业生产经营活动的任务。的任务。39质量方针:指由组织的最质量方针:指由组织的最高管理者正式发布的该组织高管理者正式发布的该组织总的质量宗旨和方向。总的质量宗旨和方向。质量目标:在质量方面所质量目标:在质量方面所追求的目的,是对质量方针追求的目的,是对质量方针的展开。的展开。40质量策划:是质量管理的一部分,致力于制定质量目标质量策划:是质量管理的一部分,致力于制定质量目标并规定必要的运行过程和相关资源
28、以实现质量目标。并规定必要的运行过程和相关资源以实现质量目标。包括:质量管理体系策划、产品实现策划以及过程运行包括:质量管理体系策划、产品实现策划以及过程运行策划。质量计划是策划的结果之一。最终的目的是满足策划。质量计划是策划的结果之一。最终的目的是满足顾客要求。顾客要求。质量控制:致力于满足质量要求。包括设定标准、测量质量控制:致力于满足质量要求。包括设定标准、测量结果、判定、采取措施。结果、判定、采取措施。41质量保证:致力于提供质量要求会得到满足的信质量保证:致力于提供质量要求会得到满足的信任。任。质量改进:致力于增强满足质量要求的能力。质量改进:致力于增强满足质量要求的能力。Im tr
29、ying!42q 正确制订和贯彻执行质量方针和政策正确制订和贯彻执行质量方针和政策;q保证和提高产品质量和服务质量保证和提高产品质量和服务质量,生产出物美价生产出物美价廉的产品廉的产品,q以满足用户需要以满足用户需要;q不断降低物质消耗不断降低物质消耗,降低质量成本和提高经济效降低质量成本和提高经济效益益;q提高领导和职工的质量意识和素质提高领导和职工的质量意识和素质,促进企业素促进企业素质和管理水平的提高质和管理水平的提高;q研究和发展质量理论和质量科学。研究和发展质量理论和质量科学。43项目质量的概念项目质量的概念 项目的质量项目的质量(双重性:产品质量,服务质量双重性:产品质量,服务质量
30、)从项目作为一次性的活动来看,项目质量体现在由反从项目作为一次性的活动来看,项目质量体现在由反映出的项目范围内所有的阶段、子项目、项目工作映出的项目范围内所有的阶段、子项目、项目工作单元的质量所构成,也即项目的工作质量;单元的质量所构成,也即项目的工作质量;从项目作为一项最终产品来看,项目质量体现在其性从项目作为一项最终产品来看,项目质量体现在其性能或者使用价值上,也即项目的产品质量。能或者使用价值上,也即项目的产品质量。项目是应业主项目是应业主/客户的要求进行的客户的要求进行的,不同的业主不同的业主/客户有客户有着不同的质量要求,其意图已反映在项目合同中。着不同的质量要求,其意图已反映在项目
31、合同中。因此,项目合同是进行项目质量管理的主要依据。因此,项目合同是进行项目质量管理的主要依据。44理工作理工作45461000610006国际项目质量管理标准:国际项目质量管理标准:国际标准国际标准1000610006是由是由76762 2国际标准化组织国际标准化组织质量管理和质量保证技术委员会质量体系分委员会制定的,这质量管理和质量保证技术委员会质量体系分委员会制定的,这一文件是一文件是19971997年年1212月发布的,文件的全称是:月发布的,文件的全称是:质量管理质量管理项项目质量管理指南目质量管理指南。该文件分为两个部分,一个是主文件部分。该文件分为两个部分,一个是主文件部分,另有
32、三个附件。其中主文件部分的核心内容包括三个部分,另有三个附件。其中主文件部分的核心内容包括三个部分,其一是该标准所涉及的范围和所引用的标准及其相关定义,其其一是该标准所涉及的范围和所引用的标准及其相关定义,其二是有关项目特征的说明,其三是项目管理过程中的质量规范。二是有关项目特征的说明,其三是项目管理过程中的质量规范。第二部分是主要内容,它包括了项目策划、集成管理、范围管第二部分是主要内容,它包括了项目策划、集成管理、范围管理、时间管理、成本管理、资源管理、组织与人力资源管理、理、时间管理、成本管理、资源管理、组织与人力资源管理、沟通管理、风险管理、采购管理等各方面质量保障与质量控制沟通管理、
33、风险管理、采购管理等各方面质量保障与质量控制方面的规定。方面的规定。4710006标准的内容:本标准的适用范围本标准引用的标准条款相关的定义项目的特性项目过程中的质量管理总结项目经验 48软件质量的概念o软件质量的定义o软件质量模型49软件质量的定义软件质量的定义o1.软件质量的定义o1)729-1983定义软件质量为:“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。o2)将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合。”o3)6583 8402(1994)定义软件质量为:“反映实体满足明确和隐含需要的能力和特性总和”o也就是说,为满足软件的各项精确定义的功能、性
34、能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。50软件质量的定义软件质量的定义o软件质量反映了以下三方面的问题:o软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。o规范化的标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。o往往会有一些隐含的需求没有显式地提出来。如软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。51软件质量的定
35、义o2.软件质量特性o软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。而定义一个软件的质量,就等价于为该软件定义一系列质量特性。52软件质量的定义通常,软件质量可由以下主要特性来定义:(1)功能性:软件所实现的功能达到它的设计规范和满足用户需求的程度;(2)效率:在规定条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度;(3)可靠性:在满足一定条件的应用环境中,软件能够正常维持其工作的能力;(4)安全性:为了防止意外或人为的破坏,软件应具备的自身保护能力能力;53软件质量的定义(6)可维护性:当环境改变或软件运行发生故障时,为了使其恢复正常
36、运行所做努力的程度;(7)可扩充性:在功能改变和扩充情况下,软件能够正常运行的能力;(8)可移植性:为使一个软件从现有运行平台向另一个运行平台过度所做努力的程度(9)重用性:整个软件或其中一部分能作为软件包而被再利用的程度。54o3.软件生存期与质量特性o从用户的角度看,软件的生存期可分为如下三个阶段:o1)初期运用:运行新开发的软件产品。o2)维护与扩充:在运行过程中修改缺欠的内容;而且,为了进一步的使用,需根据运行环境(主要指应用环境和技术环境)的变化做功能上和性能上的扩充。o3)移植和连接:把在原有平台上运行的软件向其它新的运行环境转移、或者组成软件包以便重用、或与其它软件进行连接。55
37、o 对于软件所需求的质量特性,在软件生存期的不同阶段中情况各有不同,要求也不一样,这可由下图说明。56o所谓质量模型是指提供声明质量需求和评价质量基础的特性以及特性之间关系的集合。换句话说质量模型是用来描述质量需求以及对质量进行评价的理论基础。o早在1976年,由等提出软件质量模型的分层方案。1979年等人改进 质量模型又提出了一种软件质量模型。模型包括质量要素()、准则()和度量()三层次。如图所示。o特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的优劣。57质量度量模型框要素(特性)评价准则评价准则评价准则度量度量度量面向管理观点的产品质量决定产品质量的软件
38、属性定量化地度量软件属性58o软件质量要素直接影响软件开发过程各个阶段的产品质量。o由于对软件质量理解的不断深化,软件质量要素不是一成不变的。o等人给出的软件质量要素共11个,分为三类,分别面向软件产品的运行、修正、转移。它们与特性的关系如图所示。59产品修正产品转移产品运行可维护性测试性灵活性互联性可移植性复用性正确性 可靠性可使用性 效率完整性软件质量模型60o正确性:在预定环境下,软件满足设计规格说明及正确性:在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。用户预期目标的程度。它要求软件没有错误。o可靠性:软件按照设计要求,在规定时间和条件下可靠性:软件按照设
39、计要求,在规定时间和条件下不出故障,持续运行的程度。不出故障,持续运行的程度。o效率:为了完成预定功能,软件系统所需的计算机效率:为了完成预定功能,软件系统所需的计算机资源的多少。资源的多少。o完整性:为了某一目的而保护数据,避免它受到偶完整性:为了某一目的而保护数据,避免它受到偶然的,或有意的破坏、改动或遗失然的,或有意的破坏、改动或遗失 的能力。的能力。o可使用性:对于一个软件系统,用户学习、使用软可使用性:对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。件及为程序准备输入和解释输出所需工作量的大小。61o可维护性:为满足用户新的要求,或当环境发生了可维护性
40、:为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。运行的软件进行相应诊断和修改所需工作量的大小。o可测试性:测试软件以确保其能够执行预定功能所可测试性:测试软件以确保其能够执行预定功能所需工作量的大小。需工作量的大小。o灵活性:修改或改进一个已投入运行的软件所需工灵活性:修改或改进一个已投入运行的软件所需工作量的大小。作量的大小。62o可移植性:将一个软件系统从一个计算机系统或环可移植性:将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境境移植到另一个计算机系统
41、或环境 中运行时所需中运行时所需工作量的大小。工作量的大小。o复用性:一个软件(或软件的部件)能再次用于其复用性:一个软件(或软件的部件)能再次用于其它应用(该应用的功能与此软件或软件部件的所完它应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。成的功能有联系)的程度。o互连性:连接一个软件和其他系统所需工作量的大互连性:连接一个软件和其他系统所需工作量的大小。如果这个软件要联网,或与其小。如果这个软件要联网,或与其 他系统通信,他系统通信,或要把其他系统纳入到自己的控制之下,必须有系或要把其他系统纳入到自己的控制之下,必须有系统间的接口,使之可以联结。互连性很重要。它又统间的
42、接口,使之可以联结。互连性很重要。它又称相互操作性。称相互操作性。63o通常,对以上各个质量特性直接进行度量是很困难的,在有些情况下甚至是不可能的。因此,定义了一组比较容易度量的软件质量要素评价准则,使用它们对反映质量特性的软件属性分级,以此来估计软件质量特性的值。o定义评价准则的关键是确定影响软件质量要素的属性。这些属性必须满足o 比较完整、准确的描述软件质量要素;o 比较容易量化和测量,能够反映软件质量的优劣。o定义的软件质量要素评价准则共21种,它们是:64软件质量要素评价准则1.可审查性():检查软件需求、规格说明、标准、过程、指令、代码及合同是否一致的难易程度。2.准确性():计算和
43、控制的精度,最好表示成相对误差的函数,值越大表示精度越高。3.通信通用性():使用标准接口、协议和频带的程度。4.完全性():所需功能完全实现的程度。5.简明性():程序源代码的紧凑性。6.一致性():设计文档与系统实现的一致性。7.数据通用性():在程序中使用标准的数据结构和类型。8.容错性():系统在各种异常条件下提供继续操作的能力65软件质量要素评价准则9.执行效率():程序运行效率。10.可扩充性():能够对结构设计、数据设计和过程设计进行扩充的程度11.通用性():程序部件潜在的应用范围的广泛性12.硬件独立性():软件同支持它运行的硬件系统不相关的程度。13.检测性():监视程序的
44、运行,一旦发生错误时,标识错误的程度。14.模块化():程序部件的功能独立性。66软件质量要素评价准则15.可操作性():操作一个软件的难易程度。16.安全性():控制或保护程序和数据不受破坏的机制,以防止程序和数据受到意外的或蓄意的存取、使用、修改、毁坏或泄密。17.自文档化():源代码提供有意义文档的程度。18.简单性():理解程序的难易程度。19.软件系统独立性():程序与非标准的程序设计语言特征、操作系统特征、以及其他环境约束无关的程度。20.可追踪性():对软件进行正向和反向追踪的能力。21.易培训性():软件支持新用户使用该系统的能力。67计算软件质量要素软件质量要素的值可用下式计
45、算 L 1,2,.,11.1其中 是软件质量要素对第k种评价准则的测量值 是相应的加权系数 定义的评价准则多数都没有客观的测量方法,只能凭主观印象为评价准则定值。将评价准则分为010级。0级最低,10级最高。的取值是 0,0.1,0.2,1.068质量要素与评价准则(1/2)要素 关系 准则正确性可靠性有效性完整性可维护可测试可移植可重用互操作可用性灵活性可审查性VV准确性V通信通用性V完全性V简明性VVV一致性VVVV数据通用性V容错性V执行效率V可扩充性V通用性VVVV69质量要素与评价准则(2/2)要 素 关 系 准 则正确性可靠性有效性完整性可维护可测试可移植可重用互操作可用性灵活性硬
46、件独立性VVVV检测性VVV模块化VVVVVVV可操作性VV安全性V自文挡化VVVVV简单性VVVV软件独立性VV可追踪性V易培训性V70软件质量要素评价准则o软件质量度量模型为软件质量管理奠定了基础o模型由软件质量要素和评价准则组成o加权系数满足1o 其中 0 o当质量要素与k项评价准则无关时,0o评价准则项数 2171o 软件质量度量模型o1985年国际标准化组织()建议,软件质量度量模型由三层组成。o高层称软件质量需求评价准则();o中层称软件质量设计评价准则();o低层称软件质量度量评价准则()。o 分别对应等人的要素、评价准则和度量。认为应对高层和中层建立国际标准,以便在国际范围内推
47、广软件质量管理,而低层可由各单位自行制定。高层由8个要素组成、中层由23个评价准则组成。它们之间的关系如表所示。72的质量要素与评价准则(1/2)要素 关系 准则正确性可容性有效性安全性可用性可维护灵活性互操作可追踪性V完全性V一致性VVV准确性V容错性V简单性VV模块化VV通用性V可扩充性V检测性V自描述性VV73的质量要素与评价准则(2/2)要素 关系 准则正确性可容性有效性安全性可用性可维护灵活性互操作执行效率V存储效率V存取控制V存取审查V可操作性V易培训性V通信性V软件独立性V硬件独立性V通信通用性V数据通用性V简明性V74软件质量模型n1991年,发布了9126质量特性的国际标准,
48、将质量特性降为6个,即功能性、可靠性、可维护性、效率、可使用性、可移植性,并定义了21个子特性。n1991年发布的9126标准现在被分为了两部9126(软件产品质量)和14598(软件产品评价)。75软件质量模型76软件质量特性之间的竞争 在软件的质量特性与质量特性之间、质量特性与质量子特性之间存在着有利的影响和不利的影响。例如,由于效率的要求,应尽可能采用汇编语言。但是用汇编语言编制出的程序,可靠性、可移植性以及可维护性都很差。因此在系统设计过程中应根据具体情况对各种要素的要求进行折衷,以便得到在总体上用户和系统开发人员都满意的质量标准。质量要素之间的关系表 77软件质量特性之间的竞争78软
49、件质量的度量和评价 o软件质量的度量o 是软件属性的量化,是经验关系系统到数值关系系统的一种映射。软件质量特性度量有两类:预测型和验收型。o预测度量是利用定量的或定性的方法,对软件质量的评价值进行估计,以得到软件质量的比较精确的估算值。它是用在软件开发过程中的。o尺度度量:这是一种定量度量。它适用于一些能够直接度量的特性,一般它作为相对量进行度量。如可靠性度量、复杂度度量、缺陷度量和规模度量等。o二元度量:这是一种定性度量。它适用于一些只能间接度量的特性。o验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它可以看成是对预测度量的一种确认,是对开发过程中的预测进行
50、评价。79软件质量的度量和评价o软件质量度量的实施o在确定要对一个软件(系统)进行度量之后,一般,采取以下几个步骤,来实施对该软件的度量:o(1)确定软件质量需求;o在用户需求中,除功能需求外,还有非功能需求,包括:质量需求、环境需求、设计约束、开发策略等。质量需求是用户比较关心的内容。o但是,我们已经知道,软件的功能需求的确定,存在一定的难度。而非功能需求的确定,则难度更大。这些困难包括:需求如何获取,需求冲突如何协调、需求的确认和变更的授权等。o过程:o需求获取:首先,你要理解用户的需求,区分哪些是质量需求,把这些需求记录下来,获得用户的确认。o需求分析:拿到用户确认的需求后,你可以开始把