ProgrammierPraktikum SS99

Das Produktmodell

Ein Produktmodell im Sinne der Softwaretechnik ist natürlich kein Holz- oder Plastikmodell. Es ist eine sehr viel mehr formalisierte Beschreibung des Produktes, die ggf. ein (Teil-)Problem löst, und die auch die Implementation schon vorbereitet. Alle werden schon intuitiv Modelle gebaut haben, ohne sich darüber im klaren zu sein. Ich gebe zunächst ein Beispiel:

Beispiel

Modelliert werden soll ein einfaches Aufzugsystem: Es gibt nur Erdgeschoß und erste Etagen, pro Etage einen einen Rufknopf und Fahrknopf im Aufzugkorb. Türen, Anzeigen etc. werden nicht modelliert, um das Beispiel eifach zuhalten.

1. Modell, in freiem Pseudocode

 if {keine eingabe}
  then {so bleiben}
  else 
   if {Knopf oben gedrückt}
    then
     if {Korb unten}
      then {fahre hoch}
      else 
     fi
   else
    if {Knopf unten gedrückt}
     then
      if {Korb oben}
       then {fahre hoch}
       else -
      fi
     else
      if {Knopf im Korb gedrückt}
       then
        if {Aufzug oben}
         then {fahre herunter}
         else {fahre hoch}
        fi
      fi
     fi
   fi
 fi
   
	

2. Modell, als endlicher Automat

BSP Zustandsautomat

Unser Aufzug hat zwei Zustände, die beide auch mögliche Endzustände sind: Aufzugkoirb oben bzw. Aufzugkorb unten. Drücken eines der drei Knöpfe ändert den Zustand, oder eben nicht. Genau dies dynamische Antwortverhalten modelliert gut der nebenstehende Zustandautomat.

3. Modell, als Klassendiagramm

BSP Klassendiagramm Diese Darstellung beschreibt mehr die statische Perspektive der Einzelteile im System und dessen Zusammenhang. Dieses Konzept der Modellierung ist eng mit der objektorientierten Programmierung verknüpft. Neben den nach aussen unsichtbaren Attributen einer Klasse, die den Objektzustand beschreiben, gibt es für jede Klasse durch Botschaften anderer Objekte ausgelöste Operationen, die den inneren Zustand eines Objektes ändern und ggf. Botschaften an Objekte anderer Klassen senden. In der Modellierung hier wird durch das Attribut 'in Betrieb' auch die endliche Dauer der Aufzugkorbbewegung mit berücksichtig. Die Methode fahre kann zum Beispiel erst dann beendet sein, wenn 'in Betrieb=false' ist.

Im Produktmodell müssen verschiedene Sichten und ihre Zusammenhänge beschrieben werden: Daten, Funktionen, Dynamik und Benutzeroberfläche. Die Komplexitätsschwerpunkte legen die Basiskonzepte der Modellierung fest, z.B. muß ein Modell für ein System mit merh als 1000 Funktionen diese auch darstellen können, und es bietet sich etwa die Modellierung dieses Aspektes durch einen Funktionsbaum an.
Es existieren eine ganze Reihe von (z.T. bereits lange bekannten) Basiskonzepten, die sich dadurch auszeichnen, daß sie atomar, konzeptionell unabhängig, phasenübergreifend und in unterschiedlichen Kontexten einsetzbar sind. Ich stelle hier die bekannteren vor, mit einer Einordnung zu den Sichten, und einer Angabe, in welcher Phase sie engesetzt werden können (D=Definitionsphase, E=Entwurfsphase und I=Implementierungsphase). Die hervorgehobenen Basiskonzepte werden in der objektorientierten Analyse eingesetzt, bzw. sind implizit in ihr enthalten.

Basiskonzept Phase Sicht
Funktionsbaum DE funktionale Sicht
Datenflußdiagramme D
Data Dictionary DEI Datenorientierte Sicht
Entity Realtionship (ER) D
Klassendiagramm DEI Objektorientierte Sicht
Pseudocode DI Algorithmische Sicht
Regeln DI Regelbasierte Sicht
Zustandsautomat DE Dynamische Sicht
Petri-Netz D
Interaktionsdiagramm DE Ablauforientierte Sicht

Die auf ein Problem am besten zugeschnittene Kombination von Basiskonzepten sollte gewählt werden. Es gibt Bündelungen zu echten Gesamtkonzepten, aktuell sind da:
Strukturierte Analyse (SA, 1979),
mit den Basiskonzepten Datenflußdiagramm für den Informationsfluß, Data Dictionary für die Datenstrukturen und Entscheidungstabelle, -bäume und Pseudocode für die Kontrollstrukturen.
Real Time Analysis (RA, ca. 1987)
Aufbauend auf der SA, wobei Zustandsautomaten und Entity-Relationship (ER) als Basiskonzepte hinzukommen
Objektorientierte Analyse (OOA, 1990)
als neueres Konzept mit den Basiskonzepten ER für die Beziehungen, Klassendiagramm für die (Daten-)Strukturen, Pseudocode für die Kontrollstrukturen, Zustandsautomat und Interaktionsdiagramm für die Interaktionsstrukturen.
Wir können in diesem Kurs leider nicht intensiv auf alle Konzepte eingehen. Funktionsbaum, Data Dictionary und ER werden im Nebenzweig kurz erklärt. Die zentralen Basiskonzepte zur Objektorientierte Analyse OOA werden im Hauptzweig erläutert, für die anderen Konzepte mögen die angegebenen Beispiele reichen. und konzentrieren uns auf die OOA und die notwendig damit verbundenen Basiskonzepte.
Das Logo des SP ist an die Notation der Zustandsautomaten angelehnt.




[vorige Seite] [nächste Seite] [Nebenzweig] [Inhalt] [Literatur] [Stichworte]
Dietmar Lammers
Last modified: Fri Apr 30 13:33:02 MET DST 1999