Computer Aided Software Engineering (CASE)

What is Computer Aided Software Engineering (CASE) Tools ?


Computer Aided Software Engineering (CASE) tool refer to automated tools that are used for software development activities. CASE helps in development, verification, maintenance and generation of processes and artifacts. These tools have great importance when complexity of processes and artifacts become high.

A specific activity is supported by a tool. A collection of related tools forms an environment. CASE can be used to automate some functions of software engineering. As market demands are changing at a much faster pace than before, development of new products needs to be faster so as to replace old products with new ones. So, in order to speed up the software system building process, CASE is introduced.

Computer Aided Software Engineering (CASE) tools (software programs) support human programmers with the difficulty of processes and artifacts of software engineering. They help in synthesis, analysis, modeling, documentation, coding etc.

Characteristics of Computer Aided Software Engineering Tools 


A CASE tool should have the following characteristics :

1) Standard Methodology : 
A CASE tool should support standard software development methodologies and modelling techniques. Presently, CASE tools use UML.

2) Flexibility : 
A CASE tool must provide flexibility and options to the user for editors and other tools.

3) Strong Integration : 
CASE tools must be integrated with all stages of software development. This means that if a change is made in a model, it must reflect in the code documentation and all related design. Hence, this offers an organized environment for software generation.

4) Integration with Testing Software : 
CASE tools should provide interfaces for automatic testing tools. This helps in regression and other testing software's under changing conditions.

5) Support for Reverse Engineering :
CASE tools should be as that it can create complex models from existing code.

6) Online Help :
CASE tools offer online tutorials.

Architecture of Computer Aided Software Engineering (CASE) Environment


The below mentioned architectural components are part of a CASE tool :
  1. A database for storing information.
  2. An object management system for managing variations made to the information.
  3. A tools control mechanism for coordinating the use of the CASE tools.
  4. A user interface for establishing a consistent pathway between the tools and user actions.

Architecture of CASE Environment

1) User Interface Layer : 
It is made up of an interface toolkit that is standardized. It implements a common protocol which is used for presentation. The components of the interface are a library which contains display objects and software that facilitates management of interface between human and computer. With the help of these two components the individual CASE tools and components can communicate with each other consistently. The tool access mechanism, use of mouse and keyboard, menu names, object names, icons and screen layout are described in the presentation tool.

2) Tools Layer : 
Along with the CASE tools a set of services to manage the tools are also included The behavior of the tools within the environment is controlled by the Tools Management Services (TMS). TMS carries out multitask communication and synchronization in case multitasking is performed by executing multiple tools at a time. This is done by gathering metrics on the usage of the tools, coordinating the information flow between the repository and management system to the tools. The auditing and security functions are also completed by it.

3) Object Management Layer (OML) : 
The configuration management tasks are performed by it. A mechanism that enables in tool incorporation is the essence of the software that is present in this layer of the framework architecture. Each case tool has been plugged into the object management layer. The OML and the CASE repository works in unison to provide integration services. The tools are coupled with the repository by this set of standard modules. Apart from all these functions, the OML also support change control, status accounting and audits. Configuration management services such as the task of classifying those configuration objects that perform version control are also executed by it.

4) Shared Repository Layer : 
It is made up of those access control functions with the help of which the object management layer interacts with the CASE database that is present in this layer. Shared repository layers and object management helps in attaining data integration.

Advantages of Computer Aided Software Engineering Tools


Though it is possible to achieve benefits if CASE tools are isolated, a great number of benefits can be obtained from the CASE environment. Following are the advantages of CASE tool :
  • The process system has an effective and longer operational life.
  • The produced system fulfills the user's requirements more efficiently.
  • The documentation of the produced system is tremendous.
  • Requirement of the support in the produced system is very low.
  • More flexible systems are produced.

Disadvantages of Computer Aided Software Engineering Tools


CASE Tools has the following disadvantages : 
  • The systems that are produced primarily require great cost to maintain and build.
  • It requires more perfect and extensive definition of the user's needs.
  • Customization is difficult.
  • Trained maintenance staffs are needed. 
  • Difficulty is encountered while using with present systems.