• Keine Ergebnisse gefunden

Objektorientierte Analyse (OOA)

N/A
N/A
Protected

Academic year: 2021

Aktie "Objektorientierte Analyse (OOA)"

Copied!
9
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

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)

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

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)

Meat

Skin

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)

(7)

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

(8)

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

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

Meat

Skin

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)

(9)

Prof. U. Aßmann, Softwaretechnologie 33

The End

Referenzen

ÄHNLICHE DOKUMENTE

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

GUI-Prototyp Funktionale Anforderungen Produktdefinition (OOA

In der Analyse werden komplexe Objekte in der Regel aus einem Kern und einer Menge von zugehörigen Unterobjekten dargestellt In der Analyse werden komplexe Objekte in der Regel

In der Analyse werden komplexe Objekte in der Regel aus einem Kern und einer Menge von zugehörigen Unterobjekten dargestellt. In der Analyse werden komplexe Objekte in der Regel

► Auch eine Protokollmaschine kann in einer Klasse erscheinen, sie beschreibt einen blackbox-Objektlebenszyklus, d.h. die beobachtbare Sicht von aussen, das Protokoll

Mit Verfeinerung durch Integration von Unterobjekten (Objektanreicherung, Chicken Fattening).

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