1.5 软件工程工具

软件工程的工具对软件工程中的过程和方法提供自动的或半自动的支持,可以帮助软件开发人员方便、简捷、高效地进行软件分析、设计、开发、测试、维护和管理等工作。有效利用工具软件可以提高软件开发的质量,减少成本,缩短工期,方便软件项目的管理。

软件工程工具通常有3种分类标准。

(1)按照功能划分:功能是对软件进行分类最常用的标准,按照功能划分,软件工程工具可分为可视化建模工具、程序开发工具、自动化测试工具、文档编辑工具、配置管理工具、项目管理工具等。

(2)按照支持的过程划分:软件工程工具可分为设计工具、编程工具、维护工具等。

(3)按照支持的范围划分:软件工程工具可以分为窄支持、较宽支持和一般支持工具。窄支持工具支持软件工程过程中的特定任务,一般将称之为工具;较宽支持工具支持特定的过程阶段,一般由多个工具集合而成,称之为工作台;一般支持工具支持覆盖软件过程的全部或大部分阶段,包含多个不同的工作台,称之为环境。

在需求分析与系统设计阶段,常用的CASE(计算机辅助软件工程)工具有面向通用软件设计的Microsoft Visio、用于面向对象软件设计的Rational Rose、用于数据库设计的Power Designer,除此之外近年还出现了更加集成化的工具Enterprise Architect、Rational Software Architect和StarUML等。这些工具通过简化UML图的绘制工作,以及强大的模型转换功能(诸如正向工程、反向工程、数据库模型转化等),大大简化了设计以及从设计向编码转化的工作。

在编码阶段,集成开发环境(IDE)通过提供代码高亮、补全,内置调试工具等功能,大大提高了效率。IDE主流的实例如表1-1所示。

表1-1 IDE主流的实例

48019-00-021-1

在测试阶段,通常会使用自动化测试工具进行测试。除单元测试工具外,较为流行的自动化测试工具包括功能测试工具WinRunner、性能测试工具LoadRunner、测试管理工具TestDirector、Web服务测试工具QTester(简称QT)等。单元测试工具通常与语言及开发框架关联密切。单元测试工具部分实例如表1-2所示。

表1-2 单元测试工具部分实例

48019-00-022-1

除了这几个阶段,软件开发过程还包括诸多其他活动,而其中最重要的便是配置管理与项目管理。配置管理通常分为不同模式,每一种模式均有对应工具,较为著名的有Microsoft VSS、CVS、SVN等,近年来最常用的为Git。项目管理领域使用最普遍的为微软公司开发的Microsoft Project,该软件提供了强大的项目管理功能,基本能够满足企业级项目管理的全部需要。此外,近年来随着敏捷开发的兴起,诸如Teambition等基于看板(Kanban)的轻量级开发平台也拥有了广大的用户群体。

除此之外,在软件过程的其他活动中同样存在众多CASE工具。在原型设计方面有快速原型构建系统Dreamweaver,在协作文档管理方面有在线协作办公系统Microsoft Office Online,还有在线协作软件设计平台Processon等,由于篇幅有限,这里不再赘述。