Computer-Aided Software Engineering (CASE), in the field of Software Engineering is the scientific application of a set of tools and methods to a software 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.
The term "
Computer-aided software engineering" (CASE) can refer to the software used for the automated development of systems software, i.e., computer code. The CASE functions include analysis, design, and programming. CASE tools automate methods for designing, documenting, and producing structured computer code in the desired programming language
Two key ideas of Computer-aided Software System Engineering (CASE) are:
• the harboring of computer assistance in software development and or software maintenance processes, and
• An engineering approach to the software development and or maintenance.
Some typical CASE tools are:
• Configuration management tools
• Data modeling tools
• Model transformation tools
• Program transformation tools
• Refactoring tools
• Source code generation tools, and
• Unified Modeling Language
Many
CASE tools not only output code but also generate other output typical of various systems analysis and design methodologies such as
• data flow diagram
• entity relationship diagram
• logical schema
• Program specification
• SSADM.
• User documentation
CASE toolsCASE tools are a class of software that automates many of the activities involved in various life cycle phases. For example, when establishing the functional requirements of a proposed application, prototyping tools can be used to develop graphic models of application screens to assist end users to visualize how an application will look after development. Subsequently, system designers can use automated design tools to transform the prototyped functional requirements into detailed design documents. Programmers can then use automated code generators to convert the design documents into code. Automated tools can be used collectively, as mentioned, or individually. For example, prototyping tools could be used to define application requirements that get passed to design technicians who convert the requirements into detailed designs in a traditional manner using flowcharts and narrative documents, without the assistance of automated design software.
Existing CASE Environments can be classified along 4 different dimensions:
1. Life-Cycle Support
2. Integration Dimension
3. Construction Dimension
4. Knowledge Based CASE dimension
Let us take the meaning of these dimensions along with their examples one by one:
Life-Cycle Based CASE ToolsThis dimension classifies CASE Tools on the basis of the activities they support in the information systems life cycle. They can be classified as Upper or Lower CASE tools.
•
Upper CASE Tools: support strategic, planning and construction of conceptual level product and ignore the design aspect. They support traditional diagrammatic languages such as ER diagrams, Data flow diagram, Structure charts etc.
•
Lower CASE Tools: concentrate on the back end activities of the software life cycle and hence support activities like physical design, debugging, construction, testing, and integration of software components, maintenance, reengineering and reverse engineering activities.
Integration DimensionThree main CASE Integration dimension have been proposed :
1. CASE Framework
2. ICASE Tools
3. Integrated Project Support Environment(IPSE)