online-wissen > IT-Berufe > LF6: Entwickeln und Bereitstellen von Anwendungssystemen > Qualitätsmanagement

Qualitätsmanagement

Man unterscheidet bei der Qualitätssicherung zwischen konstruktiven und analytischen Qualitätssicherungsmaßnahmen. Konstruktive QM sind Methoden, Sprachen, Werkzeuge, Richtlinien, Standards und Checklisten, die für die Qualität des Produktes sorgen. Analytische QM sind diagnostische Maßnahmen, um das existierende Qualitätsniveau zu ermitteln und die bestehenden Maßnahmen zu prüfen und zu bewerten.
Ziel für ein qualitativ hochwertiges System sind minimierte Kopplungen und maximierte Kohäsion.
Ein qualitativ hochwertiges System bietet folgende Vorteile:

  • Änderungsfreundlichkeit des Codes
  • leichte Erweiterbarkeit und Wartbarkeit
  • hohe Wiederverwendbarkeit
  • gute Verständlichkeit der Schnittstellen
  • geringere Gefahr für Fehlerfortpflanzung

Kohäsion

Kohäsion/Bindung ist ein Maß für die Kompaktheit einer Komponente. In einem stark gebundenen System ist jede Komponente für eine definierte Aufgabe zuständig.
Es liegt keine funktionale Bindung (funktionale Bindung: eine Methode = eine Aufgabe), wenn der Name Methode “und”/”oder” enthält oder ein allgemeines/nicht aussagekräftiges Verb ist. Wenn jedoch alle Elemente zum Erreiches des Ziels beitragen und keine überflüssigen Elemente enthält, liegt eine funktionale Bindung vor. Man kann eine Methode mit funktionaler Bindung leicht gegen eine andere Methode austauschen, die den gleichen Zweck erfüllt.
Eine Klasse mit hoher Bindung erfüllt eine einzige, identifizierbare Aufgabe innerhalb eines Software-Systems. Für eine starke Bindung müssen die Methoden funktional gebunden sein, eine einzige Datenstruktur verwendet werden und die Klasse keine Methoden enthält, die an andere Klasse ausgelagert werden können.

Kopplung

Kopplung ist ein Maß für die Schnittstellen der Komponenten. Es werden der Kopplungsmechanismus, die Schnittstellenbreite und die Kommunikationsart betrachtet. Der Kopplungsgrad gibt an, wie einfach oder schwierig ist, Änderungen am System durchzuführen. Bei einer großen Kopplung zwischen Klassen, führt eine Änderung in einer Klasse zu vielen Änderungen in den anderen Klassen.
Für eine geringe Kopplung sollten die Attribute einer Klasse nach außen verborgen sein (“private”, Geheimnisprinzip), stattdessen sollten Getter/Setter verwendet werden. Nach außen sieht man nur das “Was” einer Klasse, aber nicht das “Wie”.
Für eine geringe Kopplung :

  • gleicher Code kommt nicht mehrfach vor
  • keine großen Klassen mit vielen Attributen
  • Allgemeingültigkeit
  • keine unnötigen Vermittlungsklassen

Der einfachste und flexibelste Kopplungsmechanismus ist der Aufuf einer Methode mit Übergabe mit expliziten Parametern. Die Breite einer Schnittstelle wird bestimmt durch die Anzahl der Parameter und der Datentypen der Parameter. Eine Kopplung ist umso geringer, je weniger Parameter vorhanden sind und je mehr Parameterelemente einfache Typen sind. Die Bündelung von Parametern führt nicht zur Verringerung der Kopplung, stattdessen steigt die Verständlichkeit der Schnittstelle. Die Parameteranzahl übersteigt selten zehn.
Für eine geringe Kopplung sollten die Assoziationen zwischen den Klassen reduziert werden, Assoziationen unidirektional sein, Kann-Multiplizitäten und 1er Multiplizitäten verwendet werden. Vererbungen sollten reduziert sein.