本节将介绍软件工具与软件开发环境。
软件工具是指用于辅助软件开发、运行、维护、管理、支持等过程中的活动的软件,通常也称为CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具。
软件开发工具种类繁多,很难有一种统一分类方法。由于大多数软件工具仅限于支持软件生命周期过程中的某些特定的活动,通常可按软件过程的活动分为软件开发工具、软件维护工具和软件管理工具等。
主要包括支持结构化方法的数据流图、数据字典和支持面向对象方法的类图、用例图和状态图等。
主要包括概要设计阶段的模块结构图、层次图、HIPO图和详细设计阶段的程序流程图、盒图(N–S图)、PAD图和过程设计语言(PDL)等。
面向对象的设计工具一般与分析阶段使用的工具一致,可以通称分析设计工具。
主要包括编辑程序、汇编程序、编译程序、构造程序(Builder)和调试程序等。
包括静态分析工具、动态测试工具和测试数据自动生成工具等。
用来存储、更新、恢复和管理一个软件的多个版本。
用来对软件开发过程中形成的文档进行分析,给出软件维护活动所需的维护信息。
用来维护软件项目的开发信息,包括对象、模块等。
在软件生命周期中,将某种形式表示的软件转换成更高抽象形式表示的软件活动称为逆向工程。逆向工程工具就是辅助软件人员进行这种逆向工程活动的软件工具,如反汇编工具、反编译工具等。
用来支持重构一个功能和性能更为完善的软件系统。目前的再工程工具主要集中在代码重构、程序结构重构和数据重构等方面。
用来辅助软件的项目管理活动(包括项目的计划、调度、通信、成本估算、资源分配及质量控制等)。
用来辅助完成软件配置项的标识、版本控制、变化控制、审计和状态统计等基本任务,使各配置项的存取、修改和系统生成易于实现,从而简化审计过程、改进状态统计、减少错误、提高系统质量。
用来辅助管理人员进行软件质量保证的有关活动。
软件开发环境是指支持软件产品开发的软件系统。
集成型软件开发环境是一种把支持多种软件开发方法和开发模型、支持软件开发全过程的软件工具集成在一起的软件开发环境。这种环境通常应具有开放性和可剪裁性。开放性为将环境外的工具集成到环境中来提供方便;可剪裁性根据不同的应用或不同的用户需求进行剪裁,以形成特定的开发环境。
集成型开发环境通常可由工具集和环境集成机制两部分组成。环境集成机制主要有数据集成机制、控制集成机制和界面集成机制。
数据集成机制提供统一的数据模式和数据接口规范,需要相互协作的工具通过这种统一的模式与规范交换数据。数据集成可以有不同的层次,如共享文件、共享数据结构和共享信息库等。
控制集成机制支持各工具或各开发活动之间的通信、切换、调度和协同工作,并支持软件开发过程的描述、执行和转接。通常使用消息通信机制实现控制集成,工具间发送的消息统一由消息服务器进行管理。
界面集成机制为统一的工具界面风格和统一的操作方式提供支持,使得环境中的工具具有相同的视觉效果和操作规则,减少用户为学习不同工具的使用所花费的开销。界面集成主要体现在相同或相似的窗口、菜单、工具条、快捷键、操作规则与命令语法等。