OOA-Muster (Architektur Pattern) Ein Pattern (Entwurfsmuster) ist ein Problem mit seiner Lösung in einem Kontext. Der Kontext enthält in der Regel Zielkonflikte, die der Designer lösen muss, z.b. Performance gegen Kosten oder Einfachheit gegen Wartbarkeit. Ein eigenes Design, das man einmal gemacht hat und das man in der Form von Patterns beschreibt, ist noch lange kein Pattern (es fehlen die sog. Known Uses) Eine Lösung zu einem häufig auftretenden Problem ist noch lange kein gut geschriebenes Pattern, wenn die Zielkonflikte und die Konsequenzen der Lösung nicht erläutert sind (es fehlen die sog. Forces und Consequences) Seite 1
OOA-Muster (Pattern): Liste (Container/Collection) Lagerliste Nummer 4 Störungsstatus OK X Koordinate Y Koordinate Belegt Status Sperrkennzeichen Regalseite 50 100 frei kein A 50 200 belegt kein A 50 300 frei kein A Es liegt eine Komposition vor Ein Ganzes besteht aus gleichartigen Teilen, d.h. es gibt nur eine Teil-Klasse Teil-Objekte bleiben einem Aggregat-Objekt fest zugeordnet Sie können jedoch gelöscht werden, bevor das Ganze gelöscht wird Seite 2
OOA-Muster (Pattern): Exemplar (Typ-Objekt) Einfache Assoziation Einmal erstellte Objektverbindungen werden i. Allg. nicht verändert Sie werden nur gelöscht, wenn das betreffende Exemplar entfernt wird Der Name der neuen Klasse enthält oft Begriffe wie Typ, Gruppe, Beschreibung, Spezifikation Eine Beschreibung kann zeitweise unabhängig von konkreten Exemplaren existieren, deshalb 0..* Würde auf die neue Klasse verzichtet, so würde als Nachteil lediglich die redundante»speicherung«von Attributwerten auftreten. Seite 3
OOA-Muster (Pattern): Baugruppe Es handelt sich um physische Objekte Es liegt eine Komposition vor Objektverbindungen bestehen über eine längere Zeit Ein Teil-Objekt kann von seinem Aggregat- Objekt getrennt werden und einem anderen Ganzen zugeordnet werden Ein Ganzes kann aus unterschiedlichen Teilen bestehen. Seite 4
OOA-Muster (Pattern): Stückliste (Composit-Component) Es liegt eine Komposition vor Das Aggregat-Objekt und seine Teil-Objekte müssen sowohl als Einheit als auch einzeln behandelt werden können Teil-Objekte können anderen Aggregat-Objekten zugeordnet werden Die Kardinalität bei der Aggregat- Klasse ist 0..1 Ein Objekt der Art A kann sich aus mehreren Objekten der Arten A, B und C zusammensetzen Objekt-Diagramm: Seite 5
OOA-Muster (Pattern): Stückliste (Composit-Component) Der Sonderfall der Stückliste ist, dass ein Stück nicht aus Objekten unterschiedlicher Art, sondern nur aus einer einzigen Art besteht Seite 6
OOA-Muster (Pattern): Koordinator Es liegen einfache Assoziationen vor Koordination wird verwendet, wenn die Attribute einer m:n- Beziehung gespeichert werden müssen Die Koordinator-Klasse ersetzt eine n-äre (n >= 2) Assoziation durch binäre Assoziationen mit assoziativer Klasse Die Koordinator-Klasse besitzt kaum Attribute/Operationen, sondern mehrere Assoziationen zu anderen Klassen, i. Allg. zu genau einem Objekt jeder Klasse. Seite 7
Übung: Um welche OOA-Muster handelt es sich bei den folgenden Klassendiagrammen? Seite 8
OOA-Muster (Pattern): Rollen Objektmodell: Zwischen 2 Klassen existieren 2 oder mehrere einfache Assoziationen Ein Objekt kann zu einem Zeitpunkt in Bezug auf die Objekte der anderen Klasse verschiedene Rollen spielen Objekte, die verschiedene Rollen spielen können, besitzen unabhängig von der jeweiligen Rolle die gleichen Eigenschaften und ggf. gleiche Operationen. Seite 9
OOA-Muster (Pattern): Wechselnde Rollen Ein Objekt der realen Welt kann zu verschiedenen Zeiten verschiedene Rollen spielen In jeder Rolle kann es unterschiedliche Eigenschaften (Attribute, Assoziationen) und Operationen besitzen Die unterschiedlichen Rollen werden mittels Vererbung modelliert Objektverbindungen zwischen dem Objekt und seinen Rollen werden nur erweitert, d.h. weder gelöscht noch zu anderen Objekten aufgebaut. Seite 10
OOA-Muster (Pattern): Historie Es liegt eine einfache Assoziation vor Für ein Objekt sind mehrere Vorgänge bzw. Fakten zu dokumentieren Für jeden Vorgang bzw. jedes Faktum ist der Zeitraum festzuhalten Aufgebaute Objektverbindungen zu den Vorgängen bzw. Fakten werden nur erweitert Die zeitliche Restriktion {t#k} (k = gültige Kardinalität) sagt aus, was zu einem Zeitpunkt gelten muss, wobei # für die Vergleichsoperationen =, <, >, <=, >= und steht. Seite 11
OOA-Muster (Pattern): Gruppe(nhistorie) Bei der Gruppe liegt eine einfache Assoziation vor Mehrere Einzel-Objekte gehören zu einem Zeitpunkt zum selben Gruppen-Objekt Es ist jeweils zu prüfen, ob die Gruppe zeitweise ohne Einzel-Objekte existieren kann oder ob sie immer eine Mindestanzahl von Einzel-Objekten enthalten muss Objektverbindungen können auf- und abgebaut werden. Wenn ein Einzel-Objekt im Laufe der Zeit zu unterschiedlichen Gruppen- Objekten gehört, wird die Historie mittels einer assoziativen Klasse modelliert, dadurch ist die Zuordnung zwischen Einzel-Objekten und Gruppen deutlich sichtbar Da Informationen über einen Zeitraum festzuhalten sind, bleiben bei der Gruppenhistorie erstellte Objektverbindungen bestehen und es werden nur Verbindungen hinzugefügt Seite 12
Model View Controller (MVC) - Konzept Als Model wird die Datenquelle bezeichnet, die Daten unabhängig vom Erscheinungsbild liefert (also beispielsweise aus einer relationalen Datenbank) Die View zeigt diese Daten dann in passender Art und Weise an (z.b. als Tabelle in einer Java-Applikation) Der Controller kümmert sich um die Interaktion mit dem Benutzer (das Verhalten der Komponente). Seite 13
MVC Beispiel: Web-Registrierung Der Benutzer (Client) fragt als erstes die Seite register.jsp an. Das Formular in der Antwort enthält als?action? die validate.jsp. Also schickt der Browser die eingegebenen Daten an die validate.jsp. Die prüft die eingegebenen Werte und gibt dazu die Kontrolle an die entsprechenden Views weiter: an register.jsp (mit Fehler-Hinweis), wenn die Eingaben ungültig waren, sonst an die ok.jsp (mit Erfolgsbestätigung) an. Sind die Eingaben korrekt, werden die Daten zur Speicherung an die UsersBean übergeben. Seite 14
Anhang: Lösungen der Übungsaufgabe Seite 8 : Bus Fahrgast: Baugruppe (?) Vermietung: Koordinator Buch Buchexemplar: Exemplar Seite 15