软件工具是指为支持
计算机软件的开发、
维护、模拟、移植或管理而研制的程序系统。它是为专门目的而开发的,在
软件工程范围内也就是为实现软件生存期中的各种处理活动(包括管理、开发和维护)的自动化和半自动化而开发的程序系统。
软件工具分为六类:模拟工具、
开发工具、测试和评估工具、运行和维护工具、性能质量工具和程序设计支持工具。
从
软件工程的观点来看,软件工具能够支持软件生存期的各个阶段。
(3)分析和设计工具:辅助建立软件的系统模型和设计的工具。分析和设计引擎将成为新一代分析设计工具,该工具可以对任何分析和设计方法进行定制,根据需要,支持特定的分析和设计方法。
(5)测试工具:可以分为
数据获取工具、
静态分析工具、
动态分析工具、模拟工具以及
测试管理工具等。其中,静态分析工具通过对
源程序的程序结构、数据流和控制流进行分析,得出程序中函数(过程)的调用与被调用关系、分支和路径、
变量定义和引用等情况,发现语义错误。动态分析工具通过执行程序,检查语句、分支和
路径覆盖,测试有关变量值的断点,即对程序的执行流行探测。另一类动态分析工具称为截获/播放工具。测试管理工具用以控制并协调软件测试的每一个主要步骤,进行
回归测试,比较运行结果和期望输出之间的差异,并可实施程序的成批测试。
(6)
维护工具:支持
软件维护的工具。大致可分为
逆向工程工具和
再生工程工具。逆向工程工具对已经开发完成的
源程序进行分析,抽取程序的
系统结构、控制结构、逻辑流程、数据结构和数据流等信息,并生成分析和
设计模型以及其它设计信息。再生工程工具用来支持重构一个功能和性能更为完善的、改进的
软件系统。