3.4 Muster in der Objektorientierten Analyse Wiederverwendung mit

Werbung
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
Herunterladen