rhv nimmt Stellung zum Programm-Entwurfsmethoden-Vergleich der Universität Dortmund:

Jackson-Methode verdient bessere Bewertung

30.04.1981

Der Artikel ist eine Antwort auf den Aufsatz, der unter dem Titel "Aufwand gleich - Qualität unterschiedlich" in der COMPUTERWOCHE - beginnend ab 16. I. 1981- veröffentlicht wurde. Dieser Aufsatz beschreibt den Vergleich von drei Programmiermethoden und stellt erfreulicherweise die Vergleichsbasis sehr genau dar, indem Eingangsvoraussetzungen des Vergleichs, Methoden und Vorgehensweise exakt beschrieben werden. Der Vergleich kommt zu dem im Titel aufgeführten Schluß, daß nämlich für die drei untersuchten Methoden bei gleichem Aufwand Programme unterschiedlicher Qualität entstehen.

Ich meine, daß trotz der Sorgfalt bei der Anwendung des Vergleichs und der Darstellung der Ergebnisse diese Ergebnisdarstellung einen falschen Eindruck hinterläßt. Zwar sind unter dem Titel "Grenzen der Vergleichbarkeit" einige wesentliche Punkte erfaßt, die den Vergleich beeinflussen. Naturgemäß werden diese Einflüsse im Endergebnis nicht sichtbar. Hierbei handelt es sich neben der einseitigen Beeinflussung durch ein selbst entwickeltes Entwurfsverfahren insbesondere um den in zwei Tagen für alle drei Methoden gleich hoch eingesetzten Schulungsbedarf.

Da zumindest für den datenstrukturierten Programmentwurf nach Jackson in der Regel ein sehr viel höherer Schulungsbedarf angesetzt wird (Schulungskurse für diese Methode dauern in der Regel zwei Wochen) und außerdem alle Benutzer der Methode sich darüber einig sind, daß der Erfolg des Einsatzes dieser Methode von einer projektbegleitenden Unterstützung durch erfahrene Methodenbenutzer im ersten Projekt abhängt, ist zu erwarten, daß der viel zu geringe Schulungsaufwand sich zumindest bei der Jackson-Methode im Ergebnis beträchtlich negativ auswirkt.

Ein weiterer Gesichtspunkt sind die Bewertungskriterien im Ergebnis. Als Bewertungskriterien wurden neben den sicherlich unumstrittenen Kriterien Zuverlässigkeit und Wartbarkeit sowie Programm-Entwurfsdokumentation.

Eigenschaften des Programmes aufgeführt, deren Bewertung wesentlich von der verwendeten Methode abhängen muß. Die Programmeigenschaft Modularisierung kann nicht als Qualitätsmerkmal bewertet werden, wenn eine Programmiermethode bewußt auf Modularisierung verzichtet.

Eigenschaften wie Schachtelungstiefe sollten bei der Bewertung überhaupt keine Rolle spielen. Sie sind als Bewertungskriterien nur bei dem Vergleich unterschiedlicher Ergebnisse einer Methode vertretbar, in denen die Schachtelungstiefe ein wesentliches Qualitätsmerkmal bildet. Zu den einzelnen Ergebnissen des Methodenvergleichs:

Punkt 4.1.2.2 des Berichts:

Aufwandsverteilung auf Phasen

Die Aufwandsverteilung zeigt deutlich, daß die Jackson-Methode nicht von erfahrenen und gut ausgebildeten Benutzern der Methode angewendet wurde. Bei korrekter Benutzung der Methode von Personen, die darin Erfahrung haben, würde der Anteil des Programmentwurfs wesentlich höher liegen, als es hier der Fall ist. Man kann dort für Programmentwurf, Codierung und Test etwa gleichen Aufwand erwarten, wobei mit zunehmender Erfahrung und besonders bei Einsatz eines Preprozessors der Anteil der Codierung noch erheblich zurückgehen kann. Die Tatsache, daß hier Programmentwurf und Codierung gleichwertig, der Test aber wesentlich daher ins Gewicht fällt, zeigt deutlich, daß die Methode von unerfahrenen Programmierern angewendet wurde und verschlechtert sicherlich das Ergebnis.

Punkt 4.2.1.1 des Berichts:

Zuverlässigkeit

Die große Zahl besonders von Entwurfsfehlern bei Team 2 deutet auf eine unzureichende Erarbeitung des Programmentwurfs hin. Bei zureichenden Erfahrungen im Umgang mit der Jackson-Methode müßte die Zahl der Entwurfsfehler deutlich niedriger liegen. Mindestens 7 der 11 Entwurfsfehler hatten bei der Anwendung der Jackson-Methode durch erfahrene Programmierer nicht auftreten dürfen. Damit würde dann die Bewertung der Qualität wesentlich besser ausfallen da zu Recht die Zuverlässigkeit des Programms, die sich in der Zahl der Entwurfsfehler ausdrückt, hoch bewertet wird. Übrigens deutet bei dieser Bewertung auch die geringe Zahl von Entwurfsfehlern und überhaupt von Fehlern bei Methode 3 sicherlich eher auf eine größere Akzeptanz und Erfahrung der eigenen Methode hin als auf eine wesentlich bessere Methode.

Punkt 4.2.1.3 des Berichts:

Dokumentation

Die Tatsache, daß auch bei der Jackson-Methode offensichtlich während der Ausführung der Programmierung Abweichungen von der Entwurfsdokumentation entstanden sind, zeigt eindeutig, daß die Methode nicht korrekt angewendet wurde. Eine korrekte Anwendung dieser Methode verlangt nämlich bei jeder Änderung ein konsequentes Ausgehen von den Datenstrukturen.

Punkt 4.2.2 des Berichts:

Ermittlung des Qualitätsmaßes

Hier scheint mir die größte Schwäche in der Auswertung der Vergleichsergebnisse zu liegen. Die Qualitätsmerkmale sind methodengeprägt und nicht methodenunabhängig. Dies gilt besonders für die drei Qualitätsmerkmale Modularisierung, Redundanz und Schachtelungstiefe, in geringerem Maße auch für die Einheitlichkeit.

Offensichtlich werden Modularisierung und Schachtelungstiefe hoch bewertet. Dies ist sicherlich richtig bei Anwendung von modularer oder strukturierter Programmierung. Bei der Methode von Jackson jedoch, die bewußt auf Modularisierung verzichtet (wenn auch nicht - wie oft fälschlich angenommen - sie ausdrücklich verbietet), kann die Modularisierung und die Schachtelungstiefe auf keinen Fall als Qualitätsmerkmal angesetzt werden.

Strukturänderungen

Ein geringer Modularisierungsgrad und eine hohe Schachtelungstiefe mögen zwar die Lesbarkeit des Programmcodes beeinträchtigen, dieser Punkt jedoch sollte nicht bewertet werden, denn bei Anwendung der Jackson-Methode sollte man einen Preprozessor einsetzen, so daß der generierte Code als Objektcode zu betrachten ist. Änderungen sind bei korrekter Anwendung der Methode ohnehin in den Strukturen oder im Strukturtext vorzunehmen und sollten im Code automatisch entstehen.

Die Redundanz wird meines Erachtens hier eher unterbewertet. Naturgemäß führt eine geringere Modularität und damit höhere Schachtelungstiefe zu geringerer Redundanz, die sicherlich als günstiges Merkmal eines Programmes zu betrachten ist und auch so betrachtet wird.

Punkt 4.3 des Berichts:

Effizienz in der Entwicklung

Bei einer Methode, für die geeignete Programmentwicklungswerkzeuge vorhanden sind, sollten diese Werkzeuge bei einem Methodenvergleich auch eingesetzt werden. Die Effizienz in der Programmentwicklung nach Jackson wurde in der Untersuchung durch die fehlende Erfahrung der Programmierer sicherlich sehr stark negativ beeinflußt.

Bezüglich des Programmentwurfs nach Jackson wird das Ergebnis der Untersuchung wesentlich durch zwei Faktoren verfälscht: Einmal durch die viel zu geringe Ausbildungszeit für die Anwender der Methode, zum anderen durch die auf andere Methoden ausgerichteten Bewertungsmerkmale und schließlich wahrscheinlich durch eine unbewußte Bevorzugung der selbstentwickelten Methode. Bei Beseitigung dieser Verfälschungen würde der Jackson-Methode sicher nicht nur im Erstellungsaufwand, sondern auch in der Bewertung ein den anderen Methoden mindestens gleichwertiges Ergebnis bringen.

*Hermann Lange ist Abteilungsleiter Schulung und Methoders bei der rhv Softwaretechnik GmbH, Düsseldorf.