Object Modeling Technique

Rumbaugh beschreibt in seiner Methode (OMT) ein Informationssystem durch drei Modelle:
 
• das Objektmodell (object model) mit Klassen-Diagrammen (class diagram) und Instanz-Diagrammen (instance diagram),
• das dynamische Modell (dynamic model) und
• das funktionale Modell (functional model).

Das Objektmodell beschreibt die statische Struktur des Systems. Es beschreibt die vorkommenden Objekte und die Relationen zwischen ihnen.

Das dynamische Modell spezifiziert die Veränderung des Systems mit der Zeit. Es legt fest, welche Operationen in welcher Reihenfolge ausgeführt werden können und wie sich der Zustand des Systems dadurch ändert.

Das funktionale Modell beschreibt die Operationen genauer, in dem es festlegt, wie die Daten durch das System und seine Teilsysteme verändert werden.

Das Objektmodell beschreibt was verändert wird, das dynamische Modell beschreibt wann die Daten verändert werden und das funktionale Modell spezifiziert, wie die Daten verändert werden.


Objektmodell

Das Objektmodell ist ein objekt-orientiertes Datenmodell, es enthält Klassen (siehe Klasse) und Assoziationen (siehe Assoziation). Klassen werden durch Rechtecke dargestellt, Assoziationen (Relationen) zwischen Klassen durch eine Linie (siehe Abbildung 1).

Ternäre Relationen werden durch eine Raute (siehe 4 in Abbildung 2) repräsentiert.

Die Aggregation ist eine spezielle Relation, die das Enthaltensein ausdrückt. Im in der Abbildung 3 enthält jede Instanz der Klasse (1) eine Instanz der Klasse (2).

Relationen können auch Klassen sein (Abbildung 4).

Kardinalitäten werden durch die Linienenden ausgedrückt (Abbildung 5).

(1) jede Instanz der Klasse ist genau einmal an der Relation beteiligt.
(2) jede Instanz der Klasse ist höchstens einmal an der Relation beteiligt.
(3) jede Instanz der Klasse ist beliebig oft an der Relation beteiligt (auch 0 mal).
(4) jede Instanz der Klasse ist mindestens einmal an der Relation beteiligt.
(5) jede Instanz ist mindestens n-mal und höchstens m-mal an der Relation beteiligt.

Klassen und Relationen können durch Bedingungen eingeschränkt werden (Abbildung 6).

Die Rolle einer Klasse in einer Relation kann durch Rollenbezeichner angegeben werden (Abbildung 7).

Vererbung wird durch die in Abbildung 8 gezeigte Darstellungsform dargestellt. Klasse (1) ist Superklasse von (2) und (3), die Klassen (2) und (3) sind disjunkt. Sind die Subklassen nicht disjunkt, ist das Dreieck ausgefüllt.


Dynamisches Modell

Das dynamische Modell ist eine Art state chart (Zustandsübergangsdiagramm). Die Knoten repräsentieren Zustände, die Kanten Ereignisse.

Einem Zustand können Aktivitäten (activities) zugeordnet werden, die während des Verweilens des Systems in einem Zustand ausgeführt werden. Aktivitäten sind potentiell lange andauernde Tätigkeiten.

Einem Zustand können auch Aktionen zugeordnet werden, die beim Betreten oder Verlassen des Zustands ausgelöst werden (die Unterscheidung erfolgt mit den Schlüsselworten entry und exit. Es gibt ausserdem noch das Schlüsselwort do, das eine Ausführung einer Aktivität während des Zustands ausdrücken soll.).

Einem Ereignis können Aktionen zugeordnet werden. Aktionen können im Unterschied zu Aktivitäten momentan ausgeführt werden.

Zustandsdiagramme können durch Komposition und Dekomposition in verschiedenen Detaillierungsgraden dargestellt werden.

Das dynamische Modell stellt Kontrollstrukturen dar. Es enthält Informationen darüber, unter welchen Bedingungen in welcher zeitlichen Reihenfolge welche Dienste eines Objekts ausgeführt werden können. Ein Zustand des Zustandsübergangsdiagramms wird dabei als Abstraktion der Attributwerte und Links eines Objekts verstanden. Aktionen und Aktivitäten sind Operationsfolgen.


Funktionales Modell

Das funktionale Modell beschreibt die Operationen genauer, die im Objektmodell und im dynamischen Modell lediglich namentlich genannt werden. Seine Bestandteile sind Prozesse, Datenflüsse, Handlungsobjekte (actor) und Datenspeicher.

Datenflüsse sind ein- und ausgehende Daten eines Prozesses.

Ein Prozess transformiert den (oder die) eingehenden Datenfluss zu einem ausgehenden Datenfluss. Ein Prozess kann durch Dekomposition ein weitere Datenflussdiagramme zerlegt werden. Auf der untersten Ebene erfolgt die Beschreibung eines Prozesses durch so-genannte Minispecs. Bei den Minispecs handelt es sich um beliebige Kontroll- bzw. Datenflussbescheibungen, wie z.B. Pseudocode, Entscheidungstabellen u.a.. Jeder Prozess unterster Ebene wird durch die Operation eines Objekts implementiert.

Ein Handlungsobjekt (actor) ist eine Person oder Komponente des Informationssystems. Sie entspricht einer Instanz (ein Objekt) im Objektmodell. Handlungsobjekte stellen die Quellen und Senken des Datenflusses dar.

Datenspeicher entsprechen Objekten des Objektmodells oder Objektfragmenten. Den Datenflüsse in einen Datenspeicher entsprechen Aktualisierungsoperationen dieser Objekte. Entsprechend sind Datenflüsse aus einem Datenspeicher seiteneffektfreie Abfrageoperationen. Datenflüsse sind Werte oder Objekte.

Datenflusspläne zeigen alle möglichen Datenflüsse zwischen den Prozessen, sie geben keine Auskunft über die Bedingungen unter denen die Datenflüsse stattfinden. Derartige Bedingungen oder Kontrollinformationen werden durch control flows (gestrichelte Pfeile im DFD) dargestellt.


Phasen der Software-Entwicklung

1. Analyse
1.1. Problembeschreibung
1.2. Objektmodell erstellen
1.2.1. Objektklassen identifizieren und die geeigneten ins Modell übernehmen
1.2.2. Data Dictionary vorbereiten
1.2.3. Assoziationen identifizieren und die geeigneten ins Modell übernehmen
1.2.4. Attribute identifizieren und die geeigneten ins Modell übernehmen
1.2.5. Verfeinern durch Vererbung
1.2.6. Zugriffspfade testen
1.2.7. Objektmodell überarbeiten
1.2.8. Klassen zu Modulen gruppieren
1.3. Dynamisches Modell erstellen
1.3.1. Szenarios vorbereiten
1.3.2. Ereignisse identifizieren
1.3.3. Zustandsdiagramm entwickeln
1.3.4. Ereignisse zwischen Objekten abgleichen
1.4. Funktionales Modell erstellen
1.4.1. Ein- und Ausgabewerte identifizieren
1.4.2. Datenflussdiagramm entwickeln
1.4.3. Funktionen beschreiben
1.4.4. Optimierungskriterien spezifizieren
1.5. Operationen hinzufügen
1.5.1. aus dem Objektmodell,
1.5.2. aus den Ereignissen,
1.5.3. aus den Zustandsaktionen und -aktivitäten,
1.5.4. aus den Funktionen und
1.5.5. um die Operationen eines Objekts abgeschlossen zu machen.
1.6. Überarbeiten der Analyse
1.6.1. Analysemodell verfeinern
1.6.2. Anforderungen umformulieren
2. Systementwurf
2.1. Aufbrechen des Systems in Teilsysteme
2.1.1. Schichten
2.1.2. Partitionen
2.2. Identifizieren von Parallelität
2.3. Teilsysteme auf Prozessoren und Tasks verteilen
2.3.1. Anforderungen an die Hardware-Ressourcen abschätzen
2.3.2. Zwischen Hard- und Software-Implementierung abwägen
2.3.3. Tasks auf Prozessoren verteilen
2.3.4. Physikalische Konnektivität festlegen
2.4. Datenspeicherverwaltung
2.5. Auswahl und Implementierung für die Steuerungssoftware
2.5.1. prozedurgesteuert
2.5.2. ereignisgesteuert
2.5.3. paralleles System
2.6. Behandlung von Grenzbedingungen
2.7. Festlegung von Kompromissprioritäten
3. Objektentwurf
3.1. Kombinieren der drei Modelle
3.2. Entwurf von Algorithmen
3.2.1. Algorithmen wählen
3.2.2. Datenstrukturen auswählen
3.2.3. Interne Klassen und Operationen definieren
3.2.4. Operationen die noch keiner Klasse zugeordnet sind zuordnen
3.3. Entwurfsoptimierung
3.3.1. Redundante Assoziationen für den effizienten Zugriff hinzufügen
3.3.2. Ausführungsfolgen aus Effizienzgründen neu anordnen
3.3.3. Abgeleitete Attribute speichern (um Neuberechnung zu vermeiden)
3.4. Steuerungsimplementierung
3.5. Anpassung der Vererbung
3.5.1. Klassen und Operationen neu anordnen
3.5.2. Über gemeinsames Verhalten abstrahieren
3.6. Entwurf von Assoziationen
3.6.1. Das Durchlaufen von Assoziationen analysieren
3.7. Objektrepräsentation festlegen
3.8. Physikalisches Packen
3.8.1. Module konstruieren
3.9. Dokumentation von Entwurfsentscheidungen


Anlage

Abbildung 1: Assoziation.

Anlage

Abbildung 2: Ternäre Assoziation.

Anlage

Abbildung 3: Aggregation.

Anlage

Abbildung 4: Assoziationsklasse.

Anlage

Abbildung 7: Rolle.

Anlage

Abbildung 8: Vererbung.

Anlage

Abbildung 5: Kardinalitäten.

Anlage

Abbildung 6: Einschränkungen.