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
Ü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
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
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();
} }
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
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
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
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
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
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
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
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
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
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
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
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
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