Ganesh Krishnamurthy
#012100139
CASE Tools 

Adoption and Relevance

 


 


History

The 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)
.



Introduction

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.


 

Are CASE Tools being used?

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.


 

Popular features of 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 [3]. 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.


 

Automated Diagram Support

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 Tools and its scope

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:

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:


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.


 

CASE Tools in future…

Horizontal and Vertical Division of AO-groups

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.


 

Knowledge Representation and Processing

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.


 

Visual Integration of CASE Tools

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.


 

Work Flow Model

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.


 

Java Technologies

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.


Making a case for and against and CASE Tools

For

Against

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

 


Web References

  1. http://en.wikipedia.org/wiki/Computer_aided_software_engineering

  2. http://www.clariondeveloper.net/modules/weblinks/viewcat.php?cid=32

  3. http://www.openden.com/opensource/viewcat/id/5752850
  4. www.infoweblinks.com/content/casetools.htm
  5. www.downloadthat.com/pda/catalog/Case_Tools
  6. www.itmweb.com/case.htm
  7. www.visual-paradigm.com/product/vpuml/  
  8. www.compinfo.co.uk/apps/case_tools.htm
  9. www.objectsbydesign.com/tools/umltools_byCompany.html  
  10. www.sparxsystems.com.au/products/ea/index.html  

Paper References

  1. Norman, R.J. and Forte, G. “Automating the Software Development Process: CASE in the ‘9Os,” Communications of the ACM (35:4), 1992, p. 27

  2. Brown, et al., Principles of CASE Tool Integrations, Oxford University Press, New York

  3. Elshazly, H. and Grover, V. “A Study on the Evaluation of CASE Technology,” Journal of Information Technology Management (4:1), 1993.

  4. Forte, G. and Norman, R.J. “A Self-Assessmenbty the Software Engineering Community,” Communications of the ACM (35:4), 1992, 28-32.

  5. 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.

  6. F. Russell, " The case for Case ", Software Engineering : A European Perspective, edited by Richard H. Thayer and Andrew D. McGettriek, IEEE Computer Society Press, Los Alamitos, California, pp.531-547.
  7. I. Aaen, "CASE Tool Bootstrapping--how little strokes fell great oaks ", Next Generation CASE Tools, edited by K. Lyytinen, V.-P. Tahvanainen, lOS, Netherlands, 1992, pp.8-17.
  8. A. Brown, et al., Princ~les of CASE Tool Integrations, Oxford University Press, New York, 1994.
  9. 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.
  10. U. Leonhardt et al., " Decentralized Process Enactment in a Multi-Perspective Development Environ-ment ", Proc of the 17th International Conference on Software Engineering, 1995, pp.255-264.