《清华大学殷仁昆教授讲授《软件工程》-12.ppt》由会员分享,可在线阅读,更多相关《清华大学殷仁昆教授讲授《软件工程》-12.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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分析与设计工作台的问题:分析与设计工作台的问题:移入移入/移
26、出设施受限移出设施受限。所有工作台都能够支。所有工作台都能够支持持ASCII文本形式的设计结果,大多数工作文本形式的设计结果,大多数工作台也支持图表的台也支持图表的Postscript的输出,但不支持的输出,但不支持其他移入其他移入/移出格式,因此在与其他工作台互移出格式,因此在与其他工作台互换数据时会出现问题。换数据时会出现问题。不能剪裁和修改一个设计方法不能剪裁和修改一个设计方法。可能不能用。可能不能用于特定应用或某类应用。于特定应用或某类应用。工作台自带的配置管理系统可能与组织中使工作台自带的配置管理系统可能与组织中使用的系统不兼容用的系统不兼容。这样,工作台的设计结果。这样,工作台的设
27、计结果无法交给组织中使用的配置管理系统管理。无法交给组织中使用的配置管理系统管理。26测试工作台测试工作台测试工作台应用于软件开发和维护阶段的测测试工作台应用于软件开发和维护阶段的测试工作,必须是开放式的系统,可以通过不试工作,必须是开放式的系统,可以通过不断演进,以适应软件组织的需要。断演进,以适应软件组织的需要。测试工作台可能包括的工具有:测试工作台可能包括的工具有:1)测试管理器测试管理器:管理测试的运行并产生测试:管理测试的运行并产生测试结果报告。它支持对测试数据的跟踪、对结果报告。它支持对测试数据的跟踪、对期待结果的跟踪、对被测程序的跟踪等。期待结果的跟踪、对被测程序的跟踪等。2)测
28、试数据生成器测试数据生成器:根据需求自动生成被测:根据需求自动生成被测程序的测试数据。程序的测试数据。273)预测器预测器:产生对所期待结果的预测,可以:产生对所期待结果的预测,可以依据以前的程序版本或原型系统。背靠背依据以前的程序版本或原型系统。背靠背的测试可以并行运行预测器和被测程序,的测试可以并行运行预测器和被测程序,作为对照,发现可能存在的问题。作为对照,发现可能存在的问题。4)报告生成器报告生成器:支持报告的定义,提供测试:支持报告的定义,提供测试结果报告的生成。结果报告的生成。5)文件比较器文件比较器:比较程序测试的结果和以前:比较程序测试的结果和以前测试的结果,报告它们之间的差别
29、。测试的结果,报告它们之间的差别。6)动态分析器动态分析器:实际运行被测程序,统计程:实际运行被测程序,统计程序中每条语言的执行次数。序中每条语言的执行次数。287)模拟器模拟器:有不同的模拟器。目标模拟器是:有不同的模拟器。目标模拟器是脚本驱动的工具,模拟多个同时执行的用脚本驱动的工具,模拟多个同时执行的用户交互。户交互。I/O模拟器检查事务次序时标是否模拟器检查事务次序时标是否可重复再现。主要用于检查定时错误。可重复再现。主要用于检查定时错误。因为系统的测试需求依赖于要开发的应用程因为系统的测试需求依赖于要开发的应用程序,所以测试工作台必须具有灵活性,以适序,所以测试工作台必须具有灵活性,
30、以适应每个系统的测试计划。应每个系统的测试计划。29测试工作台测试工作台源代码源代码测试管理器测试管理器模拟器模拟器动态分析器动态分析器测试预估测试预估规格说明规格说明被测程序被测程序预测器预测器文件比较器文件比较器报告生成器报告生成器测试数据测试数据测试结果测试结果测试数据生成器测试数据生成器执行报告执行报告测试结果测试结果报告报告30CASE环境环境信息(模型、程序、文档、数据)从一个工具信息(模型、程序、文档、数据)从一个工具到另一个工具的平滑传递,以及从一个软件工到另一个工具的平滑传递,以及从一个软件工程步骤到另一个软件工程步骤的平滑过渡。程步骤到另一个软件工程步骤的平滑过渡。减少完成
31、软件配置管理、质量保证和文档生成减少完成软件配置管理、质量保证和文档生成等活动所需的工作量。等活动所需的工作量。通过周密的计划、监控、通信增强对项目的控通过周密的计划、监控、通信增强对项目的控制。制。改善在大型项目中开发人员之间的协调。改善在大型项目中开发人员之间的协调。31CASE环境的任务环境的任务1)提供一种机制,使得包含在该环境中的所有提供一种机制,使得包含在该环境中的所有工具之间可以共享软件工程信息;工具之间可以共享软件工程信息;2)提供跟踪机制,使得从一个信息项的变更可提供跟踪机制,使得从一个信息项的变更可以跟踪到其它相关的信息项;以跟踪到其它相关的信息项;3)对所有的软件工程信息
32、提供版本控制和整体对所有的软件工程信息提供版本控制和整体的配置管理;的配置管理;4)允许对包含在该环境的任一工具做直接的、允许对包含在该环境的任一工具做直接的、非顺序非顺序性的使用;性的使用;325)为建立软件的需求模型,需建立软件任务为建立软件的需求模型,需建立软件任务的分解(网络)结构。环境将为把的分解(网络)结构。环境将为把工具工具和和数据数据集成到规范的任务分解网络中提供自集成到规范的任务分解网络中提供自动支持;动支持;6)提供一致化的人机界面给不同工具的用户;提供一致化的人机界面给不同工具的用户;7)支持软件工程师之间的通信;支持软件工程师之间的通信;8)辅助收集可用于改善软件过程和
33、产品的管辅助收集可用于改善软件过程和产品的管理和技术度量信息。理和技术度量信息。33集成化软件工程环境体系结构集成化软件工程环境体系结构用户界面层用户界面层界面工具箱、表示协议工具管理服务工具管理服务工具层工具层集成服务、配置管理服务对象管理层对象管理层共享中心数据库层共享中心数据库层CASE 数据库、访问控制功能34CASE环境分类环境分类通常,把环境看成是软件人员建立和维护软通常,把环境看成是软件人员建立和维护软件系统所使用的硬件工具和软件工具的集合。件系统所使用的硬件工具和软件工具的集合。1)编程环境编程环境 支持开发期中的编写程序阶段支持开发期中的编写程序阶段的活动(即流行软件)的活动
34、(即流行软件)2)开发环境开发环境 支持软件开发期各阶段的开发支持软件开发期各阶段的开发和管理活动和管理活动3)维护环境维护环境 支持软件运行支持软件运行/维护期的各种维护期的各种更新更新活动,包括逆向工程和再工程活动活动,包括逆向工程和再工程活动35CASE环境另一种分类环境另一种分类1.以语言为中心的环境以语言为中心的环境这种环境围绕着某种编程语言建立,提供这种环境围绕着某种编程语言建立,提供了一套适合于这种语言的工具;了一套适合于这种语言的工具;这种环境的交互水平较高;这种环境的交互水平较高;支持建立大型程序。支持建立大型程序。2.面向结构的环境面向结构的环境这种环境直接面对程序的结构;
35、这种环境直接面对程序的结构;以语法制导编辑程序为核心,用户交互式以语法制导编辑程序为核心,用户交互式地操作所有结构;地操作所有结构;支持建立小型或大型程序。支持建立小型或大型程序。363.工具箱环境工具箱环境这种环境集中了多个软件工具;这种环境集中了多个软件工具;这些工具以用户需求为驱动,适用面广这些工具以用户需求为驱动,适用面广泛,且与语言无关;泛,且与语言无关;支持建立大型程序。支持建立大型程序。4.基于方法的环境基于方法的环境支持开发方法支持开发方法 提供支持软件分析、设提供支持软件分析、设计、实现、测试、验证等的工具;计、实现、测试、验证等的工具;支持开发过程管理支持开发过程管理 提供
36、支持项目计划、提供支持项目计划、项目监控、配置管理、质量保证、软件项目监控、配置管理、质量保证、软件过程改进等活动的工具。过程改进等活动的工具。37CASE环境模型环境模型APSE模型全称模型全称为为Ada Progamming Support Environment,是是1980年年Buxton提出的。提出的。他建议采用增量式开发方法来开发基于三个他建议采用增量式开发方法来开发基于三个功能级别的环境:功能级别的环境:1)一个核心一个核心APSE(KAPSE),),提供环境的提供环境的基础机构,对操作系统进行扩充。基础机构,对操作系统进行扩充。2)一个最小的一个最小的APSE(MAPSE),)
37、,基本上是基本上是一个程序设计工作台。一个程序设计工作台。APSE模型模型383)以增量方式建立一个完整的以增量方式建立一个完整的APSE,加入可加入可提供的支持其他过程活动的工具。提供的支持其他过程活动的工具。KAPSEMAPSEAPSE链接链接加载器加载器配置配置管理管理外壳外壳编译器编译器调试器调试器39Wasserman模型模型1990年年Wasserman提出五级模型提出五级模型:1)平台集成平台集成:是指工具或工作台在相同的平:是指工具或工作台在相同的平台上运行。台上运行。“平台平台”可以是一个单一的计可以是一个单一的计算机,也可以是一个操作系统或网络系统。算机,也可以是一个操作系
38、统或网络系统。2)数据集成数据集成:提供统一的数据模式和数据接提供统一的数据模式和数据接口规范,需要相互协同的工具通过这种统口规范,需要相互协同的工具通过这种统一的规范交换数据。共享级别为:一的规范交换数据。共享级别为:a)共享文件共享文件:所有工具识别单一文件格式;:所有工具识别单一文件格式;40b)共享数据结构共享数据结构:包含设计和编程信息的包含设计和编程信息的数据结构的细节为所有工具共享;数据结构的细节为所有工具共享;c)共享数据仓库共享数据仓库:所有工具围绕一个对象:所有工具围绕一个对象管理系统来集成,该对象管理系统包含管理系统来集成,该对象管理系统包含能被所有工具使用的共享的数据实
39、体和能被所有工具使用的共享的数据实体和关系,它独立于工具。关系,它独立于工具。3)表示集成表示集成:即:即界面集成界面集成。采取统一的界面采取统一的界面风格,保证各工具界面的一致性。风格,保证各工具界面的一致性。a)窗口系统集成窗口系统集成:所有工具采用相同的基:所有工具采用相同的基本窗口系统,窗口有相同的外观。本窗口系统,窗口有相同的外观。41b)命令集成命令集成:对于文本界面,所有工具都使用相对于文本界面,所有工具都使用相同的命令和参数的语法格式;对于图形界面,同的命令和参数的语法格式;对于图形界面,所有工具对菜单、按钮有相同的表示(图符)。所有工具对菜单、按钮有相同的表示(图符)。此外所
40、有工具以相同方式支持应用和环境的控此外所有工具以相同方式支持应用和环境的控制功能;制功能;c)交互集成交互集成:所有工具提供相同的直接操纵的操:所有工具提供相同的直接操纵的操作规则。作规则。4)控制集成控制集成:支持各工具或各开发活动间的通信、支持各工具或各开发活动间的通信、切换、调度和协同工作,并支持软件开发过程的切换、调度和协同工作,并支持软件开发过程的描述、执行和转接。通常使用消息传送方式实现描述、执行和转接。通常使用消息传送方式实现控制的集成。控制的集成。425)过程集成过程集成:在:在CASE系统中嵌入了关于过系统中嵌入了关于过程活动、阶段、约束和程活动、阶段、约束和支持这些活动的工
41、支持这些活动的工具的知识。具的知识。由由CASE系统维持软件过程模系统维持软件过程模型,并根据要求实例化和使用该软件过程型,并根据要求实例化和使用该软件过程模型。模型。43基于服务的环境层次模型基于服务的环境层次模型在在这这个个模模型型中中,一一个个软软件件开开发发环环境境是是由由使使用用环境服务的一组集成的环境服务的一组集成的CASE工作台组成。工作台组成。这这些些服服务务既既可可以以由由环环境境运运行行于于其其上上的的平平台台提提供,也可以由环境框架提供。供,也可以由环境框架提供。框架服务可类比于框架服务可类比于APSE中的环境核心。中的环境核心。工作台应用工作台应用框架服务框架服务平台服
42、务平台服务441)平平台台服服务务:软软件件开开发发环环境境所所在在的的运运行行平平台台称称为为环环境境的的宿宿主主机机系系统统,被被开开发发软软件件则则分分发发到到目目标标机机上上。宿宿主主机机系系统统和和目目标标机机可可能能是是同同一一个平台,也可能不是。个平台,也可能不是。SEE运行在工作台网络上运行在工作台网络上宿主机系统宿主机系统目标机目标机 1目标机目标机 1网络连接网络连接网络连接网络连接45v宿主机的平台服务通常包括有宿主机的平台服务通常包括有:a)文件服务文件服务:文件存储于多个文件服务器上,:文件存储于多个文件服务器上,可供网络上所有机器访问。可供网络上所有机器访问。b)进
43、程管理服务进程管理服务:可创建、开启、停止、挂:可创建、开启、停止、挂起、调度网络计算机上运行的进程。起、调度网络计算机上运行的进程。c)网络服务网络服务:可以把一台计算机上的进程和:可以把一台计算机上的进程和其相关数据传到另一台网络上的计算机。其相关数据传到另一台网络上的计算机。d)通信服务通信服务:支持网络上计算机之间的通信:支持网络上计算机之间的通信和向目标机下载程序。和向目标机下载程序。e)窗口管理服务窗口管理服务:在用户显示器上操纵窗口。:在用户显示器上操纵窗口。46f)打印服务打印服务:网络上进行打印。:网络上进行打印。v环境平台是由异构的分布式计算机组成,环境平台是由异构的分布式
44、计算机组成,可能包括不同类型的计算机、来自同一制可能包括不同类型的计算机、来自同一制造商的不同操作系统的工作站、不同制造造商的不同操作系统的工作站、不同制造商的工作站等。商的工作站等。2)框架服务框架服务:环境中的框架服务扩充了宿主机:环境中的框架服务扩充了宿主机提供的服务集,他们是基于平台服务实现的。提供的服务集,他们是基于平台服务实现的。这些服务专用于支持这些服务专用于支持CASE工具或工作台的集工具或工作台的集成。成。v软件工程环境体系结构参考模型软件工程环境体系结构参考模型SEE如图。如图。47SEE参考模型参考模型操作系统数据仓库服务数据集成服务用户界面集成控制集成消息服务网络任务管
45、理服务用户界面服务工具插槽48v一个软件开发环境提供的服务可能为一个软件开发环境提供的服务可能为:a)数据仓库服务数据仓库服务:支持环境实体的数据存储、:支持环境实体的数据存储、关系、命名、定位、数据维护、并发处理、关系、命名、定位、数据维护、并发处理、进程操作、文档、备份等。进程操作、文档、备份等。b)数据集成服务数据集成服务:用于支持软件开发。主要:用于支持软件开发。主要服务有版本管理、配置命名、配置查询与服务有版本管理、配置命名、配置查询与更新、模式定义、状态监控、数据互换等。更新、模式定义、状态监控、数据互换等。c)任务管理服务任务管理服务:支持环境过程的集成。主:支持环境过程的集成。
46、主要的服务有:任务定义、任务执行、任务要的服务有:任务定义、任务执行、任务事务、任务历史、事件监控、查帐与记账、事务、任务历史、事件监控、查帐与记账、角色管理等。角色管理等。49d)消息服务消息服务:支持工具与框架服务通信。有:支持工具与框架服务通信。有两种消息服务:两种消息服务:消息发派消息发派(支持工具到工(支持工具到工具、服务到服务、框架到框架之间的消息具、服务到服务、框架到框架之间的消息传递)和传递)和工具注册工具注册(支持某种工具或服务(支持某种工具或服务作为某种消息的接收者登记到消息服务器作为某种消息的接收者登记到消息服务器上)。上)。e)用户界面服务用户界面服务:用于支持表示集成
47、。:用于支持表示集成。3)工具:工具有自己的相应的服务,也应集成工具:工具有自己的相应的服务,也应集成到环境中。到环境中。v有三种工具集成的级别:有三种工具集成的级别:50a)集成工具集成工具:这些工具用框架服务来管理它:这些工具用框架服务来管理它们的所有数据,其数据结构统一存储于对们的所有数据,其数据结构统一存储于对象管理系统中。象管理系统中。b)半分离工具半分离工具:这些工具自己管理自己的数:这些工具自己管理自己的数据结构,但用框架服务来管理文件。对象据结构,但用框架服务来管理文件。对象管理系统可以管理文件之间的连接,但不管理系统可以管理文件之间的连接,但不能管理文件内部数据结构之间的连接
48、。能管理文件内部数据结构之间的连接。c)外来工具外来工具:这些工具仅用于平台服务。它:这些工具仅用于平台服务。它们管理自己的数据,但可以使用数据互换们管理自己的数据,但可以使用数据互换服务存取数据。服务存取数据。51可移植通用工具环境可移植通用工具环境PCTE1984年欧洲计算机制造商协会年欧洲计算机制造商协会(ECMA)公布了软公布了软件开发环境通用工具接口件开发环境通用工具接口PCTE第一版,其中采第一版,其中采用了用了SEE模型,成为一个标准。模型,成为一个标准。美国国防部基于美国国防部基于APSE,设立了设立了CAIS(Common APSE Interface Set)项目,通过研制
49、一个项目,通过研制一个Ada核核心心APSE,开发环境通用工具接口集开发环境通用工具接口集CAIS。以后欧美对以后欧美对PCTE和和CAIS进行综合,开发出一进行综合,开发出一个称之为个称之为 PCIS(Portable Common Interface Standard)的标准,的标准,1994年发表,年发表,1995年原型化。年原型化。52ECMA PCTE 主要特点:主要特点:1)基于基于ERA(实体实体-关系关系-属性属性)模型,实现对模型,实现对象的管理。支持对象之间的连接、对象类象的管理。支持对象之间的连接、对象类与子对象的定义。与子对象的定义。2)提供数据恢复、复原的能力。即通过
50、控制提供数据恢复、复原的能力。即通过控制事务中动作的执行,一旦发现出错,立即事务中动作的执行,一旦发现出错,立即恢复数据库到一个一致的状态。恢复数据库到一个一致的状态。3)提供事务执行的管理,支持进程之间的通提供事务执行的管理,支持进程之间的通信、进程的启动、停止和存储。信、进程的启动、停止和存储。4)支持进程和数据在网络上的分派。支持进程和数据在网络上的分派。535)采用一种比较复杂的安全模型,提供不同采用一种比较复杂的安全模型,提供不同的安全级别,控制对对象管理系统中对象的安全级别,控制对对象管理系统中对象的存取。的存取。vECMA PCTE 提供了一个相当完整的低层提供了一个相当完整的低