Abstrakt ein Maß für die Steifigkeit eines Softwaresystems ist. Höhere Abstraktion, niedrigere Steifigkeit (oder größere Flexibilität) und umgekehrt. Wenn die Komponenten des Systems von abstrakten Klassen oder Schnittstellen abhängig sind, ist ein solches System einfacher zu erweitern und zu ändern, als wenn es direkt von konkreten Klassen abhängt.
Stabilität ist ein Maß für die Toleranz gegenüber Änderungen, da das Softwaresystem Änderungen daran zulässt, ohne es zu unterbrechen. Dies wird durch Analyse der Abhängigkeiten der Komponenten des Systems ermittelt.
Robert C. Martins article on OO Metriken beschreibt diese Konzepte in quantitativer Hinsicht.
Auszug aus dem Artikel:
Die Verantwortung, Unabhängigkeit und Stabilität einer Kategorie kann durch Zählen der Abhängigkeiten gemessen werden, die mit dieser Kategorie in Wechselwirkung treten. Drei Metriken wurden identifiziert:
Ca: Afferent Couplings: Die Anzahl der Klassen außerhalb dieser Kategorie, die von Klassen innerhalb dieser Kategorie abhängen.
Ce: Efferente Kupplungen: Die Anzahl der Klassen innerhalb dieser Kategorie, die außerhalb dieser Kategorien auf Klassen abhängen.
I: Instability: (Ce ÷ (Ca + Ce)): Diese Metrik die Bandbreite hat [0,1]. I = 0 bedeutet eine maximal stabile Kategorie. I = 1 zeigt eine maximal instabile Kategorie an.
A: Abstrakt: (# abstrakte Klassen in der Kategorie ÷ Gesamtanzahl der Klassen in der Kategorie). Dieser metrische Bereich ist [0,1]. 0 bedeutet konkret und 1 bedeutet vollständig abstrakt.
In jedem Software-System besonders große, Balance ist kritisch. In diesem Fall sollte ein System Abstraktheit mit Stabilität ausbalancieren, um "gut" zu sein. Die Position auf dem A-I-Diagramm zeigt dies. Bitte lesen Sie den Artikel für die Erklärung.