软件过程的质量管理主讲人:王辉wangh@stdu.edu.cn2014-02-212019年8月22日信息科学与技术学院软件质量是什么?软件质量=好?软件质量=时间和空间复杂度低?软件质量=鲁棒性?…2019年8月22日信息科学与技术学院人的体质古时候:长得结实、饭量大就是健康现代:通过多方面的生理因素来判断:身高、体重、心跳、血压、血液、体温等,如果某个因素的测量不合格,则表明在某方面不健康,医生会对症下药。2019年8月22日信息科学与技术学院软件质量软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。人们通过改善软件的各种质量属性,来提高软件的整体质量。2019年8月22日信息科学与技术学院内容软件质量管理的基本概念软件质量度量ISO9126软件质量度量模型软件质量管理2019年8月22日信息科学与技术学院内容软件质量管理的基本概念软件质量度量ISO9126软件质量度量模型软件质量管理2019年8月22日信息科学与技术学院质量的定义(ISO)质量是产品或者服务满足明确或隐含需要能力的性能和特性的总体。Thetotalityoffeaturesandcharacteristicsofaproductorservicethatbearonitsabilitytosatisfystatedorimpliedneeds.2019年8月22日信息科学与技术学院软件质量的定义(ISO)质量是软件产品满足明确或隐含需要能力的性能和特性的总体。用户需求是衡量软件质量的基础。除满足明确定义的需求外,还要满足隐含的需求。Thetotalityoffeaturesandcharacteristicsofasoftwareproductthatbearonitsabilitytosatisfystatedorimpliedneeds.2019年8月22日信息科学与技术学院软件项目的三大目标质量时间成本2019年8月22日信息科学与技术学院软件质量的重要性软件越来越重要,对其质量要求也越来越高2019年8月22日信息科学与技术学院软件质量的重要性2019年8月22日信息科学与技术学院软件质量的重要性软件质量问题可能导致经济损失甚至灾难性的后果。1999年美国火星气候探测器从距离火星表面130英尺的高度垂直坠毁。此项工程成本耗费3.27亿美元,故障为软件中使用的是英制单位,而不是预制的公制单位。2009年2月份Google的Gmail故障,Gmail用户几小时不能访问邮箱,故障是因数据中心之间的负载均衡软件的Bug引发的。质量问题会增加开发和维护软件产品的成本。2019年8月22日信息科学与技术学院软件质量的重要性2019年8月22日信息科学与技术学院软件的质量形成于产品或者服务的开发过程中,而不是事后的检查(如测试)。20世纪80年代起,质量管理逐步从单一的关注产品,转移到关注生产好产品的过程上,并且将过程的作用扩大到了组织运行的所有领域。软件质量的形成2019年8月22日信息科学与技术学院当过程不断被重复,其性能会趋于稳定结果可预测对现行执行可监测质量得到保证实施的过程性能稳定过程的上下控制界质量产生于过程2019年8月22日信息科学与技术学院特殊原因造成过程性能不稳定。根除特殊原因,使过程性能稳定,防止质量问题的出现。造成不稳定的特殊原因质量产生于过程2019年8月22日信息科学与技术学院ISO软件质量模型的三个视角2019年8月22日信息科学与技术学院内容软件质量管理的基本概念软件质量度量ISO9126软件质量度量模型软件质量管理2019年8月22日信息科学与技术学院软件度量软件度量(softwaremeasurement):对软件开发项目、过程及其产品进行定量化的过程,目的在于对其加以理解、预测、评估、控制和改善。没有度量就没有控制,没有控制就没有管理。2019年8月22日信息科学与技术学院软件度量的方法数字图表模型2019年8月22日信息科学与技术学院软件度量的三维度软件质量度量2019年8月22日信息科学与技术学院软件度量的模型:GQMGQM(Goals-Questions-Metrics)是20世纪80年代中期由美国马里兰大学巴士利博士及其助手提出的一种面向目标、自上而下由目标逐步细化到度量的度量定义方法。GQM三层模型2019年8月22日信息科学与技术学院GQM的使用方法提出度量的目标G(Goal)将目标细化为特定的问题Q(Question)这些问题以度量M(Metric)的方式回答GQM三层模型2019年8月22日信息科学与技术学院GA:Codeinspection:PlanQ1:Howmuchdoestheinspectionprocesscost?Q2:Howmuchcalendartimedoestheinspectionprocesstake?M1.1:AverageeffortperKLOCM1.2:Percentageofre-inspectionM2.1:AverageeffortperKLOCM2.2:TotalKLOCinspectedGQM的例子2019年8月22日信息科学与技术学院软件质量度量平均无失效时间(meantimetofailure)缺陷密度顾客问题度量…2019年8月22日信息科学与技术学院缺陷密度缺陷率=缺陷数/软件大小通常千行源代码数(KLOC)功能点2019年8月22日信息科学与技术学院顾客满意度采用PUM(problemsperusermonth)表示PUM=一个时段内的顾客报告的问题总数/在此期间软件许可证月总数许可证月总数=软件的安装许可证数*计算时段中的月数2019年8月22日信息科学与技术学院缺陷率度量和顾客问题度量比较缺陷/KLOCPUM分子有据且不同的产品缺陷数所有顾客问题(缺陷性和非缺陷性,首次的和重复的)分母产品大小(KLOC)产品的顾客使用(用户一月数)测量角度生产者-软件开发机构顾客作用范围内在产品质量内在产品质量加上其他因素2019年8月22日信息科学与技术学院内容软件质量管理的基本概念软件质量度量ISO9126软件质量度量模型软件质量管理2019年8月22日信息科学与技术学院ISO的软件质量评价模型按照1991年ISO发布的ISO/IEC9126质量特性国际标准,软件质量度量模型由三层组成软件质量特性软件质量子特性软件质量度量评价准则高层和中层建立国际标准,低层可由各使用单位视实际情况制定。软件质量功能性可靠性可维护性有效性可使用性可移植性适合性准确性互操作性依从性安全性成熟性容错性易恢复性易理解性易学习性易操作性时间特性资源特性易分析性稳定性易变更性易测试性易安装性易替换性适应性遵循性质量特性质量子特性质量度量准则使用单位自行规定ISO9126质量模型32ISO9126softwarequalities33functionalitydoesitsatisfyuserneeds?reliabilitycanthesoftwaremaintainitslevelofperformance?usabilityhoweasyisittouse?efficiencyrelatestothephysicalresourcesusedduringexecutionmaintainabilityrelatestotheeffortneededtomakechangestothesoftwareportabilityhoweasycanitbemovedtoanewenvironment?ISO9126softwarequalities2019年8月22日信息科学与技术学院34Sub-characteristicsofFunctionalitySuitability(适合性)Accuracy(准确性)Interoperability(互操作性,兼容性)abilityofsoftwaretointeractwithothersoftwarecomponentsFunctionalitycompliance(功能符合性)degreetowhichsoftwareadherestoapplication-relatedstandardsorlegalrequirementse.gauditSecurity(安全性)controlofaccesstothesystem2019年8月22日信息科学与技术学院兼容性商业规则弱者设法与强者兼容,否则无容身之地强者应当避免被兼容,否则市场将被瓜分WordVSWPS2019年8月22日信息科学与技术学院36Sub-characteristicsofReliabilityMaturity(成熟度)frequencyoffailureduetofaults-themorethesoftwarehasbeenused,themorefaultswillhavebeenremovedFault-tolerance(容错性)Recoverability(可恢复性)Reliabilitycompliance(可靠性符合性)complieswithstandardsrelatingtoreliability2019年8月22日信息科学与技术学院37Sub-characteristicsofUsabilityUnderstandability(可理解性)easytounderstand?Learnability(可学习性)easytolearn?Operability(可操作性)easytouse?Attractiveness(吸引性)thisisarecentadditionUsabilitycompliance(可用性符合性)compliancewithrelevantstandards2019年8月22日信息科学与技术学院吸引性~~“一见钟情”2019年8月22日信息科学与技术学院39Sub-characteristicsofEfficiencyTimebehaviour(时间特性)e.g.responsetimeResourceutilization(资源利用)e.g.memoryusageEfficiencycompliance(有效性符合性)compliancewithrelevantstandards2019年8月22日信息科学与技术学院40Sub-characteristicsofMaintainabilityAnalysability(可分析性)easewithwhichthecauseofafailurecanbefoundChangeability(可变性)howeasyissoftwaretochange?Stability(稳定性)lowriskofmodificationhavingunexpectedeffectsTestability(可测试性)Maintainabilityconformance(符合性)2019年8月22日信息科学与技术学院41Sub-characteristicsofportabilityAdaptability(适应性)Installability(可安装性)Co-existence(共存性)Capabilityofco-existingwithotherindependentsoftwareproductsReplaceability(可替代性)factorsgiving‘upwards’compatibility-‘downwards’compatibilityisexcludedPortabilityconformance(符合性)Adherencetostandardsthatsupportportability2019年8月22日信