Software maintenance

In software engineering, the term software maintenance " the change of a software product after delivery to correct faults, improve performance or other attributes, or make adjustments to the changed environment. " (Definition according to IEEE 610.12-1990 )

In a broader sense one may also provide services and activities that assist or support the changes described by the standard, expected to software maintenance. Software maintenance is typically used to maintain the usability and reliability of software.

Types of Software Maintenance

A distinction between corrective, adaptive perfektionierender and Maintenance:

  • Corrective maintenance: the elimination of errors
  • Perfecting maintenance: Improvement of attributes such as performance or maintainability. This includes in particular the fall cleanup of the design or the implementation by re-engineering (software), refactoring, etc.
  • Adaptive maintenance: adapting the software to changing technical conditions of the environment (see IEEE 610.12-1990 and ISO / IEC 12207 )

With the elimination of errors, some sources differentiate between nor corrective and preventive maintenance, with under preventive maintenance then the remedy is to be understood of such errors, which are known, but not yet in appearance the user (see IEEE 610.12-1990 ).

Maintenance

In the maintenance of traditional flows most of the complexity of the software life cycle. The einzurechnende for maintenance effort increases beyond steady - was expected even in the 1970s, so that the maintenance accounts for 35% to 60 % of the total expenditure of the Softwarelebenszyklusses, got this by the end of the 1990s to 80 % to 90 %. This corresponds to the predictions of Lehman in his laws of software evolution 1980.

Whether and how much effort software must be maintained, strongly depends on the respective software ( defect density, maintainability ), their use (Error revelation by different application scenarios, the desire to improve certain attributes) and the length of time ( changing environment ). For mission-critical software, the software maintenance usually makes a significant contribution to security of investment, on the other hand is also a significant cost factor; whereas maintenance agreements are frequently found in business-critical software. Depending on the agreed service level (see Service Level Agreement) usually put the annual cost would be in the order of 10 % to 30 % of the total investment of the software.

If you already have the necessary attention is paid to an adequate maintainability in system design, unnecessarily high Aufwänden for software maintenance can be prevented. At high maintenance Aufwänden software maintenance usually from a fixed -organized group of employees (maintenance organization ) is operated in an orderly maintenance process (see Bommer / Spindler / Barr).

736522
de