《se8_ch05_v5软件工程工具.ppt》由会员分享,可在线阅读,更多相关《se8_ch05_v5软件工程工具.ppt(28页珍藏版)》请在三一办公上搜索。
1、Object-Oriented and Classical Software Engineering 计算机科学与技术学院于明远,CHAPTER 5,THE TOOLS OF THE TRADE,Overview,Stepwise refinement Costbenefit analysis Software metrics CASE Taxonomy of CASE分类 Scope of CASE Software versions Configuration control Build toolsProductivity gains with CASE technology使用Case技
2、术提高技术生产力,5.1 Stepwise Refinement逐步求精法,软件开发的分析工具,工具,逐步求精法成本-效益分析法,理论(分析)工具,软件工具,帮助软件工程师小组开发和维护软件的产品,软件(CASE)工具,A basic principle underlying many software engineering techniques“Postpone decisions as to details as late as possible to be able to concentrate on the important issues”尽可能将细节的定义推延到最后,以便集中精力
3、在重要的事项上,Millers law(1956)A human being can concentrate on 7 2 items at a time,5.1.1 Stepwise Refinement Mini Case Study,设计一个产品,更新包含有True Life Software Disasters月刊订户名和地址数据的顺序主文件。Three types of transactions Type 1:INSERT(a new subscriber订户into the master file)Type 2:MODIFY(an existing subscriber recor
4、d)Type 3:DELETE(an existing subscriber record)事务是按订户名的字母顺序排序的。如果对一个指定的订户有两个以上的事务,则对该用户的事务重新排序,以便插入发生在修改之前,而修改发生在删除之前。,设计解决方案,第一步:建立输入事务的典型文件,如下表所示:,问题描述如下,有两个输入文件,三个输出文件:,输入:(1)旧的主文件名和地址记录;(2)事务文件;输出:(1)新的主文件名和地址记录;(2)异常报告;(3)概要和工作结束消息;,更新主文件,事务文件,异常报告,旧的主文件,概要和工作结束消息,新的主文件,解决方案,第二步:开始设计过程;开始点是上图的更新
5、主文件方框,更新主文件,输入,处理,输出,该方框可分解为三个方框:输入、处理和输出;分离输入,输出,关注处理!,设计的第一次求精,事务文件,旧的主文件,新的主文件,异常报告,解决方案,处理的图表表示:,解决方案,第三步对处理框再次提炼,进行第二次求精,如下图所示:,更新主文件,输入,差错,写入新文件记录,执行插入,输出,执行修改,差错,差错,测试事务类型,测试事务类型,比较事务记录关键词主文件记录关键词,执行删除,A,A,A,A,A,=,INSERT,INSERT,MODIFY,MODIFY,DELETE,DELETE,解决方案,第四步求精输入和输出方框,如下图所示,更新主文件,执行差错处理子
6、程序,写入新文件记录,写新文件记录,写工作结束消息,写新主文件记录,执行差错处理子程序,读事务文件,测试事务类型,测试事务类型,比较事务记录关键词主文件记录关键词,读事务文件,A,A,A,A,=,INSERT,INSERT,MODIFY,MODIFY,DELETE,DELETE,读旧主文件记录,执行差错处理子程序,读旧主文件读事务文件,设计有主要错误,解决方案,第五步,进行第四次求精,考虑打开,关闭文件等细节问题的处理;逐步求精法可看成是建立某个阶段内需解决的各种问题的优先级的一种技术,逐步求精确保每个问题都得到解决,并且在合适的时间解决,不需要一次处理超过7 2个程序块;逐步求精是一项通用技
7、术,可用于软件开发的每个工作流,表现形式也可以多种多样。使用逐步求精法的难点在于确定当前的求精中必须处理的重要事项,以及哪些事项需推迟到后面的求精中解决;,5.2 CostBenefit Analysis 成本效益分析法,成本-效益分析法:对比估计的未来收益和预测的未来成本,确定一个可能的行为过程是否有利可图;成本-效益分析法是确定客户是否应当进行业务计算机化的基本技术,如果确定使用计算机处理业务,应用何种方式来比较各种可选方案的成本和效益;,5.3 Software Metrics软件度量,没有度量(或测度)是不可能在软件开发过程的早期,在问题暴露之前检测到该问题的;常用的度量:代码行(LO
8、C),每千行代码检测出的错误数,平均故障间隔时间,人月为单位测试工作量,职员的流动性;产品度量:测量产品本身的某个特性,例如规模或可靠性过程度量:开发者使用这些度量推断有关软件开发过程的信息,例如开发过程中错误检测的有效性;成本与计算度量值所需搜集的数据相关;一个软件组织应该测量什么?The Five Basic Metrics:(1)规模(代码行);(2)成本(美元);(3)持续时间(以月计);(4)工作量(人月);(5)质量(检测错误数)。这些度量每一个都必须按工作流测量,根据从这些基本度量中获得的数据,管理者可以发现软件组织内部的问题;,5.4 CASE(Computer-Aided S
9、oftware Engineering),软件开发产品的开发过程中,需要进行许多不同的操作。典型的活动包括评估资源要求、写出规格说明文档、进行集成测试以及编写用户操作指南。这些工作不能由计算机完全自己实现,需要人的参与,但是计算机可以辅助这些工作的实现;CASE:计算机辅助软件工程;CASE包含计算机支持软件工程的所有方面;,CASE的分类,UpperCASE(front-end tool)高端CASE或高端工具:在软件开发过程的较早工作流帮助开发者的CASE工具;LowerCASE(back-end tool)低端CASE或低端工具:帮助实现流、和交付后维护的CASE工具;数据字典一致性检查
10、器报表生成器屏幕生成器图形表示工具与数据字典结合,一致性检查器、报表生成器一起构成需求、分析和设计的工作平台;另一类工作平台是需求管理工作平台,这类工作平台允许系统分析员组织和跟踪软件开发项目的需求;,CASE的分类,CASE工作平台是一些工具的集合,共同支持一个或两个活动,这里,活动是相关任务的集合;将CASE技术从工具到工作平台的发展再继续下去,下一项是CASE环境。与一个支持一个或两个活动的工作平台不同,环境支持整个软件开发过程,或者至少是软件开发过程的大部分;,Taxonomy分类of CASE(contd),(a)Tool versus(b)workbench平台 versus(c)
11、environment,Figure 5.9,5.6 Scope of CASE CASE的范围,实现CASE技术的一个主要原因是总是需要有准确、最新和可用的文档;,编程工具一词指诸如文本编辑器、调试器和灵巧打印机这样的CASE工具;,电子邮件电子数据表格文字处理器,结构编辑器:灵巧打印机在线接口检查语法指导编辑器操作系统前端源代码调试器,5.7 Software Versions 软件版本,老版本,新版本,新版本替代老版本?,适应性维护,纠错性维护,多个软件版本,控制!,5.8 Configuration Control 配置控制,制品代码形式:(1)源代码(2)目标代码(编译代码)(3)可
12、执行载入映像,运行时例程,可执行载入映像,编译文件1,编译文件2,编译文件3,编译文件n,源文件1,源文件2,源文件3,源文件n,.,.,某个(完成的)产品的给定版本所赖以建造的每个制品的特定版本称为该产品那个版本的配置,配置控制,现象:测试报告显示一个制品在某组测试数据上有问题。问题:程序员如何确定制品哪个变种版的哪个修订版进入了出现问题的产品版本?处理多个版本时必须解决两个问题:第一,有必要区分版本,以便将每个制品的正确版本编译并链接到产品中;第二,存在相反的问题:给定一个可执行载入映像,确定每个组件的哪个版本进入了它;解决问题的方法:(1)版本控制工具;(2)保留产品每个版本的详细记录(
13、出处),配置控制,版本控制常用技术:使每个文件的名称包含两部分,文件名本身和修订版本号;关于多个变种版,一个基本的文件名后跟着一个带圆括号的变种名;版本控制记录出处的方法:包括每个源代码组成部分的名称、使用的多种编译器和链接器的版本、创建产品的人的名字,生成产品的日期和时间;如果在一个变种版中发现的错误在其他变种版本中也存在,怎么办?配置控制工具可以自动管理多个变种版,但配置控制的作用不局限于多个变种版。配置控制工具还可以处理小组开发和维护时出现的问题;,Configuration-Control,问题:多个程序员同时维护一个产品,会产生意想不到的麻烦如何解决?基准Baselines:产品中所
14、有制品的配置(版本集)个人工作台Private workspaces冻结version is frozen产品开发过程中的配置控制While an artifact is being codedThe programmer performs informal testingThen the artifact is given to the SQA group for methodical testingAn artifact must be subject to configuration control from the time it is passed by SQA,Configurat
15、ion-Control Tools,UNIX version-control toolssccs源代码控制系统rcs修订版控制系统cvs并行版本控制系统Popular commercial configuration-control toolsPVCSSourceSafeOpen-source configuration-control toolcvs,5.9 Build Tools建造工具,任何版本控制工具都将帮助用户区分源代码制品的不同版本;但跟踪编译代码更难,因为有些版本控制工具不把编译后版本的修改版本附上;解决方法:晚上自动编译每个制品的最新版,确保所有的编译代码总是最新的;缺点:浪费
16、计算机时间;解决方法:如UNIX工具make,如make这样的工具已经加到不断变化的编程环境中;,5.10 Productivity Gains with CASE Tools提高生产力,Survey of 45 companies in 10 industries(1992)Half information systemsQuarter scientific software Quarter real-time aerospace softwareResults年生产力 annual productivity gains时间成本软件质量,作业,P90 5.6,5.7,5.17,The End,Thank you!,