case architecture

10
5 Computer aided software engineering ( CASE)  5.1 Purpose 5.2 Strengths, weaknesses, and limitations  5.3 Inputs and related ideas  5.4 Concepts 5.4.1 CASE architec ture 5.4.2 Workbenches 5.4.3 Object-oriented CASE tools 5.4.4 CASE environment s 5.5 Key terms  5.6 Software 5.7 References  5.1 Purpose The analysis, design, development, testing, and maintenance of software are complex processes that must be managed and controlled. Computer aided software engineering (CASE) is a technology that aids in this process. CASE can be broadly defined as a set of automated tools that assist in the entire software engineering  process. Prope rly used , CASE tool s help improve prod uctivity during the development process and the quality of the resulting system. 5.2 Strengths, weaknesses, and limitations The major benefit attributed to CASE is improved productivity. When used  properly, C ASE signif icantly re duces de velopment t ime. A maj or reason is automation. CASE replaces many tedious manual procedures with automated tools. Another major benefit of CASE is improved quality. CASE tools help enforce style conventions, validate syntax, perform consistency checks across models, generate highly maintainable code, and improve quality. CASE can also be used to track the  progress of a project and maintai n traceabil ity from a nalysis, th rough desi gn and implementation. CASE aids in managing the ripple effects that result from a change to a model. In response to a change, CASE makes the necessary changes in all affected models, so the analyst does not have to redraw the diagrams. Consequently, the analyst is more likely to try more alternatives and develop better solutions. A secondary benefit of CASE is better documentation because the system makes it easy to create, assemble, and maintain high quality documentation. Because of improved system quality and better documentation, using CASE often results in reduced software maintenance costs. Also, CASE documentation provides a new

Upload: shagunchoudhary

Post on 14-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 1/10

5 Computer aided software engineering (CASE) 

5.1 Purpose 5.2 Strengths, weaknesses, and limitations 5.3 Inputs and related ideas 5.4 Concepts 5.4.1 CASE architecture 5.4.2 Workbenches 5.4.3 Object-oriented CASE tools 5.4.4 CASE environments 5.5 Key terms 5.6 Software 5.7 References 

5.1 Purpose 

The analysis, design, development, testing, and maintenance of software arecomplex processes that must be managed and controlled. Computer aided software

engineering (CASE) is a technology that aids in this process. CASE can be broadly

defined as a set of automated tools that assist in the entire software engineering process. Properly used, CASE tools help improve productivity during the

development process and the quality of the resulting system.

5.2 Strengths, weaknesses, and limitations 

The major benefit attributed to CASE is improved productivity. When used properly, CASE significantly reduces development time. A major reason isautomation. CASE replaces many tedious manual procedures with automated tools.

Another major benefit of CASE is improved quality. CASE tools help enforce style

conventions, validate syntax, perform consistency checks across models, generatehighly maintainable code, and improve quality. CASE can also be used to track the

 progress of a project and maintain traceability from analysis, through design and

implementation.

CASE aids in managing the ripple effects that result from a change to a model. In

response to a change, CASE makes the necessary changes in all affected models,

so the analyst does not have to redraw the diagrams. Consequently, the analyst ismore likely to try more alternatives and develop better solutions.

A secondary benefit of CASE is better documentation because the system makes iteasy to create, assemble, and maintain high quality documentation. Because of 

improved system quality and better documentation, using CASE often results in

reduced software maintenance costs. Also, CASE documentation provides a new

Page 2: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 2/10

form of corporate memory that survives staff changes and the limits of paper 

documentation.

Some CASE tools are based on a specific methodology or do not support the

modeling conventions required by a given project. As a result, they sometimesforce the users to adopt and use the approach imposed by the CASE tool. It is theanalyst’s responsibility to choose the right tool for the application. The application

should not be forced to fit the tool.

While most research indicates that CASE helps in the development process andimproves productivity, various studies have shown that CASE is often not used

uniformly across the organization, is used by only one group, or is never used5. A

 possible reason is that the perceived complexity outweighs the advantages of usingthe CASE tool. Given proper training, if users perceive that CASE tools provide

them a relative advantage they are likely to use them voluntarily. Also,management commitment and support is essential.

The benefits of using CASE are rarely achieved unless the CASE tools are

implemented correctly and managed carefully. CASE is not an end in itself. The

real goal is not a successful CASE implementation, but the improvement of thesoftware development process. Without continuous improvement in the software

development process, CASE may be more detrimental than beneficial.2 

Successfully implementing CASE tools requires that a structured or object-oriented

systems methodology be in place. The CASE tool is used to facilitate the chosen business methodology, not to replace it. Unless the organization realigns its CASE

technology goals with its business goals, the results are likely to be disappointing.

5.3 Inputs and related ideas 

CASE incorporates and integrates many of the tools described in Parts III, IV, V,and VI. CASE tools are sometimes used during the information gathering and

 problem definition stage, particularly to support conducting a feasibility study (#

13) or a JAD session (# 14).

Unlike CASE, a programming environment supports programming activities and

 provides little or no support for analysis and design.

5.4 Concepts 

CASE is a mechanism for automating system development methodologies. CASE

tools typically:

• Support the notation conventions of a specific development method and

enforce the method’s rules. 

Page 3: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 3/10

• Support teams of analysts and designers working together on a project.

• Allow the user to navigate freely between different models and support

automatic transformations from one stage to the next where appropriate.• Support activities across the life cycle, from requirements to code.

Support maintenance of traceability and configuration managementinformation to help management control the development process.• Support checking and testing the internal consistency of models.

• Support testing to ensure that a model is consistent with the real-world problem it represents.

5.4.1 CASE architecture 

CASE is an environment that supports the software engineering process. Theenvironment usually consists of distinct tools, such as editing tools, programming

tools, verification and validation tools, configuration management tools, metricsand measurement tools, project management tools, housekeeping tools,reengineering tools, and miscellaneous tools.3 These tools are linked via the central

repository, the most critical component in a CASE environment. Figure 5.1 shows astandard CASE architecture.

Figure 5.1 A

standard

CASE

architecture.

5.4.1.1 Editing tools 

Editing tools include traditional tools (such as word-processing and programmingeditors) that help in creating documentation and diagramming tools that provide

graphical capabilities such as drawing a data flow diagram (# 24), entity-relationship diagram (# 26), or class-structure diagram (# 29).

Page 4: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 4/10

5.4.1.2 Programming tools 

Coding and debugging tools are the standard tools used to compile (or interpret),

run, and debug a program. Code generators are tools that write code from a high-

level specification of an application. For example, in an object-oriented application

a code generator might write the code for the class given the object-class diagrams.In a visual programming environment, a code generator might write the code for the underlying interface given a user interface. Restructuring tools help in

analyzing and reformatting existing code by removing unnecessary go-tostatements or other unreachable portions of code.

5.4.1.3 Verification and validation tools 

Verifiers ensure that the syntax is correct. Validation tools ensure that the

requirements are correct and the product functions are the functions desired or 

requested by the customer.

Within this classification is a variety of tools. Static analyzers generate cross-

references, check for syntax, and enforce standards on a program withoutexecuting the code. Dynamic analyzers, such as tracers and profilers, monitor 

 program execution. Comparators check for differences or similarities between

files; they are used for checking test output and expected program results.

Correctness proof assistants support formal techniques to help prove

mathematically the correctness of the code and evaluate the consistency betweenthe code and the specification. Test management tools (Part VII) include test casegenerators that generate a variety of input test data based on the test criteria and the

 program’s input data structures. They also include tools to manage the results,verify checklists, and run regression checking.

5.4.1.4 Configuration management tools 

Configuration management tools help coordinate and manage software

development. Version management tools help maintain the various versions of code and ensure that the correct copy of the code is incorporated in subsequent

work. Librarians control the checkin and checkout of software from the repository.

Building an application involves preprocessing, compiling, and linking a variety of software components. Configuration builders ensure that the correct version of each component or piece of software is included in the finished product. These

tools become critical when the same product is being built for different target platforms such as Unix or Windows because they keep track of the componentsused for each target platform.

When changes are made to one software component, other components are

affected. If a given component is used in multiple software projects or by multipledesigners or developers, then the changes must be synchronized across all

Page 5: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 5/10

developers and projects to ensure that all products continue to work correctly.

Change control monitors help with this synchronization.

5.4.1.5 Project estimation and management 

Developers and planners have expressed concern over their inability to accurately predict costs and estimate efforts, human resource requirements, and project

duration. CASE provides modules that can help in the estimation process. For 

example, the COCOMO model (constructive cost model)1 is integrated into someCASE software. Function point models are common, too. The scope of the

necessary effort can be estimated by counting the number of business activitiescalled function points. The basic idea is to determine problem complexity, code

complexity, and data complexity so that a reasonable estimate can be derived.

Typical project management tools enable managers to create and use detailed work 

 plans for resource allocation, identify and track task dependency relationships,implement project tracking, maintain charge-back allocations, and create PERT (#

21) and Gantt (# 20) charts.

A third sub-class of project management tools (email, bulletin boards, sharedwhiteboards) supports group work and may include tools to record variousdecisions taken during the system development process.

5.4.1.6 Reengineering tools 

Legacy code (for example, old programs that must be modified for Year 2000compliance) often lack structure, and in some cases, the source code may not even

exist. Reengineering is the process of revising application software using a CASE

tool. With reverse engineering, the existing application software is studied tounderstand its design. Forward engineering involves a complete redesign of the

system to take advantage of new technologies such as client server computing.

CASE provides several tools to support reverse engineering. Documenters read the program code and generate high-level information about the system, such as cross-

referencing information. Restructurers change the unstructured code intosomething more structured. Analyzers evaluate the strength and weaknesses of the

system. Diagrammers read database code and generate such graphical tools as

hierarchy diagrams (#s 62, 63, and 64) or entity-relationship diagrams (# 26). Tosupport forward engineering, CASE provides standard software development life

cycle tools for redesigning the existing system.

5.4.1.7 Metric tools 

Metric tools collect data on programs and program execution; for example,

evaluating a set of code based on such metrics as McCabe statistics. Other tools areused to gather program run-time statistics.

Page 6: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 6/10

5.4.1.8 Housekeeping tools 

Housekeeping tools generate user accounts, generate and control repository access

 privileges, implement backup and recovery, and perform other housekeeping

functions.

5.4.1.9 The repository 

All the tools are integrated via the repository. The repository is a holding area for storing and integrating diagrams, descriptions, specifications, test data, and other items relevant to the development process. The repository allows users and

developers to share information, supports team-based developmental activities, provides a mechanism for integrating a diverse set of CASE tools, and maintains a

secure source of storage for software resources.

Additionally, the repository maintains information about the interrelationships between the various (logical and physical) models, and even with models related to

implementations outside the repository (such as within programs). For example, if 

a logical definition of a process is related to its implementations, a repository cansearch for and retrieve all the implementations (programs, etc.) of that process inthe MIS application environment.

Repository models must be open and extensible (in other words, they must

accommodate other vendors’ tools). The market is currently moving towardstandardization, and CASE vendors are starting to provide hooks to allow their 

models to be stored in other vendors’ repositories. For example, Rational’s CASEtool allows the import and export of their models to Microsoft’s repository product.Vendors are also starting to provide access to the data in their repositories via the

World Wide Web.

Typically a separate repository is maintained for each project and a centralrepository maintains the details for all projects. Version control software is used to

check in and check out the various project repositories from the central repository.

5.4.2 Workbenches 

Integration in a CASE environment takes place along four dimensions 4. Data

integration ensures that the data are managed in a consistent manner across the

entire environment. Control integration allows for combining the various tools and

functions according to the needs of the project and the environment it supports.Presentation integration allows the users to see a consistent interface across theentire tool spectrum. Process integration ensures that tools interact effectively in

support of a specific process.

Workbenches provide integration for only a portion of the system development lifecycle. Upper CASE tools support the earlier phases (problem definition, analysis,

Page 7: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 7/10

and design), but provide little or no support for the back end (code generation,

implementation, etc.). Lower CASE tools support the design, implementation,

testing, and maintenance phases of the system development life cycle (in generalthe back end). Typical lower CASE tools include application generators for 

dialogue design, screen painting, code generation, etc. They provide little or nosupport for the earlier phases of the development life cycle. Both upper and lower CASE tools work in conjunction with implementational or programming

workbenches (editors, compilers, debuggers, test tools, etc.).

5.4.3 Object-oriented CASE tools 

Object-oriented CASE tools6 support diagramming techniques for such basic

object-oriented concepts as classes, inheritance, etc. (# 6). Code generation andintegration with other repositories and tools is also essential. Many CASE tools

support the unified modified language (UML) notation (# 29). The UML, astandard approved by the Object Management Group, integrates the notation usedin various object-oriented methods such as Booch, OMT, or Objectory (#s 29

and/or 66) into a single object-oriented modeling language.

An object orientation requires changes in the way CASE tools operate, however.For example, a CASE code generator must not only generate object-oriented code

in languages such as C++ or Java, but also allow for modification of such code bythe programmer. Any programmer modifications must be synchronized with the

underlying diagrams, so the CASE tool must have the ability to maintain bi-

directional synchronization between the graphical models and the generated code.In other words, the code, whether generated by the CASE tool or the programmer,

must be integrated with the CASE tool.

Object-oriented CASE tools must support consistency checks and provide error 

checking capabilities. If the CASE tool is to perform error checking, it must

support encapsulation, inheritance, message passing, and other object-orientedcharacteristics (# 6), and users must be able to view an object on screen, and not

rely simply on the diagramming techniques.

Browsing capabilities and the need to hide and reveal portions of the model areunique to object-oriented CASE tools. Browsing is essential because object-

oriented development stresses reuse, which means the designer must find

 potentially reusable classes rather than reinventing the wheel. Reuse librariansoftware (a library of components and query retrieval mechanisms) helps retrieve

software components for reuse.

Much of this browsing does not fit such standard techniques as searching bykeyword. Various object-oriented CASE tools are intended to help the analyst or 

designer visualize and understand the abstraction and specialization process duringclass definition and classification. For example, the analyst might browse through a

Page 8: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 8/10

hierarchy or might wish to determine all classes that use a specific class or all the

component classes in a given class.

To make the browsing process more effective, the analyst might want to hide or 

expand certain details. For example,6 the analyst may require that the CASE toolsupport hiding or revealing the attributes or operations in an object class, therelationships between object classes, parameters of messages between object

classes, or sequences of messages between a specified group of collaborating

object classes

5.4.4 CASE environments 

The term environment is reserved for the complete set of automated facilities (such

as the operating framework) required to support all the activities in the systems

development life cycle, including facilities that allow users to switch easily fromone activity to another. An environment must support reusability of tool

components, ease of tool integration, prototyping, and support for systemdevelopment life cycle activities in big multi-user, multi-project software

environments.

An environment must be extensible. New tools are likely to emerge during the

lifetime of the CASE product, and the environment must be capable of augmenting

its tool capabilities and integrating the new tools easily. Extensibility is more easily

achieved when the environment is open. An environment must also support

interconnectivity, the smooth integration and maintenance of multiple usersworking on various projects over a network. The infrastructure needed to provide

extensibility and interconnectivity exceeds the capabilities of the base operatingsystem.

Examples of environments include IBM’s AD/Cycle and Digital EquipmentCorporation’s Cohesion. These two environments provide basic tools,

workbenches, and an integrating platform that lets other companies enrich theenvironment with additional products or tools.

5.5 Key terms 

CASE (computer-aided software engineering)  —  A set of automated tools that assist in the entire software engineering

 process.

Environment  —  A collection of tools and workbenches that support the entire software

 process.

Forward engineering  —  

Completely redesigning a system to take advantage of new technologiessuch as client server computing.

Page 9: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 9/10

Lower CASE  —  A set of tools that support the design, implementation, testing, and

maintenance phases of the system development life cycle (in general the back end).

McCabe statistics — 

 A complexity metric based on a count of the number of decisions in a program. An indicator of the testability and maintainability of software.

Reengineering  —  The process of revising application software using a CASE tool.

Repository  —  An integrated holding area where diagrams, descriptions, specifications, testdata, and other items are stored and integrated. The repository is the mostcritical component in a CASE environment.

Reverse engineering  —  

The process of studying the existing application software to understand itsdesign.

Tool  —  Software that supports a specific task in the software development process.

Upper CASE  —  A set of tools that support the earlier phases (problem definition, analysis,

and design) of the system development life cycle.

Workbench  —  A single application that integrates several tools, providing a consistent user interface, consistent invocation of tools and tool-sets, and access to a

common data set from a repository (data integration).

5.6 Software 

Several software companies and their CASE products are listed in Table 5.1. Thislist is by no means comprehensive nor does it represent the author’s

recommendations. For a more up-to-date list, please visit one of the following

World Wide Web sites:

Table 5.1 

 A Representative List of CASE Products

Company Products

Microsoft Visual Modeler, Visual Source Safe

Rational Rational Rose

Digital Equipment Corp. Cohesion

Intersolv Excelerator II, PVCS

Andersen Consulting Foundation

Sterling Software Composer 

Popkin Software System ArchitectHewlett Packard Softbench

Page 10: Case Architecture

7/30/2019 Case Architecture

http://slidepdf.com/reader/full/case-architecture 10/10

Oracle Designer 

PowerSoft Power-Designer 

LogicWorks ERWIN, BPWIN, OOWIN

IBM CMVC, AD/Cycle

1. http://www.qucis.queensu.ca/Software-Engineering/vendor.html 

2. http://www.yahoo.com/Business_and_Economy/Companies/

Computers/Software/Programming_Tools/Computer_Aided_ 

Software_Engineering__CASE/ 

Note: In the second URL, there are two underline characters ( __ ) between Engineering and CASE . 

5.7 References 

1. Boehm, B. W., Software Engineering Economics, Prentice-Hall,Englewood Cliffs, NJ, 1981.2. Boone, G., Establishing the context of continuous improvement for technology transfer, in The Impact of CASE Technology on Software

 Process, Cooke, D. E., Ed., World Scientific, Singapore, 1994, 215.3. Fuggetta, A., A classification of CASE technology, IEEE 

Comput, 26(12), 25, 1993.4. Thomas, I. and Nemjeh, B. A., Definition of tool integration for environments, IEEE Soft, 9(2), 29 1992.

5. Tuhari, I., Why are CASE tools not used?, Commun. ACM, 30(10), 94,1996.6. Yourdon, E., Whitehead, K., Thomann, J., Oppel, K., and Nevermann,

P., Mainstream Objects: An Analysis and Design Approach for 

 Business, Yourdon Press, Upper Saddle River, NJ, 1995, 101.<ch4 toc ch6>