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:
- A functional perspective where tools are classified according to their specific function
- A process perspective where tools are classified according to the process activities that they support.
- 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 |
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.