Zum Inhalt springen

„Wartbarkeit“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
Zeichensetzung ergänzt
Markierungen: Mobile Bearbeitung Mobile Web-Bearbeitung Erweiterte mobile Bearbeitung
 
(62 dazwischenliegende Versionen von 43 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Die '''Wartbarkeit''' ({{enS|''maintainability''}}, ''{{lang|en|supportability}}'' oder ''{{lang|en|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.<ref>{{Literatur |Titel=IEEE Standard Computer Dictionary |TitelErg=IEEE Std. 610 |Hrsg=Institute of Electrical and Electronics Engineers, Inc |Ort=New York |Datum=1990 |Sprache=en |Umfang=217 |ISBN=1-55937-079-3 |Zitat=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)}}</ref>
Die '''Wartbarkeit''' von [[Software]] ist ein äußerst wichtiges Kriterium in der [[Softwareentwicklung]] und gibt an, mit welchem Aufwand und welcher Qualität Änderungen in einem Softwaresystem durchgeführt werden können.


== Bedeutung ==
Wartbarkeit ist um so wichtiger
Wartbarkeit ist umso wichtiger
* je größer die geplante Verwendungsdauer der Software ist
* je größer die geplante Verwendungsdauer der Software ist
* je mehr Personen an ihrer Entwicklung beteiligt sind
* je geringer die Verfügbarkeit von Experten für das Sachgebiet ist
* je geringer die Verfügbarkeit von Experten für das Sachgebiet ist
* je größer die Wahrscheinlichkeit ist, dass nicht die Entwickler der Software selbst die späteren und erfahrungsgemäß unvermeidbaren Änderungen durchführen werden.


Wichtige ''Kriterien'' für die Wartbarkeit von Software sind:<ref>{{Literatur |Autor=Christoph Bommer, Markus Spindler, Volkert Barr |Titel=Softwarewartung |TitelErg=Grundlagen, Management und Wartungstechniken |Verlag=dpunkg.verlag |Datum=2008-06-01 |Sprache=de |Umfang=328 |ISBN=978-3898644822 |Kapitel=2.2.3 Wartbarkeit |Seiten=25}}</ref>
Wichtige ''Kriterien'' für die Wartbarkeit von Software sind:
* die [[Dokumentation (Technik)|Dokumentation]], insbesondere die exakte [[Spezifikation]] von [[Schnittstelle]]n (Interfaces)
* die [[Dokumentation (Technik)|Dokumentation]], insbesondere die exakte [[Spezifikation]] von [[Schnittstelle]]n (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 [[Modul (Softwarearchitektur)|modularer]], stark gegliederter Aufbau (Zerlegung in elementare, einzeln testbare Einheiten)
* ein [[Modul (Softwarearchitektur)|modularer]], stark gegliederter Aufbau (Zerlegung in elementare, einzeln testbare Einheiten)
* die Vermeidung von Duplikaten (DRY-Prinzip)
* die lokale Verständlichkeit von Anweisungen resp. von Kommentar im Code
* übersichtlicher und gut kommentierter Code, der die lokale Verständlichkeit gewährleistet
* das Vermeiden nicht ersichtlicher [[Wirkung (Informatik)|Wirkungen]] von Anweisungen
* in das Programm eingebaute Prüfungen von Schnittstellenbedingungen (Design by Contract)
* das Vermeiden globaler [[Variable]]n
* die Parametrisierbarkeit von [[Funktion (Programmierung)|Funktionen]] bzw. [[objektorientierte Programmierung|Methoden]]
* in das Programm eingebaute Prüfungen der Annahmen, die der Programmierer über Programmzustände hat ([[Assertion]]s)
* ein möglichst großer Umfang von automatisch ausführbaren [[Software-Test|Tests]] für das System
* ein möglichst großer Umfang von automatisch ausführbaren [[Software-Test|Tests]] für das System
<!-- ab hier weitere Kriterien, die nicht in dem Buch erwähnt sind -->
* die Abwesenheit von [[Sprunganweisung]]en („GOTO“-Befehlen)
* das Vermeiden globaler [[Variable (Programmierung)|Variablen]]
* die [[Parameter (Informatik)|Parametrisierbarkeit]] von [[Funktion (Programmierung)|Funktionen]] bzw. [[Objektorientierte Programmierung|Methoden]]
* in das Programm eingebaute Prüfungen der Annahmen, die der Programmierer über Programmzustände hat ([[Assertion (Informatik)|Assertionen]])


Zur Bestimmung der Wartbarkeit wird basierend auf Zeilenmetriken, [[McCabe-Metrik|McCabe-]] und [[Halstead-Metrik]]en der Wartbarkeitsindex (engl. ''{{lang|en|Maintainability Index}}'') errechnet.
Der Grad der Wartbarkeit von Software wird durch die zugrundeliegende Programmiersprache stark beeinflusst. Sprachen, in denen viel mit [[Sprunganweisung]]en gearbeitet werden muss (z.B. [[BASIC]], insbesondere die frühen Dialekte), sind unter Umständen schwerer wartbar, wenn die Sprünge nicht strukturiert erfolgen. Den Quelltext von Programmen, die kreuz und quer im Code hin- und herspringen, nennt man im [[Programmiererjargon]] "Spagetticode".


== Siehe auch ==
Die Wartbarkeit ist eins der wesentlichsten Kriterien, die die Weiterentwicklung der [[Programmiersprache]]n bestimmt.
* [[Softwarewartung]]
* [[Evolvierbarkeit (Software)]]
* [[Support (Dienstleistung)]]


== Literatur ==
'''Siehe auch:''' [[Modifizierbarkeit]]
* Ch. Bommer, M. Spindler, V. Barr: ''Softwarewartung – Grundlagen, Management und Wartungstechniken'', dpunkt.verlag, Heidelberg 2008, ISBN 3-89864-482-0


== Weblinks ==
[[Kategorie:Softwareentwicklung]]
* [https://www.verifysoft.com/de_cmtx.html Tools zur Bestimmung der Wartbarkeit: Testwell CMT++ und CMTJava]
* [https://www.verifysoft.com/de_cmtpp_mscoder.pdf Berechnung der Wartbarkeit anhand eines Beispielprojektes] (PDF-Datei; 737 kB)
* [https://meiert.com/de/publications/articles/20090907/ Einführung in Wartbarkeit, J. Meiert]

== Einzelnachweise ==
<references/>

[[Kategorie:Softwaretechnik]]

Aktuelle Version vom 15. August 2022, 03:57 Uhr

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

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. 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)”
  2. 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.).