next up previous contents
Next: 1.6 Vorhersage und Validation Up: 1. Messen und Maße Previous: 1.4 Probleme und Hindernisse

Unterabschnitte

1.5 Die Klassiker: Lines of Code, Fehleranzahl, Personentage

1.5.1 Beschreibung und Zweck

Eine exakte Definition wird hier für keine dieser Größen angegeben, weil es Dutzende unterschiedliche Arten gibt, diese Größen sinnvoll zu definieren.

Es gibt noch ein viertes klassisches Basismaß, nämlich die Echtzeit (gemessen meist in Kalendertagen). Dies ist jedoch so elementar, daß wir im folgenden nicht näher darauf eingehen.

1.5.2 Probleme und Grenzen

Die Definitionen aller drei Maße sind im praktischen Einsatz meist ungenau. Das liegt daran, daß die Maße so verführerisch einfach und intuitiv einleuchtend aussehen. Bei Lines of Code hat sich die Notwendigkeit einer genauen Definition inzwischen herumgesprochen, aber schon bei der Fehleranzahl hapert es erheblich: Was genau ist eigentlich ein Fehler (im Gegensatz z.B. zu einer ,,freiwilligen`` Verbesserung)? Von einer Einteilung der Fehler in disjunkte Klassen, die die Grundlage für viele weitere nützliche Analysen des Fehlerverhaltens ist, ganz zu schweigen. Bei den Personenmonaten stellt sich die Frage, ob die Basis ihrer Berechnung ein Pauschalverfahren ist, wie oben angegeben, oder eine Zeiterfassung im Einzelfall (d.h. für jede Person) auf Basis von Wochen oder Tagen oder Stunden oder gar Minuten.

Selbst mit genauen Definitionen ist es für alle drei Maße schwer, übertragbare Messungen zu machen, weil die Meßwerte von vielen Umgebungsfaktoren abhängen, die nur selten gleich (oder auch nur überhaupt alle bekannt) sind.

1.5.3 Wichtigkeit

Die beschriebenen Maße sind die Basis für fast alle höheren Maße und sind oft nicht durch bessere Maße zu ersetzen: sie sind faktisch unverzichtbar.

1.5.4 Fazit

Die klassischen Maße verlangen zu ihrer sinnvollen Anwendung nach einer genauen Definition und disziplinierten Meßverfahren. Dann jedoch kann mit ihnen trotz ihrer Schwächen einiges geleistet werden:

1.5.5 Beispiel: Definition von LOC

Hier zur Veranschaulichung eine halbwegs genaue realistische Definition von Lines of Code:

Je nach Programmiersprache müßte man noch Richtlinien zum Layout von Case-Anweisungen und von Elseif-Ketten geben, sowie für diverse Spezialkonstruktionen, die die Sprache zuläßt (beispielsweise Import- und Exportlisten, Schabloneninstanziierungen etc.).


next up previous contents
Next: 1.6 Vorhersage und Validation Up: 1. Messen und Maße Previous: 1.4 Probleme und Hindernisse
Lutz Prechelt
1999-04-13