CASE is an acronym for computer Aided Engineering. This involves using software packages to accomplish and automate many of the activities of the information system development including software development or programming.
Computer Aided Software Engineering can be a single tool that supports a specific Software Engineering activity to complex environment that encompasses tools, a data of people, hardware, network operating system standards and other components i.e. environment architecture composed of hardware platform and operating system support lays the ground work for CASE. But the CASE environment itself needs other building blocks. A set of portability services provides a bridge between CASE tools and their integration framework and the environment architecture.
The integration framework is a collection of specialized programs that enables collection of specialized programs that enables individual’s CASE tools to communicate with one another, to create a project database and to exhibit the same look and feel the soft engineer. Portability service allows CASE tools and their integration framework to go
across different hardware platforms and operating systems without much adaptive maintenance.
Recently, CASE tools have entered a third phase: the introduction of new methodologies based on capabilities of I-CASE tools. These new methodologies utilize Rapid Prototyping techniques to develop applications faster, at lower cost and higher quality. By using Rapid Prototyping a prototype can be made fast, so the developped system can be tested more often in between the development-phases because it doesn’t cost much time to create a prototype. Mistakes can be detected and corrected earlier this way. The earlier this can be done, the better because correcting these mistakes gets harder and more expensive when the system is developed further. So a lot of time and money can be saved using Rapid Prototyping.
As said above, a new set of tools is necessary. These tools should automate each phase of the life-cycle process and tie the application development more closely to the strategic operations of the business. A lot of different tools have been developed over the years and are being developed right now. There are so many tools, that we could easily get confused. To survey all these CASE tools we divide them in the following categories:
- Information engineering-supporting products. These are life-cycle processes, derived from the strategic plans of the enterprise and which provide a repository to create and maintain enterprise models, data models and process models.
- Structured diagramming-supporting products. These are derived from several development methodologies like Gane-Sarson or Jackson. These products at least support data flow, control flow and entity flow, which are the three basic structured software engineering diagramming types.
- Structured development aids-providing products. These products are providing aids for a structured development of the process. These products are very suitable to be used by the system analysts, because they are helped very much by a structured process, because those can be analysed faster and more accurately.
- Application-code-generating products. These are products that generate application-code for a specific goal, set by the designer. Most of the products in this area are using a COBOL-generator, which is a tool that generates programming code in a specific language out of specifications set by the system-designer.
The heart of a well-designed I-CASE system is a repository, which is used as a knowledge base to store information about the organization, its structure, enterprise model, functions, procedures, data models etc. The meaning represented by diagrams and their detail windows is stored in the repository. The repository steadily accumulates information relating to the planning, analysis, design, construction and maintenance of systems. In other words: The repository is the heart of a CASE system.
Two types of mechanisms have been used in CASE software to store design information:
- A dictionary, which contains names and descriptions of data items, processes, etc.
- A repository, which contains this dictionary information and a complete coded representation of plans, models and designs, with tools for cross-checking, correlation analysis and validation.
Before implanting CASE and designing tools, a series of steps should be followed:
- Conduct a technology-impact study to determine how the basic business of the organization should change to maximize the opportunities presented by rapid technological change
- Evaluate how the organization should be re-engineered to take advantage of new technology
- Establish a program for replacing the old systems with the most effective new technology
- Commit to an overall integrated architecture
- Select a development methodology
- Select a CASE-tool
- Establish a culture of reusability
- Strive for an environment of open interconnectivity and software portability across the entire enterprise
- Establish inter corporate network links to most trading partners
- Determine how to provide all knowledge to workers with a high level of computerized knowledge and processing power
- Determine the changes in management-structure required to take full advantage of innovative systems, architectures, methodologies and tools
When an enterprise takes these actions ahead of its competition, it will gain a major competitive advantage. An enterprise should also be up-to-date because the rapid advances in computer technology allows the competition to get ahead of you. Some significant trends in the development of new system environments include:
- Low-cost MIPS, the price of fast processors is decreasing and even faster everyday
- Distributed computing environment, end-users are moving towards a multilayered distributed computer architecture
- CASE and I-CASE tools, highly integrated, repository-driven, computer-aided systems engineering tools are making it possible to generate application code directly from graphical specifications
- Forward/reverse engineering tools, re-engineering tools enable analysts to convert low-level data definition and unstructured process code into standardized data elements and structured code.
- New development methodologies, more efficient development life-cycle processes are making it possible to develop applications more rapidly and in closer coordination with end users.
- Growth of standards, standards are emerging that will govern the future evolution of hardware and software