|
Software Maintenance -
The term
maintenance, when
accompanied to software, assumes a meaning profoundly different from the meaning
it assumes in any other engineering discipline. In fact, many engineering
disciplines intend maintenance as the process of keeping something in working
order, in repair. The key concept is the deterioration of an engineering
artifact due to the use and the passing of time; the aim of maintenance is
therefore to keep the artifact’s functionality in line with that defined and
registered at the time of release.
Software systems now invade every area of daily living. Yet, we still struggle
to build systems we can really rely on. If we want to work with software systems
at any level, we need to get to grips with the way software evolves. This book
will equip the reader with a sound understanding of maintenance and how it
affects all levels of the software evolution process.
|
|
|
In
software engineering, software maintenance is the process of enhancing and
optimizing deployed software (software release), as well as remedying defects.
Software maintenance is one of the phases in the software development process,
and follows deployment of the software into the field. The software maintenance
phase involves changes to the software in order to correct defects and
deficiencies found during field usage as well as the addition of new
functionality to improve the software's usability and applicability.
Software
maintenance involves a number of specific techniques. One technique is
static slicing, which is used to identify all the program code that can modify
some variable. It is generally useful in refactoring program code and was
specifically useful in assuring Y2K compliance. The software maintenance phase
is an explicit part of the waterfall model of the software development process
which was developed during the structured programming movement of computer
programming. The other major model, the spiral model developed during the object
oriented movement of software engineering makes no explicit mention of a
maintenance phase. Nevertheless, this activity is notable, considering the fact
that two-thirds of a software system's lifetime cost involves maintenance.
|