Reengineering/Maintenance deals with existing codes. Students needs to know two kinds of maintenance: corrective and enhancement maintenance. The former requirments changes in the codes, and the latter needs changes in the specifications in addition to the codes. Enhancement maintenance can be further droken down to perfective and adaptive maintenance.
In maintenance reuse is an important topic. Reuse can be planned at the initial development phase so that the modules are sharable across projects, or it could be done by inspecting the existing modules.
Another important topic is reverse engineering. Its purpose is to recreate the design documents and the specifications from the source codes (static analysis) and their execution (dynamic analysis). Students may use CASE tools, such as software refinary, in order to automate some of the reverse engineering tasks. Recovery of documents/specifications is also considered.
Configuration management is also discussed. Students may learn how
to use version control tools such as RCS or SCCS.
Link to this Page