《【教学课件】第十二讲软件项目质量管理.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第十二讲软件项目质量管理.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、上海交通大学计算机系上海交通大学计算机系第十二讲第十二讲 软件项目质量管理软件项目质量管理1/10/20231上海交通大学计算机系上海交通大学计算机系主要内容主要内容w软件质量的重要性软件质量的重要性w软件质量的描述软件质量的描述w质量度量质量度量wISO9126w软件质量度量方法软件质量度量方法w软件质量改进软件质量改进1/10/20232上海交通大学计算机系上海交通大学计算机系软件质量的重要性软件质量的重要性w尽管所有的商品或服尽管所有的商品或服务都存在都存在质量量问题,但是,但是软件的特殊性,特件的特殊性,特别是其复是其复杂性和不可性和不可见性,使其性,使其更更为重要重要n软件危件危险性
2、的增加:企性的增加:企业越来越依越来越依赖软件件n软件的无形性:很件的无形性:很难知道知道项目中的特定任目中的特定任务是否完全是否完全满足足n软件开件开发过程中程中错误积累累1/10/20233上海交通大学计算机系上海交通大学计算机系软件质量软件质量w对软件系件系统可以从三方面描述:可以从三方面描述:n描述系描述系统如何工作的功能描述如何工作的功能描述n功能如何提供的功能如何提供的质量描述量描述n花花费在系在系统上的上的资源描述源描述w问题:学院工:学院工资系系统准准备选用商品化用商品化软件。件。请定定义选择原原则?1/10/20234上海交通大学计算机系上海交通大学计算机系软件质量软件质量/
3、w答案:答案:n对用用户需求需求进行行调查,以明确不同用,以明确不同用户的不同需求集合的不同需求集合n将需求分成若干将需求分成若干组,并定,并定义质量和其它属性,如量和其它属性,如质量,可用性,量,可用性,效率,灵活性等效率,灵活性等n某些需求具有某些需求具有绝对特性。例如,特性。例如,应用程序必用程序必须能能够记录职员的最的最大条数。大条数。这种需求必种需求必须满足。足。n某些需求具有相某些需求具有相对特性。某些相特性。某些相对需求比其它需求更重要需求比其它需求更重要n市市场上上调查一系列待一系列待选的的软件。件。n度量度量软件件质量的方法需要确定量的方法需要确定n某些某些软件的某些方面有不
4、足,但是其它方面可能件的某些方面有不足,但是其它方面可能给以以补偿,因而,因而定定义某些方法来完策划能某些方法来完策划能够选择。1/10/20235上海交通大学计算机系上海交通大学计算机系软件质量软件质量w软件件质量可以包括:量可以包括:n运行运行质量量w正确性正确性w可靠性可靠性w集成性集成性w可用性可用性n修改修改质量量w可可维护性性w可可测试性性w灵活性灵活性n转换质量量w可移植性可移植性w可重用性可重用性w互操作性互操作性问题:请指出质量特性中哪些是无关的,互补的和冲突的?无关的:如可用性和可重用性互补的:如灵活性与可维护性冲突的:由于考虑了某一类型的平台可能效率高,但是移植性差1/1
5、0/20236上海交通大学计算机系上海交通大学计算机系软件质量软件质量w质量要素需要量要素需要转化成开化成开发者可以意者可以意识到的内部准到的内部准则。问题:同一准则出现在不同的质量要素中说明了什么?说明这些质量要素是互补的。1/10/20237上海交通大学计算机系上海交通大学计算机系质量度量质量度量w对于每一准于每一准则,必,必须定定义一个和多个度量一个和多个度量标准来准来完成完成评估工作估工作w任何相任何相对度量需要将度量的度量需要将度量的单元与元与环境中境中发生的生的最大可能性相最大可能性相联系,例如程序中最大的系,例如程序中最大的错误数就数就需要和程序的大小相需要和程序的大小相联系。系
6、。w在某些在某些时候,我候,我们可以直接度量可以直接度量质量,在另外一量,在另外一些些时候,我候,我们度量的是度量的是质量的表量的表现。w软件的使用者关注的是件的使用者关注的是质量因素量因素,而开,而开发者需要者需要关注的是关注的是质量准量准则。1/10/20238上海交通大学计算机系上海交通大学计算机系质量度量质量度量w为了度量,需要了度量,需要对每一每一质量量规定:定:n度量的度量的单元元n测试的范的范围n最差的可接受的最差的可接受的值n计划达到的划达到的值n当前可达到的最佳的当前可达到的最佳的值n目前的目前的值w问题:针对字字处理系理系统,举出一个出一个质量度量的例量度量的例子。子。1/
7、10/20239上海交通大学计算机系上海交通大学计算机系质量度量质量度量w质量:易学量:易学习性性w定定义:新手学会使用:新手学会使用软件生成一份件生成一份标准文档的准文档的时间w度量的度量的单元:小元:小时w测试:首先:首先对新手新手进行行调查以确定他以确定他们的字的字处理理软件的件的使用使用经验,然后,然后给他他们一台机器,一套一台机器,一套软件,件,训练手册手册和安装文档。然后和安装文档。然后测试他他们学会生成一份文档的学会生成一份文档的时间w最差:最差:4 4小小时w计划:划:2 2小小时w最好:最好:1 1小小时w目前:目前:4 4小小时1/10/202310上海交通大学计算机系上海
8、交通大学计算机系质量度量质量度量w为了了产生一份生一份质量描述文档,量描述文档,经常需要将常需要将质量准量准则进一步一步细分。例如可用性下面的易理解性,可分。例如可用性下面的易理解性,可以分成:菜以分成:菜单结构的易理解性,特构的易理解性,特别是某是某项执行行功能的命令要容易找到,其它方面功能的命令要容易找到,其它方面还包括包括错误消消息的提供,帮助信息的提供等息的提供,帮助信息的提供等1/10/202311上海交通大学计算机系上海交通大学计算机系ISO9126w目前,不少人提出了不同的目前,不少人提出了不同的软件件质量特性表示方量特性表示方法。但是缺少一个公共的法。但是缺少一个公共的标准。例
9、如可准。例如可维护性能性能够指指错误可以迅速确定并被修改,也可以指可以迅速确定并被修改,也可以指软件件能能够很容易地被修改。很容易地被修改。w制定于制定于19911991年的年的ISO9126ISO9126标准就是准就是处理理软件件质量量问题的。的。这份份1313页的的标准准为制定制定进一步的一步的标准奠准奠定了基定了基础。1/10/202312上海交通大学计算机系上海交通大学计算机系ISO9126wISO9126ISO9126规定定软件件质量可以从量可以从6 6个特性来个特性来评价:价:nFunctionality:Functionality:与一与一组功能及其指定的性功能及其指定的性质有关
10、的一有关的一组属性属性nReliability:Reliability:在在规定的定的时间和条件下,和条件下,软件件维持其性能水平的能持其性能水平的能力有关的一力有关的一组属性属性nUsability:Usability:与一与一组规定或潜在用定或潜在用户为使用使用软件所需作的努力和件所需作的努力和对这样的使用所作的的使用所作的评价有关的一价有关的一组属性属性nEfficiency:Efficiency:在在规定的条件下,定的条件下,软件性能水平与所用的件性能水平与所用的资源量之源量之间关系相关的一关系相关的一组属性属性nMaintainability:Maintainability:与与进行
11、指定的修改所需的努力有关的一行指定的修改所需的努力有关的一组属性属性nPortability:Portability:与与软件可从某一件可从某一环境境转移到另一移到另一环境的能力有关的境的能力有关的一一组属性属性1/10/202313上海交通大学计算机系上海交通大学计算机系ISO9126wISO9126ISO9126对每一特性每一特性规定了子特性定了子特性n功能特性:功能特性:wCompliance(Compliance(依从性依从性)指的是指的是软件符合件符合应用用标准或法律的程度。准或法律的程度。wInteroperabilityInteroperability(互操作性)指的是(互操作性
12、)指的是软件与其它系件与其它系统交互交互的能力的能力1/10/202314上海交通大学计算机系上海交通大学计算机系ISO9126n可靠性可靠性wMaturityMaturity(成熟性)指的是由于(成熟性)指的是由于软件件产品的品的问题而出而出现故障故障的的频率率n可用性可用性1/10/202315上海交通大学计算机系上海交通大学计算机系ISO9126n效率和可效率和可维护性性wStability(Stability(稳定性定性)不是指不是指软件从不件从不变化,而是指化,而是指软件由于件由于预想不到的原因而要修改的想不到的原因而要修改的风险很低。很低。n可移植性可移植性wConformance
13、(Conformance(遵循性遵循性):):与与Compliance(Compliance(依从性依从性)不一不一样,它与,它与可移植性有关。例如使用可移植性有关。例如使用标准的准的编程程语言就是一种遵循性。言就是一种遵循性。1/10/202316上海交通大学计算机系上海交通大学计算机系ISO9126wISO9126ISO9126也提供了使用也提供了使用这些些质量特性的指南。量特性的指南。n对于不同的于不同的产品,各种品,各种质量特性的重要程度是各不相量特性的重要程度是各不相同的。一旦同的。一旦软件件产品的需求建立起来后,就要品的需求建立起来后,就要进行下行下列步列步骤:w质量度量量度量标准
14、的准的选择:ISO9126ISO9126没有没有给出具体的方法出具体的方法w排序水平定排序水平定义:度量的:度量的结果需要映射成等果需要映射成等级以确定需求以确定需求满足足的程度。的程度。1/10/202317上海交通大学计算机系上海交通大学计算机系ISO9126w评价准价准则定定义n对每一个特性每一个特性进行行评价后,需要价后,需要对整个整个产品有一个品有一个综合的合的质量量评价价nISO9126ISO9126没有没有给出具体的方法。出具体的方法。n推荐方法:首先根据推荐方法:首先根据产品的特定确定必品的特定确定必须的特性,如果的特性,如果产品在品在这些特性方面没有些特性方面没有满足,足,则
15、不能采用,不能采用,对于那些不是最于那些不是最为关关键的特性可以采用下表的方法的特性可以采用下表的方法进行行综合合计算:算:1/10/202318上海交通大学计算机系上海交通大学计算机系软件质量度量方法软件质量度量方法w本本节所所讲的是某些的是某些质量特性的建量特性的建议的度量方法,的度量方法,对于具体的于具体的产品,品,质量特性的度量各有不同。量特性的度量各有不同。w可靠性可靠性nAvailabilityAvailability(可用性):在一段(可用性):在一段时间内系内系统可用的可用的时间比例比例nMeantimebetweenfailuresMeantimebetweenfailure
16、s(MTBFMTBF):两次失效两次失效间隔的平均隔的平均时间nFailureondemand:Failureondemand:在需要用在需要用该系系统的的时间,系,系统不可工作的概率,不可工作的概率,或者一或者一项事事务失失败的概率的概率nSupportactivity:Supportactivity:错误报告的次数告的次数w某一系某一系统安装后,一般在星期一到星期五中安装后,一般在星期一到星期五中8:008:00到到6 6:0000使用,四星使用,四星期后,系期后,系统因因为硬硬盘问题有一整天不可用。在接下来的另外两天由有一整天不可用。在接下来的另外两天由于于头天晚上的批天晚上的批处理运行
17、的理运行的问题每次直到早晨每次直到早晨1010点才能使用,点才能使用,请计算算AvailabilityAvailability和和MTBFMTBF。1/10/202319上海交通大学计算机系上海交通大学计算机系软件质量度量方法软件质量度量方法w可可维护性性n该特性与灵活性特性与灵活性紧密关密关联。灵活性是系。灵活性是系统修改的容易修改的容易程度。可程度。可维护性可以用灵活性加上可性可以用灵活性加上可诊断性来度量。断性来度量。诊断性可以用断性可以用诊断一个断一个错误的平均的平均时间来度量。来度量。w可可扩展性展性n将新的特征加到将新的特征加到现有系有系统中的效率占从中的效率占从头开始开开始开发一
18、一个新系个新系统的效率的比。的效率的比。n某公司开某公司开发一个包含一个包含5000SLOC5000SLOC的系的系统花花费了了400400个人个人日。日。对系系统添加一个新功能增加了添加一个新功能增加了100SLOC100SLOC花花费2020个个人日,人日,问扩展性展性为多少?多少?n40401/10/202320上海交通大学计算机系上海交通大学计算机系产品和过程质量管理产品和过程质量管理w上述度量都是在上述度量都是在产品出来后品出来后进行的,行的,这种事后度量也种事后度量也许太晚了。太晚了。w在在过程的各个程的各个阶段可能都会引入段可能都会引入错误,这种种错误将将传递到后到后续的的阶段。
19、因而需要在段。因而需要在过程程进行中尽心仔行中尽心仔细的的检查。nEntryRequirements:EntryRequirements:在活在活动开始前,需要准开始前,需要准备好的条件。如在好的条件。如在开始前,要准开始前,要准备好好测试数据和期待数据和期待结果。果。nImplementationRequirements:ImplementationRequirements:过程如何程如何进行。如在行。如在测试中,当中,当发现一个一个错误并加以改并加以改进后,所有的后,所有的测试必必须重新重新进行。行。nExitRequirements:ExitRequirements:在一个活在一个活动结
20、束前必束前必须满足的条件。例如足的条件。例如测试阶段段结束的条件是所有的束的条件是所有的错误都被更正并且不能都被更正并且不能够再再发现任何任何错误。w问题:在什么情况下,前面一个活:在什么情况下,前面一个活动的的结束条件不是后束条件不是后面一个活面一个活动的的进入条件。入条件。1/10/202321上海交通大学计算机系上海交通大学计算机系产品和过程质量管理产品和过程质量管理w答案:在某些答案:在某些场合,某一活合,某一活动可以在它前面一个可以在它前面一个活活动完全完全结束前开始。在束前开始。在这种情况下,后面活种情况下,后面活动的的进入条件可以与前面一个活入条件可以与前面一个活动的退出条件不一
21、的退出条件不一致。例如,某些致。例如,某些软件模件模块的界面的界面还没有最后没有最后调整整好前,就可以先在硬件平台上来好前,就可以先在硬件平台上来测试性能。性能。w问题:请为学院工学院工资系系统的代的代码编写活写活动确定确定进入条件和退出条件?入条件和退出条件?1/10/202322上海交通大学计算机系上海交通大学计算机系提高软件质量的途径提高软件质量的途径wIncreasingvisibility(Increasingvisibility(增加可增加可见性性):):例如例如“egolessprogramming”“egolessprogramming”编程程员相互相互浏览对方方代代码。wPr
22、ocedureStructure(ProcedureStructure(过程程结构)构)wCheckingIntermediateStages(CheckingIntermediateStages(检查中中间环节):将:将错误消消灭在萌芽状在萌芽状态1/10/202323上海交通大学计算机系上海交通大学计算机系提高软件质量的途径提高软件质量的途径wInspection(Inspection(检查):):n通通过将完成的工作交付将完成的工作交付给多个合作者多个合作者检查,然后召开,然后召开会会议进行行讨论如何修改。如何修改。该方法可以:方法可以:w很容易地很容易地发现表面表面错误w激励激励编程人
23、程人员编写出写出结构更好,更清晰地代构更好,更清晰地代码,因,因为他知道他知道否否则别的人将会批的人将会批评他他w提高提高团队精神精神1/10/202324上海交通大学计算机系上海交通大学计算机系提高软件质量的途径提高软件质量的途径nIBMIBM建立了一套更建立了一套更为正式和正式和结构化的构化的检查过程,称程,称为FanganFangan检查w对所有主要的交付物都所有主要的交付物都进行行检查w所有的所有的错误都需加以注意,而不都需加以注意,而不仅是是逻辑的和功能的的和功能的错误w检查可以由在所有可以由在所有层次的人次的人员(除了最上(除了最上层的人的人员外)外)进行行检查w检查采用采用预定定
24、义的步的步骤进行行w检查会会议不超不超过两小两小时w检查由一个由一个经过训练的的“moderator”“moderator”来来领导w其它参与者也有定其它参与者也有定义的角色,例如一个人的角色,例如一个人员担任担任记录员,另一担任,另一担任阅读者等者等w采用采用ChecklistChecklist来帮助来帮助检查过程的程的实施施w检查材料材料时采用采用100100行一小行一小时的速度的速度w采用采用统计方法来方法来对检查过程的有效性程的有效性进行行监控控1/10/202325上海交通大学计算机系上海交通大学计算机系结构化编程和净室软件开发结构化编程和净室软件开发w在二十世在二十世纪6060年代
25、,年代,软件件变得越来越复得越来越复杂而人而人记忆细节的能力是有的能力是有限的。因此,不可能去限的。因此,不可能去对软件的所有部分件的所有部分进行完全行完全测试。测试所能所能做的是做的是证明明错误的出的出现,而不是没有,而不是没有错误。DijkstraDijkstra建建议保保证软件件代代码正确性的唯一方法是正确性的唯一方法是对代代码重新重新审视。w复复杂系系统可以分成子部件,可以分成子部件,为了使了使这种分解工作正常,每个部件必种分解工作正常,每个部件必须自包含,同自包含,同时只有一个只有一个进入点和一个退出点。入点和一个退出点。w该观点点进一步一步发展展为IBMIBM的的净室室软件开件开发
26、,该方法将方法将软件开件开发分分为三三个小个小组:n分析小分析小组n开开发小小组n校校验小小组n系系统采用增量式方式开采用增量式方式开发,每个,每个团队的的产出都必出都必须满足用足用户的需要。开的需要。开发小小组不不进行行编译而代之以用数学方法来而代之以用数学方法来证明。校明。校验小小组不断的不断的测试直直到到满足特定的足特定的统计水平。水平。1/10/202326上海交通大学计算机系上海交通大学计算机系形式化方法形式化方法w数学方法采用的是数学方法采用的是对每一个每一个过程定程定义前提条件和前提条件和后置条件。后置条件。w前提条件定前提条件定义了在了在处理前允理前允许的状的状态,后置条件,后
27、置条件定定义了了处理后的状理后的状态。由于数学方法是精确的,。由于数学方法是精确的,因此可以保因此可以保证其正确性。其正确性。1/10/202327上海交通大学计算机系上海交通大学计算机系软件质量循环软件质量循环w尽管尽管测试方法和方法和FaganFagan检查能能够帮助帮助发现问题,但是相同但是相同类型的型的错误还是一犯再犯。是一犯再犯。w通通过发现错误的来源,的来源,应该可以减少相同的可以减少相同的错误。w因而,开因而,开发人人员可以在可以在质量循量循环中参与中参与错误来源来源的的查找,找,该过程称程称为软件件质量循量循环(SoftwareSoftwarequalitycircles,SW
28、QC).qualitycircles,SWQC).w质量循量循环由四个到十个自愿者构成,每个星期采由四个到十个自愿者构成,每个星期采用一定用一定时间如一小如一小时寻找、分析和找、分析和处理他理他们工作工作中的中的问题。1/10/202328上海交通大学计算机系上海交通大学计算机系软件质量循环软件质量循环w识别一系列一系列问题w选择一个一个问题加以加以处理理w将将问题分析清楚分析清楚w分析原因并加以分析原因并加以评价价w分析解决方案并加以分析解决方案并加以评价价w决定采用某一解决方案决定采用某一解决方案w开开发一个一个实施施计划划w将将计划交划交给管理部管理部门w实施施计划划w监控控计划划w考考
29、虑解决方案更广泛的解决方案更广泛的应用用w重新重新选择问题w问题:软件件质量循量循环与一般的与一般的检查过程有何区程有何区别w一个是面向所有一个是面向所有过程,一个是面向某一程,一个是面向某一产品品1/10/202329上海交通大学计算机系上海交通大学计算机系GQM方法方法w过程改善可以采用定量程改善可以采用定量测量技量技术来来实现。wGQM(Goal/Question/Metric)GQM(Goal/Question/Metric)方法:方法:n首先需要定首先需要定义一个目一个目标,该目目标可能是可能是评估是否一个新的估是否一个新的编程程语言能言能够提高开提高开发者的效率。者的效率。n为了完
30、成目了完成目标,可以提出,可以提出许多多问题,例如,例如对于上述目于上述目标,问题可可以以为:w目前开目前开发者者编程的速度有多快?程的速度有多快?w开开发者利用新的者利用新的编程程语言有多快?言有多快?w目前的目前的软件件质量如何?量如何?w利用新利用新语言言软件件质量如何?量如何?n对每一个每一个问题,可以定,可以定义度量方法,例如来度量开度量方法,例如来度量开发速度可以根速度可以根据开据开发每一功能点花每一功能点花费的的时间来来进行。行。1/10/202330上海交通大学计算机系上海交通大学计算机系小结小结w软件质量的重要性软件质量的重要性w软件质量的描述软件质量的描述w质量度量质量度量wISO9126w软件质量度量方法软件质量度量方法w软件质量改进软件质量改进1/10/202331