Im Software Engineering bezeichnet der Begriff Wartung „die Veränderung eines Softwareprodukts nach dessen Auslieferung, um Fehler zu beheben, Performanz oder andere Attribute zu verbessern oder Anpassungen an die veränderte Umgebung vorzunehmen.“ (Definition gemäß IEEE 610.12-1990). Unter Anpassung an die veränderte Umgebung werden auch neue Anforderungen von Benutzern verstanden.
Unter Softwarewartung werden demnach all jene Tätigkeiten verstanden, die nach der Einführung eines Softwaresystems dessen Verfügbarkeit und Nutzbarkeit sicherstellen oder die Lebensdauer der Software verlängern. Man rechnet den gesamten Aufwand dazu, der nach der Übergabe oder Einführung der Software auftritt. Lehner (Lehner, F.: Softwarewartung. Management, Organisation und methodische Unterstützung. München 1991) unterteilt Wartungsarbeiten in folgende Kategorien:
Korrigierende Wartung, bei der es sich um die eigentliche Notfallwartung handelt, d. h. um die Korrekturen zunächst unerkannter Fehler, die erst beim Einsatz der Software auftreten.
Anpassungswartung, d. h. die Adaption der Software an eine veränderte Umwelt wie z. B. Betriebssystemänderungen, neue Hardware, geänderte gesetzliche Bestimmungen oder Änderungen von Standards.
Perfektionierende Wartung, d. h. eine Verbesserung der Leistungen im Sinne einer Performanceverbesserung, aber auch die Restrukturierung des Systems mit dem Ziel, den zukünftigen Wartungsaufwand zu reduzieren.
Funktionserweiterung; diese umfasst den Einbau zusätzlicher Funktionen, die ursprünglich nicht vorgesehen waren, sowie die Integration mit benachbarten, neu hinzugekommenen oder geänderten Systemen.
Unterstützung und Betreuung; damit sind Schulungsmaßnahmen für Benutzer, Hilfestellung bei Bedienungsproblemen, Klärung von Fehlersituationen, Performance-messungen, Koordination der Wartungsaktivitäten u. ä. gemeint.