第八章 软件开发工具与环境.docx
《第八章 软件开发工具与环境.docx》由会员分享,可在线阅读,更多相关《第八章 软件开发工具与环境.docx(18页珍藏版)》请在冰豆网上搜索。
第八章软件开发工具与环境
本文由elminya贡献
ppt文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
第八章、第八章、软件开发工具与环境
1)计算机辅助软件工程CASE)计算机辅助软件工程(Computer-AidedSoftwareEngineering))
CASE=软件工程
+自动化工具
CASE是一组工具和方法的集合。
是辅助软件开发是一组工具和方法的集合。
是一组工具和方法的集合的任何计算机技术,其含义为:
的任何计算机技术,其含义为:
在软件开发和/或维护中提供计算机辅助支持;或维护中,在软件开发和或维护中,提供计算机辅助支持;在软件开发和/或维护中引入工程化方法。
或维护中,在软件开发和或维护中,引入工程化方法。
2)CASE工具)工具狭义地说,是一类特殊的软件工具,用于辅助开发、狭义地说,是一类特殊的软件工具,用于辅助开发、分析、测试、维护另一计算机程序和/或文档或文档。
分析、测试、维护另一计算机程序和或文档。
广义地说,是除了OS之外的所有软件工具的总称之外的所有软件工具的总称。
广义地说,是除了之外的所有软件工具的总称。
CASE系统系统工具
编辑器编译器
文件比较器
工作台
分析和设计多方法工作台单方法工作台编程多语言工作台
特定语言工作台
环境
测试集成环境以过程为中心的环境
3)CASE工作台)工作台?
CASE工作台是一组工具,支持像分析、设计或测试等工作台是一组工具,支持像分析、工作台是一组工具特定软件开发阶段。
特定软件开发阶段。
?
工作台将一组工具组装(通过共享文件、数据结构和工作台将一组工具组装(通过共享文件、数据结构和/或数据仓库等实现集成),并使这组工具可以协同工作。
或数据仓库等实现集成),并使这组工具可以协同工作。
),并使这组工具可以协同工作?
开放式工作台与封闭式工作台开放式工作台:
开放式工作台:
提供集成机制公有数据集成标准或协议
程序设计工作台
源程序
调用
结构化编辑器
编辑
交叉引用
调用
语言编译器程序库连接器可执行程序加载器
语法树符号表已编译代码
按格式打印静态分析器
格式化文件列表程序报告
交互式调试器
用户
可执行程序
执行报告
动态分析器
语言编译器:
将源代码程序转换为目标码。
期间,语言编译器:
将源代码程序转换为目标码。
期间,创建一个抽象语法树(和一个符号表。
创建一个抽象语法树(AST)和一个符号表。
?
结构化编辑器:
结合嵌入的程序设计语言知识,对结构化编辑器:
结合嵌入的程序设计语言知识,AST中的程序语法进行编辑。
中的程序语法进行编辑。
中的程序语法进行编辑?
连接器:
将已编译的程序目标码模块连接起来。
连接器:
将已编译的程序目标码模块连接起来。
?
加载器:
在可执行程序执行之前,将之加载计算机加载器:
在可执行程序执行之前,内存。
内存。
?
交叉引用:
产生一个交叉引用表,显示所有程序名交叉引用:
产生一个交叉引用表,是在哪里声名和引用的。
是在哪里声名和引用的。
?
按格式打印:
扫描按格式打印:
扫描AST,根据嵌入的格式规则,打,根据嵌入的格式规则,印源文件程序。
印源文件程序。
静态分析器:
分析源文件代码,找到诸如未初始化的静态分析器:
分析源文件代码,变量,不能执行的代码,未调用的函数和过程等异常。
变量,不能执行的代码,未调用的函数和过程等异常。
?
动态分析器:
产生带附注的一个源文件代码列表,标动态分析器:
产生带附注的一个源文件代码列表,有程序运行时每个语句执行的次数,有程序运行时每个语句执行的次数,以及有关程序分支和循环的信息,并统计的使用情况等。
和循环的信息,并统计CPU的使用情况等。
的使用情况等?
交互式调试器:
允许用户来控制程序的执行次序,并交互式调试器:
允许用户来控制程序的执行次序,显示执行期间的程序状态。
显示执行期间的程序状态。
一个设计和分析工作台
数据字典
结构化图表制作工具
报告生成设施
代码生成器
中央信息仓库
查询语言设施
图表创建工具
设计、设计、分析和检查工具移入/移出设施移入移出设施
数据字典:
维护系统设计中所用的实体信息。
数据字典:
维护系统设计中所用的实体信息。
?
代码生成器:
从中央信息仓库中获取设计信息,自动生成代码生成器:
从中央信息仓库中获取设计信息,代码或代码框架。
代码或代码框架。
?
结构化图表制作工具:
用来创建数据流图、结构图、实体结构化图表制作工具:
用来创建数据流图、结构图、关系图等。
它们不仅是绘图工具,关系图等。
它们不仅是绘图工具,而且可以确认图表中各实体的类型;并获取实体的有关信息,实体的类型;并获取实体的有关信息,存放于中央信息仓库中。
库中。
?
设计、分析和检查工具:
分析设计信息,并报告错误和设计、分析和检查工具:
分析设计信息,异常情况。
异常情况。
?
报告定义和生成工具:
从中央信息仓库中获取信息,并自报告定义和生成工具:
从中央信息仓库中获取信息,动生成系统文档。
动生成系统文档。
?
移入移出设施:
支持中央信息仓库和其它软件开发工具移入/移出设施移出设施:
交换信息。
交换信息。
?
仓库查询语言:
允许设计人员查询中央信息仓库,找到与仓库查询语言:
允许设计人员查询中央信息仓库,设计有关的设计信息。
设计有关的设计信息。
测试工作台
测试数据生成器源代码测试管理器规约
测试数据
预测器
动态分析器
被测试的程序
测试结果
测试预估
执行报告
模拟器
文件比较器
报告生成器
测试结果报告
测试数据生成器:
生成被测程序的测试数据。
这可以是从测试数据生成器:
生成被测程序的测试数据。
一个数据库中选取数据,一个数据库中选取数据,也可能是使用模式来生成正确格式的随机数据。
的随机数据。
?
测试管理器:
管理程序测试的运行和测试结果的报告。
其测试管理器:
管理程序测试的运行和测试结果的报告。
中包含对测试数据的跟踪,对预期结果的跟踪,中包含对测试数据的跟踪,对预期结果的跟踪,对被测程序的跟踪等。
的跟踪等。
?
预测器:
生成对所期待的测试结果的预测。
预测器:
生成对所期待的测试结果的预测。
?
报告生成器:
提供报告定义,以及测试结果的生成设施。
报告生成器:
提供报告定义,以及测试结果的生成设施。
文件比较器:
比较程序测试的结果和预期的结果,并报告文件比较器:
比较程序测试的结果和预期的结果,它们之间的差异。
它们之间的差异。
?
动态分析器:
计算每条语句的执行次数,生成被测程序执动态分析器:
计算每条语句的执行次数,行轮廓,特定点程序状态,语句覆盖情况等。
行轮廓,特定点程序状态,语句覆盖情况等。
?
模拟器:
模拟器:
目标模拟器:
是脚本驱动的程序,目标模拟器:
是脚本驱动的程序,模拟多个同时进行的用户交互。
用户交互。
I/O模拟器:
模拟程序的输入和输出,这意味着事务次序模拟器:
模拟程序的输入和输出,模拟器的时标是可重复再现的。
的时标是可重复再现的。
?
?
?
?
?
?
4)软件工程环境)Wasserman五级模型五级模型(1990)五级模型APSE模型模型一个环境的层次模型大型软件开发环境青鸟系统
定义:
定义:
软件工程环境以软件工程为依据,支持大型软件生产的系统。
以软件工程为依据,支持大型软件生产的系统。
具有以下特征:
具有以下特征:
?
SEE强调支持软件生产的全过程;强调支持软件生产的全过程;强调支持软件生产的全过程?
强调大型软件的工业化生产;强调大型软件的工业化生产;?
以集成和剪裁作为主要技术途径;以集成和剪裁作为主要技术途径;?
标准化。
标准化。
定义:
软件开发环境定义:
支持软件产品开发的软件系统。
支持软件产品开发的软件系统。
它由软件工具和环境集成机制构成,前者用以软件开发的相关过程、境集成机制构成,前者用以软件开发的相关过程、活动和任务,后者为工具集成和软件开发、和任务,后者为工具集成和软件开发、维护及管理提供统一的支持。
统一的支持。
五级模型(1990)
(1)Wasserman五级模型)五级模型?
平台集成:
工具运行在相同的硬件操作系统平台上。
平台集成:
工具运行在相同的硬件/操作系统平台上操作系统平台上。
?
数据集成:
工具使用共享数据结构,工具之间可以数据集成:
工具使用共享数据结构,交换数据。
数据集成的方式有:
交换数据。
数据集成的方式有:
共享文件:
所有工具识别一个单一的文件格式。
共享文件:
所有工具识别一个单一的文件格式。
例如字符流文件。
例如字符流文件。
工具1工具共享文件
转换过滤器
工具2工具
共享数据结构:
工具使用一个认可的数据结构,共享数据结构:
工具使用一个认可的数据结构,即各工具应将该数据结构的细节“硬化”到工具中。
各工具应将该数据结构的细节“硬化”到工具中。
词法、词法、语法分析器更新结构编辑器被使用被使用静态分析器更新代码生成器被使用语法树符号表调用动态分析器
被使用被使用交互调试器
被使用被使用交叉引用
按格式打印通过共享数据结构的集成
共享数据仓库:
工具围绕一个对象管理系统进行集成。
共享数据仓库:
工具围绕一个对象管理系统进行集成。
包含描述实体和关系的共享数据模型。
该OMS包含描述实体和关系的共享数据模型。
包含描述实体和关系的共享数据模型
OMS模式模式
工具1工具
工具2工具
工具3工具
对象管理系统通过OMS集成集成通过
表示集成(用户界面集成):
意指系统中的工具使用表示集成(用户界面集成):
):
意指系统中的工具使用共同的风格以及采用共同的用户交互标准集。
共同的风格以及采用共同的用户交互标准集。
实现表示集成的方式:
实现表示集成的方式:
窗口系统集成:
工具使用相同的窗口系统。
从而,窗口系统集成:
工具使用相同的窗口系统。
从而,具有一致的窗口外观,以及一致的窗口操作命令。
具有一致的窗口外观,以及一致的窗口操作命令。
命令集成:
各工具对相似的功能使用同样格式的命令。
命令集成:
各工具对相似的功能使用同样格式的命令。
包括:
文本命令格式与参数,菜单格式和位置,包括:
文本命令格式与参数,菜单格式和位置,图符样式等。
图符样式等。
交互集成:
交互集成:
意指在所有子系统中提供相同的直接操纵界面的操作,如选择、删除等。
界面的操作,如选择、删除等。
控制集成:
支持环境中的一个工具对另一工具的访问。
控制集成:
支持环境中的一个工具对另一工具的访问。
包括:
启动、停止以及调用另一工具提供的服务。
包括:
启动、停止以及调用另一工具提供的服务。
工具1工具控制接口工具2工具工具3工具
控制接口
控制接口
消息服务器
通过消息传递的控制集成
--每一个工具提供一个控制接口,通过该接口可以访问该工具。
每一个工具提供一个控制接口,通过该接口可以访问该工具。
每一个工具提供一个控制接口--当一个工具需要与另一工具通信时,构造一个消息,并发送到当一个工具需要与另一工具通信时,构造一个消息,当一个工具需要与另一工具通信时消息服务器。
消息服务器。
--消息服务器将这一消息传送给被调用的工具。
消息服务器将这一消息传送给被调用的工具。
消息服务器将这一消息传送给被调用的工具
过程集成:
意指过程集成:
意指CASE系统嵌入了关于过程活动、系统嵌入了关于过程活动、系统嵌入了关于过程活动约束以及支持这些活动所需的工具等知识。
约束以及支持这些活动所需的工具等知识。
CASE系统可以辅助用户调用相应工具完成有关活动,系统可以辅助用户调用相应工具完成有关活动,并检查活动的结果。
检查活动的结果。
活动调用过程翻译机用户提议
CASE工具工具
结果
过程模型
过程集成
(2)APSE模型)模型软件工程环境”“软件工程环境”这一概念首先是由Buxton于1980年提出的。
年提出的。
这一概念首先是由于年提出的在美国国防部支持下,提交了一组支持Ada程序在美国国防部支持下,提交了一组支持程序设计环境(设计环境(APSE)的需求)
MAPSEKAPSE编译器APSEAPSE模型模型外壳配置管理
连接加载器测试器
其中:
是核心。
其中:
KAPSE是核心。
是核心扩展OS,提供环境的基础设施;并有一个扩展,提供环境的基础设施;公共的工具接口,公共的工具接口,支持增量开发一个完整的SEE。
。
增量开发一个完整的APSE是环境的一个最小集,是环境的一个最小集,是环境的一个最小集即基本上是一个程序设计工作台
(3)一个环境的层次模型)为了使软件工程环境可以根据项目需要,提供不同的为了使软件工程环境可以根据项目需要,支持,则环境必须能够接纳更多的支持,则环境必须能够接纳更多的CASE工具工具必须能够按需要增加新的设施这意味着:
环境是一组服务的集合。
这意味着:
环境是一组服务的集合。
工具(工作台)工具(工作台)应用框架服务平台服务
其中:
其中:
平台服务包括
文件服务:
文件命名,创建,存储,删除,文件服务:
文件命名,创建,存储,删除,文件按目录
结构组织
进程管理服务:
进程创建,开启,停止,挂起等进程管理服务:
进程创建,开启,停止,网络通信服务:
数据传输,消息发送,网络通信服务:
数据传输,消息发送,程序下载等窗口管理服务:
窗口创建,移动,删除,窗口管理服务:
窗口创建,移动,删除,改变窗口大小等打印服务:
信息打印,信息转存(永久性媒体)打印服务:
信息打印,信息转存(永久性媒体)等
框架服务--建立在平台服务之上,专用于支持建立在平台服务之上,专用于支持CASE工具的集成。
工具的集成。
工具的集成
数据仓库服务数据集成服务工具插槽任务管理服务用户界面服务消息服务
SEE基准模型基准模型
其中:
其中:
数据仓库服务:
对数据实体及其关系进行管理。
数据仓库服务:
对数据实体及其关系进行管理。
服务数据存储关系命名定位数据事务并发进程支持文档备份描述
支持实体的创建、读取、支持实体的创建、读取、更新和删除定义、定义、管理环境实体之间的关系支持实体命名-唯一的标识符支持实体命名唯一的标识符支持在网络上分派实体支持原子事务,支持原子事务,允许发生失败事件的数据恢复支持多个事务处理同时进行提供开启、停止、提供开启、停止、挂起进程等操作支持实体的脱机存储和恢复支持系统发生失败事件的数据恢复
数据集成服务:
数据集成服务:
扩展基本数据仓库服务
服务版本管理配置管理查询元-数据数据状态控制子环境数据互换描述
支持实体多版本管理配置项命名以及配置变化控制提供访问和更新版本服务提供数据模式定义和管理提供触发机制,提供触发机制,当数据库达到特定状态时,初始化特定操作支持定义、支持定义、管理环境中数据和操作的一个子集-作为一个单一的命名环境一个子集作为一个单一的命名环境支持从环境中移入/移出数据支持从环境中移入移出数据
任务管理服务:
任务管理服务:
支持环境中的过程集成
服务任务定义描述
提供任务定义机制,包括:
前置条件后置提供任务定义机制,包括:
前置条件/后置条件,输入/输出需要的资源,输出,条件,输入输出,需要的资源,涉及的角色提供支持任务执行的设施,任务执行提供支持任务执行的设施,也许包含用过程语言所描述的任务交互操作提供对事务的支持,任务事务提供对事务的支持,这些事务在相当一段时间内与一个或多个任务执行有关。
间内与一个或多个任务执行有关。
提供记录任务执行、查询以前执行的设施。
任务历史提供记录任务执行、查询以前执行的设施。
支持事件或引起某任务执行的触发定义。
事件监控支持事件或引起某任务执行的触发定义。
记录做了什么,以及环境资源的使用。
记帐与查帐记录做了什么,以及环境资源的使用。
提供定义和管理环境中角色的设施。
角色管理提供定义和管理环境中角色的设施。
消息服务:
支持工具与框架服务通讯。
消息服务:
支持工具与框架服务通讯。
中定义了两种消息服务:
在SEE中定义了两种消息服务:
中定义了两种消息服务-消息发派:
支持工具到工具、服务到服务、框架到消息发派:
支持工具到工具、服务到服务、消息发派框架之间的消息传送。
框架之间的消息传送。
相关的操作有:
发送,接受,相关的操作有:
发送,接受,应答等-工具注册:
允许一个工具或服务,作为某种类型的工具注册:
允许一个工具或服务,工具注册消息接受者,登记到消息服务器上。
消息接受者,登记到消息服务器上。
用户界面服务:
支持表示集成。
用户界面服务:
支持表示集成。
环境中的工具集成在SEE中,有关工具的集成,存在三个级别:
中有关工具的集成,存在三个级别:
半分离工具
集成工具框架服务
外来工具
平台服务软件工程环境的工具集成集成工具:
使用框架服务,管理它们所有的数据。
集成工具:
使用框架服务,管理它们所有的数据。
半分离工具:
与框架服务的集成不如集成工具那么紧密,半分离工具:
与框架服务的集成不如集成工具那么紧密,
它们管理自己的数据结构,但用框架服务管理文件。
它们管理自己的数据结构,但用框架服务管理文件。
外来工具:
仅使用平台服务。
外来工具:
仅使用平台服务。
(4)PCTEAPSE的出现,引起了美国和欧洲的高度重视,APSE的出现,引起了美国和欧洲的高度重视,均在有关的出现机构支持下,开展了软件开发环境通用框架服务集的研究。
机构支持下,开展了软件开发环境通用框架服务集的研究。
美国国防部基于APSE的提案,设立了CAIS(美国国防部基于APSE的提案,设立了CAIS(CommonAPSE的提案CAISSet)项目,通过研制一个AdaAda环境核心APSEInterfaceSet)项目,通过研制一个Ada环境核心APSE,开发了一个环境通用工具接口集CAISCAIS。
APSE,开发了一个环境通用工具接口集CAIS。
CAIS是面向Ada的CAIS是面向Ada的。
是面向Ada与CAIS项目进行的同时,在欧洲信息技术研究战略计划CAIS项目进行的同时,项目进行的同时ESPRIT)设立了PCTE(ESPRIT)中,设立了PCTE(PortableCommonToolEnvironment)项目。
其中,采用了SEE基准模型,SEE基准模型Environment)项目。
其中,采用了SEE基准模型,开发了软件开发环境通用的工具接口PCTE第一版,PCTE第一版件开发环境通用的工具接口PCTE第一版,成为欧洲计算机制造商协会(ECMA)的标准,并于1984年发布。
1984年发布造商协会(ECMA)的标准,并于1984年发布。
PCTE标准是面向UNIX和PCTE标准是面向UNIX和C的,旨在标准的标准是面向UNIX通用性,而并非支持面向语言的环境。
通用性,而并非支持面向语言的环境。
针对当时PCTE标准存在的一些技术缺陷,例如:
针对当时PCTE标准存在的一些技术缺陷,例如:
当时PCTE标准存在的一些技术缺陷缺乏对安全性和访问控制的支持,缺乏对安全性和访问控制的支持,与UNIX平台联系过于紧密等。
UNIX平台联系过于紧密等。
平台联系过于紧密等为了解决PCTE标准中的问题,为了解决PCTE标准中的问题,国防部门又设立新的项PCTE标准中的问题资助开发PCTE+PCTE+;目,资助开发PCTE+;欧洲计算机行业协会(ECME)也设立项目,欧洲计算机行业协会(ECME)也设立项目,支持开发PCTE。
ECMAPCTE。
由于PCTE和CAIS这两个提案有许多重复交叉之处,由于PCTE和CAIS这两个提案有许多重复交叉之处,因PCTE这两个提案有许多重复交叉之处此美欧双方共同对之进行了综合,并开发出一个称之为PCIS此美欧双方共同对之进行了综合,并开发出一个称之为PCISStanderd)标准((PortableCommonInterfaceStanderd)标准(可移植通用接口标准)。
并予以PCIS发布,还进行了原型化。
PCIS发布用接口标准)。
并予以PCIS发布,还进行了原型化。
实际情况:
欧洲和美国还是普遍接受ECMAPCTE,实际情况:
欧洲和美国还是普遍接受ECMAPCTE,已成为当时软件开发环境框架的事实标准。
当时软件开发环境框架的事实标准。
综上:
围绕环境通用接口的研究及成果之间的关系,综上:
围绕环境通用接口的研究及成果之间的关系,可概括为:
可概括为:
项目与成果
PCIS(V1.0)PCIS(1994V1.0)对CAIS和PCTE进行综合CAIS和PCTE进行综合PCTE+ECMAPCTE
针对存在的缺陷CAIS开发PCTE开SEE发
基础
APSE
PCTE的研究历程PCTE的研究历程
PCTE的主要特征可概括为的主要特征可概括为:
ECMAPCTE的主要特征可概括为:
基于ERA实体-关系-属性)模型,实现对象的管理。
ERA(1基于ERA(实体-关系-属性)模型,实现对象的管理。
包括支持对象之间的连接,对象类与子对象的定义。
包括支持对象之间的连接,对象类与子对象的定义。
提供数据恢复、复原能力,即通过控制事务(2提供数据恢复、复原能力,即通过控制事务(一个事务原子”动作的一个集合)中动作的执行方式(是“原子”动作的一个集合)中动作的执行方式(或全部执行,或一个也不执行),当事务处理中发生错误时,),当事务处理中发生错误时执行,或一个也不执行),当事务处理中发生错误时,可以将数据库恢复到一个一致的状态。
以将数据库恢复到一个一致的状态。
提供事务执行的管理,即支持进程之间的通信,3提供事务执行的管理,即支持进程之间的通信,支持进程的启动、终止和存储。
程的启动、终止和存储。
支持进程和数据在网络上的分派。
4支持进程和数据在网络上的分派。
采用了一个比较复杂的安全模型,5采用了一个比较复杂的安全模型,其中提供了不同的安全级别,控制对OMS中对象的访问。
OMS中对象的访问全级别,控制对OMS中对象的访问。
1992年以后,Brown等人介绍了ECMA并根据SEE1992年以后,Brown等人介绍了ECMAPCTE,并根据SEE年以后等人介绍了基准模型对ECMA进行了评估,如下所示:
基准模型对ECMAPCTE进行了评估,如下所示:
服务描述
数据仓库数据集成
除备份外,PCTE提供了所有数据仓库服务除备份外,PCTE提供了所有数据仓库服务除通用查询服务外,PCTE提供了所有数据除通用查询服务外,PCTE提供了所有数据仓库服务
任务管理消息用户界面
除查帐和记帐服务外,除查帐和记帐服