Anwendbarkeit einer Methode genauso hoch bewerten wie den Inhalt:

Synergie-Effekt von Daten und Funktionen

24.05.1985

WILHELMSHAVEN (pi) - Für den Entwurf von Softwaresystemen werden in der Praxis meistens nur die Daten und die Funktionen berücksichtigt. Bei der Implementierung stellen sich dann häufig erhebliche Mängel am Entwurf heraus. Die Methode "Animos" der ADV/Orga F. A. Meyer AG, Wilhelmshaven, soll hier eine Verbesserung bringen.

Im folgenden werden inhaltliche Anforderungen an eine Methode für den Softwareentwurf abgeleitet und Möglichkeiten zur Abdeckung dieser Anforderungen dargestellt. Zunächst aber sollen die einzelnen Aufgaben des Softwareentwurfes verdeutlicht werden.

Der Softwareentwurf ist in ein ergebnisorientiertes Vorgehensmodell (Phasenschema) eingebettet (Abb. 1). Als Eingabe werden die Ergebnisse der Systemmodellierung und Systemplanung benötigt. Sie beschreiben die Anforderungen der Fachabteilung an das geplante Informationssystem und die unter fachlichen Gesichtspunkten gewählten Lösungen. Die Benutzungsoberfläche wird ebenfalls exakt festgelegt.

Der Softwareentwurf betrachtet nun ausschließlich die DV-Welt. In einem Modell wird detailliert beschrieben, was das zu realisierende System zu leisten hat. Die Ergebnisse des Softwareentwurfs werden in der Softwarerealisierung in Programmcode umgesetzt. In dieser Phase stehen programmspezifische Architekturfragen und Implementierungsdetails im Vordergrund.

Mit dem Phasenschema können Aufbauorganisation, Ablauforganisation und Ergebnisdokumentation von Entwicklungsvorhaben problemspezifisch beschrieben werden.

Die Anforderungen an den Softwareentwurf beziehen sich auf zwei Dinge - auf Inhalt und Anwendbarkeit einer Entwurfsmethode.

Die Anwendbarkeit einer Methode des Softwareentwurfes muß genauso hoch bewertet werden wie der Inhalt. Methoden, auch wenn sie inhaltlich die besten Ergebnisse versprechen, können sich in der Praxis nur dann behaupten, wenn sie auf den Anwender (zum Beispiel den Systemanalytiker) und dessen Bedürfnisse abgestimmt sind. Damit ergeben sich als Anforderungen die Ausrichtung auf den Softwareentwickler und die Werkzeugunterstützung.

Dokumentation und Qualitätssicherung werden in diesem Zusammenhang nicht betrachtet, da sie durch das Vorgehensmodell abgedeckt werden. Es muß jedoch sichergestellt werden, daß die beiden Faktoren ausreichend berücksichtigt werden.

In den vergangenen Jahren wurden eine Reihe von Versuchen unternommen, die genannten Anforderungen bezüglich Inhalt und Anwendbarkeit von Entwurfsmethoden zu erfüllen. Bisher entsprachen die Ergebnisse nicht voll den Erwartungen. Die Methode "Animos" (An Integrated Method Of Softwaredesign), die im folgenden vorgestellt wird, bringt hier eine Verbesserung.

Die Besonderheiten von "Animos" liegen in der Betonung der integrativen Aspekte und in der Berücksichtigung der Entwicklermentalität. Integration bedeutet, daß die methodische Modellierung eines Softwaresystems unter gleichgewichtiger Einbeziehung der Aspekte Daten, Funktionen und Ablaufordnung erfolgt. Durch problemspezifische und situationsbedingte Freiheiten bei der Vorgehensweise (nicht bei den zu erstellenden Ergebnissen) wird die Entwicklermentalität angemessen berücksichtigt.

Die Methode umfaßt drei Komponenten:

- Datenmodell,

- Funktionenmodell,

- Zustandsmodell.

Das Datenmodell liefert die Beschreibung der benötigten Datenstrukturen. Dabei wird auf das bewährte Entity-Relationship-Modell (ERM) zurückgegriffen. Alle Objekte (Entities) des Softwaresystems und deren Beziehungen (Relationships) werden festgelegt. Die zugehörigen Eigenschaften (Attribute) und ihre definierten Wertebereiche werden beschrieben. Um die Anwendbarkeit des ERM zu erhöhen, wurden im Datenmodell einige Erweiterungen gegenüber dem ursprünglichen ERM von Chen vorgenommen.

Das Funktionenmodell beschreibt das Softwaresystem vollständig unter funktionalen Gesichtspunkten. Dabei werden gleichzeitig zwei Richtungen verfolgt. Zum einen werden die Anforderungen an das Softwaresystem schrittweise so lange verfeinert, bis eine vollständige Beschreibung vorliegt. Zum anderen wird neben dieser hierarchischen Verfeinerung eine Klassifizierung der Funktionen durchgeführt.

Die Funktionsklassen beinhalten Funktionen, die unter bestimmten wählbaren Gesichtspunkten als zusammengehörig definiert werden können. Hierdurch erhält man die in der Praxis immer benötigte problemspezifische Ausrichtung des Funktionenmodells. Ein triviales Beispiel, das nur der Erläuterung dient, ist die Einteilung in Eingabe, Verarbeitung und Ausgabe.

Eine Orientierung der Funktionsklassen an Werkzeugen, die bei den Anwendern in der Softwarerealisierung eingesetzt werden, ist ebenfalls möglich. Dadurch werden dann nur die Komponenten eines Softwaresystems entworfen, die nicht von den in der Praxis üblichen Werkzeugen unterstützt werden.

Das Zustandsmodell analysiert und beschreibt das Softwaresystem unter objekt- und zustandsorientierten Gesichtspunkten (Object Event Analysis). Die Grundidee dabei ist, daß jedes Objekt, das in einem Softwaresystem eine Rolle spielt, in das System gelangen und das System wieder verlassen muß.

Innerhalb des Softwaresystems verändert sich das Objekt im Laufe der Zeit. Bei jeder Änderung nimmt das Objekt einen neuen Wert an. Die möglichen Werte(-klassen) werden als Zustände und die Änderungen Aktionen bezeichnet.

Durch die Betrachtung der Zustände und Aktionen unter zeitlichen Gesichtspunkten erhält man ein Modell des Lebenszyklusses eines Objektes (Life History). Damit ist die lokale Dynamik, das heißt, die Dynamik jedes einzelnen Objektes, beschrieben.

Die globale Dynamik, das heißt, die Ablaufordnung des gesamten Systems, erhält man über Auslösebedingungen der Aktionen und über die Zeitsynchronisation der Lebenszyklen aller Objekte. Bei dieser Synchronisation werden auslösende Aktionen (Primary Events) und ausgelöste Aktionen (Secondary Events) unterschieden.

Bisher wurde erläutert, daß die Summe der Komponenten die vollständige Modellierung eines Softwaresystems unter verschiedenen Blickwinkeln ermöglicht. Die Integration der Ansätze und die Berücksichtigung der Praxis der Entwickler wird aus der folgenden Beschreibung des Vorgehens für die Erstellung der Modelle deutlich (Abb. 2).

Zu Beginn wird ein grobes Datenmodell aus den Ergebnissen der Systemmodellierung abgeleitet. Auf der Funktionenseite liefert die Systemplanung eine grobe. Aufteilung der Funktionen in Teilsysteme und Komponenten.

Die sich anschließende schrittweise Verfeinerung der Daten und der Funktionen wird in zweierlei Hinsicht flexibel vorgenommen. Zunächst ist es dem Softwareentwickler freigestellt, ob er mit der Beschreibung der Daten oder mit der Beschreibung der Funktionen beginnen will.

Problem- beziehungsweise situationsabhängig kann es günstiger sein, beispielsweise zunächst die Funktionen und danach die Daten (oder auch umgekehrt) weiter zu verfeinern. Entscheidend dabei ist, daß nach Abschluß eines solchen Verfeinerungsschrittes Daten und Funktionen abgestimmt sein müssen. Das heißt, daß die benötigten Daten aus dem Datenmodell den Funktionen zugeordnet werden und daß die bei der Verfeinerung der Funktionen entstandenen Daten in das Datenmodell integriert werden.

Der Entwickler kann bei der Anwendung von "Animos" die gewonnenen Informationen über das Modell des Softwaresystems immer sofort notieren, wenn sie entstehen. Niemand ist schließlich in der Lage, nur Funktionen oder nur Daten zu betrachten. Bei der Beschreibung der Daten entstehen Ideen für die Funktionen und umgekehrt. Dieser Aspekt der gegenseitigen positiven Beeinflussung (Synergieeffekt) von Daten und Funktionen bildet den Kern dieser Methode.

Flexibilität bei der schrittweisen Verfeinerung der Daten und Funktionen bedeutet auch freie Wahl der Schrittweite. "Animos" erlaubt, vor einer Abstimmung der Daten und Funktionen über einen oder mehrere Schritte zu verfeinern. Die künstliche Unterbrechung des Ideenflusses, nur um pro Verfeinerungsebene den Zwischenstand des Entwurfs zu konsolidieren, würde die Kreativität und Produktivität der Entwickler behindern.

Bei dem geschilderten Vorgehen kommt der abschließenden Abstimmung der Daten und Funktionen eine besondere Bedeutung zu. Es werden nicht nur Vollständigkeiten und Widerspruchsfreiheit bezüglich der Verwendung und der Anforderungen geprüft. Auch die Qualität der Strukturierung unter rein datenorientierten beziehungsweise rein funktionenorientierten Gesichtspunkten wird beachtet.

Das Zustandsmodell fließt in zwei Formen in das Vorgehen ein. Zum einen in der oben beschriebenen Form bezüglich der lokalen und globalen dynamischen Aspekte. Zum anderen wird das systematisierbare Vorgehen bei der Erstellung des Zustandsmodells genutzt, um die Vollständigkeit des Softwareentwurfs zu verbessern. Erreicht wird dies durch die Betrachtung des Lebenszyklusses und durch die Abdeckung aller Attribute eines Objektes in jedem Zustand.

Das Zusammenwirken der drei Modelle geschieht über die Objekte und die Aktionen. Jedes Objekt des Datenmodells wird im Zustandsmodell betrachtet. Jede Aktion des Zustandsmodells wird einer Funktion im Funktionenmodell zugeordnet.

Über den beschriebenen methodischen Rahmen hinaus beinhaltet "Animos" auch die Werkzeugunterstützung der Methode. Hierbei handelt es sich in erster Linie um grafische Unterstützung der Entwurfsaktivitäten. Beispielsweise wird für das Datenmodell ein intelligenter ERM-Editor erstellt. Die Ergebnisse des Softwareentwurfs werden über ein entsprechend ausgerichtetes Werkzeug dokumentiert.

Die Entwicklung und vor allem die Wartung werden wirksam durch Querverweise unterstützt, die alle Beziehungen der Modelle untereinander verwalten. Analyse- und Simulationsmöglichkeiten werden angeboten. Die insgesamt praxisgerechte Handhabbarkeit der Werkzeuge wird durch eine einheitliche Benutzungsoberfläche gewährleistet.