A critical component of project monitoring and control is change management. As business requirements and operating environments change, the project manager has to manage change throughout the software development cycle from acquisition, supply, development, operation, and maintenance. The guiding principles, techniques, and tools for change management are discussed in this chapter and complement what we read earlier.
Summary
To increase productivity in the application life cycle and reduce time spent in the code, test, and maintenance phases are important. To reduce the effort in these phases, applications should use change control, design for maintenance, use reusable libraries, and use code templates. Object methods are best suited to reusable libraries; nonobject methods are best suited to program templates.
I-CASE is critical in reducing coding and testing through automatic code generation. I-CASE is also required to build intelligence to support reusable designs.
If managing application change, change control procedures and management are critical. Requirements, designs, programs, interfaces, hardware, or purchased software are all subject to change. Change management procedures track requests from initiation through implementation and allow management reporting of cost, types, and impacts of changes.
Logging and management of historical decisions can be useful in volatile environments in which applications are subject to redevelopment. A historical decision log keeps track of arguments, reasoning, and rationales for decisions as they are made. After
an application enters operation, documentation is still subject to change to reflect the current state of the application. A document table of contents summarizes all changes and the parts of the document affected by each change. Similarly, software
documentation is kept in derivations to summarize the actual software and steps used to develop a load module or work unit. Configuration management is the use of software code libraries to manage the official, operational code modules of an application.
Delta version and variation management are the principal techniques.
TABLE 18-4 Reverse Engineering Tools
Via/Renaissance
Tool |
Vendor |
Functions |
ADW/Maintcnancc Workstation |
KnowledgeWare, Inc. Atlanta, GA |
Reverse engineering for information engineering: Entity-relationship diagrams Process data flow diagrams |
Bachman Series |
Bachman Information Systems, Inc. Burlington, MA |
Reverse engineering of data structures |
Design Recovery |
Intersolv, Inc. |
Reverse engineering of program structure |
Ensemble |
Cadre Technologies, Inc. Providence, RI |
Reverse engineering charts, metrics, and design |
Hindsight |
Advanced Software Automation, Inc. Santa Clara, CA |
Reverse engineering of C-language code: documentation, structure charts, complexity analysis |
RE for IE |
Texas Instruments, Inc. with Price Waterhouse Dallas, TX |
Reverse engineering for information engineering: Entity-relationship diagrams Process data flow diagrams |
Smartsystem |
Procase Corp. Santa Clara, CA |
Reverse engineering of C-language code: function call graphing, syntax and consistency checking |
Viasoft, Inc. Phoenix, AZ |
Reverse engineering of data structures |
TABLE 18-5 Software Configuration Management Tools
Tool | Vendor | Functions |
Pandata |
IBM Armonk, NY |
Software code library for IBM and compatible mainframes |
Copylib |
Data Administration, Inc. |
Data management software—Allows viewing of file definitions from Librarian, Panvalet, and Copylibs, to locate occurrences and variations of data. |
Data Expeditor |
Pansophic Systems Lisle, IL |
Software code library for IBM and compatible mainframes |
Librarian |
Pansophic Systems, Inc. Lisle, IL |
Software code library for IBM and compatible mainframes |