Wednesday, February 8, 2017

Lecture 18 - CASE Tools



CASE has emerged as a much talked about topic in software industries. Software is becoming the most important component in any computer installation. Even though hardware prices keep falling below even the most optimistic expectations, software is becoming costlier due to increased manpower cost involved.



In this scenario CASE tools promise reduction in software development and maintenance costs. CASE tools help to develop better quality products more efficiently.

Traditional vs CASE based Development

CASE-Based Systems Development

  • Emphasis on analysis and design
  • Rapid interactive Prototyping
  • Automated code generation
  • Automated documentation generation
  • Automated design checking
  • Maintain design specifications

Traditional Systems Development
  • Emphasis on coding and testing
  • Paper-based specifications
  • Manual coding of Programs
  • Manual documenting
  • Intensive software testing
  • Maintain code and documentation

Advantages of using CASE tools

A CASE tool is a generic term used to denote any form of automated support for software engineering. In more restrictive sense, a CASE tool can mean any tool used to automate some activity associated with software development.

Many CASE tools are now available. Some of these tools assist in phase-related tasks such as specification, structured analysis, design, coding, testing, etc. and others are related to non-phase activities such as project management and configuration management.

The primary objectives of deploying CASE tool are:
  • To increase the productivity
  • To produce quality software fast and for a lower cost

Benefits of CASE Tools

A key benefit arising out of the use of a CASE environment is cost saving through all development phases. Different studies carried out to measure the impact of CASE put effort reduction to between 30% and 40%.

Use of CASE tools leads to considerable improvements to quality. This is mainly due to the facts one can easily iterate through different phases of software development and chances of human errors are very low.

CASE tools help produce high quality and consistent documents. since the important data relating to software product are maintained in central repository, redundancy in the stored data is reduced and therefore chances of inconsistent documentation are reduced to a great extent.

CASE tools reduce the redundancy of software engineers work. For example, they need to check laboriously the balancing of the Data Flow Diagrams but can do it effortlessly through the press of a button.

CASE tools have led to revolutionary cost saving on software maintenance efforts. This has been possible not only due to the tremendous value of a CASE environment trace-ability and consistency checks, but also due to the systematic information capture during the various phases of software development as a result of adhering to a CASE environment.

Use of a CASE environment has an impact on the style of working of a company, and makes it conscious of structured and orderly approach.

Components of CASE

Upper CASE
CASE tools designed to support the information planning and the project identification and selection, process initiation and planning, analysis and design phases of the systems development life cycle

Lower CASE
CASE tools designed to support the implementation and maintenance phases of the systems development life cycle. This includes the tools used for coding, testing, reverse engineering and maintenance tools.

Cross Life-Cycle CASE
CASE tools designed to support activities that occurs across multiple phases of the systems development life cycle. Most CASE tools utilize a repository to store all diagrams, forms, models and report definitions.

CASE support in software life cycle

Let us examine the various types of support that CASE provides during the different phases of a software life cycle. CASE tools should support a development methodology, help enforce the same, and provide certain amount of consistency checking between different phases.

The kind of support that CASE tools usually provide in the software development life cycle is elucidated below.

Prototyping Support
There are several stand-alone prototyping tools. But a tool that integrates with the data dictionary can make use of the entries in the data dictionary, help in populating the data dictionary and ensure the consistency between design data and the prototype.

One prototyping CASE tool is GUI (Graphical User Interface) design. CASE tool should support user to create GUI using a GUI itself (GUI Editor such as Dreamweaver / Visual Studio).

It should integrate with the data dictionary of the CASE environment. lf possible, it should be able to integrate with the external user-defined modules written in C language or in some popular high level programming languages.

The user should be able to define the sequence states through which a created prototype can run. The user should also be allowed to control the running of the prototype.

The run-time system of the prototype should support mock up run of the actual system and management of the input and output data

Structured Analysis and Design
A CASE tool should support one or more of the structured analysis and design techniques. It should support effortlessly, making analysis and design diagrams. lt should also support making fairly complex diagrams and preferably through hierarchy of levels.

Code Generation
As far as code generation is concerned, the general expectation from a CASE tool is quite low. A reasonable requirement is trace ability from source file to design data. Most case tools for code generation is capable of generating code templates rather than actual logic itself.

Test CASE Generator
It should support both design and requirement testing. Generating test cases manually is a very time consuming process and therefore this type tool is helpful for generating test cases based on source code or based on a formal specification.

It should generate test set reports in ASCII format which can be directly imported in to the test plan document.

Reverse and Re-Engineering Tools

Reverse Engineering Tools
Automated tools that read program source code as input and create graphical and textual representations of program design level information.
 
Re-engineering Tools
Automated software that reads program source code, analyzes it and automatically or interactively alters an existing system to improve quality.

Other characteristics of CASE tools:
  • Hardware and environmental requirements
  • Documentation support
  • Project management
  • Reverse engineering support
  • Data dictionary interface
  • Tutorial and help

1 comment:

  1. One thing best is technology is convinence , now you don't have to attend these boring lectures when you are not in a mood and can take it private at home thanks toyou guys ...

    ReplyDelete

Important Notice!

Dear students and friends. When you commenting please do not mention your email address. Because your email address will be publicly available and visible to all. Soon, it will start sending tons of spams because email crawlers can extract your email from feed text.

To contact me directly regarding any inquiry you may send an email to info@bcslectures.website and I will reply accordingly.