3.4 Muster in der Objektorientierten Analyse Literatur: Balzert Band I, LE 13 Heide Balzert: Lehrbuch der Objektmodellierung, 1999 Martin Fowler: Analysis Patterns 1997 Scott Ambler: Building Object-Oriented Applications That Work, SIGS Books 1998 (Kap. 4) Technische Universität Dresden Dr. Santen / Prof. Hußmann Softwaretechnologie II Wiederverwendung mit Musterkatalogen • Ein Muster ist eine schematische Lösung für eine Klasse verwandter Probleme. • Darstellung eines Musters – Name, evtl. Synonyme – Problem » Motivation, Anwendungsbereich – Lösung(en) » Struktur (Klassendiagramm) » Bestandteile (schematische Klassen- und Objektnamen) » Beschreibung, evtl. Abläufe, z.B. Sequenzdiagramm – Diskussion » Vor- und Nachteile, Abhängigkeiten, Einschränkungen – Verwandte Muster (Ähnlichkeiten) Patterns Patternsare areaastarting startingpoint, point,not notaadestination. destination. Martin MartinFowler Fowler Technische Universität Dresden Dr. Santen / Prof. Hußmann Seite 1 Softwaretechnologie II Häufige Mißverständnisse zu Mustern • „Ein Muster ist eine Lösung für ein Problem in einem gegebenen Kontext.“ – Wichtig sind: Schema-Charakter, „erzieherischer Wert“, Name ! • • • • „Muster sind nur Jargon, Regeln, Programmiertricks, ...“ „Alle Muster sehen gleich aus.“ „Muster brauchen Werkzeugunterstützung.“ „Die Anwendung von Analyse- bzw. Entwurfsmustern erzeugt eine komplette Systemanalyse bzw. Systemarchitektur.“ • „Muster können nur mit objektorientierten Methoden eingesetzt werden.“ Technische Universität Dresden Dr. Santen / Prof. Hußmann Softwaretechnologie II Klassifikation von Mustern Muster ... ModellierungsMuster Universelle Muster Analysemuster Technische Universität Dresden OrganisationsMuster VorgehensMuster Phasenspezifische Muster Architekturmuster Entwurfsmuster Dr. Santen / Prof. Hußmann Seite 2 SprachIdiome Softwaretechnologie II Muster in der Analysephase Muster Modellierungsmuster Universelle Muster Phasenspezifische Muster Ein Analysemuster beschreibt eine Lösung für eine typische Teilaufgabe bei der Erstellung eines fachlichen Modells (d.h. in der Analysephase) Analysemuster Coad/North/ Mayfield 1995 Helmut Balzert I, LE 13, S. 379 Neben speziellen Analysemustern spielen auch universelle Muster eine große Rolle in der Analyse. Fowler 1997 Ambler 1998 Heide Balzert 1999 Technische Universität Dresden Dr. Santen / Prof. Hußmann Softwaretechnologie II Exemplar und Beschreibung • Universelles Muster (nach Coad et al. 95) • Engl. Name: Item-Item Description • Problem: Manche Attribute nehmen bei Instanzen immer wieder die gleichen Kombinationen von Werten an (Attribut-Abhängigkeit). • Lösung: Einführung einer neuen Klasse und einer Aggregationsbeziehung ("Klassen-Normalisierung"). ExemplarUndBeschreibung Attribute mit Abhängigkeiten Exemplar 0..* unabh. Attribute Technische Universität Dresden 1 Beschreibung separierte Attribute Dr. Santen / Prof. Hußmann Seite 3 Softwaretechnologie II Transformation mit Mustern: Beispiel • Typische Anwendungsform für Muster ("Refactoring"): – Finden verbesserungswürdiger Strukturen in Modellen – Ersetzen durch besser strukturierte Fassung Veranstaltung seminartitel preis vorkenntnisse ort datum Veranstaltung 0..* ort datum Technische Universität Dresden 1 Seminartyp seminartitel preis vorkenntnisse Dr. Santen / Prof. Hußmann Softwaretechnologie II Koordinator • Universelles Muster (nach Heide Balzert 99, Balzert 96) • Problem: Eine (zwei- oder mehrstellige) Assoziation besitzt Attribute, die zu keiner der beteiligten Klassen gehören. • Lösungen: (a) Verwendung der sogenannten "Assoziationsklassen" von UML (b) Einführung einer eigenen Koordinator-Klasse Klasse A X Y Klasse B Assoziationsattribute Klasse A Y Klasse K X Klasse B Assoziationsattribute Technische Universität Dresden Dr. Santen / Prof. Hußmann Seite 4 Softwaretechnologie II Koordinator: Beispiel Kunde hat gebucht 0..* Veranstaltung ort 0..* datum Buchungsdatum Buchungsstatus Technische Universität Dresden Dr. Santen / Prof. Hußmann Softwaretechnologie II Kombination von Musteranwendung Exemplar und Beschreibung Beschreibung 1 Koordinator hält Kunde Exemplar Koordinator 0..* Buchung 0..* für 0..* Datum Status Technische Universität Dresden Seminartyp seminartitel preis vorkenntnisse Dr. Santen / Prof. Hußmann Seite 5 Veranstaltung ort datum Softwaretechnologie II Abstrakte Oberklasse • Universelles Muster (nach Balzert 96) • Problem: Klassen enthalten Gruppen identischer Attribute und Operationen. • Lösung: Separieren der identischen Bestandteile in einer abstrakten Oberklasse. Klasse A Attributgruppe 1 Attributgruppe 3 Operat.gruppe 1 Operat.gruppe 3 Klasse B Attributgruppe 2 Attributgruppe 3 Operat.gruppe 2 Operat.gruppe 3 Klasse C {abstract} Attributgruppe 3 Operat.gruppe 3 Klasse A Attributgruppe 1 Operat.gruppe 1 Technische Universität Dresden Dr. Santen / Prof. Hußmann Klasse B Attributgruppe 2 Operat.gruppe 2 Softwaretechnologie II Abstrakte Oberklasse: Beispiel Person pers_nr name adresse geburtsdatum ersterfassung notizen drucke_Adresse drucke_Mitteilung drucke_Serienbrief Technische Universität Dresden Firma firma_nr name adresse rechtsform ersterfassung notizen drucke_Adresse drucke_Mitteilung drucke_Serienbrief Dr. Santen / Prof. Hußmann Seite 6 Softwaretechnologie II Rollen • Universelles Muster (angelehnt an Heide Balzert 99) • Problem: Es bestehen zwei oder mehr verschiedene Einsatzarten einer gegebenen Klasse. Unterklassenbildung würde "überlappende" Vererbung und damit Mehrfachzugehörigkeit von Objekten in Klassen erfordern. • Lösung: Einführung einer Assoziation zu einer "Rollen"-Klasse mit Multiplizität entsprechend der Einsatzarten. Zuordnung von Attributen der Einsatzarten zu den Rollenklassen. Klasse A Klasse A Rolle Klasse A1 attr11 attr12 Klasse A2 attr21 attr22 Technische Universität Dresden Rolle R1 attr11 attr12 Dr. Santen / Prof. Hußmann 1..2 Rolle R2 attr21 attr22 Softwaretechnologie II Rollen: Beispiel Lösung ohne Unterklassen ? Person pers_nr geburtsdatum Kunde rabattklasse Teilnehmer * Dozent honorar * Referent * * Veranstaltung ort datum Technische Universität Dresden Dr. Santen / Prof. Hußmann Seite 7 Softwaretechnologie II Wechselnde Rollen • Universelles Muster (nach Heide Balzert 99) • Problem: Ein Objekt einer Unterklasse A1 einer Oberklasse A kann in eine andere Unterklasse A2 von A wechseln. • Lösung: Einführung einer abstrakten Rollenklasse. • Variante des Musters „Rolle“ Klasse A Klasse A 1 Klasse A1 Rolle {abstract} Klasse A2 Rolle A1 Technische Universität Dresden Dr. Santen / Prof. Hußmann Rolle A2 Softwaretechnologie II Partei (Party) • Spezifisches Analysemuster (nach Fowler 97) • Problem: Organisationen und Personen spielen ähnliche Rollen gegenüber dem System • Lösung: Abstrakte Oberklasse "Partei". • Regel: Überprüfe bei Personen und Organisationen, ob es sich nicht um allgemeinere "Parteien" handelt. Partei {abstract} Telefonnummer Anschrift Email-Adresse Person Technische Universität Dresden Organisation Dr. Santen / Prof. Hußmann Seite 8 Softwaretechnologie II "Partei" vs. "Abstrakte Oberklasse" • Das Muster "Partei" ist ein Spezialfall des Musters "Abstrakte Oberklasse". • Gründe für separate Darstellung: – Orientierung auf Fachgebiet oder mehrere Fachgebiete – Fachterminologie – Geringerer Abstraktionsgrad • Spezifische Analysemuster sind meist Anwendungen und Zusammensetzungen universeller Muster. Technische Universität Dresden Dr. Santen / Prof. Hußmann Softwaretechnologie II Organisations-Hierarchie • Spezifisches Analysemuster (nach Fowler 97) • Engl. Name: Organization Hierarchies • Problem: Eine Organisation ist hierarchisch in Unterorganisationen gegliedert. • Lösung: Flexible Ordnungsassoziation • Spezialfall von "Komposit". Organisation Obereinheit Technische Universität Dresden Untereinheit 0..* 0..1 { Hierarchie } Dr. Santen / Prof. Hußmann Seite 9 Softwaretechnologie II Mehrfach-Hierarchie • Spezifisches Analysemuster (nach Fowler 97) • Engl. Name: Organization Structure • Problem: Eine Organisationen kennt mehrfache unabhängige Hierarchien (z.B. Matrixorganisation). • Lösung: Flexible Unterordnungsklasse und -Assoziationen. • Anwendung von "Koordinator" und "Exemplar-Beschreibung". OrganisationsStrukturtyp Obereinheit 0..1 Organisation Untereinheit 0..1 0..* 1 0..* OrganisationsStruktur 0..* 0..* 0..1 Zeitraum Technische Universität Dresden Dr. Santen / Prof. Hußmann Softwaretechnologie II Mehrfach-Hierarchie: Beispiel Vertrieb: Organisation : OStruktur VertriebInland: Organisation : OStruktur VertriebAusland: Organisation Länder struktur: OStruktur Typ : OStruktur VertriebUSA: Organisation : OStruktur : OStruktur Firmen struktur: OStruktur Typ KeyAccountHAL: Organisation Technische Universität Dresden Dr. Santen / Prof. Hußmann Seite 10 Softwaretechnologie II Ort • • • • Spezifisches Analysemuster (nach Ambler 98) Engl. Name: Place Problem: Ein Ort ist zu beschreiben. Lösung: Folgende Lösung enthält die wichtigsten Details. liegt in 0..* Zeitzone 0..1 Name Abkürzung gehört zu Differenz zu UTC 1..* 0..* Sommerzeitregel Zeitdifferenz berechnen Technische Universität Dresden Ort interner Name feiert Ortsbezeichnung 1..* 0..* offizieller Name Hemisphäre betrifft 1..* Region Land Ländercode Feiertag Name Datum Berechnungsregel Betroffene Steuer Steuersatz 0..* Regeln Steuerart Zahlungsmodus Dr. Santen / Prof. Hußmann Softwaretechnologie II Analysemuster: Zusammenfassung • In der Analyse werden eingesetzt: – Universelle Muster – Spezifische Analysemuster » mehr oder minder fachgebietsübergreifend » fachgebietsspezifisch • Universelle Muster: – "Leitfaden" zur Modellierung – Bausteine für andere Muster • Spezifische Analysemuster: – Nur wenige Kataloge publiziert » Fowler: Katalog für betriebswirtschaftliche Anwendungen – Firmen- und projektspezifische Kataloge Technische Universität Dresden Dr. Santen / Prof. Hußmann Seite 11 Softwaretechnologie II