清华大学殷仁昆教授讲授《软件工程》-12.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《清华大学殷仁昆教授讲授《软件工程》-12.ppt》由会员分享,可在线阅读,更多相关《清华大学殷仁昆教授讲授《软件工程》-12.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程第十二章第十二章 软件工具与环境软件工具与环境 授课老师:清华大学计算机系授课老师:清华大学计算机系 殷人昆殷人昆 password qhdxjsjx 1第九章第九章 计算机辅助软件工程计算机辅助软件工程 CASE对于一个项目而言,最好的生产环境应具有对于一个项目而言,最好的生产环境应具有三个基本特征三个基本特征:1)一组有用的一组有用的工具工具:在生产产品时提供帮助;:在生产产品时提供帮助;2)一个很好的一个很好的部署部署:能够快速找到和高效使:能够快速找到和高效使用合用的工具;用合用的工具;3)一些熟练的一些熟练的技术人员技术人员:他们知道如何以有:他们知道如何以有效的方式
2、来使用这些工具。效的方式来使用这些工具。这种生产环境叫做集成的项目支撑环境这种生产环境叫做集成的项目支撑环境IPSE。其中的工具叫做计算机辅助软件工程其中的工具叫做计算机辅助软件工程CASE。2CASE的层次结构的层次结构环境体系结构环境体系结构硬件平台硬件平台操作系统操作系统可移植服务可移植服务集成框架集成框架CASE工具工具3上一层构成下一层的基础。上一层构成下一层的基础。环境体系结构由硬件平台和系统支持(包括网环境体系结构由硬件平台和系统支持(包括网络软件、数据库管理、对象管理服务)构成络软件、数据库管理、对象管理服务)构成一组可移植服务来自于一组可移植服务来自于CASE工具和集成框架,
3、工具和集成框架,允许允许CASE工具和集成框架跨越不同的硬件平工具和集成框架跨越不同的硬件平台和操作系统。台和操作系统。集成框架是一组专用程序,提供工具之间相互集成框架是一组专用程序,提供工具之间相互通信的能力,能够创建项目数据库,并向终端通信的能力,能够创建项目数据库,并向终端用户展示相同风格的界面。用户展示相同风格的界面。4CASE工具与环境的作用工具与环境的作用用来辅助软件开发、运行、维护、管理、支用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为持等过程中的活动的软件称为CASE工具。工具。CASE工具与环境的作用工具与环境的作用1)辅助软件工程方法和过程的实施辅助软件工
4、程方法和过程的实施2)提高软件开发、维护和管理效率提高软件开发、维护和管理效率3)提供提供检测机制,提高软件质量检测机制,提高软件质量CASE 是各种软件开发和系统集成的产品和是各种软件开发和系统集成的产品和工具的集合,目的是支持各种软件开发方法。工具的集合,目的是支持各种软件开发方法。1993年年Fuggertta对对CASE工具作了分类。工具作了分类。5CASE工具的分类工具的分类CASE工具工具工作台工作台环境环境工具工具编编辑辑器器编编译译器器文件文件比较比较器器分析与分析与设计工设计工作台作台编程编程工作工作台台测试测试工作工作台台以以过过程程为为中心中心的环的环境境集集成成环环境境
5、特定特定语言语言工作台工作台多语多语言工言工作台作台单方单方法工法工作台作台多多方方法工法工作台作台61)工工具具:是是指指支支持持软软件件开开发发单单个个活活动动或或任任务务的的软件工具。软件工具。2)工工作作台台:是是指指支支持持某某一一软软件件过过程程或或一一个个过过程程中一组活动的工具集。集成有若干工具。中一组活动的工具集。集成有若干工具。3)环环境境:是是指指支支持持某某些些软软件件过过程程以以及及相相关关的的大大部分部分活动的工具集。集成了若干工作台。活动的工具集。集成了若干工作台。v集集成成化化环环境境提提供供对对数数据据集集成成、控控制制集集成成、表示集成机制的基本支持。表示集
6、成机制的基本支持。v以以过过程程为为中中心心的的环环境境通通过过过过程程模模型型和和过过程程引擎提供对软件开发活动的导引。引擎提供对软件开发活动的导引。7基于支持活动的基于支持活动的CASE工具分类工具分类1)业务过程工程工具业务过程工程工具:针对组织的战略性信息:针对组织的战略性信息需求建模,用以表示业务数据对象、数据对需求建模,用以表示业务数据对象、数据对象之间的关系,这些数据对象如何在组织内象之间的关系,这些数据对象如何在组织内部各个不同业务领域之间流动。部各个不同业务领域之间流动。2)过程建模和管理工具过程建模和管理工具:用于描述业务(或软:用于描述业务(或软件)过程,以及过程中的关键
7、元素。它还提件)过程,以及过程中的关键元素。它还提供到其他支持过程活动定义的工具的链接。供到其他支持过程活动定义的工具的链接。3)项目计划工具项目计划工具:支持软件项目成本和工作量:支持软件项目成本和工作量的估算,以及项目季度的安排。的估算,以及项目季度的安排。84)风险分析工具风险分析工具:通过提供针对风险标识和分:通过提供针对风险标识和分析的详细指南,帮助项目经理建立风险表。析的详细指南,帮助项目经理建立风险表。5)项目管理工具项目管理工具:通过在项目的执行过程中收:通过在项目的执行过程中收集度量数据,为最终产品的质量提供指示。集度量数据,为最终产品的质量提供指示。6)需求跟踪工具需求跟踪
8、工具:依据客户提交的需求请求和:依据客户提交的需求请求和在数据库中存储的原始客户需求和需求规格在数据库中存储的原始客户需求和需求规格说明,分析系统需求的变化。说明,分析系统需求的变化。7)度量和管理工具度量和管理工具:面向管理的度量工具捕获:面向管理的度量工具捕获与项目相关的数据与项目相关的数据(如每人月的源代码行数,如每人月的源代码行数,每个功能点的缺陷数每个功能点的缺陷数),确定生产率和质量。,确定生产率和质量。面向面向技术的度量工具确定技术特性。技术的度量工具确定技术特性。98)文档工具文档工具:支持文档生成和桌面出版。:支持文档生成和桌面出版。9)质量保证工具质量保证工具:通过审计源代
9、码以确定与语:通过审计源代码以确定与语言标准的符合程度。依据技术度量来规划被言标准的符合程度。依据技术度量来规划被开发软件的质量。开发软件的质量。10)数据库管理工具数据库管理工具:用于建立项目数据库。:用于建立项目数据库。11)软件配置管理工具软件配置管理工具:它位于每个:它位于每个CASE环境的环境的核心。用于标识配置对象、进行版本控制、核心。用于标识配置对象、进行版本控制、变更控制、审计和状态报告。变更控制、审计和状态报告。12)分析和设计工具分析和设计工具:用于帮助建立系统的数据、:用于帮助建立系统的数据、功能和行为模型,建立数据设计、体系结构功能和行为模型,建立数据设计、体系结构设计
10、、界面设计和过程设计方案。设计、界面设计和过程设计方案。1013)PRO/SIM工具工具:支持实时系统原型的建造和:支持实时系统原型的建造和仿真,提供实时系统建造完成前预测系统行仿真,提供实时系统建造完成前预测系统行为的能力。为的能力。14)界面设计与开发工具界面设计与开发工具:这是一个工具箱,包:这是一个工具箱,包括菜单、按钮、窗口结构、图符、滚动机制、括菜单、按钮、窗口结构、图符、滚动机制、设备驱动器等构件,帮助在屏幕上建造符合设备驱动器等构件,帮助在屏幕上建造符合当前软件采用的界面标准的现代用户界面。当前软件采用的界面标准的现代用户界面。15)原型实现工具原型实现工具:为交互式应用快速地
11、定义屏:为交互式应用快速地定义屏幕的布局。一些高级幕的布局。一些高级CASE原型实现工具能供原型实现工具能供执行数据设计并结合到屏幕布局。许多分析执行数据设计并结合到屏幕布局。许多分析与设计工具提供了建造原型的扩展功能。与设计工具提供了建造原型的扩展功能。1116)编程工具编程工具:包括编辑程序、编译程序和调试:包括编辑程序、编译程序和调试器等。第四代语言、图形程序设计环境、应器等。第四代语言、图形程序设计环境、应用生成器、数据库查询语言都属于这一类。用生成器、数据库查询语言都属于这一类。17)Web开发工具开发工具:即与:即与Web应用开发相关的一应用开发相关的一系列系列WebApp工具。工
12、具。18)集成和测试工具集成和测试工具:包括测试数据生成工具,:包括测试数据生成工具,静态测量(分析源代码但不执行测试用例)静态测量(分析源代码但不执行测试用例)工具,动态测量(执行源代码进行分析)工工具,动态测量(执行源代码进行分析)工具,仿真(模拟硬件和其他外部环境功能具,仿真(模拟硬件和其他外部环境功能)工具,测试管理(辅助测试计划、开发和控工具,测试管理(辅助测试计划、开发和控制)工具等制)工具等。1219)静态分析工具静态分析工具:v基于代码的测试工具:分析源代码,导出基于代码的测试工具:分析源代码,导出测试用例;测试用例;v专门的测试语言:描述详细的测试规格说专门的测试语言:描述详
13、细的测试规格说明、每个测试用例及它们的执行逻辑;明、每个测试用例及它们的执行逻辑;v基于需求的测试工具:分离特定的需求并基于需求的测试工具:分离特定的需求并建议针对这种需求的测试用例。建议针对这种需求的测试用例。20)动态分析工具动态分析工具:执行被测程序,检查路径覆:执行被测程序,检查路径覆盖率,特定路径上变量的值以及程序的执行盖率,特定路径上变量的值以及程序的执行流程。一般在程序中插装用于检查的探针。流程。一般在程序中插装用于检查的探针。1321)测试管理工具测试管理工具:用于控制和协调每一测试步:用于控制和协调每一测试步骤的测试,比较实测结果和预期结果。还可骤的测试,比较实测结果和预期结
14、果。还可以当作测试驱动器,读取测试用例并激活被以当作测试驱动器,读取测试用例并激活被测试的软件。测试的软件。22)客户机客户机/服务器测试工具服务器测试工具:用于测试图形用户:用于测试图形用户界面,以及客户机与服务器间的网络通信。界面,以及客户机与服务器间的网络通信。23)再工程工具再工程工具:v规格说明的逆向工程工具规格说明的逆向工程工具v代码重构和分析工具代码重构和分析工具v联机系统再工程工具联机系统再工程工具14工作台工作台一个工作台是一组工具集,支持如同设计、实一个工作台是一组工具集,支持如同设计、实现、测试等特定的软件开发阶段。现、测试等特定的软件开发阶段。将将CASE工具集成为一个
15、工作台后,工具可以工具集成为一个工作台后,工具可以协同工作,从而提供比单个工具更好的支持。协同工作,从而提供比单个工具更好的支持。工作台工具可以通过共享文件、共享数据结构、工作台工具可以通过共享文件、共享数据结构、共享数据仓库来集成。共享数据仓库来集成。CASE工作台有程序设计工作台、分析和设计工作台有程序设计工作台、分析和设计工作台、测试工作台、交叉开发工作台、配置工作台、测试工作台、交叉开发工作台、配置管理工作台、文档工作台、项目管理工作台等。管理工作台、文档工作台、项目管理工作台等。15开放式工作台和封闭式工作台开放式工作台和封闭式工作台CASE工作台可以支持一组相关的软件过程活工作台可
16、以支持一组相关的软件过程活动,这些活动可以应用于不同的应用领域和不动,这些活动可以应用于不同的应用领域和不同的组织。因此同的组织。因此CASE工作台应为开放式系统。工作台应为开放式系统。开放式工作台既可提供开放式工作台既可提供控制集成机制控制集成机制,又可,又可剪剪裁裁。而且其数据集成或协议是公有的,不是独。而且其数据集成或协议是公有的,不是独立的。由于还没有被广泛接受的数据集成的标立的。由于还没有被广泛接受的数据集成的标准,故大多数工作台都采用准,故大多数工作台都采用基于文件集成基于文件集成的策的策略。略。开发式工作台的优点是:开发式工作台的优点是:161)可以方便地将某个工具加入到开放式工
17、作可以方便地将某个工具加入到开放式工作台中,还可以用新的工具替换已有的工具。台中,还可以用新的工具替换已有的工具。2)可以用一个配置管理系统来管理各工具输可以用一个配置管理系统来管理各工具输出的文件。出的文件。3)能够不断增强工作台的功能,扩展工作台。能够不断增强工作台的功能,扩展工作台。4)工作台可以不依赖某个供应商。可以从不工作台可以不依赖某个供应商。可以从不同销售商那里购买工具再集成到工作台中。同销售商那里购买工具再集成到工作台中。如果某个工具开发商不再提供支持,最多如果某个工具开发商不再提供支持,最多只影响一部分工具,其他工具仍然有效。只影响一部分工具,其他工具仍然有效。封闭式工作台的
18、特点是:系统集成的约定是封闭式工作台的特点是:系统集成的约定是该工作台开发商独有的。该工作台开发商独有的。17程序设计工作台程序设计工作台许多工作台都是封闭式工作台,这样允许更紧许多工作台都是封闭式工作台,这样允许更紧密的数据集成、表示集成和控制集成。这样密的数据集成、表示集成和控制集成。这样出出现在用户面前的工作台是一个一致的整体,不现在用户面前的工作台是一个一致的整体,不是由风格迥异的工具组成的工具箱。是由风格迥异的工具组成的工具箱。该工作台由一组支持程序开发过程的工具组成该工作台由一组支持程序开发过程的工具组成,包括编辑器、编译器、连接器、加载器、调试包括编辑器、编译器、连接器、加载器、
19、调试器等。它们放在一个宿主机上,这种机器是为器等。它们放在一个宿主机上,这种机器是为程序开发专门制作的。程序开发专门制作的。组成程序设计工作台的工具可能有:组成程序设计工作台的工具可能有:181)语言编译器语言编译器:将源代码转换为目标代码,创:将源代码转换为目标代码,创建抽象语法树建抽象语法树(AST)和符号表。和符号表。2)结构化编辑器结构化编辑器:结合嵌入的编程语言知识,:结合嵌入的编程语言知识,对对AST中程序的语法表示进行编辑。中程序的语法表示进行编辑。3)连接器连接器:将已通过编译的程序目标代码模块:将已通过编译的程序目标代码模块连接起来。连接起来。4)加载器加载器:将可执行程序在
20、执行前装入内存。:将可执行程序在执行前装入内存。5)交叉引用交叉引用:产生一个交叉引用表,记载所有:产生一个交叉引用表,记载所有程序名在哪里声明和使用的。程序名在哪里声明和使用的。6)按格式打印按格式打印:扫描:扫描AST,打印源文件程序。打印源文件程序。197)静态分析器静态分析器:分析源代码,记录未初始化变:分析源代码,记录未初始化变量、不能执行到的代码、未调用到的过程等。量、不能执行到的代码、未调用到的过程等。8)动态分析器动态分析器:产生带附注的源代码清单,注:产生带附注的源代码清单,注明每个语句的执行次数,生成有关分支和循明每个语句的执行次数,生成有关分支和循环的信息,统计处理其使用
21、情况。环的信息,统计处理其使用情况。9)交互式调试器交互式调试器:允许用户控制程序执行次序,:允许用户控制程序执行次序,显示程序执行期间的程序状态。显示程序执行期间的程序状态。v程序设计工作台是利用语法树和符号表作为程序设计工作台是利用语法树和符号表作为共享数据来进行工具集成的。所有程序设计共享数据来进行工具集成的。所有程序设计工作台都采用这一方法。工作台都采用这一方法。20程序设计工作台程序设计工作台源代码源代码语言编译器语言编译器结构化编辑器结构化编辑器程序库程序库连接器连接器加载器加载器交互式调试器交互式调试器交叉引用交叉引用按格式打印按格式打印静态分析器静态分析器动态分析器动态分析器程
22、序报告程序报告格式化源格式化源文件清单文件清单执行报告执行报告可执行程序可执行程序语法树语法树符号表符号表已编译代码已编译代码执行程序执行程序用户用户调用调用编辑编辑调用调用21分析与设计工作台分析与设计工作台分析与设计工作台支持软件的分析与设计阶段。分析与设计工作台支持软件的分析与设计阶段。通常称其为上游通常称其为上游CASE工具。而程序设计工作工具。而程序设计工作台称为下游台称为下游CAASE工具。工具。这类工作台可以支持特定的分析或设计方法,这类工作台可以支持特定的分析或设计方法,如结构化方法、如结构化方法、JSD方法或方法或Booch方法。方法。它们还可以作为通用的图表编辑系统使用,可
23、它们还可以作为通用的图表编辑系统使用,可处理大多数通用方法的图表类型。面向方法的处理大多数通用方法的图表类型。面向方法的工具还提供方法规则和指南等。工具还提供方法规则和指南等。分析和设计工作台可能包括的工具有:分析和设计工作台可能包括的工具有:221)图表编辑器图表编辑器:用于创建数据流图、系统结构:用于创建数据流图、系统结构图、实体关系图等。它们可确认图表中出现图、实体关系图等。它们可确认图表中出现的实体的类型等信息,并将其存储于中央信的实体的类型等信息,并将其存储于中央信息仓库中。息仓库中。2)设计、分析与验证工具设计、分析与验证工具:进行设计分析,报:进行设计分析,报告错误和异常情况。告
24、错误和异常情况。3)仓库查询语言仓库查询语言:允许设计者查询中央信息仓:允许设计者查询中央信息仓库,寻找与设计相关的信息。库,寻找与设计相关的信息。4)数据字典数据字典:维护系统分析与设计时所用的实:维护系统分析与设计时所用的实体信息。体信息。235)报告定义与生成工具报告定义与生成工具:从中央信息仓库中取:从中央信息仓库中取得信息,并自动生成系统文档。得信息,并自动生成系统文档。6)移入移入/移出设施移出设施:允许中央信息仓库与其他软:允许中央信息仓库与其他软件开发工具进行信息交互。件开发工具进行信息交互。7)代码生成器代码生成器:从中央信息仓库获取设计信息,:从中央信息仓库获取设计信息,自
25、动生成代码或代码框架。自动生成代码或代码框架。v在分析与设计工作台中所有工具通过一个在分析与设计工作台中所有工具通过一个共共享的信息仓库享的信息仓库集成。该仓库的结构是工作台集成。该仓库的结构是工作台开发商专有的,因此分析与设计工作台通常开发商专有的,因此分析与设计工作台通常是封闭式环境是封闭式环境。24分析与设计工作台分析与设计工作台中央信息仓库中央信息仓库图表制作工具图表制作工具设计、分析与设计、分析与验证工具验证工具报告生成工具报告生成工具查询语言工具查询语言工具移入移入/移出设施移出设施代码生成器代码生成器数据字典数据字典25分析与设计工作台的问题:分析与设计工作台的问题:移入移入/移
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 清华大学 殷仁昆 教授 讲授 12
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内