Computer Aided Software Engineering Tools (CASE)


CASE:

CASE stands for Computer Aided Software Engineering which is software that supports one or more software engineering activities within a software development process, and is gradually becoming popular for the development of software as they are improving in the capabilities and functionality and are proving to be beneficial for the development of quality software.

CASE TOOLS:

Whenever a new system is installed, the implementation integrates a number of related and different tasks. The process has to be efficiently organized and it is for this very reason that CASE tools are developed. With the help of CASE, the installation process can be automated and coordinated within the developed and adopted system life cycle.

CASE tools are the software engineering tools that permit collaborative software development and maintenance. Almost all the phases of the software development life cycle are supported by them such as analysis; design, etc., including umbrella activities such as project management, configuration management etc. In general, standard software development methods such as Jackson Structure programming or structured system analysis and design method are also supported by CASE tools. CASE tools may support the following development steps for developing data base application:

  • Creation of data flow and entity models
  • Establishing a relationship between requirements and models
  • Development of top-level design
  • Development of functional and process description
  • Development of test cases.

Why CASE tools are developed:

CASE tools are designed to enhance and upgrade the computing system adopted and used. This is very important with regards to the dependence on a computer-based environment for business and/or personal pursuits. It is an important part of various business growth strategies. The CASE tools are developed for the following reasons:
  1. Firstly Quick Installation.
  2. Time Saving by reducing coding and testing time.
  3. Enrich graphical techniques and data flow.
  4. Optimum use of available information.
  5. Enhanced analysis and design development.
  6. Create and manipulate documentation.
  7. Transfer the information between tools efficiently.
  8. The speed during the system development increased.

How the Organization uses CASE tools:

Here are the ways where the CASE tools are used:
  1. To facilitate single design methodology:

    CASE tools help the organization to standardize the development process. It also facilitates coordinated development. Integration becomes easy as common methodology is adopted.
     
  2. Rapid Application Development:

    To improve the speed and quality of system development organizations use CASE tools.
     
  3. Testing:

    CASE tools help in improving the testing process through automated checking and simplified program maintenance.
     
  4. Documentation:

    In a traditional software development process, the quality of documentation at various stages depends on the individual. At various stages of SDLC CASE tools improve the quality and uniformity of documentation. It also ensures the completeness of the documentation.
     
  5. Project Management:

    It improves project management activity and to some extent automates various activities involved in project management.
     
  6. Reduce the maintenance cost:
        Use of CASE tools makes the software easy to maintain and hence reduce the maintenance costs. 
  
   7. 
Increase Productivity: 

        Automation of various activities of system development and management processes increases productivity of the development team.


Environment having CASE:

CaseTools1.gif

Role of CASE tools:


CASE tools play a major role in the following activities:
  • Project management
  • Data dictionary
  • Code generation
  • User interface design
  • Schema generation
  • Creation of meta-data for data warehouse
  • Reverse engineering
  • Re-engineering
  • Document generation
  • Version control
  • OO analysis and design
  • Software testing
  • Data modeling
  • Project scheduling
  • Cost estimation

Need of CASE tools:

The software development process is expensive and as the projects become more complex in nature, the project implementations become more demanding and expensive. That's why  software developers always looking for such CASE tools that help them in many different  ways during the different development stages of software, so that they can understand the  software and prepare a good end product that efficiently fulfill the user requirements. CASE tools provide the integrated homogenous environment for the development of complex projects. These tools provide computerized setting to software developers to analyze a  problem and then design its system model. The CASE tools also provide the environment for monitoring and controlling projects such that team leaders are able to manage the complex projects.

Basically, the CASE tools are used to
  • Reduce the cost as they automate many repetitive manual tasks.
  • Reduce development time of the project as they support standardization and avoid
    repetition and reuse.
  • Develop better quality complex projects as they provide greater consistency and
    coordination.
  • Create good quality documentation.
  • Create systems that are maintainable because of proper control of configuration item that
    support traceability requirements.

Categories of CASE Tools:

Sometimes CASE tools are classified in to following categories due to their activities:
  1. UPPER CASE Tools
  2. LOWER CASE Tools
  3. INTEGRATED CASE Tools

Upper CASE tools:

They support the analysis and the design phase. They include tools for analysis modeling, reports and forms generation.

Lower CASE tools:

They support the coding phase, configuration management, etc.

Integrated CASE tools:

It is known as I-CASE and also supports analysis, design and coding phases.

The phases that are supported by the Lower and upper CASE tools are shown in the Waterfall model as under:

CaseTools2.gif

Positioning of CASE tools in a Software Application development:

CaseTools3.gif

Advantages and Disadvantages of CASE Tools:

CaseTools4.gif

Characteristics of a successful CASE Tool:

A CASE tool must have the following characteristics in order to be used efficiently:
  • A standard methodology: A CASE tool must support a standard software development methodology and standard modeling techniques. In the present scenario most of the CASE tools are moving towards UML.
  • Flexibility: Flexibility in use of editors and other tools. The CASE tool must offer flexibility and the choice for the user of editors' development environments.
  • Strong Integration: The CASE tools should be integrated to support all the stages. This implies that if a change is made at any stage, for example, in the model, it should get reflected in the code documentation and all related design and other documents, thus providing a cohesive environment for software development.
  • Integration with testing software: The CASE tools must provide interfaces for automatic testing tools that take care of regression and other kinds of testing software under the changing requirements.
  • Support for reverse engineering: A CASE tools must be able to generate complex models from already generated code.
  • On-line help: The CASE tools provide an online tutorial.