Slide5.1Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.Object-OrientedandClassicalSoftwareEngineering计算机科学与技术学院于明远Slide5.2Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.CHAPTER5THETOOLSOFTHETRADESlide5.3Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.OverviewStepwiserefinementCost–benefitanalysisSoftwaremetricsCASETaxonomyofCASE分类ScopeofCASESoftwareversionsConfigurationcontrolBuildtoolsProductivitygainswithCASEtechnology使用Case技术提高技术生产力Slide5.4Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.5.1StepwiseRefinement逐步求精法软件开发的分析工具工具逐步求精法成本-效益分析法理论(分析)工具软件工具帮助软件工程师小组开发和维护软件的产品软件(CASE)工具Abasicprincipleunderlyingmanysoftwareengineeringtechniques“Postponedecisionsastodetailsaslateaspossibletobeabletoconcentrateontheimportantissues”尽可能将细节的定义推延到最后,以便集中精力在重要的事项上Miller’slaw(1956)Ahumanbeingcanconcentrateon7±2itemsatatimeSlide5.5Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.5.1.1StepwiseRefinementMiniCaseStudy设计一个产品,更新包含有《TrueLifeSoftwareDisasters》月刊订户名和地址数据的顺序主文件。Threetypesoftransactions–Type1:INSERT(anewsubscriber订户intothemasterfile)–Type2:MODIFY(anexistingsubscriberrecord)–Type3:DELETE(anexistingsubscriberrecord)事务是按订户名的字母顺序排序的。如果对一个指定的订户有两个以上的事务,则对该用户的事务重新排序,以便插入发生在修改之前,而修改发生在删除之前。Slide5.6Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.设计解决方案第一步:建立输入事务的典型文件,如下表所示:事务类型姓名地址31231BrownHarrisJonesJonesSmith2OakLane,TownsvilleBox345,Tarrytown1304ElmAvenue,OakCity问题描述如下,有两个输入文件,三个输出文件:输入:(1)旧的主文件名和地址记录;(2)事务文件;输出:(1)新的主文件名和地址记录;(2)异常报告;(3)概要和工作结束消息;更新主文件事务文件异常报告旧的主文件概要和工作结束消息新的主文件Slide5.7Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.解决方案第二步:开始设计过程;开始点是上图的更新主文件方框更新主文件输入处理输出该方框可分解为三个方框:输入、处理和输出;分离输入,输出,关注处理!设计的第一次求精3Brown1Harris2Jones3Jones1SmithAbelBrownJamesJonesSmithTownsendAbelHarrisJamesSmithTownsendSmith事务文件旧的主文件新的主文件异常报告Slide5.8Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.解决方案处理的图表表示:事务记录关键词=旧的主文件记录关键词1.INSERT:打印错误信息2.MODIFY:修改主文件记录3.DELETE:删除主文件记录事务记录关键词旧的主文件记录关键词复制旧的主文件记录到新的主文件事务记录关键词旧的主文件记录关键词1.INSERT:将事务记录写入新的主文件2.MODIFY:打印错误信息3.DELETE:打印错误信息Slide5.9Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.解决方案第三步对处理框再次提炼,进行第二次求精,如下图所示:更新主文件输入差错写入新文件记录执行插入输出执行修改差错差错测试事务类型测试事务类型比较事务记录关键词主文件记录关键词执行删除AAAAA=INSERTINSERTMODIFYMODIFYDELETEDELETESlide5.10Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.解决方案第四步求精输入和输出方框,如下图所示更新主文件执行差错处理子程序写入新文件记录写新文件记录写工作结束消息写新主文件记录执行差错处理子程序读事务文件测试事务类型测试事务类型比较事务记录关键词主文件记录关键词读事务文件AAAA=INSERTINSERTMODIFYMODIFYDELETEDELETE读旧主文件记录执行差错处理子程序读旧主文件读事务文件设计有主要错误Slide5.11Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.解决方案第五步,进行第四次求精,考虑打开,关闭文件等细节问题的处理;逐步求精法可看成是建立某个阶段内需解决的各种问题的优先级的一种技术,逐步求精确保每个问题都得到解决,并且在合适的时间解决,不需要一次处理超过7±2个程序块;逐步求精是一项通用技术,可用于软件开发的每个工作流,表现形式也可以多种多样。使用逐步求精法的难点在于确定当前的求精中必须处理的重要事项,以及哪些事项需推迟到后面的求精中解决;Slide5.12Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.5.2Cost–BenefitAnalysis成本效益分析法成本-效益分析法:对比估计的未来收益和预测的未来成本,确定一个可能的行为过程是否有利可图;成本-效益分析法是确定客户是否应当进行业务计算机化的基本技术,如果确定使用计算机处理业务,应用何种方式来比较各种可选方案的成本和效益;Slide5.13Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.5.3SoftwareMetrics软件度量没有度量(或测度)是不可能在软件开发过程的早期,在问题暴露之前检测到该问题的;常用的度量:代码行(LOC),每千行代码检测出的错误数,平均故障间隔时间,人月为单位测试工作量,职员的流动性;产品度量:测量产品本身的某个特性,例如规模或可靠性过程度量:开发者使用这些度量推断有关软件开发过程的信息,例如开发过程中错误检测的有效性;成本与计算度量值所需搜集的数据相关;一个软件组织应该测量什么?TheFiveBasicMetrics:(1)规模(代码行);(2)成本(美元);(3)持续时间(以月计);(4)工作量(人月);(5)质量(检测错误数)。这些度量每一个都必须按工作流测量,根据从这些基本度量中获得的数据,管理者可以发现软件组织内部的问题;Slide5.14Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.5.4CASE(Computer-AidedSoftwareEngineering)软件开发产品的开发过程中,需要进行许多不同的操作。典型的活动包括评估资源要求、写出规格说明文档、进行集成测试以及编写用户操作指南。这些工作不能由计算机完全自己实现,需要人的参与,但是计算机可以辅助这些工作的实现;CASE:计算机辅助软件工程;CASE包含计算机支持软件工程的所有方面;Slide5.15Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.CASE的分类UpperCASE(front-endtool)高端CASE或高端工具:在软件开发过程的较早工作流帮助开发者的CASE工具;LowerCASE(back-endtool)低端CASE或低端工具:帮助实现流、和交付后维护的CASE工具;数据字典一致性检查器报表生成器屏幕生成器图形表示工具与数据字典结合,一致性检查器、报表生成器一起构成需求、分析和设计的工作平台;另一类工作平台是需求管理工作平台,这类工作平台允许系统分析员组织和跟踪软件开发项目的需求;Slide5.16Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.CASE的分类CASE工作平台是一些工具的集合,共同支持一个或两个活动,这里,活动是相关任务的集合;将CASE技术从工具到工作平台的发展再继续下去,下一项是CASE环境。与一个支持一个或两个活动的工作平台不同,环境支持整个软件开发过程,或者至少是软件开发过程的大部分;Slide5.17Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.Taxonomy分类ofCASE(contd)(a)Toolversus(b)workbench平台versus(c)environmentFigure5.9Slide5.18Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.5.6ScopeofCASECASE的范围实现CASE技术的一个主要原因是总是需要有准确、最新和可用的文档;编程工具一词指诸如文本编辑器、调试器和灵巧打印机这样的CASE工具;规格说明书发生了变更如何知道是修改了何处一些帮助文档如何获得编写程序出现语法错误怎么办函数的参数出现错误怎么办调试程序时如何跟踪结果。。。。。。电子邮件电子数据表格文字处理器结构编辑器:灵巧打印机在线接口检查语法指导编辑器操作系统前端源代码调试器……Slide5.19Copyright©2011byTheMcGraw-HillCompanies,Inc.Allrightsreserved.5.7SoftwareVersions软件版本老版本新版本新版本替代老版本?适应性维护纠错性维护多个软件版本控制!修正版Revision变种版variationAversiontofixafaultintheartifactWecannotthrowawayanincorrectversionThenewversionmaybenobetterSomesitesmaynotinstallthenewversionAvariationisaversionfora