Wartbarkeit
# Wartbarkeit

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.

## Bedeutung

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:
* 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.