8 CASE tools
Computer Assisted Software Engineering (CASE) tools were developed to support the professional system developer and improve their productivity in the complex task of developing large information systems.
The benefits that may accrue from the use of such tools are many. From a developer’s viewpoint, they provide support for modelling aspects of the system using a variety of notations and techniques: from diagrams to mathematics and text, producing prototype code, and even verifying the correctness of the system design. They also automate the sometimes tedious process of writing system documentation and keeping it up to date. They often allow the creation and management of a central repository of documents and other artefacts. This is useful both for communication within a development team, and for project management and decision tracking. Importantly, they improve the quality of the development processes by supporting, and to a large extent enforcing, a standard methodology and sound design principles.
Despite these potential benefits, there are often obstacles to their adoption. The introduction of a CASE tool within an organisation comes at a high cost: an upfront investment is required to acquire the technology and to train personnel accordingly, while the benefits of using the tool manifest themselves only in the long term. CASE tools are only effective if standard methodologies and processes are adopted across the organisation; the definition of standard procedures and practices also has to be established at the beginning. At times the obstacles are cultural: there may be some resistance from analysts and developers who perceive the rigidity of an enforced methodology as a threat to their autonomy and creativity. The initial learning curve is quite steep and they may not consider the effort worthwhile in terms of improvement in productivity and quality. Another major drawback is that the available tools tend to be narrow in their focus and concentrate on small subset of activities within the development process. For instance, most tools support modelling, while hardly any provide facilities for communication between customers and developers. This may result in a variety of tools to be used within a process, with all the difficulties arising from integration and interchange of information.
Which factors may contribute to the successful adoption of CASE tools within a organisation?
There should be established methods and procedures across the organisation that can be supported by the tools.
Adequate investment should be put into training managers and developers.
Deployment should occur over a long period of time, as the benefits of CASE tools are not short term.
Clear procedures should be established for the use of different tools within development and standards should be followed for information exchange among tools.
To overcome some of the deficiencies of current tools, they should be integrated within practices that support project management and customer/developer communication.
A great variety of tools are available today, supporting many different functions within software development. Table 2 gives a brief taxonomy of tools based on their function; the list is not meant to be exhaustive. Also, many current CASE systems integrate many such functions within the same application environment.
Table 2 Brief taxonomy of CASE tools
|Process management tools||To capture and model development processes|
|Project management tools||To plan and schedule projects, and track progress|
|Risk analysis tools||To record, categorise and analyse risks|
|Requirements management tools||To capture, analyse and trace requirements throughout development|
|Metrics tools||To capture specific software metrics and provide overall measures of quality|
|Modelling tools||To support modelling within analysis and design activities|
|Programming tools||To support code development|
|Interface design tools||To support the design of graphical use interfaces (GUI)|
|Test management tools||To manage and coordinate testing|
Particularly relevant to this course are UML modelling tools, which support the creation of models based on UML techniques. Many such tools are available, from simple diagrammatic tools to fully blown integrated environments with project management, document repository and code generation capabilities. You will have an opportunity to explore the capability of one such tool during the course.