(GQM) ist eine systematische Vorgehensweise zur Erstellung spezifischer Qualitätsmodelle im Bereich der Softwareentwicklung. Diese lässt sich als Baumstruktur darstellen. Als Wurzel steht das Ziel (), das über die Knoten () zu den Blättern () verfeinert wird. Auf diesem Weg werden Fragen und Softwaremaße abgeleitet. Auf dem Weg von den Blättern zur Wurzel werden die gemessenen Werte interpretiert.
Geeignete Metriken lassen sich in der Softwaremetrie identifizieren über die Beantwortung der folgenden Fragen: Welches Ziel soll durch die Messung erreicht werden? () Was soll gemessen werden bzw. welche Fragen soll die Messung beantworten? () Welche Metrik ist/welche Metriken sind in der Lage, die notwendigen Eigenschaften zu beschreiben? ()
Historie „Wie kann man entscheiden, was man messen muss, um seine Ziele zu erreichen?“
Genau vor einem solchen Problem standen die Erfinder des Goal-Question-Metric-Modells, Victor R. Basili und David M. Weiss, als sie, in der Umgebung des Software-Engineering-Labors, des NASA Goddard Space Flight Center, an verschiedenen Flugdynamik-Projekten arbeiteten. Die Definition von Zielen (Goals) half ihnen, sich auf das Wesentliche und Wichtige zu konzentrieren. Das Aufschreiben von Fragen (Questions) erleichterte es, die Ziele genauer zu spezifizieren und hierdurch ließen sich gleichzeitig relevante Metriken (Metrics) ableiten. GQM war geboren und etablierte sich schnell als das Qualitätsmodell am Goddard Space Flight Center.
Goal-Question-Metric-Modell Das GQM-Modell beschreibt die Verfahrensweise zur Erstellung eines Qualitätsmodells, wobei sich das Modell in sechs Schritte unterteilen lässt: Charakterisierung des Unternehmens- und Projektumfeldes, Erfassung des Mission Statement, Definition von Messzielen Formulieren von Fragen zur genaueren Definition der Ziele Messziele identifizieren und Metriken ableiten Entwicklung von Mechanismen zur Datensammlung Daten sammeln, analysieren und interpretieren Erfahrungen zusammenfassen und anwenden
Kurz: „Der GQM-Prozess beginnt mit der Charakterisierung des Organisations- und Projektumfeldes. Unter Berücksichtigung des Umfeldes werden im zweiten Schritt Informationsbedürfnisse mittels Zielen und korrespondierenden Fragen erfasst. Anschließend werden im dritten Schritt Messungen dokumentiert, die der Quantifizierung dieser Informationsbedürfnisse dienen. Im vierten und fünften Schritt werden die Messungen durchgeführt und die resultierenden Daten interpretiert. Abschließend findet im sechsten Schritt eine Nachbereitung statt. Dabei werden beispielsweise die Qualitätsplanung und gewonnene Erkenntnisse gesichert.“
Die Literatur ist sich bei der Aufteilung der sechs Schritte allerdings nicht ganz einig. Daher stößt man bei der Recherche nach GQM auf verschiedenste Einteilungen und diverse unterschiedliche Bezeichnungen. Einig ist sich die Literatur nur darüber, dass es sechs Schritte sind und die Verfahren, die ihnen zu Grunde liegen, immer in der gleichen Reihenfolge angewendet werden. Die ersten drei Schritte des GQM-Modells werden häufig auch als Definitionsphase bezeichnet. In dieser Phase werden auch die Ziele (Goals), Fragen (Questions) und Metriken (Metrics) ermittelt, die dem GQM-Modell seinen Namen geben.
Ziele (Goals) identifizieren, was wir erreichen möchten; Fragen (Questions), sofern beantwortet, sagen uns, ob wir die Ziele erreichen, oder helfen uns, sie zu verstehen und zu interpretieren; und die Metriken (Metrics) identifizieren die Messungen, die nötig sind, um die Fragen (Questions) zu beantworten, und quantifizieren die Ziele (Goals). Die Ziele, Fragen und Metriken mit deren dazugehörigen Maßen, Schaubildern und sonstigen Ausweitungen, werden als GQM-Plan zusammengefasst. Dabei können mehrere Fragen einem Ziel und einer Frage mehreren Metriken zugeordnet werden. Anders gesagt: Die Beziehung zwischen „Zielen und Fragen“ und „Fragen und Metriken“ ist beide Male 1 zu n. Das gesamte GQM-Modell wird „Top-Down“ definiert, d. h., es ist ein zielorientierter Ansatz, der von den Zielen ausgehend nach unten Fragen und Metriken definiert. Die Analyse und Interpretation geschieht dann wiederum „Bottom-Up“, d. h. von unten nach oben.
Schritt 1: Charakterisierung des Unternehmens- und Projektumfeldes, Erfassung des Mission Statement, Definition von Messzielen In diesem ersten Schritt geht es darum, GQM-Ziele (goals) zu definieren. Es gibt zwei Arten von GQM-Zielen: Geschäftsziele (business goals) Messziele (measurement goals)
Geschäftsziele, gerne auch als Mission Statement bezeichnet, sind das übergeordnete Leitbild eines Unternehmens und definieren dessen langfristige Ziele. Ein Unternehmen definiert immer Geschäftsziele. Diese müssen identifiziert und als Fokus zur Erstellung von Messzielen verwendet werden. Ohne Geschäftsziele hätte die gesamte Messung keine Ausrichtung. Geschäftsziele treiben infolgedessen die Identifizierung von Messzielen an, wobei sich Geschäftsziele und Messziele nicht zwangsläufig voneinander unterscheiden müssen, daher wird im Folgenden nur noch von GQM-Zielen gesprochen.
Jedes GQM-Ziel sollte durch fünf Aspekte ausgedrückt werden: Objekt der Messung Zweck Qualitätsfokus Blickwinkel Kontext
Festlegen des Messobjekts Objekt der Messung festlegen bedeutet herauszufinden, worüber man mehr erfahren möchte: „Was möchte man messen?“ GQM erlaubt es, verschiedenste Objekte zu untersuchen. Dies könnten verallgemeinert gesagt Prozesse, Produkte, Ressourcen, Projekte etc. sein, um nur einige Beispiele zu nennen.
Festlegen des Zwecks Zweck festlegen bestimmt, was erreicht werden soll. Beispiele hierfür wären Charakterisierung, Verbesserung, Überwachung, Auswertung, Vorhersage oder Optimierung.
Festlegen des Qualitätsfokus Qualitätsfokus festlegen: Der Qualitätsfokus ist ein Element des Messziels. Die folgenden Beispiele zeigen eine große Auswahl an Qualitätsattributen: Zuverlässigkeit/Verfügbarkeit Benutzbarkeit Sicherheit Funktionale Sicherheit Skalierbarkeit Wartbarkeit Anpassbarkeit Time to Market Performance Effizienz Portabilität Schnittstellenkompatibilität
Festlegen des Blickwinkels Blickwinkel festlegen: Dies ist die Perspektive, von der das Messobjekt betrachtet wird, wobei dies in der Regel der Kunde, der Entwickler, der Tester, der Projektleiter oder der Vertragsnehmer ist.
Festlegen des Kontexts Kontext festlegen: Hier wird bestimmt, in welchem Zusammenhang das Messobjekt steht. Der Kontext sollte möglichst genau erläutert werden, wobei es sich anbietet, Angaben über Firma, Abteilung, Projekt und Zeitraum zu machen.
Merksatz Die Definition der GQM-Ziele kann mit folgendem Hilfssatz dargestellt werden: Analysiere den Entwicklungsprozess zum Zwecke der Änderung in Bezug auf Korrektheit vom Blickwinkel des Entwicklers im Kontext des Projekts X.
GQM-Plan Das Sammeln der Ziele kann auf verschiedene Arten und Weisen passieren. Die meistverbreiteten Methoden sind Workshops und Interviews. Wichtig ist hierbei, dass Ziele von den verschiedensten Prozessbeteiligten erhoben werden, um ein möglichst breites Spektrum zu erhalten. Die Ziele selbst werden in einem sogenannten Abstraction Sheet dokumentiert. Häufig werden mehrere Abstraction Sheets in einem GQM-Plan festgehalten, die dann vor der weiteren Bearbeitung mit Prioritäten versehen werden. Der GQM-Plan ist das Dokumentationswerkzeug der Goal Question Metric. Der Aufbau ist einfach. Er beginnt mit einer thematischen Einleitung passend zum definierten Ziel. Anschließend werden Fragen, mit den jeweils dazugehörigen Metriken niedergeschrieben. Die nachfolgende Vorlage kann bei der Fertigung eines GQM-Plans helfen. Q.1 Frage1 M.1.1 Metrik1 M.1.2 Metrik2 Q.2 Frage2 M.2.1 Metrik1 M.2.2 ... Q.3 ...
Abstraction Sheets Abstraction Sheets werden genutzt, um einem GQM-Ziel wichtige Informationen zuzuordnen, bzw. sie mit dem GQM-Ziel zu gruppieren. Es können parallel mehrere Abstraction Sheets existieren. Das Sheet ist in fünf Teile aufgeteilt: Die fünf Aspekte (Objekt der Messung, Zweck, Qualitätsfokus, Blickwinkel, Kontext) drücken aus, zu welchem GQM-Ziel das Sheet gehört. Qualitätsfaktoren beziehen sich unmittelbar auf das GQM-Ziel. Um sie herauszufinden, sollte man sich die Frage stellen: „Welche Faktoren müssen bei diesem GQM-Ziel betrachtet werden und welche beeinflussen es?“ Die Hypothese ist die geschätzte, bzw. erwartete Antwort auf die definierten Qualitätsfaktoren. Einflussfaktoren beziehen sich wiederum direkt auf die Qualitätsfaktoren: „Was beeinflusst die Qualitätsfaktoren?“ Einflüsse auf die Hypothesen werden im letzten Abschnitt des Sheets festgehalten: „Wie beeinträchtigen die Einflussfaktoren die Hypothesen?“
Schritt 2: Formulieren von Fragen zur genaueren Definition der Ziele In dieser Phase des Modells werden Fragen (questions) gestellt, die sich aus den Abstraction Sheets ableiten. Für jede festgehaltene Komponente eines Abstraction Sheets lässt sich in der Regel auch eine Frage formulieren. Das Beantworten dieser Fragen hilft somit, dem Ziel (goal) näher zu kommen. Um Fragen zu definieren, sollte man zunächst ermitteln, was man über die Eigenschaften im Qualitätsfokus des Ziels lernen möchte. Hierbei sollten folgende Punkte beachtet werden: Übereinstimmung mit dem ZielDie Fragen dürfen einzig den Zweck und den Blickwinkel widerspiegeln. QuantifizierbarkeitDie Fragen müssen so formuliert werden, dass sie über Messwerte beantwortet werden können. Also nicht „Welche Testfälle wären in diesem Kontext gut?“, sondern „Welche Testfälle haben die meisten Fehler gefunden?“. Kompliziertere Fragen sollten in mehrere einfache Fragen unterteilt werden. Bedeutung der AntwortEs muss geklärt werden was mit der Antwort auf diese Frage getan werden kann und was mögliche Maßnahmen sind, um das entsprechende Ziel zu erreichen. Wenn die definierte Frage zu keinen verbesserten Handlungen führt, sollte die Notwendigkeit der Frage noch mal überdacht werden. Verständliche DiagrammeEs muss klar sein, was auf den Achsen des Diagramms dargestellt wird, welche Analyse der Darstellung vorausgeht und welche Daten ausgeschlossen wurden. Benutzung von bekannten DiagrammtypenBei der Auswahl der Diagrammarten sollte wann immer möglich, auf bekannte (zum Fragentyp passende) Diagramme zurückgegriffen werden. Kosten/NutzenEs ist zu evaluieren, ob der Nutzen, den man sich aus der Beantwortung der Frage verspricht, die Kosten der Datensammlung aufwiegt. Klarheit der BegriffeEs sollte sichergestellt sein, dass Begriffe wie Qualität, Effektivität, Effizienz oder Zuverlässigkeit präzise definiert sind. Vernünftige Anzahl von FragenErfahrungen aus erfolgreich durchgeführten Messprogrammen zeigen, dass drei bis sieben Fragen pro Ziel definiert werden sollten. Gutes Verhältnis zwischen Qualitäts- und EinflussfaktorenEs sollte durch die Frage „Was beeinflusst diesen Qualitätsaspekt“ überprüft werden, ob es wichtige Einflüsse gibt. Jedoch sollten nicht mehr als etwa dreimal so viele Einflussfaktoren wie Qualitätsfaktoren definiert sein, da man letztendlich an Letzteren interessiert ist.
Schritt 3: Messziele identifizieren und Metriken ableiten Dieser Schritt baut auf den Vorherigen auf und versucht, mit Hilfe der zuvor ausgearbeiteten GQM-Ziele, Metriken (metrics) abzuleiten. Wichtig ist insbesondere, die passende Metrik zu der gestellten Frage zu finden, was sich oftmals als einfacher herausstellt, als zuvor gedacht. Als besonders geeignet stellen sich folgende Maße, bzw. Metriken und die sich daraus ergebenden Maße, heraus: Depth of Inheritance Tree (DIT) Number of Children of a Class (NOC) Response for a Class (RFC) Weighted Methods per Class (WMC) Coupling between Object Classes (CBO) Lack of Cohesion of Methods (LCOM) Constructive Cost Model I+II (COCOMO I+II) Halstead-Metrik McCabe-Metrik (zyklomatische Komplexität) Lines of Code (LOC) Function-Point-Verfahren Fehlerdichte Schwierigkeitsgrad