Using CASE

 <  Day Day Up  >  

Computer-aided software engineering (CASE) is the name given to software that automates the software development process. CASE tools provide an integrated platform (or, more commonly, a series of non-integrated platforms) that can be used to drive the application development process from specification to the delivery of source code and an executable application system. The term CASE , however, has no universally accepted definition and can comprise anything from a diagramming tool to a data dictionary to a code generator. CASE tools usually are separated into two categories: upper CASE tools and lower CASE tools.

You use an upper CASE tool to develop system specifications and detail design. It generally provides a front-end diagramming tool as well as a back-end dictionary to control the components of the application design. CASE tools can also provide support for enforcing a system methodology, documenting the development process, and capturing design elements from current application systems.

Lower CASE tools support the physical coding of the application. Tools in this category include system and program testing tools, project management tools, and code generators. This section concentrates on the code generation portion of CASE. An application code generator usually reads application specifications input into the CASE tool in one or more of the following formats:

  • A macro-level or English-like language that details the components of the application system at a pseudo-code level

  • Data flow diagrams generated by another component of the CASE tool (or sometimes by a different CASE tool)

  • Reverse-engineered program specifications or flowcharts

Based on the input, the code generator develops a program or series of programs to accomplish the specification of the application. IBM's VisualAge Generator (which replaced Cross System Product, or CSP) is an example of a code generator. The application programmer codes instructions, which can be executed in 4GL fashion, or host language code (such as COBOL) can be generated. Code-generating CASE tools try to provide the best portions of both the 3GL and 4GL worlds . They provide a quick application development environment because they raise the level of programming abstraction by accepting high-level designs or macro languages as input. They generally provide better performance than 4GLs because they can generate true, traditional 3GL source code.

Be careful when developing applications with this new method. Automatic code generation does not always produce the most efficient code. To produce efficient CASE-generated applications, follow the guidelines in the next section.

CASE Application Guidelines

The following guidelines are useful when using CASE tools to deploy DB2 applications.

Analyze Generated SQL Carefully

Code generators that develop embedded SQL programs usually produce functional SQL but do not always produce the most efficient SQL. Analyze the embedded SQL to verify that it conforms to the standards for efficient SQL outlined in Chapter 2.

Avoid Generalized I/O Routines

Sometimes a code generator produces source code that can be executed in multiple environments. This code often requires the use of an I/O routine to transform application requests for data into VSAM reads and writes, sequential file reads and writes , or database calls. When you use an I/O module, determining what SQL is accessing the DB2 tables is difficult. In addition, I/O routines usually use dynamic SQL instead of static SQL.

Favor code generators that produce true embedded SQL programs over products that use I/O routines. The programs are easier to debug, easier to maintain, and easier to tune.

Avoid Runtime Modules

Some code generators require the presence of a runtime module when the programs it generates are executed. Avoid these types of products because a runtime module adds overhead and decreases the efficiency of the generated application.

Favor Integrated CASE Tools

Choose a CASE tool that provides an integrated development platform instead of a wide array of disparate products to automate the system development life cycle. When a CASE tool provides integration of the system development life cycle, you can save a lot of time because the tool automatically carries the application forward from stage to stage until it is finished. If the CASE tools are not integrated, time is wasted performing the following tasks :

  • Converting the data from one phase to a format that can be read by the tool that supports the next phase.

  • Verifying that the data in the tool that accepts data from another tool is accurate and conforms to the expected results based on the status of the data in the sending tool.

  • Moving data from one tool to another. (Time is wasted installing and learning these tools, as well as debugging any problems that result from the migration process.)

To avoid these types of problems, choose a CASE tool that provides as many of the features listed in Table 14.1 as possible. Use this chart to evaluate and rank CASE tools to support the complete DB2 program development life cycle.

Table 14.1. CASE Tool Features Checklist

Features

Supported (Y/N)?

Ranking

Supports the Business Strategy

Enterprise data model capabilities

Business data modeling

Business decision matrices

Integrates with any ERP packages in use at your site

   

Supports Prototyping

Screen formatting

Report formatting

Rapidly developing executable modules

   

Supports Process Modeling

Methodologies

Supports UML

Linked to the data model

Linked to the code generator

Documentation

   

Supports Data Modeling

Entity relationship diagramming

Normalization

Conceptual data model

Supports subject areas

Logical data model

Physical data model

Provides physical design

recommendations

Generates physical objects

(such as tables or indexes)

Linked to process model

Documentation

   

Supports Diagramming

Graphical interface

Linked to process model

Linked to data model

Multiple diagramming techniques

Documentation

 

Supports System Testing

Administers test plan

Creates test data

User simulation

Performance testing

Stress testing

   

Supports System Testing

Acceptance testing

Documentation

Supports EXPLAIN

   

Supports Quality Assurance

System failure administration

Quality acceptance testing

Documentation

   

Supports Development

Automatically generates SQL

Supports override of automatic SQL

Automates precompile and bind

Supports plans

Supports collections

Supports packages

Supports versioning

Generates code in your language of choice

   

Supports the Technical Environment

Supports current hardware platforms

Supports current software platforms (such as DBMS or languages)

Supports distributed data

Supports client/server processing

Supports required printer(s)

Interfaces with mainframes

Interfaces with midranges

Interfaces with PCs

LAN capability

Web capability

 

Supports Metadata Management

Captures metadata from applications

Captures metadata from database structures

Integrated with data modeling components

User-extensible to support non-standard applications and structures

   

Supports Input from Multiple Platforms

Word processors

Spreadsheets

Databases

HTML and XML

Other CASE tools

   

 <  Day Day Up  >  


DB2 Developers Guide
DB2 Developers Guide (5th Edition)
ISBN: 0672326132
EAN: 2147483647
Year: 2004
Pages: 388

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net