Was halten Sie von der Michael-Jackson-Methode?

07.04.1978

Das "fundamentale Softwareproblem", den "richtigen" Programmentwurf zu finden, glaubt der englische Softwareprofessor Michael Jackson lösen zu können. Das Softwarehaus "mbp" hat sich des Jackson-Kalküls, aus der Datenstruktur die Programmstruktur abzuleiten, angenommen, und will es in Deutschland mit einer breit angelegten Seminarreihe unter die Datenverarbeitungs-Anwender bringen. Die COMPUTERWOCHE befragte einige der bei der mbp-Eröffnungsveranstaltung in Köln anwesenden Software-Entwickler:

Walter Beickler EDV-Leiter, Günther & Co., Frankfurt/M.

Wenn man schon mit dem Computer (noch?) nicht reden kann wie mit seinem Nächsten (wobei sich offenbar gerade dabei große Verständigungsprobleme und -pannen entwickeln), dann muß man eben versuchen, den strikten Gesetzen der Computerlogik zu entsprechen und Strukturen errichten, die den Anforderungen des gestrengen "großen Bruders" gerecht werden.

Auf der "Straße ins Glück" hinterläßt der "Software-Expreß", zwei deutlich sichtbare Fahrspuren:

- Systementwicklung durch Strukturierung und/oder Normierung

- Programm-Generatoren.

Während das Generieren von Programmen bis zu dem Tag, an dem der Computer menschlich wird (vielleicht sollte man diesen Zustand zu verhüten suchen), entscheidend von der Sprachbarriere behindert wird, verspricht die strukturierte System- und Programm-Entwicklung auf dem bisher beschrittenen Weg für den Planenden und Ausführenden inner- und außerhalb der EDV ein Werkzeug zu werden, das dazu befähigt, im Ansatz richtige, überschaubare und wartungsfreundliche Anwendungen zu schaffen.

Die Jackson-Methode, die logische Struktur eines Problems aus der Datenstruktur abzuleiten, leuchtet mir ein. Schließlich ist unser Geschäft die Datenverarbeitung, und die Programmlogik muß sich auf die Datenlogik gründen.

Der daraus abgeleitete Anspruch, mit dieser Methode (...) gsweise für ein Problem zu (...) einzigen sinnvollen und richtigen Lösung zu kommen, gleichgültig, wer sie realisiert, ist hoch. Er ist jedoch so wichtig, daß ich ihm den höchsten Stellenwert einräume, denn nur einheitliche Denkweisen werden verhindern helfen, daß einerseits die EDV nicht mehr handhabbar ist und andererseits die Kosten-/Nutzen-Relationen davonlaufen.

Peter Glänzel Leiter DV-Systementwicklung DEMAG Fördertechnik, Wetter

Jackson haben - wie viele andere auch - die nicht befriedigenden Ergebnisse der "Strukturierten Programmierung" zu seinen Überlegungen veranlaßt, nur daß er von unten" vorgeht. Die Ergebnisse sind eindrucksvoll, aus einer Datenstruktur ergibt sich recht deutlich die Programmstruktur. Die Weiterentwicklung der Methode in Richtung vorausgehender Phasen erscheint mir dagegen recht zweifelhaft. Es ist durchaus denkbar, daß er zu einer Methode kommt, die aus einer Problemstruktur (Problemumwelt) zu einer Datenstruktur und damit schließlich zur Programmstruktur führt. Ist das aber die optimale Lösung des Problems? Jackson braucht für seine eindeutigen Lösungen fixe Basen. Zunächst ist es die Datenstruktur, dann wäre es die Problemumwelt. Nun kann es aber durchaus sinnvoll sein, daß sich die Problemumwelt einem neuen Problem anpaßt. Bezieht man aber eine Variation der Problemumwelt mit in die Methode ein, so scheint mir eine eindeutige (optimale) Lösung des Problems nicht mehr möglich.

Die Schwierigkeiten, die bei der Weiterentwicklung der Methode auftreten resultieren aus der hohen Zielsetzung von Jackson, Probleme eindeutig (programmierunabhängig) zu lösen. Ich sehe für unsere Arbeit folgende Zielsetzung, für deren Erreichen wir Methoden und Werkzeuge suchen:

- Systeme funktionsfähig so gestalten, daß sie trotz hohen Integrationsgrades klare Schnittstellen haben.

-Teilsysteme so strukturieren, daß Fehler schnell einzukreisen, Änderungen oder Erweiterungen leicht einzufügen sind, ohne daß sich dabei die Systematik der Gesamtstruktur ändert.

Daraus ergeben sich Forderungen an die "Funktionale Architektur", die "Systemtechnische Architektur" und eine entsprechende deckungsgleiche Dokumentation, die jedem den entsprechenden Einstieg in die Struktur erlaubt. Dabei müssen nicht personenunabhängige Ideallösungen entstehen. Nach Erreichen dieser Ziele kann als Ergänzung durchaus die Anwendung der Michael-Jackson-Methode erwogen werden.

Rutger Hetzler Leiter der Datenverarbeitung, Schmalbach-Lubeca GmbH, Braunschweig

Die strukturierte Programmierung macht Vorschläge, wie Datenverarbeitungsprobleme durch schrittweises Zerlegen in ihre funktionellen Einheiten in Programme und Systeme umgesetzt werden können. Sie gibt weiterhin Hinweise, wie durch die Beachtung von "Malerregeln" (Vermeidung des Goto's) Probleme, die sich bei der Realisierung von Programmen und Systemen ergeben können vermieden werden können.

Das grundsätzliche Problem der Modularisierung wird jedoch auch durch die konsequente Anwendung der Empfehlungen und Konstruktionsregeln der strukturierten Programmierung nicht gelöst.

Es ist tatsächlich schwierig, ein Programm oder System gut zu strukturieren - und das Geheimnis jedes gut strukturierten Programmes liegt unzweifelhaft in der Zerlegung und Aufgliederung des Programmes in möglichst einfache und unmittelbar einleuchtende Bausteine.

Dieses Problem ist in den Ingenieur-Wissenschaften durch Standardisierung, Erfahrung and Ausbildung grundsätzlich gelöst. Für die Programmierung war dieses Problem bisher weitgehend noch offen.

Jackson scheint eine Methode gefunden zu haben, deren Anwendung die Zerlegung eines Problems in seine einfachsten Bestandteile erlaubt. Die wenigen verwendeten Beispiele haben dies deutlich gezeigt. Ich bin nicht sicher, daß die von dem Softwarehaus mbp vertretene Auffassung, daß alle Programmierer bei Anwendung der Michael-Jackson-Methode zu einem gleichen Programm oder einem gleichen Ergebnis kommen, richtig ist. Selbst bei der Strukturierung von Problemen mit Hilfe der Michael-Jackson-Methode bleibt ein intellektueller Spielraum, der bei gleicher Problemstellung von verschiedenen Programmierern unterschiedliche Programme erwarten läßt.

Dennoch ist die Zerlegung des Programmes in möglichst kleine überschaubare und damit simple Komponenten ganz sicher der richtige Weg, um mit der strukturierten Programmierung eine Steigerung der Effizienz bei gleichzeitigem Ansteigen der Qualität der Programme zu erreichen. Mit der Zerlegung des Problems über die logischen Datenstrukturen in einfachste Programmeinheiten hat Jackson einen Ansatz gefunden, dieses Gliederungs- und Modularisierungsproblem in den Griff zu bekommen. Wir werden uns in nächster Zukunft detailliert mit dieser Methode auseinandersetzen, um für unser Haus zu einer Entscheidung zu kommen, ob und in welchem Umfang diese Methode sinnvoll und effizient bei der System- und Programmentwicklung angewendet werden kann.

Sigurd Knothe Organisationsprogrammierer, Orenstein und Koppel AG

Wie alle "großen Problemlöser" erscheint mir auch Michael Jackson den Versuch unternehmen zu wollen, mit einer globalen Methode, die man auf eine einfache Formel bringen kann, alle Probleme der Programmerstellung lösen zu wollen. Derzeit beschränkt er sich auf den Teilbereich der Programmerstellung. Seine Methode setzt an, wo das organisatorische "was zu tun" bestimmt ist. Er versteht klarzumachen daß er keine neue große Wissenschaftlich exakte Theorie über Modulare und strukturierte Programmierung exakt aufstellen will, sondern daß es sein Bestreben ist, den in der Praxis mit den Aufgabenlösungen betrauten Programmierer anzuleiten. Dabei geht er bewußt von den unterschiedlichen Qualifikationen der Programmierer aus. An seiner Methode gefällt mir besonders seine Besinnung auf den Ursprung unseres Tuns: Datenverarbeitung; d. h. unsere Aufgabe ist es, Daten zu verarbeiten. Seine Methode besteht darin, aus den gegebenen und gewünschten Datenstrukturen die Programmstrukturen abzuleiten. Und hier sehe ich auch die Einschränkung der Benutzbarkeit seiner Methode. Bei Aufgaben mit wenig Datenverkehr aber großen Berechnungen und Entscheidungsalgorithmen dürfte seine Methode wohl kaum eine Hilfe zum Finden einer guten Programmstruktur sein. Dieser Fall soll jedoch in der kommerziellen Datenverarbeitung (noch) recht selten sein. Als Fazit möchte ich sagen: Ein näheres Kennenlernen der Michael-Jackson-Methode kann der Entwicklung eines Programmierers bestimmt nicht schaden.

Dietmar Kaletsch Leiter der Abteilung Numerische DV, Hochschulrechenzentrum Dortmund

Als Gegenstück zu dem bisher bekanntesten Programm-Entvurfsverfahren, der an Funktionen orientierten Programmentwicklungstechnik, schlägt Michael Jackson vor, den Programmaufbau aus der Struktur der sequentiellen Ein-/Ausgabe-Dateien des zu erstellenden Programms abzuleiten. Jackson weist in seiner Begründung zu Recht darauf hin, daß der Funktionsbegriff weder unmittelbar noch zwingend die Menge der auszuführenden Operationen festlegt.

Dagegen kann eine Funktion als eine Abbildung aufgefaßt werden, die Eingabedaten in Ausgabewerte transformiert. Damit resultiert aus dem datenstrukturorientierten Entwurf in natürlicher Weise die funktionale Gliederung der Aufgabe.

Als Vorteil ist zu werten, daß es für den Programmierer im allgemeinen leichter ist, die Struktur der Ein-/Ausgabedatenbestände zu erkennen (und zu beschreiben) als die Inhalte einer Funktion zu bestimmen.

Die Programmstruktur geht nach dieser Methode aus der umkehrbar eindeutigen Zuordnung einander entsprechender Komponenten der Datenstrukturen auf der Ein- oder Ausgabenseite hervor. Praktische Tests im Hochschulrechenzentrum Dortmund haben gezeigt, daß bei nicht-trivialen Beispielen diese Zuordnung nicht immer sofort erkennbar

ist, ganz abgesehen von solchen Fällen, in denen nach Jackson nur eine "program inversion" weiterhilft. Auf der anderen Seite macht die kIare Trennung von Analyse (Datenstruktur) und Synthese (Programmstruktur) den Programmentwurf durchschaubarer als bei der funktionsorientierten Vorgehensweise.

Nachteilig erscheint mir, daß die Michael-Jackson-Methode rein hierarchische Programmstrukturen erzeugt, so daß die einzelnen Funktionen nicht mehr als geschlossene Einheiten erkennbar sind. Hier können Probleme bei Änderungs- und Wartungsarbeiten entstehen, da die betreffenden Funktionen nicht so einfach identifiziert werden können.

Ebensowenig kann der Vorteil, daß beim funktionsorientierten Entwurf Programmteile entstehen können, die von anderen, übergeordneten Programmen aufgerufen werden können und damit zu einer Verringerung des Programmieraufwandes führen, bei Jackson nicht genutzt werden.

Meiner Meinung nah ist der Jackson'sche Ansatz, die Programmstruktur aus der Datenstruktur abzuleiten, trotz gewisser Schwächen eine beachtenswerte Alternative zu den funktionsorientierten Verfahren. Im Hinblick auf praktische Anwendungen sollte eine Kombination der Vorteile beider Methoden versucht werden.

Hans-Jürgen Marcour Leiter des kaufmännischen Rechenzentrums, Hochtief AG, Essen

Diese Frage läßt sich aus unserer Sicht nur theoretisch beantworten, da praktische Erfahrungen nicht vorliegen. Die Tatsache der Auseinandersetzung mit dieser Methode und die Resonanz, die Michael Jacksons Vortragsveranstaltung gefunden hat, verdeutlich, daß die bisherigen Instrumente zur Beseitigung des Mißverhältnisses von Programmentwicklung und Änderungsaufwand nicht ausreichen. Gesicherte Planverfahren für eine flexiblere Programmierung bei der Lösung neuer Aufgabenstellungen sind nur im Ansatz vorhanden.

Individualismus und "künstlerische" Inspiration wird in der Programmierung nach wie vor groß geschrieben. Die vielfach geforderte Zielsetzung, Auflösung komplexer Programmgebilde durch Modulartechnik ist in dem Maße fragwürdig, wie eine eindeutige Definition des "Moduls" nicht gegeben werden kann. Strukturierte Programmierung aufgrund funktionaler Zergliederung schafft keine eindeutigen Lösungen. Bereits bei geringfügig geänderter oder erweiterter Aufgabenstellung stimmen Programmstruktur und Problemstruktur nicht mehr überein. Die Konsequenzen sind umfangreiche Wartungsarbeiten Anstelle eines großen monolithischen Programms müssen oftmals viele kleine Module geändert werden. Die Integration der verschiedenen Baugruppen schafft zusätzliche Probleme.

Die Basis der Michael-Jackson-Methode - weg vom funktionsorientierten Programmentwurf zur Datenstruktur - bietet mehr Eindeutigkeit für die Systemplanung. Interpretationsschwierigkeiten zwischen Fachabteilung und Systemplaner werden abgebaut.

Prinzipien der Strukturierten Programmierung wie

- Beschränkung der Ablaufstrukturen

- Top-Down-Ansatz

- Konzept der Abstraktionsebenen

werden um eine Methode ergänzt, die im Gegensatz etwa zu Nassi-Schneiderman-Diagrammen den Programmierer nicht mehr auf seine eigene Intuition verweist.

Sofern es mit der Michael-Jackson-Methode tatsächlich gelingt, daß die Programmstruktur die Datenstrukturen der Ein- und Ausgabedaten reflektiert und nicht das Problem in seinem funktionalen Zusammenhang - was in vielen Fällen möglich sein dürfte - wird das Ziel nach einer flexibleren Programmierung in dreierlei Hinsicht erreicht:

- Die Verständigung mit der Fachabteilung wird erleichtert.

- Der Wartungsaufwand wird reduziert.

- Programmlösungen sind nicht mehr so sehr an den Autor gebunden, da unterschiedliche Programmierer für dieselbe Problemvorgabe eine gleiche oder zumindest ähnliche Programmstruktur entwerfen.

Matthias Müller EDV-Berater, zur Zeit bei der Bundesversicherungsanstalt für Angestellte, Berlin

Im ersten Ansatz lassen zwei Aspekte eine intensivere Beschäftigung mit der Michael-Jackson-Methode lohnenswert erscheinen.

1. Ein Angebot konkreter, somit überprüfbarer Rezepte

Die "Jackson-Strukturierte Programmierung (JSP)" nimmt für sich in Anspruch, eine erprobte, ausgereifte und konsistente Methode für den Programmentwurf zu sein; für die verschiedenen Problemgruppen werden Lösungen mit Rezeptcharakter angeboten.

Die JSP macht so konkrete Aussagen im Hinblick auf die Realisierung, daß sie kurzfristig anwendbar und daher alsbald in ihren Effekten beurteilbar erscheint.

2. Ein weiterer Schritt In Richtung Anwender

Aus gegebener Datenstruktur leitet die Michael-Jackson-Methode zu der einen (- nämlich aus den Daten abzuleitenden -) Programmstruktur. Da die Daten des Anwenders dessen Probleme beinhalten, muß nach Jackson die Programmstruktur zwangsläufig dem Anwenderproblem angemessen sein. Das bedeutet aber zum Beispiel, daß die Programmstruktur der Anwendersoftware nicht komplexer zu sein braucht als die Struktur der Anwenderprobleme.

Wenn dann kleine Änderungen in der Problemstellung tatsächlich und immer nur kleine Änderungen im Programm nach sich ziehen, dürfte die Datenverarbeitung dem Anwender einen weiteren Schritt nähergekommen sein.

Meine Empfehlung lautet: Mal probieren, weil es probierbar erscheint, dabei allerdings die Methode von Michael Jackson an ihren eigenen Ansprüchen und daran messen, ob sie mittelbar oder unmittelbar dem Anwender wirklich nützt.

Norbert Pavel Leiter der Programmierung, Alu-Norf GmbH, Neuß

Obwohl die Strukturierte Programmierung eine der bedeutendsten softwaretechnischen Entwicklungen der letzten Jahre ist, kann von einer breiten Anwendung zur Lösung von Problemstellungen nicht die Rede sein. Die uns bisher bekannten Entwurfsmethoden der funktionalen Auflösung eines gegebenen Problems erlauben zu viele alternative Lösungen. Ein wohlstrukturiertes Programm hängt dabei überwiegend von der Intuition und Qualifikation des Programmierers ab. Bei einem Durchschnittsprogrammierer können sich die Schwierigkeiten sogar vergrößern, wenn er mit den bekannten Darstellungstechniken, wie zum Beispiel Nassi-Shneiderman-Diagramme, arbeiten muß.

Der datenstrukturierte Programmentwurf nach Professor Michael A. Jackson bietet hier eine völlig neue Vorgehensweise, um vom Problem zum Programm zu gelangen. Bei dieser Methode gelangen bei einem gegebenen Problem unterschiedliche Programmierer zu vergleichbaren Ergebnissen. Die dafür definierten graphischen und verbalen Darstellungswerkzeuge verblüffen in ihrer Einfachheit und machen daher jedes Programm änderungs- und wartungsfreundlicher. Änderungswünsche lassen sich auch insofern schneller verwirklichen, weil in der Mehrzahl der Fälle die Datenstrukturen erhalten bleiben.

Bei nicht korrespondierenden Datenstrukturen, dem sogenannten structure clash, bietet die von Jackson entwickelte Technik der Programminversion eine effiziente Lösung des Problems. Sie ist außerdem die ideale Methode zur schrittweisen Verfeinerung komplexer Probleme in einfache Programme (simple programs).

Stellt man den datenstrukturierten Programmentwurf nach Jackson der Normierten Programmierung gegenüber, so muß ersterer als wesentlich flexibler angesehen werden, da mit ihr auch Probleme der Prozeßsteuerung, des Realzeit- und Dialogbetriebes gelöst werden können.

Die für mich entscheidenden Vorteile der Michael-Jackson-Methode möchte ich wie folgt zusammenfassen:

Einfachheit

Änderungs- und Wartungsfreundlichkeit

Wirtschaftlichkeit

Daher erwarte ich im deutschsprachigen Raum eine ähnlich rasche Verbreitung der neuen Softwaretechnik, wie sie im anglo-amerikanischen schon stattgefunden hat. Die Ankündigung von mbp, bald einen Prozessor zur maschinellen Unterstützung des Verfahrens auf den Markt zu bringen, könnte für manchen EDV-Verantwortlichen ein zusätzliches Argument für die Einführung der Jackson-Methode sein.