Daten-, Funktionen- und Folgeebene schaffen drei Dimensionen:

Räumliche Definition von Softwaresystemen

07.08.1981

Der eigentlichen Programmierung von größeren (Anwendungs-)Software-Systemen müssen eine oder mehrere Phasen des Software-Entwurfs vorausgehen, um qualitativ und kostenmäßig zufriedenstellende Produkte zu erhalten. Software kann dabei als dreidimensionales Objekt dargestellt werden. Vorteile: Der Entwurf geht schneller, und mittels Computer werden Fehler sofort entdeckt.

Ein Softwaresystem ist vollständig beschrieben, wenn bekannt sind:

- die Daten des Systems

- die Funktionen des Systems und

- die Folge der Funktionen beziehungsweise der Daten im System.

Unter "Daten" sollen dabei alle im System auftretenden Daten verstanden werden.

Unter "Funktionen" des Systems sollen alle die Verarbeitungsvorschriften verstanden werden, die im Laufe der Analyse einer Aufgabe als Einheit festgelegt werden.

Ganz allgemein sollte man sich unter "Funktion" das vorstellen, was bei einem Flußdiagramm in einem Kästchen steht, bei einem HIPO-Diagramm als Satz in der mittleren Spalte und so weiter.

Unter "Folge" soll hier die Vorschrift verstanden werden, die die Abfolge der Funktionen (welche Funktion folgt auf welche und unter welchen Bedingungen?) beziehungsweise der Daten beschreibt.

Beispiele für Folgevorschriften sind in der strukturierten Programmierung die Regeln für

- Sequenz,

- Auswahl und

- Wiederholung

sowie die in einer Entscheidungstabelle enthaltenen komplizierteren Auswahlregeln.

Da in keiner der bisher bekannten Entwurfs- beziehungsweise Darstellungsmethoden andere als diese drei Komponenten auftauchen, kann man mit einiger Sicherheit annehmen, daß sie zur vollständigen Beschreibung eines Software-Systems ausreichen.

Betrachtet man nun die drei Komponenten als zunächst voneinander unabhängig, so läßt sich aus ihnen ähnlich wie in der Geometrie, ein "Raum" konstruieren, in dem ein Software-System durch seine Dimensionen Daten, Funktionen und Folge beschrieben wird.

Genau dies wird jedoch mit vielen der bisher üblichen Entwurfs- und Darstellungsmethoden versucht, die deshalb, wenn sie alleine eingesetzt werden, zu keinem optimalen Ergebnis führen können.

Grund- und Aufriß beschreiben ein Haus

In der Geometrie ist bewiesen, daß ein räumlicher (dreidimensionaler) Gegenstand dann vollständig beschrieben ist, wenn die Projektionen des Gegenstandes in zwei (zweidimensionale) Grundebenen des Raumes bekannt sind. Ein Haus zum Beispiel ist vollständig durch Grund- und Aufriß beschrieben, und ein Bauplan

enthält auch nur diese beiden Bestandteile. Überträgt man diese Vorstellung auf ein Software-System, so gelangt man in ähnlicher Weise zu einer vollständigen Beschreibung, wobei die bisher bekannten Entwurfsmethoden gut verwendet werden können.

Zunächst sind die Grundebenen des "Raumes" festzulegen, in dem das Software-System beschrieben werden soll. Wie oben ausgeführt, können Daten, Funktionen und Folge als unabhängige Dimensionen dieses Raumes betrachtet werden und demnach als Grundebenen (analog der geometrischen Verfahrensweise)

- eine Daten-Funktionen-Ebene,

- eine Funktionen-Folge-Ebene und

- eine Daten-Folge Ebene

festgelegt werden (siehe Abbildung).

Auf die Praxis des Software-Entwurfs bezogen bedeuten nun die in der Geometrie gefundenen Gesetze, daß für die vollständige Beschreibung eines Software-Systems jeweils eine Zweierkombination aus den drei prinzipiell möglichen Entwurfsmethoden

- Daten-Funktions-bezogener Entwurf

- Funktionen-Folge-bezogener Entwurf und

- Daten-Folge-bezogener Entwurf notwendig ist.

Wie man erkennt, sind einer solchen Kombination alle drei Komponenten enthalten während der einzelne Entwurf Komponenten bei den heute bekannten Methoden in, aller Regel die jeweils dritte Komponente ist, die die Schwierigkeiten verursacht, vereinfacht sich der Entwurf durch deren Weglassen wesentlich.

Einordnung bestehender Entwurfsmethoden

- Daten-Funktionen-bezogene Entwurfsmethoden:

Von den bereits aufgeführten Entwurfsmethoden sind zwei im wesentlichen Daten-Funktionen-bezogen, die HIPO-Technik und das Petri-Netz.

HlPO-Technik: In dieser Technik repräsentieren die in der Mittelspalte angegebenen Prozesse die Funktionen, die in der ersten und dritten Spalte angegebenen Input- beziehungsweise Outputdaten die Daten.

Auf den einzelnen Prozeß bezogen ist diese Darstellungsweise klar und übersichtlich, die Schwierigkeiten liegen in der Darstellung der Folge, die zwar mit Hilfe von Konnektoren und Steuerflußpfeilen möglich, aber nicht sehr übersichtlich oder änderungsfreundlich ist.

Petri-Netz: Die noch recht neue Technik der Petri-Netze mit der Einteilung der Netzknoten in Zustands-(Daten) und Transaktions-(Funktions)Knoten eignet sich sehr gut zur Darstellung der Abhängigkeiten von Daten und Funktionen und insbesondere auch zur strukturierenden Zerlegung von Funktionen. Die Folge der Funktionen ist in dieser Methode angedeutet, jedoch ist diese Art der Folgedarstellung im Hinblick auf eine spätere Programmierung nicht eindeutig und einfach genug.

- Funktionen-Folge-bezogene Methoden:

Zu den überwiegend Funktionen-Folge-bezogenen Methoden zählen

- die Constantine-Methode

- SADT

- das Nassi-Shneiderman Diagramm und

- Pseudo-Code.

Allen gemeinsam ist, daß die verarbeiteten Daten in der Darstellung nicht explizit auftauchen und damit zum Beispiel einer Vollständigkeitsüberprüfung nur schwer zugänglich sind. Die Vorteile dieser Methoden, insbesondere des Nassi-Shneiderman-Diagramms und des Pseudo-Codes liegen in der Anschaulichkeit und in der leichten Umsetzbarkeit in fertig codierte, gut strukturierte Programme.

- Daten-Folge-bezogene Methoden:

Zu den Daten-Folge-bezogenen Methoden zählen in erster Linie

- die Jackson-Methode und

- die LCP-Methode von Warnier.

Vorgehen beim Entwurf von Anwendungssoftware

In der Praxis des Entwurfs von Anwendungssoftware ist der Analytiker in der Regel mit Forderungen konfrontiert, die sich auf die Funktionen des Systems beziehen. (Das Systems soll etwas ganz Bestimmtes leisten.) Deshalb empfiehlt es sich, die Funktionen (= Anwenderforderungen) zunächst Top-Down zu zergliedern. Dies entspricht, um im dreidimensionalen Bild zu bleiben, einer Einteilung der Funktionenachse in einzelne Abschnitte, dem Anbringen der Skala also.

Anschließend können zu jeder der so gefundenen Funktionen, analog der HIPO-Technik, die zugehörigen Ein- und Ausgabedaten festgelegt werden, wobei Konnektoren beziehungsweise der Steuerungsfluß weggelassen werden.

Eine zweite Möglichkeit ist, die Technik des Petri-Netzes anzuwenden, wodurch man Funktionen und zugehörige Daten in einem Schritt erhält.

Sind für den jeweiligen Detaillierungsgrad auf diese Weise Funktionen und Daten festgelegt, so kann man darangehen, die Abfolge der Funktionen festzulegen.

Ist die Folge der Funktionen festgelegt, so kann das entstandene System in zweierlei Hinsicht überprüft werden.

- Optimale Einteilung der Funktionen:

Die oben vorgenommene Zuordnung der Daten zu den Funktionen kann in geeigneter Weise im Computer gespeichert werden (zum Beispiel in Form einer Matrix). Diese gespeicherten Daten lassen sich mit Hilfe entsprechender Algorithmen so auswerten, daß Gruppierungen von Funktionen entstehen, die mit anderen Gruppierungen keine oder nur sehr wenige Daten gemeinsam haben. Neudefinition von Funktionen aufgrund dieser Auswertung kann die Fehleranfälligkeit des Systems reduzieren.

-Vollständigkeit der Daten:

Indem die Zuordnung von Daten zu Funktionen gespeichert wird, kann bei der Festlegung der Funktionenfolge die Vollständigkeit der zu verarbeitenden Daten laufend überprüft werden.