Skip to main content

5 - Software Maintenance - 4 - Techniques for Maintenance


This topic introduces some of the generally accepted techniques used in software maintenance.

Program Comprehension
Programmers spend considerable time reading and understanding programs in order to implement changes. Code browsers are key tools for program comprehension and are used to organize and present source code. Clear and concise documentation can also aid in program comprehension.
Reengineering
Reengineering is defined as the examination and alteration of software to reconstitute it in a new form, and includes the subsequent implementation of the new form. It is often not undertaken to improve maintainability but to replace aging legacy software. Refactoring is a reengineering technique that aims at reorganizing a program without changing its behavior. It seeks to improve a program structure and its maintainability. Refactoring techniques can be used during minor changes.
Reverse Engineering
Reverse engineering is the process of analyzing software to identify the software’s components and their inter-relationships and to create representations of the software in another form or at higher levels of abstraction. Reverse engineering is passive; it does not change the software or result in new software. Reverse engineering efforts produce call graphs and control flow graphs from source code. One type of reverse engineering is redocumentation. Another type is design recovery. Finally, data reverse engineering, where logical schemas are recovered from physical databases, has grown in importance over the last few years. Tools are key for reverse engineering and related tasks such as redocumentation and design recovery.
Migration
During software’s life, it may have to be modified to run in different environments. In order to migrate it to a new environment, the maintainer needs to determine the actions needed to accomplish the migration, and then develop and document the steps required to effect the migration in a migration plan that covers migration requirements, migration tools, conversion of product and data, execution, verification, and support. Migrating software can also entail a number of additional activities such as
• notification of intent: a statement of why the old environment is no longer to be supported, followed by a description of the new environment and its date of availability;
• parallel operations: make available the old and new environments so that the user experiences a smooth transition to the new environment;
• notification of completion: when the scheduled migration is completed, a notification is sent to all concerned;
• postoperation review: an assessment of parallel operation and the impact of changing to the new environment;
• data archival: storing the old software data
Retirement
Once software has reached the end of its useful life, it must be retired. An analysis should be performed to assist in making the retirement decision. This analysis should be included in the retirement plan, which covers retirement requirements, impact, replacement, schedule, and effort. Accessibility of archive copies of data may also be included. Retiring software entails a number of activities similar to migration.

Back - 3 - Maintenance Process
Next - 5 - Software Maintenance Tools
Home - Software Maintenance
Main - The BOK

Published on : 30-May-2018
Ref no : DTC-WPUB-000039

About Author

My photo
Wan Mohd Adzha CAPM,MCPD,MCSD,MCSE
Passionate about new technology ( Software Engineering ) and how to build,manage and maintain them

Comments