term CASE was originally coined by software company, Nastec Corporation
of Southfield, Michigan 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. The
next entrant into the market was Excelerator from Index Technology in
Cambridge, Mass. While DesignAid ran on Convergent Technologies and
later Burroughs Ngen networked microcomputers, Index 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, Texas Instrument's IEF and Accenture's FOUNDATION toolset (METHOD/1, DESIGN/1, INSTALL/1, FCP)
Computer-Aided Software Engineering (CASE) technologies are tools that provide automated assistance for software development . The goal of introducing CASE tools is the reduction of the time and cost of software development and the enhancement of the quality of the systems developed. The interest in CASE tools and environments is based on expectations about increasing productivity, improving product quality, facilitating maintenance, and making software engineers' task less odious and more enjoyable. A survey of the CASE tool market showed that the annual worldwide market for CASE fools was $4.8 billion in 1990 and grew to $12.11 billion in 1995. Behind such a prosperous CASE market, however, another result gained from the real investigation about the use of CASE tools revealed that CASE tools seem to be sparsely used after being bought in many enterprises.
CASE is the use of computer-based support in the software development process; a CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process; a CASE environment is a collection of CASE tools and other components together with an integration approach that supports most or all of the interactions that occur among the environment components, and between the users of the environment and the environment itself.
Many prior studies have reported limited use of CASE tools. In a survey of 53 companies, found that 39 (73.5%) had never used CASE. Of the 14 companies who had tried CASE, five had subsequently abandoned use of the tools. People within these fourteen companies believed that use of CASE tools improved documentation quality, improved analysis, and resulted in systems that were easier to test and maintain. However, they also found use of CASE tools difficult and time consuming. In another cross organization survey, found that only 24% of companies were using CASE tools. In a follow-up survey of thirteen managers who had been using CASE tools two years earlier, reported that continued CASE use could only be verified for four managers. The reasons for abandonment included cost, lack of measurable turns, and unrealistic expectations. Looking within organizations that used CASE tools it was found that large numbers of their systems developers were not using CASE tools.
The term Computer-Aided Software Engineering (CASE) encompasses many different products with different functionalities. In the International Workshop on Computer-Aided Software Engineering (IWCASE) definition of CASE very broad terms are used: “...tools and methods to support engineering approach to systems development at all stages of the process”. When the term CASE is used, it is important to clarify what is being discussed. Most classifications of CASE tools start by considering whether the tool is upper CASE, lower CASE, or integrated CASE . An upper CASE tool (front end CASE) provides support for the early stages in the systems development life cycle such as requirements analysis and design. A lower CASE tool (back end CASE) provides support for the later stages in the life cycle such as code generation and testing. Integrated CASE tools support both the early and later stages. Further classifications usually list which functionalities are supported by the tool, such as data flow diagrams, entity relationships data models, etc. provides a different type of model of CASE functionality which helps organize CASE tools.
CASE Tools offer an excellent array of features that support the development and business community through its Automated Diagram Support feature. The various popular features that aid the development community are listed below:
CASE technology is the automation of step by step methodologies for software and system development. CASE tools are characterized by the stage or stages of software development life cycle on which they focus. Since different tools covering different stages share common information, it is required that they integrate through some central repository system (data dictionary) to have a consistent view of such information. In phases of software development life cycle integrated through a central data dictionary. Case Tools are used in many ways in our organizations. Case tools can be broadly classed into these broader areas:
Requirement Analysis Tool
Structure Analysis Tool
Software Design Tool
Code Generation Tool
Test Case Generation Tool
Document Production Tool
Reverse Engineering Tool
While many organizations still use the SDLC methodology, it is often supplemented with other methods. Many systems developers use the CASE tools in various stages of the Software Development Life Cycle. They mainly use it while developing the following methodologies:
Rapid Applications Development (RAD)
Joint Applications Development (JAD)
The job of a systems developer may contain requirements analysis, process design, data design, and programming among other activities. But, not all systems developers do the same activities. One may spend most of his or her time on analysis; another, on design. The various activities that the system developers involve include Systems Analysis (including feasibility studies and requirements definition), Systems Design (including user interface, data, and process design), Programming (or generating code),
Testing, Supervisory or other management tasks and Maintenance. CASE tools play an important role in helping the system developers to perform the task efficiently.
The whole system is composed of many active objects. Active objects (AO) are categorized into several groups. Active objects in the same group are responsible for the same type of tasks. For example, active objects to support SA/SD methodology and object-oriented methodology. This is what we call horizontal division. All AO-groups are organized hierarchically. For example, the group on top level is for users; the group on second level is for domains; the group on third level is for development knowledge; the group on fourth level is for tools; the group on fifth level is for technique support. This is what we call the vertical division. For each group, there is a delegate which is a local server of that group. The communication among different groups is through delegates at the corresponding levels.
The system maintains multiple layers of knowledge and has the ability of self-learning and self-improvement. Especially, the system can do reasoning on incomplete information. Otherwise, the system cannot 'figure out' users' intentions and the interaction between a user and a tool will not be able to continue in some cases. Each node can be bound to a set of rules. Mixed knowledge representation is good for reducing the size of the network, and thus speeding up the learning process. In neural network, an output can always be derived from any input, even if the input is incomplete. Self learning is a natural and standard process in a neural network.
Although a CASE shell is very useful for the creation and integration of CASE tools, we believe it still is not simple and intuitive enough for CASE users. We suggest to provide CASE users with more intuitive means to describe the integration of CASE tools. A diagramming tool, similar to DFD diagramming tool, might be useful for this purpose. Pipe-filter, event-trigger and message passing models are all useful means to realize the integration of CASE tools.
Basically, software project development is a team based activity. A CASE tool should be able to support this feature. For this purpose, it is necessary to model the work process, and the collaboration and coordination among team members. We hope to represent all these information through a work flow model. Currently, there are many ways to model a work flow for team based collaborative software development. However, most of them are too strict to change dynamically (on the fly). We suggest using decentralized process models, such as 'ViewPoint' (E), which can be described visually and is also possible to cope with deviations during process enactment.
We are sure that the next generation CASE tools will be able to operate in heterogeneous and distributed environments. JAVA is such a specification which allows for transparent access to applications operating on multiple computing platforms. JAVA is endorsed by the OMG, an organization that includes major computer manufacturers such as Digital, Sun, HP, IBM as well as software providers such as Microsoft, Sunsoft, and Object Design among its members. JAVA is possibly to become a de facto standard in the future. Based on this observation, we suggest that the next generation CASE tools are established on CORBA standard. To develop platform independent CASE tools, some platform independent programming languages, such as Java programming language will be used.
Helps standardization of notations and diagrams
Limitations in the flexibility of documentation
Help communication between development team members
May lead to restriction to the tool's capabilities
Automatically check the quality of the models
Major danger: completeness and syntactic correctness does NOT mean compliance with requirements
Reduction of time and effort
Costs associated with the use of the tool: purchase + training
Enhance reuse of models or models' components
Staff resistance to CASE tools
Norman, R.J. and Forte, G. “Automating the Software Development Process: CASE in the ‘9Os,” Communications of the ACM (35:4), 1992, p. 27
Brown, et al., Principles of CASE Tool Integrations, Oxford University Press, New York
Elshazly, H. and Grover, V. “A Study on the Evaluation of CASE Technology,” Journal of Information Technology Management (4:1), 1993.
Forte, G. and Norman, R.J. “A Self-Assessmenbty the Software Engineering Community,” Communications of the ACM (35:4), 1992, 28-32.
P. Jallaart et ai., " A Reflective Approach to Process Model Customization, Enactment and Evolution ", Pro¢ of the 3rd International Conference on the Software Process, 1994, pp.21-32.