• Keine Ergebnisse gefunden

Objektorientierte Analyse 36 Szenarienanalyse mit komplexen Objekten

N/A
N/A
Protected

Academic year: 2021

Aktie "Objektorientierte Analyse 36 Szenarienanalyse mit komplexen Objekten"

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(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

(3)

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.

(4)

Softwaretechnologie, © Prof. Uwe Aßmann

36.1 Verfeinerung mit

Kollaborationen (Konnektoren,

Teams, Rollenmodellen)

(5)

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

(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

(7)

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

} }

(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

(9)

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

(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

(11)

Softwaretechnologie, © Prof. Uwe Aßmann

Technische Universität Dresden, Fakultät Informatik 11

36.2 Querschneidende,

kollaborationsbasierte Verfeinerung

(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

(13)

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

(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

(15)

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

(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

(17)

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

(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

(19)

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

(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

(21)

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

Meat

Skin

Skin

(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)

Meat

Skin

Skin

(23)

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.

(24)

Softwaretechnologie, © Prof. Uwe Aßmann

3.3.b Volles Verfeinerungsbeispiel für Chickenfattening mit allen

Unterobjekten

.. Verfeinerung durch Integration von Unterobjekten..

(optional)

(25)

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

(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

(27)

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

(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

(29)

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

Meat

Skin

Skin

(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

Meat

Skin

Skin

(31)

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

(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)

(33)

Prof. U. Aßmann, Softwaretechnologie 33

The End

Referenzen

ÄHNLICHE DOKUMENTE

Zerlege Aufgabe in Teilaufgaben und spezifiziere ihre Schnittstelle word = readWord(); liefert nächstes Wort oder null, wenn kein Wort mehr.. von der aktuellen Eingabedatei

Erzeugen Sie ein zweites Objekt ( person2 ) mit dem Namen Angela Merkel und dem Alter 56 sowie ein drittes Objekt für sich selbst mit Ihren eigenen Daten.. Achtung:

• Beschreibt die Daten, die von den Objekten einer Klasse angenommen werden können. • Werden durch Namen und

Zweigstelle Kundenbetreuer Kundenklub.. A) Reservierungssystem von EU-Rent. ► Beim Ausfüllen (Elaboration) kommen neue

► Ersetze alle “integrates”, “plays”, “mandatory-part”, etc. durch Vererbung. ► Einfach, allerdings braucht man Mehrfachvererbung oder

Intermediäre Akteure können hier eine zentrale Rolle einnehmen und sowohl Transparenz zwischen den Anforderungen von Unternehmen und den Gestaltungsspielräumen von Kommunen

Mit einer F¨ ullung konnte das Experiment ¨ uber 10 Stunden betrieben werden, bis dann bei HERMES unpolarisiertes Gas h¨ oherer Dichte eingelassen wurde und der Strahl nach dann

Die unter der Bezeichnung temporaler Assoziationskortex zusammengefaßten lateralen und ventralen Gebiete des Temporallappens (in etwa den Brodmann-Arealen 20, 21, 37, 38 ent-