Siehe auch Heide Balzert: Lehrbuch der Objektmodellierung. 9. Analyse Muster 1 Der Unterschied von Analyse und Design Pattern besteht auch in der zeitlichen Abfolge. Analyse Muster werden in der Analyse Phase zum Definieren des fachlichen Modells beigezogen. Design Pattern werden erst in der Design Phase eingesetzt, wenn es darum geht die Gesamt-Lösung (Architektur) zu entwerfen (bzw. die konkrete Umsetzung zu definieren). 9. Analyse Muster 2 Ein Analyse Muster beschreibt also eine Lösung für eine typische Teilaufgabe bei der Erstellung eines fachlichen Modells (d.h. in der Analyse Phase). Entwurfs Muster sind hingegen eher implementierungs-orientierte Muster. Sie geben Antwort auf die Frage: „Wie realisiere ich diese Klassenbeziehung?“ 9. Analyse Muster 3 Analyse Pattern helfen dabei, eine Struktur in die (oft amorphe) Menge von benötigten Information zu bringen. Design Pattern können dann Hinweise geben, wie das GesamtSystem konkret implementiert werden soll. 9. Analyse Muster 4 Typische Listen Muster kommen vor bei Bestellungen (Bestell-Kopf und die einzelnen Bestellpositionen), bei Aufträgen (Gesamtauftrag und die einzelnen EinzelAufträge/Aufgaben) oder bei Projekten (Gesamt-Projekt und einzelne Projekt-Schritte). Alle Listenelemente haben den gleichen Typ (tragen die gleichen Informationen). Die Listenelemente machen nur als Teil der Liste einen Sinn. 9. Analyse Muster 5 Weitere Listen treten zum Beispiel auf bei Auftrag -> Auftragspositionen -> EinzelAuftrag 9. Analyse Muster 6 Auch bekannt als Item / Item-Description Analyse-Muster (Peter Coad et al.: „Object Models: Strategies, Patterns, and Applications“, Prentice Hall, 1996 ) Beispiele von Exemplaren sind die Bücher einer Bibliothek, die Autos einer Autovermietung, die Veranstaltungen einer Schule oder Organisation, die DVDs einer Videothek… Die Unterscheidung der verschiedenen Exemplare ist dabei nötig, um die Ausleihe oder die Registrierung an ein konkretes Exemplar/eine konkrete Kopie zu verknüpfen. Die Beschreibungsklasse existiert unabhängig von den Exemplaren. Die Exemplare sind nicht Teil eines Beschreibungsobjekts, daher ist es keine Komposition. 9. Analyse Muster 7 In der Beschreibungsklasse werden alle gemeinsamen Informationen der Exemplare (des Buches, des Films, des Autos, des Kurses) gesammelt. Die Beschreibungsklasse heisst daher oft xxxDescription, xxxSpecification oder xxxType. In der Exemplar-Klasse (Book, Car, Film, Course) sind dann die spezifischen Informationen dieser speziellen Kopie erfasst (die Identifikations- oder Registrierungsnummer, die Versions- oder Seriennummer, das Veranstaltungsdatum, …). Üblicherweise hat die Exemplar-Klasse nur noch wenige Attribute. Die Ausleihe oder Registrierung ist dann an mit spezifischen Exemplar/einer spezifischen Kopie verknüpft. Ein mögliches Objekt-Diagramm zum Bibliothek-Beispiel wäre: 9. Analyse Muster 8 Ein Beispiel wäre ein Flugzeug, welches aus dem Tragwerk, dem Rumpfwerk, dem Leitwerk, dem Steuerwerk und dem Fahrwerk besteht. Das Tragwerk besteht aus den Flügeln und den Landeklappen. Landeklappen bestehen aus Sperrklappen, Querruder, … 9. Analyse Muster 9 9. Analyse Muster 10 Ein Computer besteht aus einem oder mehreren Prozessoren, Schnittstellen, einem Monitor, einer Tastatur, …, welche selber ebenfalls wieder aus kleineren Teilen zusammengesetzt sind. Auch ein Flugzeug besteht aus verschiedenen physischen Teilen. Ein Motor eines Flugzeugs oder ein Monitor eines Computers könnte aber prinzipiell auch ausgetauscht oder in einem anderen Flugzeug/Computer eingebaut werden. 9. Analyse Muster 11 Im Gegensatz zur Baugruppe, wo eine strenge Hierarchie herrscht, kann bei einer Stückliste jedes Teil als Gesamtes oder als Teil eines anderen Teils auftreten. Ein Flugzeug besteht aus Flugzeugteilen, aber nicht aus einzelnen Flugzeugen. Jeder Knoten eines Baumes kann hingegen selber wieder Knoten enthalten. Jeder Teilbaum hat einen Wurzel-Knoten, das heisst, jeder Knoten kann ein Ganzes repräsentieren. 9. Analyse Muster 12 Ein Directory kann Directories, Links oder Files enthalten. Ein Directory kann in einem Directory enthalten sein, muss aber nicht. 9. Analyse Muster 13 Ein Komponenten Baum ist ein Spezialfall einer Stückliste, da er aus lauter gleichartigen Objekten besteht. 9. Analyse Muster 14 Im Gegensatz zum Baugruppen Beispiel leiten hier alle Computerteile von einem Interface (oder einer abstrakten Klasse) Computer-Component ab. Alle Teile haben damit ähnliches Verhalten. Eine Stückliste kann, muss aber nicht aus einheitlichen Teilen (Komponenten) zusammengesetzt sein. 9. Analyse Muster 15 Ein Koordinator wird eingesetzt, um mehrstellige Assoziationen durch zwei einfache Assoziationen und eine (Vermittler-)Klasse zu ersetzen. 9. Analyse Muster 16 Im Objekt-Diagramm sehen wir, dass jede Registrierung zu einem Kurs und zu einem Studenten gehört. Die Note (Rating) gehört dann zu einem konkreten Kursbesuch, kann also zu der Registration-Klasse assoziiert werden. 9. Analyse Muster 17 Das Rollen Analyse Muster kommt sehr oft im Zusammenhang mit Personen zum Einsatz, welche zu verschiedenen Zeiten verschiedene Aufgaben wahrnehmen. 9. Analyse Muster 18 Die Anzahl verschiedener Rollen sollte nicht zu gross sein (z.B. weniger als 10), sonst sollte eine Koordinator-Klasse benutzt werden. Falls für einzelne der verschiedenen Rollen Zusatzinformationen nötig sind, ist eine Lösung mit Subtypen zu überlegen -> wechselnde Rollen. 9. Analyse Muster 19 In einer Abteilung kann abwechselnd jemand anders die Leitung übernehmen. In einem Kurs können die Redner auch Kurs-Teilnehmer sein. 9. Analyse Muster 20 Im Unterschied zum Rollen Analyse Muster haben die Objekte der Wechselnden Rollen unterschiedliche Eigenschaften (zusätzliche Attribute oder Operationen). 9. Analyse Muster 21 Der gleiche Mitarbeiter kann zu verschiedenen Zeiten verschiedene Rollen (Zustände) wahrnehmen. In den verschiedenen Rollen haben die Mitarbeiter andere Eigenschaften und Aufgaben, (Attribute/Operationen). 9. Analyse Muster 22 Beispiele von historisierten Daten: Die(der) sich mit der Zeit ändernde - Gehaltsgruppe - Adresse einer Person - Gruppenzugehörigkeit - Arbeitgeber (Lebenslauf) - Preis einer Ware für welche der gesamte Datenverlauf gespeichert werden soll. 9. Analyse Muster 23 Im Rollen Analyse Muster wird keine Historie geführt, das heisst, es ist nicht bekannt, welche Rollen diese Person zu welchem Zeitpunkt eingenommen hat. Die Historie hingegen speichert die ganze Vorgeschichte. 9. Analyse Muster 24 Die verschiedenen (Teilzeit) Anstellungen können sich prinzipiell zeitlich überlappen. Zu jedem Zeitraum gibt es mindestens eine Anstellungsart. Jeder Anstellungswechsel führt zu einem neuen Anstellungs-Objekt. 9. Analyse Muster 25 Im Gegensatz zur Liste können die Objekte einer Gruppe dieser beitreten und diese Gruppe auch wieder verlassen. Ausserdem kann die Gruppe auch (zum Beispiel am Anfang) keine Mitglieder haben. 9. Analyse Muster 26 9. Analyse Muster 27 Die Angestellten gehören jeweils zu einer oder mehreren Projekt Gruppen. Dies kann je nach Zeitpunkt wechseln und muss nicht historisiert werden. Ein Angestellten kann auch keiner oder mehreren Projekt Gruppen gleichzeitig angehören. 9. Analyse Muster 28 Analog zur Historie wird bei der Gruppenhistorie die ganze Vorgeschichte gespeichert. 9. Analyse Muster 29 9. Analyse Muster 30 Die Angestellten gehören jeweils zu einer oder mehreren Projekt Gruppen. Dies kann je nach Zeitpunkt wechseln und wird historisiert. Ein Angestellter kann auch keiner oder mehreren Projekt Gruppen gleichzeitig angehören, oder mehrfach (zu verschiedenen Zeitpunkten) zur gleichen Gruppe. 9. Analyse Muster 31