CASE stands for Computer Aided Software Engineering is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products. It also refers to methods for the development of information systems together with automated tools that can be used in the software development process.
CASE tools are a class of software that automate many of the activities involved in various life cycle phases.The main purpose of using a CASE tool is to produce error-free, easy to maintain program code. It also allows users to develop software systems more quickly than would be possible without the use of such a tool.Computer Aided Software Engineering (CASE) tools offer many benefits for developers building large-scale systems. As spiraling user requirements continue to drive system complexity to new levels, CASE tools enable software engineers to abstract away from the entanglement of source code, to a level where architecture and design become more apparent and easier to understand and modify. The larger a project, the more important it is to use a CASE tool in software development.
As developers interact with portions of a system designed by their colleagues, they must quickly seek a subset of classes and methods and assimilate an understanding of how to interface with them. In a similar sense, management must be able, in a timely fashion and from a high level, to look at a representation of a design and understand what’s going on. For these reasons, CASE tools coupled with methodologies give us a way of representing systems too complex to comprehend in their underlying source code or schema-based form.
A CASE tool often allows developers to program visually as well as use Object Oriented Programming (OOP) methods. A Unified Markup Language (UML) design tool is an example of a CASE tool. System design documents and program code may be generated by the tool as part of the visual design, thus reducing development time and increasing accuracy of the documents and code.
Why use CASE tools?
CASE tools offer:
- Savings in resources required for software development – with less
- Quicker development phase (i.e. shorter time to market)
- Reduction of generation of defects
- Easier identification of defects during development
- Savings in maintenance resources required
- Greater standardization of software systems and therefore increased reuse possibilities
- Reduction of effort needed on development
Benefits of CASE Tools :
• Increase the speed
CASE tools provide automation and reduce the time to complete the jobs, especially jobs that involve drawing and related specifications.
• Improve Accuracy
CASE tools can provide ongoing debugging and error checking which is critical in eliminating the early damage, which plays an important role in determining the modern software. If the correction is performed in the early stages, such as the design stage, it will save time and effort. When the system grew, the system will be more difficult to modify. Searching the error becomes more difficult.
• Reducing Maintenance Time
CASE provides a tool for re-enginering important because it makes the process efficient, saving time and cost by finding the old parts of the system that can be reused.
• Better documentation
Many tools have revisions for comments and notes on system development and maintenance.
• Programming by Non-Programmers
With the development of object-oriented technology and client server, programming can also be done by people who do not have a programming background. Important to understand the logic of the program and have the ability to analyze organizational program used in building good software. By using lower case tool, it is possible to develop software from the initial design and analysis phase.
• Intangible Benefit
CASE Tool can be used to engage users, so we get a good reception to the new system.
The major benefits of using CASE tools include the following:
- Improved productivity
- Better documentation
- Improved accuracy
- Intangible benefits
- Improved quality
- Reduced lifetime maintenance
- Opportunity to non-programmers
- Reduced cost of software
- Produce high-quality and consistent documents
- Impact on the style of a working of company
- Reduce the drudgery in a software engineer’s work
- Increase speed of processing
- Easy to program software
- Improved coordination among staff members who are working on a large software project
- An increase in project control through better planning, monitoring, and communication
CASE Tool’s Classification:
a. Upper CASE Tools/Front-end CASE Tools. These CASE tools are designed to support the analysis and design phases of the SDLC. all analysis, design, and specification tools are front-end tools. These tools also include computer-aided diagramming tools oriented towards a particular programming design methodology, and more recently including object-oriented design.
The general types of upper CASE tools are listed below:
– Diagramming tools: Diagramming tools enable system process, data, and control structures to be represented graphically. They strongly support analysis and documentation of application requirements.
– Form and report generator tools: They support the creation of system forms and reports in order to show how systems will “look and feel” to users.
– Analysis tools: Analysis tools enable automatic checking for incomplete, inconsistent, or incorrect specifications in diagrams, forms, and reports.
b. Lower CASE or Back-end tools. These CASE tools are designed to support the implementation and maintenance phases of the SDLC. All generator, translation, and testing tools are back-end tools.
The general types of lower CASE tools are:
– Code Generators: Code generators automate the preparation of computer software. Code generation is not yet perfect. thus, the best generator will produce approximately 75% of the source code for an application. Hand-coding is still necessary.
c. Cross life-cycle CASE or Integrated Tools. These CASE tools are used to support activities that occur across multiple phases of the SDLC. While such tools include both front-end and back-end capabilities, they also facilitate design, management, and maintenance of code. In addition, they provide an efficient environment for the creation, storage, manipulation, and documentation of systems.
d. Reverse-engineering Tools. These tools build bridges from lower CASE tools to upper CASE tools. They help in the process of analyzing existing applications and perform and database code to create higher level representations of the code.
Characteristics of CASE Tools:
All CASE tools have the following characteristics:
- a graphic interface to draw diagrams, charts, models (uppercase, middlecase, lowercase)
- an information repository, a data dictionary for efficient information-management selection, usage, application, and storage.
- common user interface for integration of multiple tools used in various phases.
- automatic code generators.
- automatic testing tools.
List of CASE tools:
|No.||Application||CASE tool||Purpose of Tool|
|1.||Planning||Excel spreadsheet, Ms Project, PERT/CPM Network, Estimation tools||Functional Application: Planning, scheduling, control|
|2.||Editing||Diagram editors, Text editors, Word processors||Speed and Efficiency|
|3.||Testing||Test-data generators, File comparators||Speed and Efficiency|
|4.||Prototyping||High-level modeling language, User-interface generators||Confirmation and certification of RDD and SRS|
|5.||Documentation||Report generators, Publishing imaging, PPT presentation||Faster structural documentation with quality of presentation|
|6.||Programming and Language-processing integration||Program generators, Code generators, Compilers, Intepreters interface, connectivity||Programming of high quality with no errors, system integration|
|7.||Templates||–||Guided systematic development|
|8.||Re-engineering tools||Cross-reference systems, program re-structuring systems||Reverse-engineering to find structure, design, and design information|
|9.||Program analysis tools||Cross-reference generators Static analyzers, dynamic analyzers||analyzes risks, functions, features|
Disadvantages of CASE tools:
1. Purchasing of CASE tools is Not an Easy Task. The cost of CASE tools is very high. For this reason small software development firms do not invest in CASE tools.
2. Learning Curve. In general, programmer productivity may fall in the initial phase of implementation as users need time to learn this technology.
3. Tool Mix. It is important to make proper selection of CASE tools to get maximum benefits from the tools, as the wrong selection may lead to the wrong results.