Support of program understanding for software maintenance (1)Software maintenance is broadly defined as any work done on an operational programming system at any time, for any reason. Maintenance begins when the initial development effort ends and the system is put into production. Recent surveys show that expenditures for such software maintenance (including improvements) accounts for between 50 and 90 percent of the total life-cycle expenditures on the programming system. Many of the activities of a person who maintains software - in adapting the system to new environments or enhancing the system by adding or improving function - are very similar to activities of a software developer during the initial creation of the system. However, there is a difference in that software maintainers are constrained by the framework of the system being maintained. They must work within this framework in developing adaptations or enhancements. A software maintainer must be very familiar with the current system and must fully understand the framework of the system. Studies of the activities of the maintainers have shown that approximately fifty percent of their time is spent in the process of understanding the code they are to maintain. This is particularly true for the code that was not developed using modern software engineering principles (e.g., data abstraction and structured programming). As a programming system ages, the code for the system becomes increasingly the only true definition of the system, and ancillary specifications for the system become out of sync with the system. A software maintainer must read the code in order to determine the framework for the system. The essence of the software system is a complex construct of interlocking concepts: data sets, relationships among items, algorithms, and the invocation of functions. The software maintainer must understand these concepts and how they interlock in order to fit an adaptation or enhancement into framework.
The copyright of the article Support of program understanding for software maintenance (1) in Software Re-engineering is owned by Faisal Bin Bashir. Permission to republish Support of program understanding for software maintenance (1) in print or online must be granted by the author in writing.
Go To Page: 1 Articles in this Topic Discussions in this Topic |