15.1.2 软件工程工具
这些工具牵涉到整个系统的维护而不是代码本身,现今这类工具包括:
系统构造程序(SystemBuilder) 该工具允许用户定义系统应如何建造系统
模型,模型包括相关性、编译选项和应该执行什么命令等信息;然后工具应能够构
筑原型系统或者基于一组源文件变化渐增的更新系统。
版本管理程序(VersionManager) 该工具允许一个源文件的多种版本同时共
存。这样就允许多个程序员共同开发系统,允许在新版本开发的同时维护已发布
的系统的老版本,或者允许单一系统不同定制版本的共存。
设计编辑器(DesignEditor) 该工具使用户采用各种图形设计符号设计一个
系统。CASE(Computer_AidedSoftwareEngineering)就是这样的工具,它使用Petri
网、SADT[150]、状态图和面向对象的设计 OMT[151]等表示来开发软件。很多
这样的工具至少能基于设计产生代码框架。如果提供足够的设计信息,有些工具
能够模拟系统的若干方面,同时允许开发者在较高级测试设计。
代码产生器(CodeGenerator) 该工具也称为第四代语言,它实际上是让程序
员交互地指定系统的大部分而不必进行编码的专用高级语言。它们普遍地用于定
义用户界面和程序与数据库系统的相互作用。
测试辅助程序(TestingAids) 该工具试图将测试软件系统的过程自动化。
其范围从测试事例产生器(用于分析源代码或说明以产生一组测试实例)到回归测
试系统(程序员产生测试事例,系统施行内务操作,包括运行每个测试实例、确定它
是否成功或失败以及报告结果)。
15.1.3 集成工具
软件工具可以使用不同的集成技术进行组合。早期,或采用不同工具的松散
联合,或将所有相关的工具组合成单一系统。单一系统的优点是,紧密地将一些工
具耦合在一起使得程序员对环境有所了解;其缺点是,此单一系统是个封闭系统,
很难加入新的工具,或很难使用多种语言或者现存代码,而且系统相当庞大。紧密
的联合可以解决不少问题,它是个开放系统,易于开发和利用新工具,且系统可以
使用多种语言和库构筑之。然而,它把正确使用工具的义务转给程序员且不提供
公共框架。目前已提出三种将工具集成为环境的方法:
数据集成(DataIntegration) 该方法使诸工具共享信息,为此要开发一个能
保存各个工具必须共享的信息数据库。例如,编译器产生的中间表示可存入数据
193*15.1 软件工具与环境
1