CASE tools were at their peak in the early 1990s. At the time IBM had proposed AD/Cycle which was an alliance of software vendors centered around IBM'smainframe. The three giants of the time were Atlanta based KnowledgeWare withtheir IEW (software engineering) and ADW tools and Texas Instruments with their IEF tool and Nastec Corporation (later merged with Transform Logic Corporation)and their DesignAid and Lifecycle Manager Tool suites. These tools were fulllifecycle and included Upper CASE and Lower CASE.With the decline of the mainframe, AD/Cycle and the Big CASE tools diedoff, opening the market for the mainstream CASE tools of today. Interestingly, nearlyall of the leaders of the CASE market of the early 1990s ended up being purchased byComputer Associates, including IEW, IEF, ADW, Cayenne, and LBMS.Some typical case tools are:
Code generation tools
UML editors and the like
QVT or Model Transformation tools
Configuration Management tools including revision control etc.
Although individual CASE tools are useful, the true power of a tool set can berealized only when these set of tools are integrated into a common framework or environment. If the different CASE tools are not integrated, then the data generated by one tool would have to input to the other tools. This may also involve formatconversions as the tools developed by different vendors are likely to use differentformats. This results in an additional effort of exporting data from one tool andimporting to another. Also, many tools do not allow exporting data and maintain thedata in proprietary formats.CASE tools are characterized by the stage or stages of software developmentlife cycle on which they focus. Since different tools covering different stages sharecommon consistent view of information associated with the software. This centralrepository is usually a data dictionary containing the definitions of all composite andelementary data items. Through the central repository, all the CASE tools in a CASEenvironment share common information among themselves. Thus a CASEenvironment facilitates the automation of the step-by-step methodologies for softwaredevelopment. In contrast to a CASE environment, a programming environment is anintegrated collection of tools to support only the coding phase of softwaredevelopment. The tools commonly integrated in a programming environment are atext editor, a compiler, and a debugger. The different tools are integrated to the extentthat once the compiler detects an error, the editor automatically goes to the statementsin error and the error statements are highlighted. Examples of popular programming