Software maintenance
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 YK 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
(Page-Jones pg ).
In a formal software development environment, the developing
organization or team will have some mechanisms to document
and track defects and deficiencies. Software just like
most other products, is typically released with a known
set of defects and deficiencies. The software is released
with the issues because the development organization
decides the utility and value of the software at a particular
level of quality outweighs the impact of the known defects
and deficiencies.
The known issues are normally documented in a letter
of operational considerations or release notes so that
the users of the software will be able to work around
the known issues and will know when the use of the software
would be inappropriate for particular tasks.
With the release of the software, other, undocumented
defects and deficiencies will be discovered by the users
of the software. As these issues are reported into the
development organization, they will be entered into
the defect tracking system.
The people involved in the software maintenance phase
are expected to work on these known issues, address
them, and prepare for a new release of the software,
known as a maintenance release, which will address the
documented issues.
From
Wikipedia