Booch-Methode

Das System wird durch mehrere Modelle beschrieben, die verschiedene Aspekte darstellen.
 
Das logische Modell beinhaltet die Klassen- und Objektstruktur:

• Das Klassenmodell enthält die statische Architektur des Systems.
• Das Objektdiagramm enthält Informationen über die Interaktion der Klassen (siehe Klasse) und Objekte (siehe Objekt) untereinander. Es beschreibt das dynamische Verhalten des Systems.


Das physikalische Modell beschreibt die Zuordnung von Klassen und Objekten zu Modulen und Prozessen:

• Modularchitektur
• Prozessarchitektur


Das Klassenmodell enthält Klassen und die Assoziationen zwischen ihnen. Klassen werden durch gestrichelte Wolken dargestellt. Die Attributtypen einer Klasse können selbst Klassen sein.

Es werden sechs verschiedene Arten von Assoziationen zwischen Klassen unterschieden:

• allgemeine Assoziation
Vererbung (dargestellt durch einen Pfeil, die Pfeilspitze weist auf die Superklasse, ein Dreieck mit einem V bedeutet, dass es sich bei der Klasse an der Pfeilspitze um eine virtuelle Superklasse handelt. Bei Mehrfachvererbung von einer virtuellen Superklasse sind die Attribute der Superklasse nur einmal in der Subklasse enthalten),
Aggregation (mit gefülltem Kreis bei der Klasse, die die Rolle des "Ganzen" spielt),
• Using (mit Kreis bei der Klasse, die eine andere verwendet),
• Instantiation (Konkretisierung von Templates),
• Metaklasse


Das Objektdiagramm enthält Objekte und Pfeile zwischen diesen, die den Nachrichtenfluss darstellen. Die Pfeile können nummeriert werden, dann werden die Nachrichten in einer zeitlichen Folge dargestellt. Mit dem Objektdiagramm wird der Informationsfluss modelliert.

Alternativ kann der Informationsfluss durch Interaktionsdiagramme beschreiben werden. Bei diesen liegt der Schwerpunkt auf der zeitlichen Folge des Nachrichtenaustauschs.

Das System wird in einem iterativen Prozess erstellt, mit den folgenden Phasen (Makroprozess):

1. Entwickeln des Konzepts (grundlegende Anforderungen),
2. Analyse (Erstellen eines Modells mit dem gewünschten Verhalten),
3. Design (Entwickeln der Architektur),
4. evolutionsartige Implementierung,
5. Maintenance.


Jede der Makrophasen wird in Untertätigkeiten aufgeteilt (Mikroprozess):

1. Klassen und Objekte identifizieren,
2. Semantik der Klassen und Objekte festlegen,
3. Zusammenhänge zwischen den Klassen und Objekten identifizieren,
4. Festlegen der Schnittstellen und Implementierung.