Some lower CASE and integrated CASE tools can automatically generate CAS
13 Some lower CASE and integrated CASE tools can automatically generate CAS
code based entirely on the design information stored in the repository. Reverse engineering (re-engineering) tools are also considered to be real
E CASE tools. Based on the system’s code, these tools are applied mainly for tool
recovery and replication of (now non-existing) design documents for cur-
s rently used, well-established software systems (“legacy” software). In other and their effect
words, reverse engineering CASE tools operate in the opposite direction of “regular” CASE tools: instead of creating system code on the basis of design information, they automatically create complete, updated repository and design documents on the basis of system code.
Figure 13.1 describes the application of CASE tools in the development process in comparison to the traditional development process. The support that CASE tools provide the developer can be in one or
on softw
more of the following areas, listed in Table 13.1.
Table 13.1: CASE tools and the support they provide to developers
are quality
Type of CASE tool
Support provided
Editing and Editing text and diagrams, generating design diagrams according to diagramming repository records
Repository query Display of parts of the design texts, charts, etc.; cross-referencing queries and requirement tracing
Automated Automatic generation of requested documentation according to documentation
updated repository records
Design support Editing design recorded by the systems analyst and management of the data dictionary
Code editing Compiling, interpreting or applying interactive debugging code for specific coding language or development tools
Code generation Transformation of design records into prototypes or application software compatible with a given software development language (or development tools)
Configuration Management of design documents and software code versions, control management
of changes in design and software code*
Software testing Automated testing, load testing and management of testing and correction records, etc.
Reverse engineering Construction of a software repository and design documents, based on (re-engineering)
code: the “legacy” software system. Once the repository of the legacy software is available, it can be updated and used to automatically generate new versions of the system. As new re-engineered software version is generated, it can be easily maintained and its documentation automatically updated
Project management Support progress control of software development projects by follow-up and software metrics of schedules and calculation of productivity and defects metrics
Customer Requirements
Requirements determination
Customer
determination
Customer’s
Customer’s
Wh
at is
document
Analysis
a CAS
Analysis Upper CASE
tool?
Design Design
Upper CASE
Detailed design document
R Programmer
Coding Coding
Programmer
e Lower CASE
pos
Program
code files
to
Testing ry
Tester Testing
Tester
CASE testing
tools Tested
code files
Installation Installation
Installation team
Installation
team
Installed code files
Operation and Maintenance
maintenance team
Operation and
Upper and lower CASE tools
(a) Traditional development life cycle (b) Real CASE tool-supported development life cycle
302 More information about CASE tools can be found in IEEE Std 1462 (IEEE, 1998) and in the software engineering literature, particularly Pressman
13 (2000), Sommerville (2001) and Kendall and Kendall (1999). The impact of CAS
CASE tools on software quality assurance is discussed by McManus (1999).
E tool