25 CASE Tools

An increasing variety of specialized computerized tools (actually software packages) have been offered to software engineering departments since the early 1990s. The purpose of these tools is to make the work of development and maintenance teams more efficient and more effective. CASE (Computer Aided Software Engineering) is a term covering a whole range of tools and methods that support software system development. These tools and methods reduce the load on developers allowing them to focus their skills on other goals. It can be used at all stages of the Software Development Life Cycle.

 

Fig 1: CASE Environment

CASE tools are computerized software development tools that support the developer when performing one or more phases of the software life cycle and/or support software maintenance. Compilers, interactive debugging systems, configuration management systems and automated testing systems can be considered as CASE tools. The various types of CASE tools are:

  • Diagramming tools: enable system process, data and control structures to be represented graphically.
  • Computer display and report generators: help prototype how systems look and feel. It makes it easier for the systems analyst to identify data requirements and relationship.
  • Analysis tools: automatically check for importance, inconsistent, or incorrect specifications in diagrams, forms, and reports.
  • Central repository: enables the integrated storage of specifications, diagrams, reports and project management information.
  • Documentation Generators: produce technical and user documentation in standard formats.
  • Code generators: enable the automatic generation of program and data base definition code directly from the design documents, diagrams, forms, and reports.

The comparison of CASE tools with classic real states that the computerized software development support tools such as interactive debuggers, compilers and project progress control systems can readily be considered classic CASE tools. The new tools that support the developer for a succession of several development phases of a development project are referred to as real CASE tools. When referring to real CASE tools, it is customary to distinguish between upper CASE tools that support the analysis and design phases, and lower CASE tools that support the coding phase.

Fig 2:Traditional development SDLC vs Case Tool assisted SDLC

Contributions of CASE tools to Quality can be categorized in to:

  • CASE Tool Support to Developers
  • CASE Tools to  improve Software Product Quality
  • CASE tools to improve Software Maintenance Quality.
  • CASE tools to enhance Project Management.
Contribution of CASE tools to software product quality can be summarized as follows:

Contribution of CASE tools to Software Maintenance Quality consists of the following steps:

  • Corrective maintenance
  • Adaptive maintenance
  • Functional improvement maintenance

In Corrective Maintenance CASE- generated full and updated documentation of the software enables easier and reliable identification of the cause for software failure. Cross-referenced queries enable identification of anticipated effects of any proposed correction. Correction by means of lower CASE tools provides automated coding, with no expected coding errors. In Adaptive Maintenance Full and updated documentation of the software by CASE tools enables thorough examination of possible software package adaptations for new users and applications. In Functional Improvement Maintenance Use of the repository enables designers to assure consistency of new applications and improvements with existing software systems. Cross-referenced repository queries enable better planning of changes and additions. Changes and additions carried out by means of lower CASE or integrated CASE tools enable automated coding. The various categories of CASE tools can be of as follows:

  • Real CASE Tools
    • Upper-CASE tools (front-end tools)
    • Lower-CASE tools (back-end tools)
    • Integrated CASE tools (I-CASE)
  • Workbenches
  • Environments

In Upper-CASE tools (front-end tools), it assist developer during requirements, analysis, and design workflows or activities. In Lower-CASE tools (back-end tools), it assist with implementation, testing, and maintenance workflows or activities. In Integrated CASE tools (I-CASE), it provides support for the full life cycle.

 

Fig 3: Real CASE Tools

 

In Workbenches, Collection of tools that together support the process workflows (requirements, design, etc.) and one or two activities where an activity is a related collection of tasks

 

Commercial examples:

  • PowerBuilder
  • Software through Pictures
  • Software Architect

Environments support the complete software process or, at least, a large portion of the software process, which normally include several different workbenches which are integrated in some way.

Characteristics of a Successful CASE Tool

  • Standard Methodology: CASE tools must support a standard software development methodology and standard modeling techniques.
  • Flexibility: Flexibility in use of editors and other tools.
  • Strong Integration: CASE tools should be integrated to support all the stages.
  • Integration with Testing Software: CASE tools must provide interfaces for automatic testing tools that take care of regression and other kinds of testing software.
  • Support for reverse Engineering: CASE tools must be able to generate complex models from already generated code.
  • On-line Help: CASE tools must provide an online tutorial.

Summary:

 

CASE tools are set of software application programs, which are used to automate SDLC activities. CASE tools are used by software project managers, analysts and engineers to develop software system. There are number of CASE tools available to simplify various stages of Software Development Life Cycle: Analysis tools, Design tools, Project management tools. Use of CASE tools accelerates the development of project to produce desired result and helps to uncover flaws before moving ahead with next stage in software development.