Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
122 9 Quantifizierung des Qualitätsmodells 9.2.2 Beschreibung Auf der Basis der obigen Anforderungen wurden objektive Metriken für die Kriterien der Wartbarkeit ausgewählt und auf der Basis von ODEM formal definiert. Wie in der Literatur üblich, erhält jede Metrik ein drei- oder vierstelliges Akronym (z. B. NAC, Number of Attributes of a Class). Manche Metriken lassen sich verfeinern, indem nach einem bestimmten Aspekt klassifiziert wird. Beispielweise kann die Metrik NAC verfeinert werden, indem die Sichtbarkeitsbereiche public, protected und private unterschieden werden. Der Name einer Verfeinerung ergibt sich aus dem Namen der Ursprungsmetrik und einem Index, der die Art der Verfeinerung bezeichnet. Verfeinerungen sind teilweise kombinierbar, so dass es auch mehrfach indizierte Metriken geben kann. Beispielsweise lassen sich die Verfeinerungen nach Sichtbarkeitsbereich noch einmal verfeinern nach dem Definitionsort (geerbt oder lokal). In Tabelle 9-1 sind die ausgewählten Metriken aufgelistet; sie sind in Anhang A im Detail beschrieben. In der Tabelle sind zu den Metriken die Ebene (Klasse, Paket oder System) und das Kriterium angegeben, für das die Metrik verwendet wird. Hinter dem Kriterium wird durch (-) angezeigt, dass die Metrik negativ mit dem Kriterium korreliert ist, (+) bedeutet positive Korrelation. Ist eine Metrik (z. B. NEDC) für mehrere Kriterien relevant, wird das Kriterium zuerst genannt, für das die Metrik am wichtigsten ist. Alle Metriken haben eine Absolutskala – mit Ausnahme von RTTR, das eine Rationalskala hat. Es fällt auf, dass nicht für alle Kriterien und Ebenen objektive Metriken angegeben werden können, sondern sich die Metriken vor allem auf die Kriterien Knappheit, Strukturiertheit und Entkopplung beschränken. Das liegt daran, dass diese Kriterien sich gut an syntaktischen Aspekten der Entwurfsbeschreibung festmachen lassen. Bei den anderen Kriterien überwiegen die semantischen Aspekte, die sich schlecht durch objektive Metriken erfassen lassen. 9.2.3 Beispiel Als Beispiel werden hier die wichtigsten objektiven Metriken für das Kriterium Knappheit und ihre formale Definition gezeigt. Eine ausführlichere Darstellung findet sich in Abschnitt A.1. Da Knappheit unter anderem eine geringe Größe bedeutet, werden vor allem die Bestandteile der Entwurfselemente gezählt. Diese Zählmetriken sind negativ mit der Knappheit korreliert. Klasse/Interface Bei Klassen und Interfaces werden geerbte Bestandteile mitgezählt, da geerbte Eigenschaften in der Klasse vorhanden sind und damit ihre Größe mitbestimmen (siehe dazu auch Abschnitt A.1). NAC (number of attributes of a class) NAC(c) = |{a∈A: has*(c,a)}| NOC (number of operations of a class) NOC(c) = |{o∈O: has*(c,o)}| NEDC (number of efferent dependencies of a class) NEDC(c) = Σ d∈C∪I depends_on*(c,d).weight
9.2 Objektive Metriken 123 Paket NCP (number of classes in a package) NCP(p) = |{c∈C: contains(p,c)}| NIP (number of interfaces in a package) NIP(p) = |{i∈I: contains(p,i)}| NPP (number of packages in a package) NPP(p) = |{q∈P: contains(p,q)}| System NAS (number of attributes in the system) NAS(S) = |A| NOS (number of operations in the system) NOS(S) = |O| NCS (number of classes in the system) NCS(S) = |C| NIS (number of interfaces in the system) NIS(S) = |I| NPS (number of packages in the system) NPS(S) = |P| - 1 (da S in P enthalten ist, ist 1 abzuziehen) Verfeinerungen Als Beispiel einer Verfeinerung wird hier die Verfeinerung der Metrik NCP gezeigt, die sich ergibt, wenn abstrakte und konkrete Klassen unterschieden werden: NCPa (number of abstract classes in a package) NCPa (p) = |{c∈C: contains(p,c) ∧ c.isAbstract}| NCPc (number of concrete classes in a package) NCPc (p) = |{c∈C: contains(p,c) ∧¬c.isAbstract}| 9.2.4 Auswertung Aus den objektiven Metriken kann ein Bewertungsvorschlag für die zugehörige subjektive Metrik gewonnen werden. Dazu werden die Metriken eines Kriteriums einer Ebene (z. B. Knappheit Paket) aggregiert und das Ergebnis auf den Wertebereich der subjektiven Metriken abgebildet. Verfahren Die Berechnung eines Bewertungsvorschlags verläuft in drei Schritten: 1. Normierung der Metriken, um aus den Messwerten Qualitätsaussagen abzuleiten, 2. Gewichtung der normierten Metriken, um die relative Bedeutung der Qualitätsaussagen zu berücksichtigen, und 3. Transformation des Resultats auf den Wertebereich der subjektiven Metriken.
- Seite 81 und 82: 6.3 Qualitätssicherung 71 rung und
- Seite 83 und 84: Kapitel 7 Entwurfsqualität Softwar
- Seite 85 und 86: 7.1 Ein Beispiel 75 scheidung nach
- Seite 87 und 88: 7.1 Ein Beispiel 77 WMC DIT NOC CBO
- Seite 89 und 90: 7.2 Perspektiven der Entwurfsqualit
- Seite 91 und 92: 7.2 Perspektiven der Entwurfsqualit
- Seite 93 und 94: 7.3 Entwurfsregeln 83 Produkt 1 Pro
- Seite 95 und 96: 7.3 Entwurfsregeln 85 Prinzip Besch
- Seite 97 und 98: 7.3 Entwurfsregeln 87 7.3.2 Heurist
- Seite 99 und 100: 7.4 Beispiele für OOD-Qualitätsmo
- Seite 101 und 102: 7.4 Beispiele für OOD-Qualitätsmo
- Seite 103 und 104: 7.4 Beispiele für OOD-Qualitätsmo
- Seite 105 und 106: 7.4 Beispiele für OOD-Qualitätsmo
- Seite 107 und 108: 7.6 Entwurfsbewertung 97 7.5.2 Kons
- Seite 109 und 110: 7.6 Entwurfsbewertung 99 Evaluation
- Seite 111 und 112: Kapitel 8 Das allgemeine Qualitäts
- Seite 113 und 114: 8.1 Vorüberlegungen 103 8.1.4 Indi
- Seite 115 und 116: 8.3 Wartbarkeit 105 unabhängige Mo
- Seite 117 und 118: 8.3 Wartbarkeit 107 auswirkt (höhe
- Seite 119 und 120: 8.3 Wartbarkeit 109 Diskussion Für
- Seite 121 und 122: 8.3 Wartbarkeit 111 Diskussion Zusa
- Seite 123 und 124: 8.5 Wiederverwendbarkeit 113 derver
- Seite 125 und 126: 8.7 Testbarkeit 115 kann. Technisch
- Seite 127 und 128: Kapitel 9 Quantifizierung des Quali
- Seite 129 und 130: 9.1 Bewertungsverfahren 119 Bewertu
- Seite 131: 9.2 Objektive Metriken 121 Akronym
- Seite 135 und 136: 9.3 Subjektive Metriken 125 Gewicht
- Seite 137 und 138: 9.4 Fragebögen 127 9.4 Fragebögen
- Seite 139 und 140: 9.4 Fragebögen 129 auch Fragen, f
- Seite 141 und 142: 9.5 Gesamtbewertung 131 der Gewicht
- Seite 143 und 144: 9.6 Ableitung spezifischer Modelle
- Seite 145 und 146: Kapitel 10 Ein spezifisches Qualit
- Seite 147 und 148: 10.1 Ableitung des Qualitätsmodell
- Seite 149 und 150: 10.1 Ableitung des Qualitätsmodell
- Seite 151 und 152: 10.2 Anwendung des Qualitätsmodell
- Seite 153 und 154: 10.2 Anwendung des Qualitätsmodell
- Seite 155 und 156: 10.2 Anwendung des Qualitätsmodell
- Seite 157 und 158: 10.2 Anwendung des Qualitätsmodell
- Seite 159 und 160: 10.3 Besonderheiten bei Mustern 149
- Seite 161 und 162: Kapitel 11 Werkzeugunterstützung H
- Seite 163 und 164: 11.1 Werkzeuge aus anderen Arbeiten
- Seite 165 und 166: 11.2 Selbst realisierte Werkzeuge 1
- Seite 167 und 168: 11.2 Selbst realisierte Werkzeuge 1
- Seite 169 und 170: 11.3 Ausblick: Ein ideales Werkzeug
- Seite 171 und 172: Kapitel 12 Zusammenfassung und Ausb
- Seite 173 und 174: 12.2 Bewertung des Ansatzes 163 Die
- Seite 175 und 176: 12.3 Vergleich mit anderen Arbeiten
- Seite 177 und 178: 12.4 Ausblick 167 Entwerfen QOOD ka
- Seite 179 und 180: Literatur Abowd et al. (1996) Abowd
- Seite 181 und 182: Beyer et al. (2000) Beyer, D.; Lewe
9.2 Objektive Metriken 123<br />
Paket<br />
NCP (number of classes in a package)<br />
NCP(p) = |{c∈C: contains(p,c)}|<br />
NIP (number of interfaces in a package)<br />
NIP(p) = |{i∈I: contains(p,i)}|<br />
NPP (number of packages in a package)<br />
NPP(p) = |{q∈P: contains(p,q)}|<br />
System<br />
NAS (number of attributes in the system)<br />
NAS(S) = |A|<br />
NOS (number of operations in the system)<br />
NOS(S) = |O|<br />
NCS (number of classes in the system)<br />
NCS(S) = |C|<br />
NIS (number of interfaces in the system)<br />
NIS(S) = |I|<br />
NPS (number of packages in the system)<br />
NPS(S) = |P| - 1 (da S in P enthalten ist, ist 1 abzuziehen)<br />
Verfeinerungen<br />
Als Beispiel einer Verfeinerung wird hier die Verfeinerung <strong>der</strong> Metrik NCP gezeigt,<br />
die sich ergibt, wenn abstrakte und konkrete Klassen unterschieden werden:<br />
NCPa (number of abstract classes in a package)<br />
NCPa (p) = |{c∈C: contains(p,c) ∧ c.isAbstract}|<br />
NCPc (number of concrete classes in a package)<br />
NCPc (p) = |{c∈C: contains(p,c) ∧¬c.isAbstract}|<br />
9.2.4 Auswertung<br />
Aus den objektiven Metriken kann ein <strong>Bewertung</strong>svorschlag für die zugehörige subjektive<br />
Metrik gewonnen werden. Dazu werden die Metriken eines Kriteriums einer<br />
Ebene (z. B. Knappheit Paket) aggregiert und das Ergebnis auf den Wertebereich <strong>der</strong><br />
subjektiven Metriken abgebildet.<br />
Verfahren<br />
Die Berechnung eines <strong>Bewertung</strong>svorschlags verläuft in drei Schritten:<br />
1. Normierung <strong>der</strong> Metriken, um aus den Messwerten <strong>Qualität</strong>saussagen abzuleiten,<br />
2. Gewichtung <strong>der</strong> normierten Metriken, um die relative Bedeutung <strong>der</strong> <strong>Qualität</strong>saussagen<br />
zu berücksichtigen, und<br />
3. Transformation des Resultats auf den Wertebereich <strong>der</strong> subjektiven Metriken.