< 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:
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 GuidelinesThe following guidelines are useful when using CASE tools to deploy DB2 applications. Analyze Generated SQL CarefullyCode 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 RoutinesSometimes 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 ModulesSome 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 ToolsChoose 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 :
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
|
< Day Day Up > |