Managing maintenance and change

The fact of maintenance and change after final acceptance and transfer to operation of a system is well accepted throughout the computer community, even in the case of critical software-intensive systems (although, in principle, an assessed or certified and finally accepted system should not be changed without reassessment). Every ‘living’ system needs maintenance and modification, either for the correction of faults or to conform to changing requirements and environmental conditions. Changes to operational conditions, legal changes, and adjustments to meet changing public perception are examples. Indeed, this is similar to biological life: a system which cannot adapt to changing conditions is destined to become extinct. Because of its very nature as a ‘virtual product’, maintenance always results in a change to software (unlike hardware maintenance, which in most cases aims to restore the product’s original state). Software maintenance, therefore, includes modification and enhancement.