Computer-aided software engineering
From Wikipedia, the free encyclopedia
Computer-aided software engineering (CASE) is the use of software tools to assist in the development and maintenance of software. Tools used to assist in this way are known as CASE Tools.
Some typical CASE tools are:
- Code generation tools
- Data modeling tools
- UML editors
- Refactoring tools
- QVT or Model transformation Tools
- Configuration management tools including revision control
All aspects of the software development lifecycle can be supported by software tools, and so the use of tools from across the spectrum can, arguably, be described as CASE; from project management software through tools for business and functional analysis, system design, code storage, compilers, translation tools, test software, and so on.
However, it is the tools that are concerned with analysis and design, and with using design information to create parts (or all) of the software product, that are most frequently thought of as CASE tools. Such tools arose out of developments such as Jackson Structured Programming and the software modelling techniques promoted by researchers such as Ed Yourdon, Chris Gane and Trish Sarson (see structured programming, SSADM). In this narrower range, CASE applied, for instance, to a database software product, might normally involve:
- Modelling business / real world processes and data flow
- Development of data models in the form of entity-relationship diagrams
- Development of process and function descriptions
- Production of database creation SQL and stored procedures
The term CASE was originally coined by software company, Nastec Corporation of Southfield, Mich. in 1982 with their original integrated graphics and text editor GraphiText, which also was the first microcomputer-based system to use hyperlinks to cross reference text strings in documents - an early forerunner of today's web page link. GraphiText's successor product, DesignAid was the first microprocessor based tool to logically and semantically evaluate software and system design diagrams and build a data dictionary. Under the direction of Albert F. Case, Jr. vice president for product management and consulting (the rumor that he changed his last name is untrue), and Vaughn Frick, director of product management, the DesignAid product suite was expanded to support analysis of a wide range of structured analysis and design methodologies, notably Yourdon/Demarco SA/SD and Warnier-Orr. The next entrant into the market was Excelerator from Cambridge Technologies in Cambridge, Mass. While DesignAid ran on Convergent Technologies and later Burroughs Ngen networked microcomputers, Cambridge launched Excelerator on the IBM PC/AT platform. While, at the time of launch, and for several years, the IBM platform did not support networking or a centralized database as did the Convergent Technologies or Burroughs machines, the allure of IBM was strong, and Excelerator came to prominence. Hot on the heels of Excelerator were a rash of offerings from companies such as Knowledgeware (James Martin, Fran Tarkenton and Don Addington), Texas Instruments's IEF and Arthur Andersen's Method1.
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's mainframe. The three giants of the time were Atlanta based KnowledgeWare with their 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 full lifecycle and included Upper CASE and Lower CASE (see below).
With the decline of the mainframe, AD/Cycle and the Big CASE tools died off, opening the market for the mainstream CASE tools of today. Interestingly, nearly all of the leaders of the CASE market of the early 1990s ended up being purchased by Computer Associates, including IEW, IEF, ADW, Cayenne, and LBMS.
Many CASE tools not only output code but also generate other output typical of various systems analysis and design methodologies such as SSADM. E.g.
- database schema
- data flow diagrams
- entity relationship diagrams
- program specifications
- user documentation
Sometimes CASE tools are separated in two groups:
- Upper CASE: Tools for the analysis and design phase of the software development lifecycle (diagramming tools, report and form generators, analysis tools)
- Lower CASE: Tools to support data base schema generation, program generation, implementation, testing, configuration management
[edit] See also
- Data modeling
- List of UML tools
- James Martin (author)
- Rapid application development
- Fourth-generation programming language
- Model-driven architecture
- Domain-specific modelling
- Modeling language
- Collaborative development environment (CDE)
- GForge Advanced Server - Collaboration tool for computer-aided software engineering.
[edit] External links
- Definition and discussion of CASE from Carnegie Mellon Software Engineering Institute
- CASE tool index - Quite a comprehensive list