Software tool classification

Software tool classifications help us understand the  types of software tools and their role in supporting software process activities. There are several ways of classifying software tools, each of which gives us a different perspective on these tools. In this section, I discuss software tools from three of these perspectives:

  1. A functional perspective where tools are classified according to their specific function
  2. A process perspective where tools are classified according to the process activities that they support.
  3. An integration perspective where tools are classified according to how they are organised into integrated units that provide support for one or more process activities.

The following table shows a classification of software tools according to function. This table lists a number of different types of tools and gives specific examples of each of them. This is not a complete list of software tools. Specialised tools, such as tools to support reuse, have not been included.

Tool type Examples
Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, system building tools
Prototyping tools Very high-level languages, user interface generators
Method-support tools Design editors, data dictionaries, code generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs, image editors
Reengineering tools Cross-reference systems, program restructuring systems

Table 1: Software tool classification by function

The diagram below presents an alternative classification of software tools. It shows the process phases supported by a number of  types of tool. Tools for planning and estimating, text editing, document preparation and configuration management may be used throughout the software process.

ActivityToolClassification graph