Die Wartbarkeit (englisch maintainability, supportability oder serviceability) von Software ist die Einfachheit, mit der ein Softwaresystem oder eine Softwarekomponente modifiziert werden kann, um Fehler zu beheben, Performanz oder andere Attribute zu verbessern oder Anpassungen an die veränderte Umgebung vorzunehmen.[1]
Wartbarkeit ist umso wichtiger
- je größer die geplante Verwendungsdauer der Software ist
- je geringer die Verfügbarkeit von Experten für das Sachgebiet ist
Wichtige Kriterien für die Wartbarkeit von Software sind:[2]
- die Dokumentation, insbesondere die exakte Spezifikation von Schnittstellen (Interfaces)
- eine tragfähige, skalierbare und erweiterbare Architektur
- ein übersichtliches Design, das auch allgemein bekannte und anerkannte Entwurfsmuster nutzt
- eine hohe Kohäsion und lose Kopplung der Module
- ein modularer, stark gegliederter Aufbau (Zerlegung in elementare, einzeln testbare Einheiten)
- die Vermeidung von Duplikaten (DRY-Prinzip)
- übersichtlicher und gut kommentierter Code, der die lokale Verständlichkeit gewährleistet
- in das Programm eingebaute Prüfungen von Schnittstellenbedingungen (Design by Contract)
- ein möglichst großer Umfang von automatisch ausführbaren Tests für das System
- die Abwesenheit von Sprunganweisungen („GOTO“-Befehlen)
- das Vermeiden globaler Variablen
- die Parametrisierbarkeit von Funktionen bzw. Methoden
- in das Programm eingebaute Prüfungen der Annahmen, die der Programmierer über Programmzustände hat (Assertionen)
Zur Bestimmung der Wartbarkeit wird basierend auf Zeilenmetriken, McCabe- und Halstead-Metriken der Wartbarkeitsindex (engl. Maintainability Index) errechnet.
- Ch. Bommer, M. Spindler, V. Barr: Softwarewartung – Grundlagen, Management und Wartungstechniken, dpunkt.verlag, Heidelberg 2008, ISBN 3-89864-482-0
Institute of Electrical and Electronics Engineers, Inc (Hrsg.): IEEE Standard Computer Dictionary. IEEE Std. 610. New York 1990, ISBN 1-55937-079-3 (englisch, 217 S.): “The ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment. See also: extendability; flexibility. (610.12)” Christoph Bommer, Markus Spindler, Volkert Barr: Softwarewartung. Grundlagen, Management und Wartungstechniken. dpunkg.verlag, 2008, ISBN 978-3-89864-482-2, 2.2.3 Wartbarkeit, S. 25 (328 S.).