View this PageEdit this PageUploads to this PageHistory of this PageHomeRecent ChangesSearchHelp Guide

Nugget: Reengineering/Maintenance

Description


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.


Topics


    Introduction

    • What is maintenance?
    • What is reverse engineering?
    • What is reuse?

    Maintenance

    • Corrective maintenance
    • Regression fault
    • Enhancement
    • Reuse
    • Reusable design (design for maintainability)


    Reverse engineering

    • Domain analysis
    • Design recovery
    • Static analysis
    • Dynamic analysis
    • CASE tools: software refinary


    Configuration management

    • Version control
    • Issues for multiplatform software
    • Documentation & specification
    • Tools: RCS & SCCS


Suggested textbooks



  • Takang, A. A., and Grubb, P. A. (1996). Software Maintenance: Concepts and Practice. Boston: International Thomson Computer Press.
  • Leach, R. J. (1997). Software Reuse: Methods, Models, and Costs. New York: McGraw-Hill.



Syllabus

Link to this Page