Softwaretechnologie, © Prof. Uwe Aßmann
Technische Universität Dresden, Fakultät Informatik 1
Objektorientierte Analyse 36 Szenarienanalyse mit komplexen Objekten
Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und
Multimediatechnik Lehrstuhl Softwaretechnologie
Fakultät für Informatik TU Dresden Version 11-0.1, 25.06.11
1) Verfeinerung mit Kollaborationen 2) Querschneidende
kollaborationsbasierte Verfeinerung mit Objektanreicherung
3) Beispiel Objektanreicherung 1)Ohne Facetten und
Phasen 2)Mit allen
Prof. U. Aßmann, Softwaretechnologie 2
Überblick Teil III:
Objektorientierte Analyse (OOA)
1. Überblick Objektorientierte Analyse
1. (schon gehabt:) Strukturelle Modellierung mit CRC-Karten
2. Strukturelle metamodellgetriebene Modellierung mit UML für das Domänenmodell
1. Strukturelle metamodellgetriebene Modellierung 2. Modellierung von komplexen Objekten
1.Modellierung von Hierarchien
2.(Modellierung von komplexen Objekten und ihren Unterobjekten) 3.Modellierung von Komponenten (hierarchische Objekte)
3. Strukturelle Modellierung für Kontextmodell und Top-Level-Architektur 3. Analyse von funktionalen Anforderungen
1. Funktionale Verfeinerung: Dynamische Modellierung und Szenarienanalyse mit Aktionsdiagrammen
2. Funktionale querschneidende Verfeinerung: Szenarienanalyse mit Anwendungsfällen, Kollaborationen und Interaktionsdiagrammen 3. (Funktionale querschneidende Verfeinerung für komplexe Objekte, 36) 4. Beispiel Fallstudie EU-Rent
Prof. U. Aßmann, Softwaretechnologie 3
Obligatorische Literatur
►
Störrle 5.3, 5.4
►
Weitere Literatur:
L. Maciaszek. Requirements Analysis and System Design – Developing Information Systems with UML. Addison-Wesley.
Giancarlo W. Guizzardi. Ontological foundations for structure conceptual models. PhD thesis, Twente University, Enschede, Netherlands, 2005.
Nicola Guarino Chris Welty. Supporting ontological analysis of taxonomic relationships. Data and Knowledge Engineering, 39:51-74, 2001.
Softwaretechnologie, © Prof. Uwe Aßmann
Technische Universität Dresden, Fakultät Informatik 4
36.1 Verfeinerung mit
Kollaborationen (Konnektoren,
Teams, Rollenmodellen)
Prof. U. Aßmann, Softwaretechnologie 5
Kollaborationen (Konnektoren, Teams, Rollenmodelle)
►
Eine Kollaboration (Konnektor, team, collaboration, Rollenmodell) ist ein Schema für die Zusammenarbeit von Objekten
Fasst mehrere Rollen zusammen, die zusammen arbeiten
Kollaborationen bilden Schnitte durch die Anwendung
Person
Grand Father
Reader Buyer
Sausage
Newspaper Person Grand
Child
Readable Bought
Prof. U. Aßmann, Softwaretechnologie 6
Kollaborationen (Konnektoren, Teams, Collaborations) in UML
►
Eine Kollaboration ist ein Netz mit offenen “plays-a”-Beziehungen
Die von natürlichen Typen gespielt werden müssen
Grand Father
Grand Child
GrandFatherShip P
GrandFather
GrandChild
►
In UML stellt sich eine Kollaboration dar mit Rollentyp-Parameter P:
P
Prof. U. Aßmann, Softwaretechnologie 7
Kollaborationen als Teams in ObjectTeams
►
In fortgeschrittenen Programmiersprachen bilden Kollaborationen und ihre Rollen Sprachkonzepte.
►
So auch in ObjectTeams (www.objectteams.org).
Hier heißt eine Kollaboration Team (Notation als Block, ähnlich zur Klasse)
Rollentypen bilden innere Klassen des Teams team Grandfathership {
class GrandFather { void caressing ();
}
class GrandChild { void visiting ();
} }
team Grandfathership { class GrandFather { void caressing ();
}
class GrandChild { void visiting ();
} }
team NewspaperReading { Readable buy();
class Reader {
void breakfast () { Readable rd = buy();
rd.read();
} }
class Readable { void read();
} }
team NewspaperReading { Readable buy();
class Reader {
void breakfast () { Readable rd = buy();
rd.read();
} }
class Readable { void read();
}
} Prof. U. Aßmann, Softwaretechnologie 8
Einfache Erweiterung von Anwendungen mit Kollaborationen
►
Analysemodelle können sukzessive durch Kollaborationen erweitert werden
Person
Sausage
Newspaper Person
Reader
Readable Buyer
Bought
Grand Father
Grand Child
Prof. U. Aßmann, Softwaretechnologie 9
Verschmelzen von Kollaborationen:
Newspaper-Reading GrandpaShip
Reader
Readable Grand
Father
Grand Child
Reading GrandFathership P
N Grand
Child
Readable Grand
Father
Reader
Prof. U. Aßmann, Softwaretechnologie 10
Newspaper-Reading Buying GrandpaShip
ReadingBuying GrandFathership P
N Grand
Father
Grand Child
Readable Reader
Bought S
Buying
Reader
Readable Buyer
Bought
Grand Father
Grand Child
Softwaretechnologie, © Prof. Uwe Aßmann
Technische Universität Dresden, Fakultät Informatik 11
36.2 Querschneidende,
kollaborationsbasierte Verfeinerung
Prof. U. Aßmann, Softwaretechnologie 12
Verfeinerung mit Kollaboration-Superimposition
►
Das Überlagern von Kollaborationen nennt man Superimposition von Kollaborationen (Collaboration, connector superimposition)
Person
Person
GrandFatherShip Grand
Father
Grand Child
Sausage
Buyer
Bought
Grand Father
Grand Child
Customership Bought
Buyer
Prof. U. Aßmann, Softwaretechnologie 13
Verfeinerung mit Kollaboration-Superimposition in UML
►
Alternative Notation in UML: Kollaborationen mit Abteilen
Person
Person Sausage Customership
Buyer Bought
GrandFatherShip
Grand Father
Grand Child
Prof. U. Aßmann, Softwaretechnologie 14
Kollaborationsbasierte Verfeinerung
►
Kollaborationsbasierte Verfeinerung bedeutet, Schritt für Schritt
neue Kollaborationen in das Analysemodell zu integrieren, d.h. neue Kollaborationen zu superimponieren
►
In einer Programmiersprache wie ObjectTeams kann man das direkt umsetzen, in dem man zu einem Kern-Programm neue Teams hinzufügt
Softwaretechnologie, © Prof. Uwe Aßmann
Technische Universität Dresden, Fakultät Informatik 15
3.3.a Verfeinerungsbeispiel für Objektanreicherung
.. Verfeinerung durch Integration von Unterobjekten..
Teile und Rollen
Prof. U. Aßmann, Softwaretechnologie 16 Person
Person
Smoker
Male Non-
Smoker
Ball
Facetten im Vergleich zu Rollen (Wdh.)
Child Father
Playable
Player
Eating Eatable Sausage
►
Facetten sind nicht-fundiert und rigide (natürlich)
►
Rollen sind fundiert und nicht-rigide
FatherShip Child
Father
Prof. U. Aßmann, Softwaretechnologie 17 core
role
role
phase phase
role holder
Facet, Phase, Role holder complex object (full object)
Komplexe Objekte
Facet
Facet
Prof. U. Aßmann, Softwaretechnologie 18
Objektanreicherung (Wdh.)
►
Objektanreicherung (object fattening) ist ein Verfeinerungsprozess zur Entwurfszeit, der an ein Kernobjekt aus dem Domänenmodell Unterobjekte anlagert (Domänenobjekt-Verfeinerung durch Integration), die
Teile ergänzen (Teile-Verfeinerung)
Rollen ergänzt (Kollaboration-Verfeinerung),
Rollen ergänzen (Kollaboration-Verfeinerung), die Beziehungen klären zu
Plattformen (middleware, Sprachen, Komponenten-services)
Komponentenmodellen (durch Adaptergenerierung)
►
Ziel: Entwurfsobjekte, Implementierungsobjekte
Prof. U. Aßmann, Softwaretechnologie 19
Personen-Analysemodell – Wie komme ich bloß dahin?
Child Father
Playable
Player
Eating Eatable
Heart Stomach Person
Person
Ball
Sausage Newspaper
Reading Readable
FatherShip Child
Father Skin
Meat
Skin
Prof. U. Aßmann, Softwaretechnologie 20
Mit Verfeinerung durch Integration von Unterobjekten (Objektanreicherung, Chicken Fattening)
Person Person
Ball
Newspaper
►
Rohzustand: Identifikation der natürlichen Typen (in dem Domänenmodell)
Sausage
Prof. U. Aßmann, Softwaretechnologie 21
Mit Verfeinerung durch Integration von Unterobjekten (Chicken Fattening)
Heart Stomach Person
Person
Ball
Sausage Newspaper
►
Schritt 1: Teile-Verfeinerung
MeatSkin
Skin
Prof. U. Aßmann, Softwaretechnologie 22
Mit Verfeinerung durch Integration von Unterobjekten (Chicken Fattening)
Child Father
Playable
Player
Eating Eatable
Heart Stomach Person
Person
Ball
Sausage Newspaper
Reading Readable
FatherShip Child
Father
►
Schritt 2: Erweiterung durch Kollaborationen (Konnektoren, Teams)
MeatSkin
Skin
Prof. U. Aßmann, Softwaretechnologie 23
Objektanreicherung – Weitere Schritte im Entwurf
►
Teile- und Rollenverfeinerung laufen noch im Analysemodell ab
Kollaboration-Verfeinerung wird durch Szenarienanalyse angeregt
Facetten- und Phasen-Verfeinerung kommt optional hinzu
►
In ObjectTeams entspricht dies dem Schreiben neuer “Teams”
Teile können in Rollen von Teams eingelagert werden
In ObjectTeams kann man querschneidende Objektanreicherung ganz einfach realisieren
►
Bei Entwurfsobjekten kommen dann noch folgende Schritte hinzu:
Finden von Plattform-Kollaborationen, fundierte Unterobjekte, die das spezifische Verhalten bezüglich eines Plattformobjektes kapseln
Plattformfähigkeiten (platform abilities, platform-founded types) bilden fundierte Typen, die die die Beziehungen zu Plattformen klären
Komponentenadapter (component-model-founded adapters) klären die Beziehung zu Komponentenmodellen
Realisierung der Integrationsrelation
►
Siehe später.
Softwaretechnologie, © Prof. Uwe Aßmann
Technische Universität Dresden, Fakultät Informatik 24
3.3.b Volles Verfeinerungsbeispiel für Chickenfattening mit allen
Unterobjekten
.. Verfeinerung durch Integration von Unterobjekten..
(optional)
Prof. U. Aßmann, Softwaretechnologie 25
Erweitertes Konzept der Objektanreicherung
►
Weitere Unterobjekte können integriert werden
Phasen ergänzen (Phasen-Verfeinerung)
Facetten ergänzen (Facetten-Verfeinerung)
Teile ergänzen (Teile-Verfeinerung)
Rollen ergänzen (Kollaboration-Verfeinerung),
Rollen ergänzen (Kollaboration-Verfeinerung), die Beziehungen klären zu
Plattformen (middleware, Sprachen, Komponenten-services)
Komponentenmodellen (durch Adaptergenerierung)
►
Ziel: Entwurfsobjekte, Implementierungsobjekte
Prof. U. Aßmann, Softwaretechnologie 26 grown-up
Smoker Male
teen
Non- Smoker
air- filled
Personen-Analysemodell – Wie komme ich bloß dahin?
Child Father
Playable
Player
Eating Eatable
Heart Stomach Person
Person
Ball
Sausage
Leather Soccer
ball
Beef
Bratwurst
Newspaper Reading Readable
FatherShip Child
Father
Meat
Skin
Skin
Prof. U. Aßmann, Softwaretechnologie 27
Mit Verfeinerung durch Integration von Unterobjekten (Chicken Fattening)
Person Person
Ball
Newspaper
►
Rohzustand: Identifikation der natürlichen Typen
Sausage
Prof. U. Aßmann, Softwaretechnologie 28
Mit Verfeinerung durch Integration von Unterobjekten (Chicken Fattening)
grown-up teen
air- filled
Heart Stomach Person
Person
Ball
Sausage Newspaper
►
Schritt 1: Teile-Verfeinerung, Phasen-Verfeinerung
Skin
Prof. U. Aßmann, Softwaretechnologie 29
Mit Verfeinerung durch Integration von Unterobjekten (Chicken Fattening)
grown-up
Smoker Male
teen
Non- Smoker
air- filled
Heart Stomach Person
Person
Ball
Sausage
Leather Soccer
ball
Beef
Bratwurst
Newspaper
►
Schritt 2: Facetten-Verfeinerung
MeatSkin
Skin
Prof. U. Aßmann, Softwaretechnologie 30 grown-up
Smoker Male
teen
Non- Smoker
air- filled
Mit Verfeinerung durch Integration von Unterobjekten (Chicken Fattening)
Child Father
Playable
Player
Eating Eatable
Heart Stomach Person
Person
Ball
Sausage
Leather Soccer
ball
Beef
Bratwurst
Newspaper Reading Readable
FatherShip Child
Father
►
Schritt 3: Erweiterung durch Kollaborationen
MeatSkin
Skin
Prof. U. Aßmann, Softwaretechnologie 31
Nebenbemerkung
►
Integration von Unterobjekten in Kernobjekte kann zu verschiedenen Zeiten erfolgen
Zur Entwurfszeit
Zur Bindezeit
Zur Allokationszeit eines Objekts
Zur Laufzeit
Zur Zeit der Software-Pflege und -Migration
Prof. U. Aßmann, Softwaretechnologie 32
Rollen in der Literatur
►
Rollenorientiertes Datenmodell (Bachmann 77)
►
Entity-Relationship-Modell (ER model, Chen 76): Hier bilden die Enden einer Assoziation eine Rolle. Vorbild für UML-
Klassendiagramme
Kurs “Softwarewerkzeuge (SEW)” im WS
►
Entwurfsmuster (Riehle 98)
Kurs “Design patterns and frameworks (DPF)” im WS
►
Produktlinien-Engineering (Smaragdakis,Batory 02)
►
Kollaborationen in Architectursprachen (Garlan, Shaw 95)
Kurs “Component-based Software Engineering (CBSE)” im SS
►
Objektorientierte Modelierung mit der OORAM Methode (Reenskaug
95)
Prof. U. Aßmann, Softwaretechnologie 33