《第六章软件质量》由会员分享,可在线阅读,更多相关《第六章软件质量(166页珍藏版)》请在金锄头文库上搜索。
1、第六章软件质量管理第六章软件质量管理回忆:项目管理知识体系的构成回忆:项目管理知识体系的构成PMI将项目管理知识体系分为9大知识领域大知识领域:1项目集成管理2项目范围管理3项目时间管理4项目成本管理5项目质量管理6项目人力资源管理7项目沟通管理8项目风险管理9项目采购管理2项目管理知识领域与项目管理过程和过程组图解(项目管理知识领域与项目管理过程和过程组图解(PMBOK2000)风险管理风险管理规划规划项目计划项目计划实施实施综合综合变更控制变更控制项目计划项目计划开发开发启动启动范围计划范围计划范围定义范围定义活动定义活动定义范围核实范围核实范围范围变更控制变更控制活动排序活动排序活动工期
2、活动工期估计估计进度开发进度开发进度控制进度控制资源规划资源规划成本估算成本估算成本预算成本预算成本控制成本控制质量规划质量规划组织规划组织规划质量保证质量保证质量控制质量控制人员招募人员招募团队开发团队开发沟通规划沟通规划采购规划采购规划信息发布信息发布绩效报告绩效报告管理收尾管理收尾风险识别风险识别定性风险定性风险分析分析定量风险定量风险分析分析风险应对风险应对计划计划风险监测风险监测和控制和控制询价规划询价规划询价询价供方选择供方选择合同管理合同管理合同收尾合同收尾集成集成范围范围时间时间成本成本质量质量人力资源人力资源沟通沟通风险风险采购采购3软件质量管理o软件开发过程软件开发过程5o
3、项目质量管理的概念项目质量管理的概念19o软件质量的概念软件质量的概念48o软件质量管理软件质量管理87o软件质量的综合评价软件质量的综合评价1444软件开发过程o软件的含义软件=程序+文档+服务o为解决软件危机,人们提出用工程化的原则及方法来组织软件开发工作,这就是软件工程的由来。在软件工程中可将软件的生存周期分为6个阶段(传统生命周期,即瀑布模型)(1)计划(Planning)(2)需求分析(RequirementAnalysis)(3)设计(Design)(4)编码(Coding)(5)测试(Testing)(6)运行与维护(RunandMaintenance)5软件开发瀑布模型软件开发
4、瀑布模型6软件开发过程1.需求分析需求分析是根据客户的要求,清楚地了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。软件产品需求分析是软件开发过程的第一个环节,也是最重要的一个环节。如果需求分析做不好,下面的设计、编程做得再好,客户(用户)也不可能对开发出来的软件产品感到满意。软件产品需求分析的结果要文档化,而且这类文档的描述尽量不要用专业术语,从而使用户能够完全理解需求分析的结果,参与对其复审的过程。7软件开发过程2.设计软件设计是根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等。可以分为概要设计和详细设计,也可以分为数
5、据结构设计、软件体系结构设计、应用接口设计、模块设计、算法设计、界面设计等。设计过程将需求转换成软件表示,设计的结果将作为编码的框架和依据,以提高编码的效率和质量。设计的文档化体现在产品规格说明书(functionalspecification)、技术设计文档(developmentdesigndocument)和软件配置文档(softwareconfigurationdocument)。8软件开发过程3.编程经过需求分析、设计之后,接下来就是用一种或多种具体的编程工具(如VS.Net,JBuild、Eclipse、Delphi、PB等)进行编码,即将设计转换成计算机可读的形式。如果设计做得好
6、、做得仔细,编程就容易了。4.测试任何编程,免不了存在这样或那样的错误,所以有必要进行软件测试。测试过程集中于软件的内部逻辑保证所有语句都测试到,以及外部功能即引导测试去发现错误,并保证定义好的输入能够产生与预期结果相同的输出。测试按不同的过程阶段分为单元测试、集成测试、功能测试、系统测试、验证测试等。9软件开发过程5.维护从理论上,软件测试的覆盖率不可能做到百分之百,所以软件在交付给用户之后有可能存在某些问题,而且用户的需求会发生变化,特别是开始使用产品之后,对计算机系统有了真正的认识和了解,会提出适用性更好的、功能增强的要求。所以,软件交付之后不可避免地要进行修改、升级等。软件维护复杂、周
7、期长,其成本必然很高。通过提高软件的需求分析、设计和编程的质量,强化软件测试,可以大幅度降低软件的维护成本。10软件开发过程o软件开发模式软件开发模式是指从最初构想到公开交付发行软件的过程。n大棒模式或边写边改模式n瀑布模式n原型模式n快速应用(RAD)模式n螺旋模式n增量模式和跌代模式11大棒模式或边写边改模式o大棒模式优点是简单。几乎无计划。项目成员精力都花在开发软件和编写代码上。最终的软件产品是什么样不可知。o边写边改模式在大棒模式的基础上考虑了产品的要求。项目成员通常只有粗略的想法就进行简单的设计,然后开始漫长的编码、测试、修复。12大棒模式或边写边改模式o探索测试如果采用大棒模式或者
8、边写边改模式,就不会有作为测试依据的各类文档。尽管这对于软件测试员不是理想的状况,但是此时可以采用称为探索测试的解决方案。这需要把软件当产品说明书来对待。分步骤地逐项探索软件特性。记录软件执行情况,详细描述功能。在这种情况下,无法像有产品说明书那样完整测试软件-比如无法判定是否遗漏功能,但是可以进行系统测试。找到软件缺陷。另外,与同类型软件进行比较也是一个有效的方法。13软件开发模式-原型模型在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。一般步
9、骤如下:n(1)先定义软件的总体目标,根据已知的需求来规划出可实现的区域。n(2)然后是“快速设计”,集中于系统的总体框架、基本功能和直观的输入方式和输出格式等。n(3)有了原型,使客户对系统实现哪些具体功能、功能实现到什么程度有更好的理解。开发者可以边开发边评估,不断细化软件的需求,逐步调整原型使其满足客户的要求。这形成一个迭代的过程。14原型模型即使开始建立的原型过于简单或性能很差,难以使用,但为下一次建立适用的模型积累了经验,而浪费的成本、时间有限。原型模型的优点是使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。原型模型的缺点是产品的先天性不足,因为开发者常常需要做实现上
10、的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。15RAD模型oRAD模型RAD(rapapplicationdevelopment)模型,即快速应用开发模型。由于其模型构图形似字母“V”,故也称V模型,是属于线性顺序一类的软件开发模型。它通过使用基于构件的开发方法来缩短产品开发的周期,提高开发的速度。RAD模型实现的前提是能做好需求分析,并且项目范围明确,这一点正好和原型模型相反。16螺旋模型o螺旋模型,最早是由Boehm提出来的,是一个演化软件过程模型,它将原型的迭代特征与线性顺序模型中控制和系统化方面结合起来,使得软件增量版本的快速开发成为可能。在螺旋模型中,软件开
11、发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸上的模型或原型;在以后的迭代中,更加完善的被开发系统版本逐步产生。17增量模式和跌代模式o软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。n增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要的功能,然后,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。n迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分。先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能或完善已有
12、功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。18项目质量管理的概念项目质量管理的概念o产品产品: :过程的结果过程的结果o四类四类: :n硬件硬件: :有形产品有形产品, ,有计数的特性有计数的特性; ;n服务服务: :无形的无形的, ,并且是在供方和顾客接并且是在供方和顾客接触面上至少需要完成一项活动的结果触面上至少需要完成一项活动的结果n软件软件: :由信息组成由信息组成, ,通常是无形产品并通常是无形产品并可以方法可以方法 论文或程序的形式存在论文或程序的形式存在. .n流程性材料流程性材料: :有形产品有形产品, ,
13、有一定的连续有一定的连续性性. .19质量的定义质量的定义质量的定义质量的定义ISO8402-1994ISO8402-1994质量管理和质量保证术语中对质量管理和质量保证术语中对质量所下的定义是质量所下的定义是: : 质量是反映质量是反映实体实体( (产品、过程或活动等产品、过程或活动等) )满足满足明确和隐含需要的能力的特性总和。明确和隐含需要的能力的特性总和。20实体实体(entity, itementity, item): : “ “可单独描述和研究的事可单独描述和研究的事物物” ” ,实体可以是活动或过程,可以是产品,可以,实体可以是活动或过程,可以是产品,可以是组织、体系或人,也可以
14、是上述各项的任何组合。是组织、体系或人,也可以是上述各项的任何组合。需求需求( requirements)( requirements) : : 包括包括“明确需要明确需要”和和“隐隐含需要含需要”。 21 为使为使“需求需求”可以实际运用,一般应将其转化可以实际运用,一般应将其转化为质量要求。所谓质量要求,是指为质量要求。所谓质量要求,是指“对需要的表述对需要的表述或将需要转化为一组对实体特性的定量或定性的规或将需要转化为一组对实体特性的定量或定性的规定要求,以使其实现并进行考核定要求,以使其实现并进行考核”。22q 质量不仅包括活动或过程的结果,还包括它们形成和实现的质量不仅包括活动或过程
15、的结果,还包括它们形成和实现的活动及过程本身;活动及过程本身;q 质量不仅包括产品质量,还包括它们形成和实现过程中的工质量不仅包括产品质量,还包括它们形成和实现过程中的工作质量;作质量;q 质量不仅要满足顾客的需要,还要满足社会的需要,并使顾质量不仅要满足顾客的需要,还要满足社会的需要,并使顾客、从业人员、业主、供方和社会都收益;客、从业人员、业主、供方和社会都收益;(stakeholder, (stakeholder, 受受益者益者) )q 质量问题不仅存在于工业,还存在于服务业及其他各行各业。质量问题不仅存在于工业,还存在于服务业及其他各行各业。产品质量产品质量服务质量服务质量过程质量过程
16、质量工作质量工作质量质量质量23产品质量产品质量产品质量产品质量产品质量是指产品能够满足使用要求所具备的特性。一般包产品质量是指产品能够满足使用要求所具备的特性。一般包括括性能性能、寿命寿命、可靠性可靠性、安全性安全性、经济性经济性以及以及外观质量外观质量等。等。产品质量的概念,在不同历史时期有不同的要求。随着生产产品质量的概念,在不同历史时期有不同的要求。随着生产力发展水平不同和由于各种因素的制约,人们对产品质量会力发展水平不同和由于各种因素的制约,人们对产品质量会提出不同的要求。提出不同的要求。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量24服务质量服务质量服务
17、质量服务质量服务质量服务质量是指服务满足明确和隐含需要的能力的特性总和。是指服务满足明确和隐含需要的能力的特性总和。定义中的定义中的服务服务,主要指服务性行业提供的服务,如交通运输、,主要指服务性行业提供的服务,如交通运输、邮电、商业、金融保险、饮食、宾馆、医疗卫生、文化娱乐、邮电、商业、金融保险、饮食、宾馆、医疗卫生、文化娱乐、仓储、咨询、法律等组织提供的服务。由于服务含义的延伸,仓储、咨询、法律等组织提供的服务。由于服务含义的延伸,有时也包括工业产品的售前、售中和售后服务,以及企业内有时也包括工业产品的售前、售中和售后服务,以及企业内部上道工序对下道工序的服务。部上道工序对下道工序的服务。
18、反映服务质量要求的质量特性主要有功能性、经济性、安全反映服务质量要求的质量特性主要有功能性、经济性、安全性、时间性、舒适性和文明性。性、时间性、舒适性和文明性。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量25过程质量过程质量过程质量过程质量过程过程是指是指“将输入转化为输出的一组彼此相关的资源和活动将输入转化为输出的一组彼此相关的资源和活动”。其中资源可包括人员、资金、设施、设备、技术和方法。其中资源可包括人员、资金、设施、设备、技术和方法。过程质量过程质量,是指过程满足明确和隐含需要的能力的特性之总,是指过程满足明确和隐含需要的能力的特性之总和。和。过程质量过程质
19、量,可分为,可分为开发设计过程质量开发设计过程质量、制造过程质量制造过程质量、使用使用过程质量过程质量与与服务过程质量服务过程质量四个子过程的质量。四个子过程的质量。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量26工作质量工作质量工作质量工作质量工作质量工作质量,是指与质量有关的各项工作对产品质量、服务质,是指与质量有关的各项工作对产品质量、服务质量、过程质量的保证程度。量、过程质量的保证程度。产品质量产品质量服务质量服务质量过程质量过程质量工作质量工作质量质量质量27质量特性的概念:质量特性的概念:质量特性:产品或服务满足人们明确或隐含需求的能质量特性:产品或服务
20、满足人们明确或隐含需求的能力、属性和特征的总和。力、属性和特征的总和。28质量内涵:质量内涵: 内在质量特性:在产品或服务的持续使用中体现出来的特内在质量特性:在产品或服务的持续使用中体现出来的特性(产品的特性、性能、强度、精度等)性(产品的特性、性能、强度、精度等) 外在质量特性:在产品或服务外在表现方面的属性和特性外在质量特性:在产品或服务外在表现方面的属性和特性(产品外形、包装、色泽、味道等)(产品外形、包装、色泽、味道等) 经济质量特性:与产品或服务的购买和使用成本有关的特经济质量特性:与产品或服务的购买和使用成本有关的特性(产品的寿命、成本、价格、运营费等)性(产品的寿命、成本、价格
21、、运营费等) 商业质量特性:与产品或服务提供企业承诺的各种商业责商业质量特性:与产品或服务提供企业承诺的各种商业责任有关的特性(产品的保质期、保修期、售后服务水平等)任有关的特性(产品的保质期、保修期、售后服务水平等) 环保质量特性:与产品或服务对环境的影响有关的特性环保质量特性:与产品或服务对环境的影响有关的特性29质量的决定因素:质量的决定因素:质量的决定因素:质量的决定因素:一件产品或一项服务能否成功地完成它预定的使命一件产品或一项服务能否成功地完成它预定的使命取决于四个主要因素取决于四个主要因素, ,它们是它们是: :(1) (1) 设计质量:设计质量:设计人员对产品或服务的一些性能所
22、做出的设计人员对产品或服务的一些性能所做出的接受或拒绝的选择接受或拒绝的选择。(2) (2) 质量符合设计的程度:质量符合设计的程度:产品或服务符合产品或服务符合( (即实现即实现) )设计人设计人员意图的程度员意图的程度。(3) (3) 便于使用。便于使用。(4) (4) 售后服务。售后服务。30戴明:戴明:戴明:戴明:W.E. DemingW.E. DemingW.E. DemingW.E. Deming戴明总结出戴明总结出1414条质量管理原则,他认为一个公司要想使其产条质量管理原则,他认为一个公司要想使其产品达到规定的质量水平必须遵循这些原则。品达到规定的质量水平必须遵循这些原则。主要
23、观点主要观点是引起效率低下和不良质量的原因在公司的管理系是引起效率低下和不良质量的原因在公司的管理系统而不在职员。部门经理的责任就是要不断调整管理系统以统而不在职员。部门经理的责任就是要不断调整管理系统以取得预期的结果。取得预期的结果。戴明还强调了减少质量波动戴明还强调了减少质量波动( (与一定标准之间的偏差与一定标准之间的偏差) )的必要的必要性。要减少质量波动,就需要辨别引起波动的特殊原因性。要减少质量波动,就需要辨别引起波动的特殊原因( (即即可纠正的原因可纠正的原因) )和共同原因和共同原因( (即随机原因即随机原因) )。质量管理专家质量管理专家 戴明戴明31戴明戴明戴明戴明1414
24、1414条原则的核心:条原则的核心:条原则的核心:条原则的核心:目标不变、持续改善和知识渊博;目标不变、持续改善和知识渊博;知识渊博包括知识渊博包括(1 1)以所在公司为荣;()以所在公司为荣;(2 2)掌握质量波动的)掌握质量波动的原理;(原理;(3 3)知识体系;()知识体系;(4 4)心理学原理;)心理学原理;戴明知识渊博的概念使得日本成为世界经济强国的好学信条戴明知识渊博的概念使得日本成为世界经济强国的好学信条和价值观具体化了和价值观具体化了 戴明戴明1414条原则的核心条原则的核心32朱兰:朱兰:朱兰:朱兰: Juran Juran Juran Juranq 朱兰视质量为适用性(朱兰
25、视质量为适用性(Fitness for useFitness for use)。)。q 认为通过管理可以控制大约认为通过管理可以控制大约80%80%的质量缺陷的发生。的质量缺陷的发生。q 包含质量计划、质量控制和质量改进的质量三元论的思想包含质量计划、质量控制和质量改进的质量三元论的思想来描述质量管理来描述质量管理。根据朱兰的观点根据朱兰的观点, ,为建立有能力满足质量标准的工作程序,为建立有能力满足质量标准的工作程序,质量计划是必要的。为了掌握何时采取必要措施纠正质量问质量计划是必要的。为了掌握何时采取必要措施纠正质量问题就必须实施质量控制。质量改进有助于发现更好的管理工题就必须实施质量控制
26、。质量改进有助于发现更好的管理工作方式。作方式。管理就是不断改进工作是朱兰理论的一个核心管理就是不断改进工作是朱兰理论的一个核心。朱。朱兰被确认为第一个提出计算质量成本的质量管理专家。他解兰被确认为第一个提出计算质量成本的质量管理专家。他解释了如果不良质量的成本可以降低的话,那么就有可能增加释了如果不良质量的成本可以降低的话,那么就有可能增加公司利润。公司利润。质量管理专家质量管理专家 朱兰朱兰33费根鲍姆:费根鲍姆:费根鲍姆:费根鲍姆: Armand Feigenbaum Armand Feigenbaum Armand Feigenbaum Armand Feigenbaum前通用电器生产
27、和质量控制经理前通用电器生产和质量控制经理,他因提出他因提出把质量责任推广把质量责任推广到生产领域以外到生产领域以外而在质量运动中闻名。而在质量运动中闻名。在推行在推行“缺陷成本缺陷成本”方法方面起重要作用。根据这一方法,方法方面起重要作用。根据这一方法,管理应服从于质量。管理应服从于质量。 质量管理专家质量管理专家 费根鲍姆费根鲍姆341.1.全面质量控制是一个在公司内部使质量标准制定、维持和改进全面质量控制是一个在公司内部使质量标准制定、维持和改进集成于一体的系统。公司应该能够使工程部、生产部和服务部门集成于一体的系统。公司应该能够使工程部、生产部和服务部门共同发挥作用共同发挥作用, ,在
28、达到用户满意的同时实现最佳经济目标;在达到用户满意的同时实现最佳经济目标;2.2.质量控制的质量控制的“控制控制”方面应该包括制定质量标准、评价与这些方面应该包括制定质量标准、评价与这些标准有关的行为、当没有达到预定标准时采取纠正措施以及制定标准有关的行为、当没有达到预定标准时采取纠正措施以及制定改进质量标准计划;改进质量标准计划;3.3.影响质量的因素可分为两大类影响质量的因素可分为两大类: :技术性的和人为的。人为的因素技术性的和人为的。人为的因素更为重要;更为重要;4.4.质量成本可被分为四类质量成本可被分为四类: :预防成本、鉴定成本、外部损失成本和预防成本、鉴定成本、外部损失成本和内
29、部损失成本;内部损失成本;5.5.重要的是要控制源头质量重要的是要控制源头质量费根鲍姆质量控制基本原理要点费根鲍姆质量控制基本原理要点35质量管理的基本概念:质量管理的基本概念:质量管理的基本概念:质量管理的基本概念:古津进的定义:古津进的定义:古津进的定义:古津进的定义:向消费者或顾客提供高质量产品与向消费者或顾客提供高质量产品与向消费者或顾客提供高质量产品与向消费者或顾客提供高质量产品与服务的一项活动服务的一项活动服务的一项活动服务的一项活动。这种产品和服务必须保证满足需。这种产品和服务必须保证满足需。这种产品和服务必须保证满足需。这种产品和服务必须保证满足需求、价格便宜和供应及时。求、价
30、格便宜和供应及时。求、价格便宜和供应及时。求、价格便宜和供应及时。定义说明:定义说明:定义说明:定义说明:质量管理目的:向消费者或顾客提供高质量产质量管理目的:向消费者或顾客提供高质量产质量管理目的:向消费者或顾客提供高质量产质量管理目的:向消费者或顾客提供高质量产品与服务品与服务品与服务品与服务目标和作用:使产品和服务达到三项要求,即目标和作用:使产品和服务达到三项要求,即目标和作用:使产品和服务达到三项要求,即目标和作用:使产品和服务达到三项要求,即满足需求、价格便宜和供应及时满足需求、价格便宜和供应及时满足需求、价格便宜和供应及时满足需求、价格便宜和供应及时36质量管理定义:质量管理定义
31、:质量管理定义:质量管理定义:ISO8402ISO8402一一19941994(质量管理和质量保证术语)对质(质量管理和质量保证术语)对质量管理的定义是:量管理的定义是:质量管理是确定质量方针、目标质量管理是确定质量方针、目标和职责,并在质量体系中通过诸如质量策划、质量和职责,并在质量体系中通过诸如质量策划、质量控制、质量保证和质量改进使其实施的全部管理职控制、质量保证和质量改进使其实施的全部管理职能的所有活动。能的所有活动。37质量管理定义:质量管理定义:质量管理定义:质量管理定义:质量管理是各级管理者的职责质量管理是各级管理者的职责, ,但必须由最高管理者领导。但必须由最高管理者领导。质量
32、管理的实施涉及到组织中的所有成员。质量管理的实施涉及到组织中的所有成员。在质量管理中要考虑到经济性因素。质量管理是企业管理在质量管理中要考虑到经济性因素。质量管理是企业管理的重要组成部分的重要组成部分, ,是企业管理职能中的重要职能。企业一般是企业管理职能中的重要职能。企业一般包括经营决策、计划、生产、技术、质量、劳资、供应、销包括经营决策、计划、生产、技术、质量、劳资、供应、销售、销后服务、成本财务等管理部门。质量管理处于重要的售、销后服务、成本财务等管理部门。质量管理处于重要的地位地位, ,我国有关领导人提出我国有关领导人提出:“:“企业管理应以质量管理为纲企业管理应以质量管理为纲,质量管
33、理带动、推动和联系其它部门完成企业生产经营活动质量管理带动、推动和联系其它部门完成企业生产经营活动的任务。的任务。38质量方针:指由组织的最质量方针:指由组织的最高管理者正式发布的该组织高管理者正式发布的该组织总的质量宗旨和方向。总的质量宗旨和方向。质量目标:在质量方面所质量目标:在质量方面所追求的目的,是对质量方针追求的目的,是对质量方针的展开。的展开。质量管理的术语和内涵:质量管理的术语和内涵:质量管理的术语和内涵:质量管理的术语和内涵:39质量策划:是质量管理的一部分,致力于制定质量目标质量策划:是质量管理的一部分,致力于制定质量目标并规定必要的运行过程和相关资源以实现质量目标。并规定必
34、要的运行过程和相关资源以实现质量目标。包括:质量管理体系策划、产品实现策划以及过程运行包括:质量管理体系策划、产品实现策划以及过程运行策划。质量计划是策划的结果之一。最终的目的是满足策划。质量计划是策划的结果之一。最终的目的是满足顾客要求。顾客要求。质量控制:致力于满足质量要求。包括设定标准、测量质量控制:致力于满足质量要求。包括设定标准、测量结果、判定、采取措施。结果、判定、采取措施。40质量保证:致力于提供质量要求会得到满足的信质量保证:致力于提供质量要求会得到满足的信任。任。质量改进:致力于增强满足质量要求的能力。质量改进:致力于增强满足质量要求的能力。Im trying! 41质量管理
35、的任务:质量管理的任务:q 正确制订和贯彻执行质量方针和政策正确制订和贯彻执行质量方针和政策; ;q保证和提高产品质量和服务质量保证和提高产品质量和服务质量, ,生产出物美价廉生产出物美价廉的产品的产品, ,q以满足用户需要以满足用户需要; ;q不断降低物质消耗不断降低物质消耗, ,降低质量成本和提高经济效益降低质量成本和提高经济效益; ;q提高领导和职工的质量意识和素质提高领导和职工的质量意识和素质, ,促进企业素质促进企业素质和管理水平的提高和管理水平的提高; ;q研究和发展质量理论和质量科学。研究和发展质量理论和质量科学。42项目质量的概念项目质量的概念 o项目的质量项目的质量( (双重
36、性:产品质量,服务质量双重性:产品质量,服务质量) )n从项目作为一次性的活动来看,项目质量体现在从项目作为一次性的活动来看,项目质量体现在由由WBSWBS反映出的项目范围内所有的阶段、子项目、反映出的项目范围内所有的阶段、子项目、项目工作单元的质量所构成,也即项目工作单元的质量所构成,也即项目的工作质项目的工作质量量;n从项目作为一项最终产品来看,项目质量体现在从项目作为一项最终产品来看,项目质量体现在其性能或者使用价值上,也即其性能或者使用价值上,也即项目的产品质量项目的产品质量。o项目是应业主项目是应业主/ /客户的要求进行的客户的要求进行的, ,不同的业主不同的业主/ /客户客户有着不
37、同的质量要求,其意图已反映在项目合同中。有着不同的质量要求,其意图已反映在项目合同中。因此,因此,项目合同是进行项目质量管理的主要依据项目合同是进行项目质量管理的主要依据。43项目质量管理的概念:项目质量管理的概念:为保障项目产出物能够满足项目业主、客户以及项目为保障项目产出物能够满足项目业主、客户以及项目其他相关利益者的需要,所开展的对于项目产出物质其他相关利益者的需要,所开展的对于项目产出物质量和项目工作质量的量和项目工作质量的全面管理工作全面管理工作。包括:包括:项目质量方针的确定项目质量方针的确定项目质量方针的确定项目质量方针的确定项目质量目标和质量责任的制定项目质量目标和质量责任的制
38、定项目质量目标和质量责任的制定项目质量目标和质量责任的制定项目质量体系的建设项目质量体系的建设项目质量体系的建设项目质量体系的建设为实现项目质量目标所开展的项目质量计划、项为实现项目质量目标所开展的项目质量计划、项为实现项目质量目标所开展的项目质量计划、项为实现项目质量目标所开展的项目质量计划、项目质量控制和项目质量保障等一系列质量管理工目质量控制和项目质量保障等一系列质量管理工目质量控制和项目质量保障等一系列质量管理工目质量控制和项目质量保障等一系列质量管理工作作作作44项目质量管理的思想:项目质量管理的思想:全面质量管理的思想全面质量管理的思想- -质量管理的全员性、全质量管理的全员性、全
39、过程性、全要素性。过程性、全要素性。项目质量管理的几个重要理念:项目质量管理的几个重要理念:使顾客满意是项目质量管理的目的使顾客满意是项目质量管理的目的项目质量是干出来的,不是检验出来的项目质量是干出来的,不是检验出来的项目质量管理的责任是全体团队成员的项目质量管理的责任是全体团队成员的项目质量管理的关键是不断监控和改进项目质量管理的关键是不断监控和改进项目质量确定与项目质量实施项目质量确定与项目质量实施项目质量等级与项目质量好坏项目质量等级与项目质量好坏45ISO10006ISO10006国际项目质量管理标准:国际项目质量管理标准: 国际标准国际标准ISO10006ISO10006是由是由I
40、SOISOTCl76TCl76SC2SC2国际标准化组织国际标准化组织质量管理和质量保证技术委员会质量体系分委员会制定的,这质量管理和质量保证技术委员会质量体系分委员会制定的,这一文件是一文件是19971997年年1212月发布的,文件的全称是:月发布的,文件的全称是:质量管理质量管理项项目质量管理指南目质量管理指南。该文件分为两个部分,一个是。该文件分为两个部分,一个是主文件主文件部分部分,另有三个附件。其中主文件部分的核心内容包括三个部分,另有三个附件。其中主文件部分的核心内容包括三个部分,其一是该标准所涉及的范围和所引用的标准及其相关定义,其其一是该标准所涉及的范围和所引用的标准及其相关
41、定义,其二是有关项目特征的说明,其三是项目管理过程中的质量规范。二是有关项目特征的说明,其三是项目管理过程中的质量规范。第二部分是第二部分是主要内容主要内容,它包括了项目策划、集成管理、范围管,它包括了项目策划、集成管理、范围管理、时间管理、成本管理、资源管理、组织与人力资源管理、理、时间管理、成本管理、资源管理、组织与人力资源管理、沟通管理、风险管理、采购管理等各方面质量保障与质量控制沟通管理、风险管理、采购管理等各方面质量保障与质量控制方面的规定。方面的规定。46ISO10006标准的内容:本标准的适用范围本标准引用的标准条款相关的定义项目的特性项目过程中的质量管理总结项目经验 47软件质
42、量的概念o软件质量的定义o软件质量模型48软件质量的定义软件质量的定义o1.软件质量的定义1)ANSI/IEEEStd729-1983定义软件质量为:“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。2)M.J.Fisher将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合。”3)GB/T6583ISO8402(1994)定义软件质量为:“反映实体满足明确和隐含需要的能力和特性总和”也就是说,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中
43、得到满足,则这个软件产品质量就是高的。49软件质量的定义软件质量的定义o软件质量反映了以下三方面的问题:n软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。n规范化的标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。n往往会有一些隐含的需求没有显式地提出来。如软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。50软件质量的定义o2.软件质量特性软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。而定义一个软件的质量,就等价于为该软件
44、定义一系列质量特性。51软件质量的定义通常,软件质量可由以下主要特性来定义:(1)功能性:软件所实现的功能达到它的设计规范和满足用户需求的程度;(2)效率:在规定条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度;(3)可靠性:在满足一定条件的应用环境中,软件能够正常维持其工作的能力;(4)安全性:为了防止意外或人为的破坏,软件应具备的自身保护能力能力;52软件质量的定义(6)可维护性:当环境改变或软件运行发生故障时,为了使其恢复正常运行所做努力的程度;(7)可扩充性:在功能改变和扩充情况下,软件能够正常运行的能力;(8)可移植性:为使一个软件从现有运行平台向另一个运行平台过度所
45、做努力的程度(9)重用性:整个软件或其中一部分能作为软件包而被再利用的程度。53软件质量的定义o3.软件生存期与质量特性从用户的角度看,软件的生存期可分为如下三个阶段:1)初期运用:运行新开发的软件产品。2)维护与扩充:在运行过程中修改缺欠的内容;而且,为了进一步的使用,需根据运行环境(主要指应用环境和技术环境)的变化做功能上和性能上的扩充。3)移植和连接:把在原有平台上运行的软件向其它新的运行环境转移、或者组成软件包以便重用、或与其它软件进行连接。54软件质量的定义o对于软件所需求的质量特性,在软件生存期的不同阶段中情况各有不同,要求也不一样,这可由下图说明。Back 55软件质量模型o所谓
46、质量模型是指提供声明质量需求和评价质量基础的特性以及特性之间关系的集合。换句话说质量模型是用来描述质量需求以及对质量进行评价的理论基础。o早在1976年,由Boehm等提出软件质量模型的分层方案。1979年McCall等人改进Boehm质量模型又提出了一种软件质量模型。模型包括质量要素(factor)、准则(criteria)和度量(metric)三层次。如图所示。特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的优劣。56软件质量模型McCall质量度量模型框要素(特性)评价准则评价准则评价准则度量度量度量面向管理观点的产品质量决定产品质量的软件属性定量化地度量
47、软件属性57软件质量模型o软件质量要素直接影响软件开发过程各个阶段的产品质量。o由于对软件质量理解的不断深化,软件质量要素不是一成不变的。oMcCall等人给出的软件质量要素共11个,分为三类,分别面向软件产品的运行、修正、转移。它们与特性的关系如图所示。58软件质量模型产品修正产品转移产品运行可维护性测试性灵活性互联性可移植性复用性正确性可靠性可使用性效率完整性McCall软件质量模型59软件质量模型o正确性:正确性:在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。o可靠性:可靠性:软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。o效率:效率:为了完
48、成预定功能,软件系统所需的计算机资源的多少。o完整性:完整性:为了某一目的而保护数据,避免它受到偶然的,或有意的破坏、改动或遗失的能力。o可使用性:可使用性:对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。60软件质量模型o可维护性:可维护性:为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。o可测试性:可测试性:测试软件以确保其能够执行预定功能所需工作量的大小。o灵活性:灵活性:修改或改进一个已投入运行的软件所需工作量的大小。61软件质量模型o可移植性:可移植性:将一个软件系统从一个计算
49、机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。o复用性:复用性:一个软件(或软件的部件)能再次用于其它应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。o互连性:互连性:连接一个软件和其他系统所需工作量的大小。如果这个软件要联网,或与其他系统通信,或要把其他系统纳入到自己的控制之下,必须有系统间的接口,使之可以联结。互连性很重要。它又称相互操作性。62软件质量模型o通常,对以上各个质量特性直接进行度量是很困难的,在有些情况下甚至是不可能的。因此,McCall定义了一组比较容易度量的软件质量要素评价准则,使用它们对反映质量特性的软件属性分级,以此来估计软件质量
50、特性的值。o定义评价准则的关键是确定影响软件质量要素的属性。这些属性必须满足 比较完整、准确的描述软件质量要素; 比较容易量化和测量,能够反映软件质量的优劣。oMcCall定义的软件质量要素评价准则共21种,它们是:63McCall软件质量要素评价准则1.可审查性(Auditability):检查软件需求、规格说明、标准、过程、指令、代码及合同是否一致的难易程度。2.准确性(Accuracy):计算和控制的精度,最好表示成相对误差的函数,值越大表示精度越高。3.通信通用性(CommunicationCommonality):使用标准接口、协议和频带的程度。4.完全性(Completeness)
51、:所需功能完全实现的程度。5.简明性(Conciseness):程序源代码的紧凑性。6.一致性(Consistency):设计文档与系统实现的一致性。 7.数据通用性(DataCommonality):在程序中使用标准的数据结构和类型。8.容错性(Errortolerance):系统在各种异常条件下提供继续操作的能力64McCall软件质量要素评价准则9.执行效率(ExecutionEfficiency):程序运行效率。10.可扩充性(Expandability):能够对结构设计、数据设计和过程设计进行扩充的程度11.通用性(Generality):程序部件潜在的应用范围的广泛性12.硬件独立
52、性(HardwareIndependence):软件同支持它运行的硬件系统不相关的程度。13.检测性(Instrumentation):监视程序的运行,一旦发生错误时,标识错误的程度。14.模块化(Modularity):程序部件的功能独立性。65McCall软件质量要素评价准则15.可操作性(Operability):操作一个软件的难易程度。16.安全性(Security):控制或保护程序和数据不受破坏的机制,以防止程序和数据受到意外的或蓄意的存取、使用、修改、毁坏或泄密。17.自文档化(Self-documentation):源代码提供有意义文档的程度。18.简单性(Simplicity)
53、:理解程序的难易程度。19.软件系统独立性(Software System Independence):程序与非标准的程序设计语言特征、操作系统特征、以及其他环境约束无关的程度。20.可追踪性(Tracebility):对软件进行正向和反向追踪的能力。21.易培训性(Training):软件支持新用户使用该系统的能力。66计算软件质量要素软件质量要素Fj的值可用下式计算LFjCjkMkj=1,2,.,11.k=1其中 Mk是软件质量要素Fj对第k种评价准则的测量值Cjk是相应的加权系数McCall定义的评价准则多数都没有客观的测量方法,只能凭主观印象为评价准则定值。 McCall将评价准则分为
54、0-10级。0级最低,10级最高。 Mk的取值是 0,0.1,0.2,1.067质量要素与评价准则(1/2) 要素 关系 准则正确性可靠性有效性完整性可维护可测试可移植可重用互操作可用性灵活性可审查性VV准确性V通信通用性V完全性V简明性VVV一致性VVVV数据通用性V容错性V执行效率V可扩充性V通用性VVVV68质量要素与评价准则(2/2) 要 素 关 系 准 则正确性可靠性有效性完整性可维护可测试可移植可重用互操作可用性灵活性硬件独立性VVVV检测性VVV模块化VVVVVVV可操作性VV安全性V自文挡化VVVVV简单性VVVV软件独立性VV可追踪性V易培训性V69McCall软件质量要素评
55、价准则oMcCall软件质量度量模型为软件质量管理奠定了基础o模型由软件质量要素和评价准则组成o加权系数Cjk满足Cjk1 其中 Cjk0当质量要素Fj与k项评价准则无关时,Cjk=0oMcCall评价准则项数 L=2170软件质量模型oISO软件质量度量模型1985年国际标准化组织(ISO)建议,软件质量度量模型由三层组成。1.高层称软件质量需求评价准则(SQRC);2.中层称软件质量设计评价准则(SQDC);3.低层称软件质量度量评价准则(SQMC)。 分别对应McCall等人的要素、评价准则和度量。ISO认为应对高层和中层建立国际标准,以便在国际范围内推广软件质量管理,而低层可由各单位自
56、行制定。ISO高层由8个要素组成、中层由23个评价准则组成。它们之间的关系如表所示。71ISO的质量要素与评价准则(1/2)要素关系准则正确性可容性有效性安全性可用性可维护灵活性互操作可追踪性V完全性V一致性VVV准确性V容错性V简单性VV模块化VV通用性V可扩充性V检测性V自描述性VV72ISO的质量要素与评价准则(2/2)要素关系准则正确性可容性有效性安全性可用性可维护灵活性互操作执行效率V存储效率V存取控制V存取审查V可操作性V易培训性V通信性V软件独立性V硬件独立性V通信通用性V数据通用性V简明性V73软件质量模型n1991年,ISO发布了ISO/IEC9126质量特性的国际标准,将质
57、量特性降为6个,即功能性、可靠性、可维护性、效率、可使用性、可移植性,并定义了21个子特性。1991年发布的ISO/IEC9126标准现在被分为了两部,ISO/IEC9126(软件产品质量)和ISO/IEC14598(软件产品评价)。74软件质量模型75软件质量特性之间的竞争在软件的质量特性与质量特性之间、质量特性与质量子特性之间存在着有利的影响和不利的影响。例如,由于效率的要求,应尽可能采用汇编语言。但是用汇编语言编制出的程序,可靠性、可移植性以及可维护性都很差。因此在系统设计过程中应根据具体情况对各种要素的要求进行折衷,以便得到在总体上用户和系统开发人员都满意的质量标准。质量要素之间的关系
58、表76软件质量特性之间的竞争77软件质量的度量和评价o软件质量的度量是软件属性的量化,是经验关系系统到数值关系系统的一种映射。软件质量特性度量有两类:预测型和验收型。n预测度量是利用定量的或定性的方法,对软件质量的评价值进行估计,以得到软件质量的比较精确的估算值。它是用在软件开发过程中的。o尺度度量:这是一种定量度量。它适用于一些能够直接度量的特性,一般它作为相对量进行度量。如可靠性度量、复杂度度量、缺陷度量和规模度量等。o二元度量:这是一种定性度量。它适用于一些只能间接度量的特性。n验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它可以看成是对预测度量的一种确
59、认,是对开发过程中的预测进行评价。78软件质量的度量和评价o软件质量度量的实施在确定要对一个软件(系统)进行度量之后,一般,采取以下几个步骤,来实施对该软件的度量:(1)确定软件质量需求;在用户需求中,除功能需求外,还有非功能需求,包括:质量需求、环境需求、设计约束、开发策略等。质量需求是用户比较关心的内容。但是,我们已经知道,软件的功能需求的确定,存在一定的难度。而非功能需求的确定,则难度更大。这些困难包括:需求如何获取,需求冲突如何协调、需求的确认和变更的授权等。过程:需求获取:首先,你要理解用户的需求,区分哪些是质量需求,把这些需求记录下来,获得用户的确认。需求分析:拿到用户确认的需求后
60、,你可以开始把用户的质量需求与我们设定的质量特性联系起来,一直区分到子特性。这种联系,就是把用户语言描述的需求,转变为计算机工程师语言的需求。建立了这种关联后,可以根据分类,分级,确定直接度量。79软件质量度量的实施(2)确定直接度量直接度量就是实际的软件质量测量活动,它的输入是软件或软件过程,输出是一个测量值。它通过执行一系列的任务,获得一个质量值。例如:对一个没有经过培训的用户,让他使用软件系统的某一功能,在界面提示、联机帮助、使用手册的帮助下,他学会掌握该功能所花的时间。而用户需求对此项指标的要求(目标)和现实系统所达到的实际值(比如:10个人次测量后统计意义上的)的比较,就是将提交质量
61、评审的质量值。在进行直接度量前,你应该有以下准备:(1)工具:有助于计算度量值的硬件/软件工具,如:缺陷跟踪工具;(2)应用:描述度量结果的希望值、度量值的意义、作用和对度量结果数据的使用方法;(3)数据:获得度量结果所需的数据、程序、过程等度量对象;(4)计算:度量程序、步骤和方法。(5)费用:测试是要花钱(人力、物力、时间等)的。80软件质量度量的实施(3)分析度量结果对度量过程进行跟踪和分析,需要时,可能会对度量程序、度量工具、度量方法,甚至原始数据,做出补充和调整。(4)确认质量度量在度量过程中,进行度量结果的确认非常重要。首先,要确认度量过程是否与事实相符,脱离现实真实的度量,与目标
62、再相符的结果也是没有意义的。其次,是确认方法的有效性,例如:在度量中,我们用到很多统计学方法,在这些方法中,我们有一些概率分布假设(例如:某些错误的发生,我们假设符合随机概率分布),当这些假设并不成立时,度量的结果是不真实的。81软件质量的度量和评价o软件质量评价定量地评价软件的质量,目前还不能精确地做到。一般采取由若干(610)位软件专家进行打分来评价。这些软件专家应是富有实际经验的项目带头人。软件质量评价分两步走。(1)评分对每一阶段要达到的质量指标(质量特性目标值或标准)详细开列/建立度量工作表,在表中,以提问题方式,列出在某一阶段为实现某一质量指标,应达到什么标准。所以它也可称为检查表
63、。特别地,有些检查表是针对子系统或模块的。为了回答度量工作表上的问题,必须积累原始资料。最重要的原始资料是在软件定义与开发的各个阶段提供的文档。其次是在开发过程中积累的各种数据,特别是对出错数据的记录。评分主要是依据软件实际成果进行的、由于软件使用环境不同,使用目的不同,各人打分会有一定差别。(2)分析结果根据评分的结果,对照评价指标,检查某个质量特性是否达到了要求的质量标准。如果某个质量特性不符合规定的标准,就应当分析这个质量特性,找出为什么达不到标准的原因。分析原因应该自顶向下进行。按系统级、子系统级、模块级逐步分析。82四层模型o四层模型软件质量的度量关键是要定出评定质量的指标和评定优劣
64、的标准。有一种四层模型,第一层是第一层是软件产品质量软件产品质量( (质量需质量需求求) ),第二层是质量特性,第三层是质量子特性,第四层第二层是质量特性,第三层是质量子特性,第四层是度量指标。是度量指标。n软件产品质量层(质量需求):是产品必须满足的质量需求。它是用用户术语描述的,主要有四点:(1)产品将在用户所在组织当前使用的平台和操作系统上运行。(2 2)产品将是可靠的并能防止数据丢失的机制。(3 3)产品将提供完成某些任务所必需的功能。(4 4)产品将易于使用。83四层模型n质量特性:表示与整个质量需求有关的特殊质量特性,它代表了用户的质量需求。它采用从用户角度考虑的立场,把软件质量分
65、解成四类质量特性,这四个质量特性是软件的基本特征。 IEEE的四个质量特性是:可移植性、可靠性、功能性、可使用性。o可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时能继续运行的程度。o功能性:软件所实现的功能满足用户需求的程度功能性反映了所开发的软件满足用户指明的或隐含的需求的程度,即用户要求的功能是否全部实现了。o可移植性:从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。o易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的
66、友善性,即用户在使用本软件时是否方便。84四层模型质量需求质量特性质量子特性直接度量度量描述(例子)产品将在多平台和当前用户正在使用的操作系统上运行可移植性硬件独立性硬件依赖性计算硬件的依赖性软件独立性软件依赖性计算软件的依赖性易安装性安装时间测量安装时间可重用性能够用于其他应用软件中计算能够或已经应用于其他软件系统的模块数量产品将是可靠的并能提供防止数据丢失的机制可靠性无缺陷性测试覆盖测量测试覆盖度审查覆盖计算已做过的代码审查模块容错性数据完整性统计用户数据被破坏情况数据恢复测量恢复被破坏的数据的能力可用性软件可用的百分比软件可用时间除以总的软件使用时间85产品将提供完成某些任务所必需的功能
67、功能性完备性测试覆盖计算调用或分支测量覆盖正确性缺陷密度计算每一版本发布前的缺陷安全性数据安全性统计用户数据被破坏的情况用户安全性没有被阻止的非法用户入侵数兼容性环境变化软件安装后必须修改的环境变量数量互操作性混合应用环境下软件的可操作性混合应用环境下可正确运行的数量产品将易于使用可使用性易理解性学习所用时间新用户学习软件特性所花费的时间易学性学习所用时间新用户学会操作软件提供的基本功能所花费的时间易操作性人的因素新用户基于人类工程学对软件消极方面的评价数量沟通性人的因素新用户基于人类工程学对软件消极方面的评价数量质量需求质量特性质量子特性直接度量度量描述(例子)四层模型Back 86软件质量
68、管理o基本概念o软件质量管理的主要活动o软件质量管理的内容o软件质量标准简介o软件文件标准与规范87软件质量管理的基本概念o质量管理体系为实施质量管理所需的组织结构,程序、过程和资源。n组织结构:组织为行使其职能按某种方式建立的职责、权限及其相互关系。n程序:为进行某项活动所规定的途径。1在很多情况下,程序可形成文件如质量体系程序。2程序形成文件时,通常称之为“书面程序”或“文件化程序”。3书面或文件化程序中通常包括活动的目的和范围;做什么和谁来做,何时、何地和如何做;应使用什么材料、设备和文件;如何对活动进行控制和记录。n过程:将输入转化为输出的一组彼此相关的资源和活动。n资源:可包括人员、
69、资金、设施、设备、技术和方法。对于质量管理体系:1质量体系的内容应以满足质量目标的需要为准。2一个组织的质量体系主要是为满足该组织内部管理的需要而设计的。它比特定顾客的要求要广泛。顾客仅仅评价质量体系中的有关部分。3为了合同或强制性质量评价的目的,可要求对已确定的质量体系要求的实施进行证实。88软件质量管理的基本概念o质量方针由组织的最高管理者正式发布的该组织总的质量宗旨和质量方向。o质量策划确定质量以及采用质量体系要素的目标和要求的活动。质量策划包括:a)产品策划:对质量特性进行识别、分类和比较,并建立其目标、质量要求和约束条件。b)管理和作业策划:为实施质量体系进行准备,包括组织和安排。c
70、)编制质量计划和作出质量改进的规定。89软件质量管理的基本概念o质量控制为达到质量要求所采取的作业技术和活动。1质量控制包括作业技术和活动,其目的在于监视过程并排除质量环中所有阶段中导致不满意的原因,以取得经济效益。2质量控制和质量保证的某些活动是互相关联的。o质量保证为了提供足够的信任表明实体能够满足质量要求,而在质量体系中实施并根据需要进行证实的全部有计划和有系统的活动。1质量保证有内部和外部两种目的。a)内部质量保证:在组织内部,质量保证向管理者提供信任。b)外部质量保证:在合同或其他情况下,质量保证向顾客或他方提供信任。2质量控制和质量保证的某些活动是相互关联的。3只有质量要求全面反映
71、了用户的要求,质量保证才能提供足够的信任90软件质量管理的基本概念o质量改进为向本组织及其顾客提供更多的收益,在整个组织内所采取的旨在提高活动和过程的效益和效率的各种措施。o质量管理确定质量方针、目标和职责并在质量体系中通过诸如质量策划、质量控制、质量保证和质量改进使其实施的全部管理职能的所有活动。1质量管理是各级管理者的职责,但必须由最高管理者领导。质量管理的实施涉及到组织中的所有成员。2在质量管理中要考虑到经济性因素。91软件质量管理的基本概念o全面质量管理一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径。1“全员”指该组织结
72、构中所有部门和所有层次的人员。2最高管理者强有力和持续的领导以及该组织内所有成员的教育和培训是这种管理途径取得成功所必不可少的。3在全面质量管理中,质量这个概念和全部管理目标的实现有关。4“社会受益”意味着在需要时满足“社会需求”。5有时把“全面质量管理”(TQM)或它的一部分称为“全面质量”、“公司范围内的质量管理(CWQC)”、“TQC”等。92软件质量管理的基本概念o质量审核确定质量活动和有关结果是否符合计划的安排,以及这些安排是否有效地实施并适合于达到预定目标的、有系统的、独立的检查。1质量审核一般用于(但不限于)对质量体系或其要素,过程、产品或服务的审核。上述这些审核通常称为“质量体
73、系审核”、“过程质量审核”、“产品质量审核”和“服务质量审核”。2质量审核应由与被审核领域无直接责任的人员进行,但最好在有关人员的配合下进行。3质量审核的一个目的是评价是否需要采取改进或纠正措施。审核不能和旨在解决过程控制或产品验收的“质量监督”或“检验”相混淆。4质量审核可以是为内部或外部的目的而进行。93软件质量管理的基本概念o管理评审由最高管理者就质量方针和目标,对质量体系的现状和适应性进行的正式评价。1管理评审可以包括质量方针评审。2质量审核的结果可作为管理评审的一种输入。3“最高管理者”指的是其质量体系受到评审的组织的管理者。94软件质量管理的主要活动1、软件质量策划1)软件质量策划
74、的内容:o确定软件组织,适应其生产特点的组织结构,以及人员的安排和职责的分配。o确定组织的质量管理体系目标,根据组织的商业需要和产品市场,确定选择ISO9000或CMM作为其质量管理体系的符合性标准或模型。o标识和定义组织的质量过程,即对组织的质量过程进行策划,确定过程的资源、主要影响因素、作用程序和规程、过程启动条件和过程执行结果规范等。o识别产品的质量特性,进行分类和比较,建立其目标、质量要求和约束条件。o策划质量改进的计划、方法和途径。95软件质量管理的主要活动2)软件组织的质量过程通常包含两种类型:软件工程过程和组织支持过程n软件工程过程就是通常所说的软件生命周期中的活动,一般包括软件
75、需求分析、软件设计、编码、测试、交付、安装和维护。一个组织的软件过程策划一般包括两个阶段:组织标准生产过程的策划和项目产品策划。CMM中定义了三个关键过程域来实现这两级的过程策划:o组织过程定义:主要任务是识别和确定组织的质量过程,将组织必须和比较成熟的软件过程、过程资源要求、过程程序、过程产品要求等通过文件形成制度,并通过培训等机制贯彻到整个组织中,以改进所有项目的过程性能。o软件项目策划:目的是为具体软件项目的开发、检查活动制定合理的计划。主要内容包括确定项目开发的主要活动及活动时间的关系、制定项目的开发进度、配备合适的资源、设定合适的检查点和检查方式等。o软件产品工程:目的是协调一致地执
76、行良好定义的工程过程,将软件工程活动组成一个有机的整体以生产更好、更符合要求的软件产品。96软件质量管理的主要活动n组织支持过程是软件组织为了保证软件工程过程的实施和检查而建立的一组公共支持过程。主要包括:o管理过程:包括评审、检查、文档管理、不合格品管理、配置管理、内部质量审核和管理评审。o支持过程:包括合同评审、子合同评审、采购、培训、进货检验、设备检验、度量和服务。o在CMM中,有一些对应的关键过程区域:需求管理、软件子合同管理、软件质量保证、软件配置管理、培训程序、同行评审97软件质量管理的主要活动2、软件质量控制与保证软件质量控制的主要目标就是按照质量策划的要求,对质量过程进行监督和
77、控制。质量控制的主要内容有:1)组织中与质量活动有关的所有人员,按照职责分工进行质量活动。2)所有质量活动按照已经策划的方法、途径、相互关系和时间,有序地进行。3)对关键过程和特殊过程,实施适当的过程控制技术以保证过程的稳定性,并在受控的情况下,提高过程的能力。4)所有质量活动的记录都被完整、真实地保存下来,以供统计分析使用。98软件质量管理的主要活动实施软件质量控制通常涉及的技术:软件配置管理软件配置管理的目的是,对软件生产过程中的所有有意义的中间产品形成文档,并以一种便于存取和检索、必要时可以逆向回溯的方式保存。同时配置管理还要保证文档的安全性、保密性和及时性。软件过程流管理现代质量理论认
78、为:“质量形成于过程”。软件过程流管理是软件质量控制中非常重要的环节。过程流管理的基本原则是:按计划和设定条件启动和结束过程流中的质量活动按照计划对中间产品进行验证,防止不合格的产品转入下道工序。记录和保持必要的过程活动的质量情况。软件质量保证软件质量保证的目的是向组织的内部或外部提供信任依据。对内向组织的管理者表明组织的质量管理处于良好的状态,所有质量活动有效地运行;对外向顾客表明,组织有能力满足顾客的质量要求,并提供符合质量要求的产品和服务。99软件质量管理的主要活动3软件质量的度量和验证软件质量度量类型产品质量度量通常产品质量度量依赖于具体的产品标准,通过测量获得产品质量特性的有关数据,
79、辅以合适的统计技术以确定产品或同批产品是否满足了规定的质量要求。过程质量度量通过对软件产品设计、开发、检查、评审等过程的度量技术的使用,来度量软件过程的进度、成本是否按计划保证,质量计划的变化频率,变化的诱因以及风险的管理等等。100软件质量管理的主要活动软件质量验证ISO9000:2000中对验证(Verification)的定义是:“通过提供客观证据对规定要求已得到满足的认定”。CMM在关键过程域(KPA)的公共特征(CommonFeature)-验证实现(VerifyingImplementation)中这样描述:“验证实现是保证活动按照已经建立的过程执行的一系列步骤,典型的验证有管理部
80、门的评审、审核和软件质量保证”。在软件质量管理中,对软件产品的验证通常包括:对各级设计的评审、检查,各个阶段的测试等。对软件过程的验证,则是对过程数据的评审和审核。101软件质量管理的主要活动4软件质量改进质量改进是现代质量管理的必然要求,ISO9000要求组织定期进行内审和管理评审,采取积极有效的纠正预防措施,保持组织的质量方针和目标持续适合组织的发展和受益者的期望。具体进行软件过程改进的活动包括:度量与审核纠正和预防措施管理评审102软件质量管理的内容软件质量管理活动大致可以分为质量控制和质量设计,这两类活动内容在功能上是互补的。质量控制主要包括计划,规程评价和产品评价。质量设计主要是指质
81、量准则的运用。1质量控制计划进行质量控制,必须首先制定一个软件质量管理计划,这个计划确定质量目标、确定在每个阶段为实现总目标所应达到的要求、对进度进行安排、确定所需人力、资源和成本等等,这个计划贯穿于整个软件的生存期中,并指导软件开发每个阶段的具体活动。103软件质量管理的内容规程评价规程就是在软件生存期中应当遵循的一些政策、规则和标准的具体实施的描述,软件质量管理就是通过软件管理人员来监督和执行这些规程。在规格中也包括实行软件质量保证功能的描述,它们可以包括如下内容:指示在何时、何地进行规程审计、文件审计和代理审计;指示应当采集哪数据以及如何对其进行分析处理,例如,在每次评审和测试中发现的错
82、误如何进行修正;描述希望得到的质量度量;规定在项目的什么阶段进行评审以及进行什么形式的评审;规定在项目的什么阶段应当产生什么报告和计划;规定产品各方面测试应达到的水平。104软件质量管理的内容产品评价软件产品评价的主要目的是确保产品和它的需求相符合,类似于硬件的产品检验,这种评价所用的方法可以是设计的走查(walk-through)、代码的审计、测试结果的分析以及软件的质量度量和评估等。质量设计在质量设计中应当确定该软件应该达到什么水平,并考虑高质量的软件如何设计以及如何通过测试来确定质量等问题。为些,在质量设计中,首先要指定期望软件产品具有的主要质量要素或属性,并尽量使它们的指标定量化。质量
83、管理活动的工具包括老七种与新七种,老七种工具是因果图法、排列图法、查表法、直方图法、散布图法、分层法及对策表法,新七种工具是关联图法、KJ法、系图法、矩阵图法、距阵数据分析法、过程决策程序图法(PDPC)、箭头图法。Back 105软件质量标准简介o标准nISO91262001(GB/T162602003)软件工程产品质量:质量模型、外部度量、内部度量、使用质量度量nISO145981999(GB/T189052002)软件工程产品质量:概述、策划和管理、开发者用的过程、需方用的过程、评价者用的过程、评价模块文档编写nISO121191994(GB/T175441998)信息技术软件包质量要求
84、和测试nISO170251999(GB/T154812000)检测和校准实验室能力的通用要求106ISO9000标准ISO9000是指由国际标准化组织(ISO)所属的质量管理和质量保证技术委员会ISO/TC176工作委员会制定并颁布的关于质量管理体系的族标准的统称。如,它包括:ISO9000质量管理与质量保证标准ISO9001质量体系设计、开发、生产、安装与服务的质量保证模式ISO9002质量体系生产与安装的质量保证模式ISO9003最终检验与实验的质量保证模式ISO9004质量管理与质量体系要素这几个标准中,ISO9000是一个指导性的总体概念标准;ISO9001、ISO9002、ISO90
85、03是证明企业能力所使用的三个外部质量保证模式标准;ISO9004是为企业或组织机构建立有效质量体系提供全面、具体指导的标准,五个标准组成了一个完整的质量管理与质量保证标准体系。107ISO9000标准ISO9000族标准作为质量管理和质量保证标准适用于所有希望改进质量管理绩效和质量保证能力的组织。ISO9000标准87年被ISO组织TC/176发布以来,已经通过87版、94版和2000版三次改版。2000版标准已于2000年3月被我国转化为国家标准,企业实施于2001年4月,是较94版标准更科学、合理和便于采用的标准。2000版ISO9000族标准的总体结构如下:(1)4个核心标准:ISO9
86、000:2000基本原理和术语、ISO9001:2000品质管制体系-要求、ISO9004:2000品质管制体系-业绩改进指南、ISO19011质量和环境管理审核指南;(2)1个其他标准:ISO10012测量设备的质量保证要求(3)若干个个技术报告,现已列入计画的有:ISO/TR10006专案管理指南、ISO/TR10007技术状态管理指南、ISO/TR10013品质管制体系档指南、ISO/TR10014质量经济性指南、ISO/TR10015教育和培训指南、ISO/TR10017统计技术在ISO9001中的应用指南;(4)若干份小册子,现已列入计画的有:品质管制原理、选择和使用指南、ISO90
87、01在小型企业中的应用指南108ISO9000标准2000版标准正式发布三年期满后,94版标准立即废止。2000版标准总体变化如下:一、由四个标准组成:1、ISO9000作为选用标准,同时也是名词术语标准,即94版ISO90001标准与8402的结合。2、ISO9001标准代替94版三个模式标准,按94版ISO9002标准获证的企业在复审时,允许对2000版ISO9001标准进行裁剪。3、ISO9004标准代替94版ISO90041多项分标准。4、ISOCD.119011标准代替94版ISO10011标准和94版环境ISO14010、ISO14011、ISO14012。109ISO9000标准
88、二、ISO9001标准的主要变化如下:(一)思路和结构上的变化1、把过去三个外部保证模式ISO9001、ISO9002、ISO9003合并为ISO9001标准,允许通过裁剪适用不同类型的企业,同时对裁剪也提出了明确严格的要求。2、把过去按20个要素排列,改为按过程模式重新组建结构,其标准分为管理职责;资源管理;产品实现;测量、分析和改进四大部分。3、引入PDCA戴明环闭环管理模式,使持续改进的思想贯穿整个标准,要求质量管理体系及各个部分都按PDCA循环,建立实施持续改进结构。4、适应组织管理一体化的需要。(二)新增加的内容1、以顾客为中心;2、持续改进;3、质量方针与目标要细化、要分解落实;4
89、、强化了最高管理者的管理职责;5、增加了内外沟通;6、增加了数据分析;7、强化了过程的测量与监控。110PDCA戴明环PDCA四个英文字母及其在PDCA循环中所代表的含义如下:1、P(Plan)-计划,确定方针和目标,确定活动计划;2、D(Do)-执行,实地去做,实现计划中的内容;3、C(Check)-检查,总结执行计划的结果,注意效果,找出问题;4、A(Action)-行动,对总结检查的结果进行处理,成功的经验加以肯定并适当推广、标准化;失败的教训加以总结,以免重现,未解决的问题放到下一个PDCA循环。 PDCA循环又叫戴明环,是美国质量管理专家戴明博士首先提出的,它是全面质量管理所应遵循的
90、科学程序。全面质量管理活动的全部过程,就是质量计划的制订和组织实现的过程,这个过程就是按照PDCA循环,不停顿地周而复始地运转的。 111ISO9000标准三、特点:1、通用性强,94版ISO9001标准主要针对硬件制造业,新标准则适用于硬件、软件、流程性材料和服务等行业。2、更先进、更科学,总结补充了企业质量管理中一些好的经验,突出了八项质量管理原则。3、对94版标准进行简化,简单好用。4、提高了其它管理的相容性,协调了环境管理和财务管理。5、ISO9001标准和ISO9004标准作为一套标准,互相对应,协调一致。112Back 113软件文件标准与规范国家标准计算机软件产品开发文件编制指南
91、是一份指导性文件。它建议在软件的开发过程中编制下述14个文件。即:可行性研究报告操作手册项目开发计划模块开发卷宗软件需求说明书测试计划数据要求说明书测试分析报告总体设计说明书开发进度表详细设计说明书项目开发总结。数据库设计说明书用户手册该指南给出了这14个文件的编制提示,它同时也是这14个文件编写质量的检验准则。114软件文件标准与规范1、可行性研究报告可行性研究报告的目的是:说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性,论述为了合理地达到开发目标而可能选择的各种方案,说明并论证所选定的方案。可行性研究报告的编写内容见下页。1151引言1.1编写目的1.2背景1.3定义1.4参
92、考资料2可行性研究的前提2.1要求2.2目标2.3条件假定和限制2.4进行可行性研究的方法2.5评价尺度3对现有系统的分析3.1数据流程和处理流程3.2工作负荷3.3费用开支3.4人员3.5设备3.6局限性4所建议的系统4.1对所建议系统的说明4.2数据流程和处理流程4.3改进之处4.4影响4.4.1对设备的影响4.4.2对软件的影响4.4.3对用户单位机构的影响4.4.4对系统运行的影响4.4.5对开发的影响4.4.6对地点和设施的影响4.4.7对经费开支的影响4.5局限性4.6技术条件方面的可行性5可选择的其它系统方案5.1可选择的系统方案15.2可选择的系统方案26投资及收益分析6.1支
93、出6.1.1基本建设投资6.1.2其它一次性支出6.1.3非一次性支出6.2收益6.2.1一次性收益6.2.2非一次性收益6.2.3不可定量的收益6.3收益/投资比6.4投资回收周期6.5敏感性分析7社会条件方面的可行性7.1法律方面的可行性7.2使用方面的可行性8结论116软件文件标准与规范2项目开发计划编制项目开发计划的目的是用文件的形式,将在开发过程中各项工作的负责人员、开发进度、经费预算、所需软硬件条件等问题作出的安排记录下来,以便根据本计划开展和检查项目的开发工作。编制内容要求如下页。1171引言1.1编写目的1.2背景1.3定义1.4参考资料2项目概述2.1工作内容2.2主要参加人
94、员2.3产品及成果2.3.1程序2.3.2文件2.3.3服务2.3.4非移交产品2.4验收标准2.5完成项目的最迟期限2.6本计划的审查者与批准者3实施总计划3.1工作任务的分解3.2接口人员3.3进度3.4预算3.5关键问题4支持条件4.1计算机系统支持4.2需要用户承担的工作4.3需由外单位提供的条件5专题计划要点项目开发计划表项目开发计划表118软件文件标准与规范3软件需求说明书软件需求说明书的编制是为了使用户和软件开发人员双方对该软件的初始规定有一个共同的理解,使之成为整个软件开发工作的基础。其内容要求见下页。119软件需求说明书软件需求说明书1引言1.1编写目的1.2背景1.3定义1
95、.4参考资料2任务概述2.1目标2.2用户的特点2.3假定的约束3需求规定3.1对功能的规定3.2对性能的规定3.2.1精度3.2.2时间特性要求3.2.3灵活性3.3输入输出要求3.4数据管理能力要求3.5故障处理要求3.6其它专门要求4运行环境规定4.1设备4.2支撑软件4.3接口4.4控制120软件文件标准与规范4数据要求说明书数据要求说明书的编制目的是为了向整个软件开发时期提供关于被处理数据的描述和数据采集要求的技术信息,其内容要求列于下页。121数据要求说明书数据要求说明书1引言1.1编写目的1.2背景1.3定义1.4参考资料2数据的逻辑描述2.1静态数据2.2动态输入数据2.3动态
96、输出数据2.4内部生成数据2.5数据约定3数据的采集3.1要求和范围3.2输入的承担者3.3处理3.4影响122软件文件标准与规范5总体设计说明书总体设计说明书又称为概要设计说明书,是指项目系统,编制目的是说明对项目系统的设计考虑,包括基本处理流程、组织结构、模块结构、功能配置、接口设计、运行设计、系统配置、数据结构设计和出错处理设计等,为程序的详细设计提供基础。其内容要求见下页。123概要设计说明书概要设计说明书1引言1.1编写目的1.2背景1.3定义1.4参考资料2总体设计2.1运行环境2.2运行环境2.3基本设计概念和处理流程2.4结构2.5功能需求与程序的关系2.6人工处理过程2.7尚
97、未解决的问题3接口设计3.1用户接口3.2外部接口3.3内部接口4运行设计4.1运行模块组合4.2运行控制4.3运行时间5系统数据结构设计5.1逻辑结构设计要点5.2物理结构设计要点5.3数据结构设计要点6系统出错处理设计6.1出借信息6.2补救措施6.3系统维护设计124软件文件标准与规范6详细设计说明书详细设计说明书又称为程序设计说明书,编制目的是说明一个软件系统各个层次中的每一个程序(模块)的设计考虑。如果软件系统比较简单,层次少,本文件可以不单独编写,有关内容可并入总体设计说明书。详细设计说明书的内容要求见下页。125详细设计说明书详细设计说明书1引言1.1编写目的1.2背景1.3定义
98、1.4参考资料2程序系统的组织结构3程序1(标识符)设计说明3.1程序描述3.2功能3.3性能3.4输入项3.5输出项3.6算法3.7流程逻辑3.8接口3.9存储分配3.10注释设计3.11限制条件3.12测试计划3.13尚未解决的问题4程序2(标识符)设计说明126软件文件标准与规范7数据库设计说明书数据库设计说明书的编制目的是对于设计中的数据的所有标识、逻辑结构和物理结构作出具体的设计规定。内容要求见下页。127数据库设计说明书数据库设计说明书1引言1.1编写目的1.2背景1.3定义1.4参考资料2外部设计2.1标识符和状态2.2使用它的程序2.3约定2.4专门指导2.5支撑软件3结构设计
99、3.1概念结构设计3.2逻辑结构设计3.3物理结构设计4运用设计4.1数据字典设计4.2安全保密设计128软件文件标准与规范8用户手册用户手册的编制是使用非专业术语的语言,充分地描述该软件系统所具有的功能及基本的使用方法,使用户通过本手册能够了解该软件的用途,并能够确定在什么情况下、如何使用它。具体的内容要求见下页。129用户手册用户手册1引言1.1编写目的1.2背景1.3定义1.4参考资料2用途2.1功能2.2性能2.2.1精度2.2.2时间特性2.2.3灵活性3运行环境3.1硬环境3.2支撑软件3.3数据结构4使用过程4.1安装与初始化4.2输入4.2.1输入数据的现实背景4.2.2输入格
100、式4.2.3输入举例4.3输出4.3.1输出数据的现实背景4.3.2输出格式4.3.3输出举例4.4文卷查询4.5出错处理与恢复4.6终端操作1309操作手册操作手册的编制是为了向操作人员提供该软件每个运行的具体过程的有关知识,包括操作方法的细节。内容要求见下页。软件文件标准与规范131操作手册操作手册1引言1.1编写目的1.2背景1.3定义1.4参考资料2软件概述2.1软件的结构2.2程序表2.3文卷表3安装与初始化4运行说明4.1运行表4.2运行步骤4.3运行1(标识符)说明4.3.1运行控制4.3.2操作信息4.3.3输入-输出文卷4.3.4输出文段4.3.5输出文段的复制4.3.6启动
101、恢复过程4.4运行2(标识符)说明5非常规过程6远程操作132软件文件标准与规范10模块开发卷宗模块开发卷宗是在模块开发过程中逐步编写出来的,每完成一个模块或一组密切相关的模块的复审时编写一份,应该把所有的模块开发卷宗汇集在一起,编写的目的是记录和汇总低层次开发的进度和结果,以便于对整个系统开发工作进行管理的复审,并为将来的维护提供有用的技术信息,具体内容要求见下页。133模块开发卷宗模块开发卷宗1标题2模块开发情况表(见附表)3功能说明4设计说明5源代码清单6测试说明7复审的结论134软件文件标准与规范11测试计划测试是指整个软件系统的组装测试和确认测试,本文件的编制是为了提供一个对该软件的
102、测试计划,包括对每项测试活动的内容、进度安排、设计考虑、测试数据的整体理方法及评价准则。具体内容见下页。135测试计划测试计划1引言1.1编写目的1.2背景1.3定义1.4参考资料2计划2.1软件说明2.2测试内容2.3测试1(标识符)2.3.1进度安排2.3.2条件2.3.3测试资料2.3.4测试培训2.4测试2(标识符)3测试设计说明3.1测试1(标识符)3.1.1控制3.1.2输入3.1.3输出3.1.4过程3.2测试2(标识符)4评价准则4.1范围4.2数据整理4.3尺度136软件文件标准与规范12测试分析报告测试分析报告的编写是为了把组装测试和确认测试的结果、发现的问题、以及分析结果
103、写成文件形式加以保存。具体编写内容要求见下页。137测试分析报告测试分析报告1引言1.1编写目的1.2背景1.3定义1.4参考资料2测试概要3测试结果及发现3.1测试1(标识符)3.2测试2(标识符)4对软件功能的结论4.1功能1(标识符)4.1.1能力4.1.2限制4.2功能2(标识符)5分析摘要5.1能力5.2缺陷和限制5.3建议5.4评价6测试资源消耗138软件文件标准与规范13开发进度月报开发进度月报的编制目的是及时向有关管理部门汇报项目开发的进度和情况,以便及时发现和处理开发过程中出现的问题。一般来说,开发进度月报是以项目组为单位每月编写的。具体内容要求见下页。139开发进度月报开发
104、进度月报1标题2工程进度与状态2.1进度2.2状态3资源耗用与状态3.1资源耗用3.1.1工时3.1.2机时3.2状态4经费支出与状态4.1经费支出4.1.1支出性费用4.1.2设备购置费4.2状态5下个月的工作计划6建议140软件文件标准与规范14项目开发总结报告项目开发总结报告的编制是为了总结本项目开发工作的经验,说明实际取得的开发成果以及对整个开发工作的各个方面的评价。具体内容要求见下页。141项目开发总结报告项目开发总结报告1引言1.1编写目的1.2背景1.3定义1.4参考资料2实际开发结果2.1产品2.2主要功能和性能2.3基本流程2.4进度2.5费用3开发工作评价3.1对生产效率的
105、评价3.2对产品质量的评价3.3对技术方法的评价3.4出错原因的分析4经验与教训142软件文件标准与规范另外,必须对软件文件的修改活动进行严格的管理,要防止修改后所带来的不一致性以及可能对项目开发所产生的影响。修改前要提出书面的修改意见,经项目负责人或有关人员评议,审核后,经批准方可实施修改。修改过程中所产生的文件也就妥善保管,以备后查。Back 143软件质量的综合评价o软件质量评价方法o软件过程成熟度模型144软件质量评价方法o软件质量评价方法评价软件达到的质量水平必须在每个开发阶段(包括需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用和维护)的最后进行,评价的依据是每个开发阶
106、段所应提交的文件。145软件质量评价方法o评价产品达到的质量水平的过程如图所示146软件质量评价方法软件质量评价方法分为两个部分:1计算要素分数要素的分数是通过度量元、度量、准则的分数得到的,要知道要素的分数首先应知道度量元的分数,度量元的分数是通过向软件提供度量工作表上的度量问题取得的。把对度量问题的回答转变为度量元的分数,进而算出度量、准则和要素的分数,需要使用要素打分表。在每个开发阶段,应该为每个要素准备一张要素记分表(要素记分表包括了每个要素的所有准则)。度量分数是度量元分数的算术平均值。准则的分数是度量分数的算术平均值。147软件质量评价方法2分析要素分数前面计算的是每个子系统的质量
107、要素分数,还应当把子系统的质量要素分数转化为系统的质量要素分数,此过程可分成3步:(1)找出与该要素有关的子系统;(2)根据子系统的大小为子系统加权;(3)把要素在每个有关的子系统中得到的分数与该子系统的权值相乘再全部相加即得到该要素在系统中的分数。在坐标纸上建立一个x-y坐标系,x方向代表软件开发阶段,y方向代表每个软件开发阶段中通过评价得到的分数,据此描出曲线,就可以看出每个要素分数的发展倾向。为每个要素规定的指标化作一个数值范围(如指标A可看作0.9-1,指标B可看作0.8-0.9等等),并把它们标在为这个要素建立的坐标系上。这样就可以看出要素的分数是否落在为要素规定的质量指标的数值范围
108、内。148软件质量评价方法在分析了要素分数不符合需求的原因以后,应该把这些原因归类,以便对软件开发中存在的问题有个清楚的认识。在综合考虑了系统的需求和限制后,提出解决问题的方案。下图是分析要素分数流程图。149150Back 151软件过程成熟度模型o基本概念n过程:为达到目的而执行的所有步骤的序列。n软件过程:人们在开发和维护软件及其相关产品时所涉及的各种活动、方法、实践和改革等。其中软件相关产品包括软件项目计划、设计文档、程序代码、测试用例和用户手册等。n软件过程能力:当遵循某个软件过程时所能达到的期望效果,它可以有效预测企业接收新的软件项目时可能得到的结果。n软件过程性能:当遵循某个软件
109、过程时所达到的实际效果。它可以用于验证软件过程能力。n软件过程成熟度:指一个特定的软件过程被显式定义、管理、度量、控制和实施的程度。成熟度可以用于指示企业加强其软件过程能力的潜力。当一个企业达到了一定的软件过程成熟级别后,它将通过制定策略、建立标准和确立机构结构使它的软件过程制度化。而制度化又促使企业通过建立基础设施和公司文化来支持相关的方法、实践和过程。从而使之可以持续并维持一个良性循环。152软件过程成熟度模型o软件机构的成熟性对于不同的软件开发机构,在组织人员完成软件项目中所依据的管理策略有很大的差别,因而软件项目所遵循的软件过程也有很大差别。在此,可用软件机构的成熟度(Maturity
110、)加以区别。n不成熟软件机构的特征:软件过程一般在项目进行中由参与开发的人员临时确定。有时即使确定了,实际上也并不严格执行;软件机构是反应型的,管理人员经常要集中精力去应付难以预料的突发事件;项目的进度和经费预算由于估计的不切实际,所以常常突破。在项目进度拖延,交付时间紧迫的情况下,往往不得不削减软件的功能,降低软件的质量;产品质量难以预测。质量保证活动,如质量评审、测试等,常被削弱或被取消。153软件过程成熟度模型n成熟软件机构具有的特征:建立了机构级的软件开发和维护过程。软件人员对其有较好的理解。一切活动均遵循过程的要求进行,做到工作步骤有次序,且有章可循;软件过程必要时可做改进,但需在经
111、小型试验和成本-效益分析的基础上进行;软件产品的质量和客户对软件产品的满意程度不是由开发人员,而是由负责质量保证的经理负责监控;项目进度和预算是根据以往项目取得的实践经验确定,因而比较符合实际情况。154软件过程成熟度模型o软件过程成熟度模型1987年,美国卡内基-梅隆大学软件工程研究所(SEI)受美国国防部资助,提出了软件能力成熟度模型CMM,它用来定义和评价软件公司开发过程的成熟度,提供怎样才能提高软件质量的指导。CMM描述了五个级别的软件过程成熟度(初始级可重复级已定义级已管理级优化级),成熟度反映了软件过程能力(SoftwareProcessCapability)的大小,任何一个软件机
112、构的软件过程必定属于其中某个级别。五个成熟度如图所示:155可重复可重复实践实践通用工程通用工程过程过程定量理解定量理解和控制和控制持续改进持续改进实践实践156软件过程成熟度模型初始级(initial)n工作无序,项目进行过程中常放弃开始制定的计划;n管理无章,缺乏健全的管理制度;n开发项目成效不稳定,产品的质量和性能严重依赖于个人的能力和行为。可重复级(repeatable)n管理制度化,建立了基本的管理制度和规程,管理工作有章可循;n初步实现标准化,开发工作交好地实施标准;n变更均依法进行,做到基线化;n稳定可跟踪,新项目的计划和管理基于过去的经验,具有重复以前成功项目的环境和条件。15
113、7软件过程成熟度模型已定义级(defined)n开发过程,包括技术工作和管理工作,均已实现标准化、文档化;n建立了完善的培训制度和专家评审制度;n全部技术活动和管理活动均稳定实施;n项目的质量、进度和费用均可控制;n对项目进行中的过程、岗位和职责均有共同的理解。已管理级(managed)n产品和过程已建立了定量的质量目标;n过程中活动的生产率和质量是可度量的;n已建立过程数据库;n已实现项目产品和过程的控制;n可预测过程和产品质量趋势,如预测偏差,实现及时纠正158软件过程成熟度模型优化级(optimizing)n可集中精力改进过程,采用新技术、新方法;n拥有防止出现缺陷、识别薄弱环节以及加以
114、改进的手段;n可取得过程有效性的统计数据,并可据此进行分析,从而得出最佳方法。o关键过程领域除去初始级以外,其他4级都有若干个引导软件机构改进软件过程的要点,称为关键过程领域(KPAKeyProcessArea)。每一个关键过程领域是一组相关的活动,成功地完成这些活动,将会对提高过程能力起重要作用,下图给出了各成熟度等级对应的关键过程领域。159160软件过程成熟度模型o成熟度提问单为了把上述过程成熟度分级的方法推向实用化,需要为其提供具体的度量标尺。这个度量标尺就是成熟度提问单。CMM在多个方面列出了大量的问题,每个问题都可针对特定的被评估软件机构给出肯定或否定的回答。提问单涉及的方面包括组
115、织结构资源、人员及培训技术、管理文档化标准及工作步骤、过程度量数据管理和数据分析、过程控制。161CMM成熟度提问单举例缩略语说明:WRYP:WithrespecttoyourprojectWYPD:WouldyoupleasedescribeF/U:Followupquestions.PM:ProjectmanagerCM:ConfigurationmanagersDEV:DeveloperMM:Middlemanagers(Projectmanagersmanager)TE:TesterSQA:SoftwareQualityAssuranceTRG:TrainingPPG:particul
116、artoanorganization,whichmeansprogrammanagersG:GoalCo:CommitmentAC:ActivityAb:AbilityME:MeasurementVE:Verify162CMM成熟度提问单举例RequirementsManagement(RM)l.No.CMMComponentQuestionTargetGroup1G1/AC1WRYPWYPDhowtherequirementsfortheprojectarefinalized?PM,DEV,CM,TE项目的需求是如何定稿的?2G2/AC2WYPDhowrequirementsareusedi
117、nplanningfortheproject?MM,PM需求是如何用于进行项目计划的?3G1G2/AC3Howdoyoumanagetherequirementsthroughoutthelifecycleoftheproject?PM,DEV,TE,CM在项目的整个生命周期中,你是如何管理需求的?4G1/AC1G2/AC3WRYPWYPDhowchangestorequirementsarehandled?PM,DEV,TE,CM对需求的变更是如何处理的?163CMM成熟度提问单举例5Ab1Howistheresponsibilityformanagingrequirementsassign
118、edontheproject?MM,PM,DEV管理分配给项目的需求的职责是怎样的?6Ab2How/wheredoyoufindthelatestrequirementsforyourproject?DEV,CM,TE你是怎样/何处发现项目的最近的需求的?7Ab3,Ab4Howdoestheorganizationequipyoutoperformyourrequirementsmanagementactivities?PM,DEV,TE,CM组织是如何提供条件让你执行你的需求管理活动的?8ME1Whatdataiscollectedonrequirementsmanagementactivi
119、ties?F/U:Howdoyouusethisdata?PM,TE,CM,SQA,PPG需求管理活动中收集了哪些数据?9VE1,VE2,VE3Whatkindsofreviewshappenonrequirementsmanagementactivitiesintheorganization?MM,PM,SQA,PPG组织中,进行了哪些类型的对需求管理活动的评审?164软件过程成熟度模型o利用CMM对软件机构进行成熟度评估评估过程有以下几步:建立评估组:评估组成员应对软件过程、软件技术和应用领域很熟悉,有实践经验、能够提出见解。评估组准备:评估组具体审定评估的问题,决定对每一个问题要求展示哪些材料和工具。项目准备:评估组与被评估机构领导商定选择哪些处在不同开发阶段的项目和典型的标准实施作为评估对象。将评估时间安排通知被评估项目负责人。进行评估:对被评估机构的管理人员和项目负责人说明评估过程。评估组与项目负责人一起就所列出的问题逐一对照审查,保证对问题的回答有一致的解释,从而取得一组初始答案。165软件过程成熟度模型初评:对每个项目和整个机构做出成熟度等级初评。讨论结果:讨论初评结果。使用备用资料及工具演示,可进一步证实某些问题的答案,从而决定可能的成熟度等级。给出最后的结论:由评估组综合问题的答案、后继问题的答案,以及背景依据,作出最终评估结论。166