资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件工程,第十二章 软件工具与环境,password qhdxjsjx,1,第九章 计算机辅助软件工程,CASE,对于一个项目而言,最好的生产环境应具有三个基本特征,:,一组有用的,工具,:在生产产品时提供帮助;,一个很好的,部署,:能够快速找到和高效使用合用的工具;,一些熟练的,技术人员,:他们知道如何以有效的方式来使用这些工具。,这种生产环境叫做集成的项目支撑环境,IPSE,。,其中的工具叫做计算机辅助软件工程,CASE,。,2,CASE,的层次结构,环境体系结构,硬件平台,操作系统,可移植服务,集成框架,CASE,工具,3,上一层构成下一层的基础。,环境体系结构由硬件平台和系统支持(包括网络软件、数据库管理、对象管理服务)构成,一组可移植服务来自于,CASE,工具和集成框架,允许,CASE,工具和集成框架跨越不同的硬件平台和操作系统。,集成框架是一组专用程序,提供工具之间相互通信的能力,能够创建项目数据库,并向终端用户展示相同风格的界面。,4,CASE,工具的分类,CASE,工具,工作台,环境,工具,编辑器,编译器,文件比较器,分析与,设计工作台,编程工作台,测试工作台,以,过程,为中心的环境,集成环境,特定,语言,工作台,多语言工作台,单方法工作台,多方法工作台,6,工具:是指支持软件开发单个活动或任务的软件工具。,工作台:是指支持某一软件过程或一个过程中一组活动的工具集。集成有若干工具。,环境:是指支持某些软件过程以及相关的大部分,活动的工具集。集成了若干工作台。,集成化环境,提供对数据集成、控制集成、表示集成机制的基本支持。,以过程为中心的环境,通过过程模型和过程引擎提供对软件开发活动的导引。,7,基于支持活动的CASE工具分类,业务过程工程工具,:针对组织的战略性信息需求建模,用以表示业务数据对象、数据对象之间的关系,这些数据对象如何在组织内部各个不同业务领域之间流动。,过程建模和管理工具,:用于描述业务(或软件)过程,以及过程中的关键元素。它还提供到其他支持过程活动定义的工具的链接。,项目计划工具,:支持软件项目成本和工作量的估算,以及项目季度的安排。,8,文档工具,:支持文档生成和桌面出版。,质量保证工具,:通过审计源代码以确定与语言标准的符合程度。依据技术度量来规划被开发软件的质量。,数据库管理工具,:用于建立项目数据库。,软件配置管理工具,:它位于每个,CASE,环境的核心。用于标识配置对象、进行版本控制、变更控制、审计和状态报告。,分析和设计工具,:用于帮助建立系统的数据、功能和行为模型,建立数据设计、体系结构设计、界面设计和过程设计方案。,10,PRO/SIM,工具,:支持实时系统原型的建造和仿真,提供实时系统建造完成前预测系统行为的能力。,界面设计与开发工具,:这是一个工具箱,包括菜单、按钮、窗口结构、图符、滚动机制、设备驱动器等构件,帮助在屏幕上建造符合当前软件采用的界面标准的现代用户界面。,原型实现工具,:为交互式应用快速地定义屏幕的布局。一些高级,CASE,原型实现工具能供执行数据设计并结合到屏幕布局。许多分析与设计工具提供了建造原型的扩展功能。,11,静态分析工具,:,基于代码的测试工具:分析源代码,导出测试用例;,专门的测试语言:描述详细的测试规格说明、每个测试用例及它们的执行逻辑;,基于需求的测试工具:分离特定的需求并建议针对这种需求的测试用例。,动态分析工具,:执行被测程序,检查路径覆盖率,特定路径上变量的值以及程序的执行流程。一般在程序中插装用于检查的探针。,13,工作台,一个工作台是一组工具集,支持如同设计、实现、测试等特定的软件开发阶段。,将,CASE,工具集成为一个工作台后,工具可以协同工作,从而提供比单个工具更好的支持。,工作台工具可以通过共享文件、共享数据结构、共享数据仓库来集成。,CASE,工作台有程序设计工作台、分析和设计工作台、测试工作台、交叉开发工作台、配置管理工作台、文档工作台、项目管理工作台等。,15,开放式工作台和封闭式工作台,CASE,工作台可以支持一组相关的软件过程活动,这些活动可以应用于不同的应用领域和不同的组织。因此,CASE,工作台应为开放式系统。,开放式工作台既可提供,控制集成机制,,又可,剪裁,。而且其数据集成或协议是公有的,不是独立的。由于还没有被广泛接受的数据集成的标准,故大多数工作台都采用,基于文件集成,的策略。,开发式工作台的优点是:,16,程序设计工作台,许多工作台都是封闭式工作台,这样允许更紧密的数据集成、表示集成和控制集成。这样,出现在用户面前的工作台是一个一致的整体,不是由风格迥异的工具组成的工具箱。,该工作台由一组支持程序开发过程的工具组成,,包括编辑器、编译器、连接器、加载器、调试器等。它们放在一个宿主机上,这种机器是为程序开发专门制作的。,组成程序设计工作台的工具可能有:,18,语言编译器,:将源代码转换为目标代码,创建抽象语法树(,AST),和符号表。,结构化编辑器,:结合嵌入的编程语言知识,对,AST,中程序的语法表示进行编辑。,连接器,:将已通过编译的程序目标代码模块连接起来。,加载器,:将可执行程序在执行前装入内存。,交叉引用,:产生一个交叉引用表,记载所有程序名在哪里声明和使用的。,按格式打印,:扫描,AST,,打印源文件程序。,19,静态分析器,:分析源代码,记录未初始化变量、不能执行到的代码、未调用到的过程等。,动态分析器,:产生带附注的源代码清单,注明每个语句的执行次数,生成有关分支和循环的信息,统计处理其使用情况。,交互式调试器,:允许用户控制程序执行次序,显示程序执行期间的程序状态。,程序设计工作台是利用语法树和符号表作为共享数据来进行工具集成的。所有程序设计工作台都采用这一方法。,20,程序设计工作台,源代码,语言编译器,结构化编辑器,程序库,连接器,加载器,交互式调试器,交叉引用,按格式打印,静态分析器,动态分析器,程序报告,格式化源,文件清单,执行报告,可执行程序,语法树,符号表,已编译代码,执行程序,用户,调用,编辑,调用,21,分析与设计工作台,分析与设计工作台支持软件的分析与设计阶段。通常称其为上游,CASE,工具。而程序设计工作台称为下游,CAASE,工具。,这类工作台可以支持特定的分析或设计方法,如结构化方法、,JSD,方法或,Booch,方法。,它们还可以作为通用的图表编辑系统使用,可处理大多数通用方法的图表类型。面向方法的工具还提供方法规则和指南等。,分析和设计工作台可能包括的工具有:,22,报告定义与生成工具,:从中央信息仓库中取得信息,并自动生成系统文档。,移入/移出设施,:允许中央信息仓库与其他软件开发工具进行信息交互。,代码生成器,:从中央信息仓库获取设计信息,自动生成代码或代码框架。,在分析与设计工作台中所有工具通过一个,共享的信息仓库,集成。该仓库的结构是工作台开发商专有的,因此分析与设计工作台通常是封闭式环境,。,24,分析与设计工作台,中央信息仓库,图表制作工具,设计、分析与,验证工具,报告生成工具,查询语言工具,移入/移出设施,代码生成器,数据字典,25,分析与设计工作台的问题:,移入/移出设施受限,。所有工作台都能够支持,ASCII,文本形式的设计结果,大多数工作台也支持图表的,Postscript,的输出,但不支持其他移入/移出格式,因此在与其他工作台互换数据时会出现问题。,不能剪裁和修改一个设计方法,。可能不能用于特定应用或某类应用。,工作台自带的配置管理系统可能与组织中使用的系统不兼容,。这样,工作台的设计结果无法交给组织中使用的配置管理系统管理。,26,预测器,:产生对所期待结果的预测,可以依据以前的程序版本或原型系统。背靠背的测试可以并行运行预测器和被测程序,作为对照,发现可能存在的问题。,报告生成器,:支持报告的定义,提供测试结果报告的生成。,文件比较器,:比较程序测试的结果和以前测试的结果,报告它们之间的差别。,动态分析器,:实际运行被测程序,统计程序中每条语言的执行次数。,28,模拟器,:有不同的模拟器。目标模拟器是脚本驱动的工具,模拟多个同时执行的用户交互。,I/O,模拟器检查事务次序时标是否可重复再现。主要用于检查定时错误。,因为系统的测试需求依赖于要开发的应用程序,所以测试工作台必须具有灵活性,以适应每个系统的测试计划。,29,CASE,环境,信息(模型、程序、文档、数据)从一个工具到另一个工具的平滑传递,以及从一个软件工程步骤到另一个软件工程步骤的平滑过渡。,减少完成软件配置管理、质量保证和文档生成等活动所需的工作量。,通过周密的计划、监控、通信增强对项目的控制。,改善在大型项目中开发人员之间的协调。,31,CASE,环境的任务,提供一种机制,使得包含在该环境中的所有工具之间可以共享软件工程信息;,提供跟踪机制,使得从一个信息项的变更可以跟踪到其它相关的信息项;,对所有的软件工程信息提供版本控制和整体的配置管理;,允许对包含在该环境的任一工具做直接的、非顺序,性的使用;,32,为建立软件的需求模型,需建立软件任务的分解(网络)结构。环境将为把,工具,和,数据,集成到规范的任务分解网络中提供自动支持;,提供一致化的人机界面给不同工具的用户;,支持软件工程师之间的通信;,辅助收集可用于改善软件过程和产品的管理和技术度量信息。,33,集成化软件工程环境体系结构,CASE,工具,CASE,工具,CASE,工具,CASE,工具,CASE,工具,CASE,工具,用户界面层,界面工具箱、表示协议,工具管理服务,工具层,集成服务、配置管理服务,对象管理层,共享中心数据库层,CASE,数据库、访问控制功能,34,CASE,环境分类,通常,把环境看成是软件人员建立和维护软件系统所使用的硬件工具和软件工具的集合。,编程环境,支持开发期中的编写程序阶段的活动(即流行软件),开发环境,支持软件开发期各阶段的开发和管理活动,维护环境,支持软件运行/维护期的各种更新,活动,包括逆向工程和再工程活动,35,CASE,环境另一种分类,以语言为中心的环境,这种环境围绕着某种编程语言建立,提供了一套适合于这种语言的工具;,这种环境的交互水平较高;,支持建立大型程序。,面向结构的环境,这种环境直接面对程序的结构;,以语法制导编辑程序为核心,用户交互式地操作所有结构;,支持建立小型或大型程序。,36,工具箱环境,这种环境集中了多个软件工具;,这些工具以用户需求为驱动,适用面广泛,且与语言无关;,支持建立大型程序。,基于方法的环境,支持开发方法 提供支持软件分析、设计、实现、测试、验证等的工具;,支持开发过程管理 提供支持项目计划、项目监控、配置管理、质量保证、软件过程改进等活动的工具。,37,CASE,环境模型,APSE,模型全称,为,Ada Progamming,Support Environment,,是1980年,Buxton,提出的。,他建议采用增量式开发方法来开发基于三个功能级别的环境:,一个核心,APSE(KAPSE),,提供环境的基础机构,对操作系统进行扩充。,一个最小的,APSE(MAPSE),,基本上是一个程序设计工作台。,APSE模型,38,以增量方式建立一个完整的,APSE,,加入可提供的支持其他过程活动的工具。,KAPSE,MAPSE,APSE,链接,加载器,配置,管理,外壳,编译器,调试器,39,Wasserman模型,1990年,Wasserman,提出五级模型:,平台集成,:是指工具或工作台在相同的平台上运行。“平台”可以是一个单一的计算机,也可以是一个操作系统或网络系统。,数据集成,:,提供统一的数据模式和数据接口规范,需要相互协同的工具通过这种统一的规范交换数据。共享级别为:,共享文件,:所有工具识别单一文件格式;,40,共享数据结构,:,包含设计和编程信息的数据结构的细节为所有工具共享;,共享数据仓库,:所有工具围绕一个对象管理系统来集成,该对象管理系统包含能被所有工具使用的共享的数据实体和关系,它独立于工具。,表示集成,:即,界面集成,。,采取统一的界面风格,保证各工具界面的一致性。,窗口系统集成,:所有工具采用相同的基本窗口系统,窗口有相同的外观。,41,命令集成,:,对于文本界面,所有工具都使用相同的命令和参数的语法格式;对于图形界面,所有工具对菜单、按钮有相同的表示(图符)。此外所有工具以相同方式支持应用和环境的控制功能;,交互集成,:所有工具提供相同的直接操纵的操作规则。,控制集成,:,支持各工具或各开发活动间的通信、切换、调度和协同工作,并支持软件开发过程的描述、执行和转接。通常使用消息传送方式实现控制的集成。,42,过程集成,:在,CASE,系统中嵌入了关于过程活动、阶段、约束和,支持这些活动的工具的知识。,由,CASE,系统维持软件过程模型,并根据要求实例化和使用该软件过程模型。,43,基于服务的环境层次模型,在这个模型中,一个软件开发环境是由使用环境服务的一组集成的,CASE,工作台组成。,这些服务既可以由环境运行于其上的平台提供,也可以由环境框架提供。,框架服务可类比于,APSE,中的环境核心。,工作台应用,框架服务,平台服务,44,平台服务,:软件开发环境所在的运行平台称为环境的宿主机系统,被开发软件则分发到目标机上。宿主机系统和目标机可能是同一个平台,也可能不是。,SEE,运行在工作台网络上,宿主机系统,目标机,1,目标机,1,网络连接,网络连接,45,宿主机的平台服务通常包括有:,文件服务,:文件存储于多个文件服务器上,可供网络上所有机器访问。,进程管理服务,:可创建、开启、停止、挂起、调度网络计算机上运行的进程。,网络服务,:可以把一台计算机上的进程和其相关数据传到另一台网络上的计算机。,通信服务,:支持网络上计算机之间的通信和向目标机下载程序。,窗口管理服务,:在用户显示器上操纵窗口。,46,打印服务,:网络上进行打印。,环境平台是由异构的分布式计算机组成,可能包括不同类型的计算机、来自同一制造商的不同操作系统的工作站、不同制造商的工作站等。,框架服务,:环境中的框架服务扩充了宿主机提供的服务集,他们是基于平台服务实现的。这些服务专用于支持,CASE,工具或工作台的集成。,软件工程环境体系结构参考模型,SEE,如图。,47,SEE,参考模型,操作系统,数据仓库服务,数据集成服务,用户界面集成,控制集成,消息服务网络,任务管理服务,用户界面服务,工具插槽,48,一个软件开发环境提供的服务可能为:,数据仓库服务,:支持环境实体的数据存储、关系、命名、定位、数据维护、并发处理、进程操作、文档、备份等。,数据集成服务,:用于支持软件开发。主要服务有版本管理、配置命名、配置查询与更新、模式定义、状态监控、数据互换等。,任务管理服务,:支持环境过程的集成。主要的服务有:任务定义、任务执行、任务事务、任务历史、事件监控、查帐与记账、角色管理等。,49,消息服务,:支持工具与框架服务通信。有两种消息服务:,消息发派,(支持工具到工具、服务到服务、框架到框架之间的消息传递)和,工具注册,(支持某种工具或服务作为某种消息的接收者登记到消息服务器上)。,用户界面服务,:用于支持表示集成。,工具:工具有自己的相应的服务,也应集成到环境中。,有三种工具集成的级别:,50,集成工具,:这些工具用框架服务来管理它们的所有数据,其数据结构统一存储于对象管理系统中。,半分离工具,:这些工具自己管理自己的数据结构,但用框架服务来管理文件。对象管理系统可以管理文件之间的连接,但不能管理文件内部数据结构之间的连接。,外来工具,:这些工具仅用于平台服务。它们管理自己的数据,但可以使用数据互换服务存取数据。,51,可移植通用工具环境PCTE,1984年欧洲计算机制造商协会(,ECMA),公布了软件开发环境通用工具接口,PCTE,第一版,其中采用了,SEE,模型,成为一个标准。,美国国防部基于,APSE,,设立了,CAIS(Common APSE Interface Set),项目,通过研制一个,Ada,核心,APSE,,开发环境通用工具接口集,CAIS。,以后欧美对,PCTE,和,CAIS,进行综合,开发出一个称之为,PCIS(Portable Common Interface Standard),的标准,1994年发表,1995年原型化。,52,ECMA PCTE,主要特点:,基于,ERA(,实体,-,关系,-,属性)模型,实现对象的管理。支持对象之间的连接、对象类与子对象的定义。,提供数据恢复、复原的能力。即通过控制事务中动作的执行,一旦发现出错,立即恢复数据库到一个一致的状态。,提供事务执行的管理,支持进程之间的通信、进程的启动、停止和存储。,支持进程和数据在网络上的分派。,53,采用一种比较复杂的安全模型,提供不同的安全级别,控制对对象管理系统中对象的存取。,ECMA PCTE,提供了一个相当完整的低层框架服务,与,SEE,参考模型相比的结果:,数据仓库服务,:除备份服务外,,PCTE,提供了所有数据仓库服务。,数据集成服务,:除通用查询服务外,,PCTE,提供了所有数据集成服务。,任务管理服务,:仅提供了记账和查账服务。,54,消息服务,:仅提供了消息分派服务,没有提供工具注册服务。,用户界面服务,:建议在,PCTE,环境下都使用,X-,Wingdow,实现其用户界面,没有强制采用哪些特定的库。,55,CASE,环境的发展趋势,从软件工具开发者的角度,发展重点应在软件工具的集成上,从专家系统开发者的角度,发展应力求使软件开发过程自动化,从环境的实用者的角度,发展应满足用户多方面的需求,不同技术层次的用户,对软件工程环境的发展有不同的要求。,环境应具开放性,允许剪裁和扩充,56,
展开阅读全文