Computer Aided Software Engineering (CASE) can be described as a collection of tools used in the software development process. Each stage in the software development lifecycle has different tool requirements, and CASE products provide tools for each stage. Interaction modes vary depending on the tools in a CASE environment. Ideally, the interaction mode of each tool, whether graphical or command-line, for example, should be natural for that particular lifecycle stage.
CASE tools should include verification and validation, the most basic level of which is error detection and correction. Factors such as completeness should also be included. CASE as a whole must also be able to accommodate backwards processing. For example, it is sometimes necessary to take code back to a design stage for manipulation, or to recreate prior release of software that has already been distributed. There also needs to be an aspect of openness in that most CASE tools come from multiple vendors in today's environment, and interfaces among these tools should avoid proprietary conventions. This element lends itself to the integrated CASE situation (ICASE), which builds on basic CASE elements.
A CASE environment needs to support multiple users working on the same component, such as design, code or documentation; just as critical to the success of CASE is creating a corporate culture which supports and fosters the implementation of the tool. Some companies have abandoned CASE environments after finding it too difficult to create such a culture, and care must be taken to recognize that CASE by itself cannot solve fundamental development problems.
...