Session D-PATT
Anwendung von Mustern (Patterns) in der OO-Analyse
Ulli Gellesch
Starbright Software
Einführung
Es hat sich in der Praxis gezeigt, daß es in der Analyse, genauso wie beim Softwaredesign, immer wiederkehrende Problemstellungen und bereits dafür vorhandene Lösungen gibt. Um schneller und effektiver zu Lösungen zu kommen, ist es sinnvoll nicht immer wieder das Rad von vorne zu entwickeln. So wie man sich Bibliotheken im Softwaredesign anlegt, die fertige Lösungen für bestimmte Probleme respektive Problembereiche enthalten, so kann man auch auf fertige Muster in der Analyse zurückgreifen.
Martin Fowler und Altmeister Peter Coad haben sich hier besonders hervorgetan und der 'Gemeinde' fertige Muster zur Verfügung gestellt.
Muster
Ein Muster (pattern) ist ganz allgemein ausgedrückt eine Idee oder Sache die sich in einem definierten Zusammenhang als erfolgreich und nützlich erwiesen hat. Das heißt, daß ein Muster irgendwo bereits real existiert. Um Muster zu kategorisieren, damit sie für andere nutzbar werden ist es wichtig die folgenden Angaben über das Muster zu machen:
- Angabe des Kontextes in dem das Muster genutzt wird
- Angabe des Problems, das durch das Muster gelöst wird
- Angabe der Kräfte die bei der Lösung behandelt werden müssen
- Angabe des Lösungsweges der zum geforderten Ergebnis führt
Interessant werden Muster aber erst, wenn sie einen gewissen Abstraktionsgrad haben und damit eine Problemlösung für eine Menge ähnlicher Probleme darstellen. Wenn diese Abstraktion gegeben ist, dann läßt sich das Muster als standardisierte Lösung von bestimmten Problemen einsetzen. Je nach Abstraktionsgrad kann man unterscheiden zwischen allgemeinen Mustern und anwendungsspezifischen Mustern.
Beispiele für Muster nach H. Balzert
Liste
Kontext: Jede Liste hat einen Listenkopf und eine Anzahl Listenelemente
Gelöstes Problem: Rechnung -> Rechnungspositionen
Eigenschaften:
Komposition
Nur eine Teilklasse
Teil-Objekte bleiben Aggregatobjekte fest zugeordnet
Attribute des Aggregatobjektes gelten für jedes Teilobjekt
Exemplartyp
Kontext: Alle Exemplare haben mindestens ein gleiches Attribut
Gelöstes Problem: Bibliothek
Eigenschaften:
Einfache Assoziation
Keine Änderung der Verbindung, nur löschen möglich
Attribut kann ohne Exemplar bestehen
Baugruppe
Kontext: Alle Teile gehören zu einem Objekt
Gelöstes Problem: Auto -> Motor, Räder,Lenkrad,Karosserie...
Eigenschaften:
Teile sind physische Objekte
Komposition
Objekt nur vollständig wenn alle Teile existent

Stückliste
Kontext: Alle Objekte bestehe aus Gruppen von Einzelteilen oder Einzelteilen
Gelöstes Problem: Dateiverwaltung
Eigenschaften:
Komposition
Aggregat und Teilobjekte müssen sowohl als Einheit
als auch als Einzelnes Objekt behandelt werden können
Teil-Objekte können anderen Aggregatobjekten zugeordnet werden

Koordinator
Kontext: Merkt sich 'WER WEN KENNT'
Gelöstes Problem: Prüfungsbeleg an Schule
Eigenschaften:
Rollen
Kontext: Assoziatives Objekt nimmt gegenüber anderen Objekten verschieden Rollen ein
Gelöstes Problem: Konferenz -> Sprecher ist Sprecher und Teilnehmer
Eigenschaften:
Zwischen zwei Klassen bestehen mehrere Assoziationen
Objekt kann in Bezug auf andere Objekte verschieden Rollen einnehmen
Objekte können verschiedene Rollen einnehmen, haben aber immer dieselben Methoden

Wechselnde Rollen
Kontext: Objekt ist zu verschiedenen Zeiten ein anderes Objekt
Gelöstes Problem: Personalverwaltung
Eigenschaften:
Objekt kann zu verschiedenen Zeiten verschiedene Rollen spielen
In jeder Rolle verschieden Eigenschaften und Methoden
Unterschiedliche Rollen werden geerbt

Historie
Kontext: Aktivitäten eines Objektes zeitbezogen speichern
Gelöstes Problem: Reederei ->Schiffsbewegungen
Eigenschaften:
Es liegt einfache Assoziation vor
Für jeden Vorgang ist der Zeitraum festzuhalten

Gruppe
Kontext: Mehrere Objekte gehören zu einem übergeordneten Objekt
Gelöstes Problem: Personalverwaltung
Eigenschaften:
Es liegt einfache Assoziation vor
Mehrere Objekte gehören zum gleichen Zeitpunkt zum selben Objekt
Objektverbindungen können auf- und abgebaut werden

Gruppenhistorie
Kontext: Dokumentation der Gruppenzugehörigkeit über einen Zeitraum
Gelöstes Problem: Personalverwaltung
Eigenschaften:
Literaturhinweise:
Analysemuster
Martin Fowler
1999
Addison Wesley
Lehrbuch der Objektmodellierung
1999
Spektrum
Pattern orientierte Software Architektur
1998
Addison Wesley
|