170
© 2002, W. Pree 1 Grundlagen Objekt-orientierter Modellierung Analyse und Design mit UML O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang Pree www.SoftwareResearch.net

Grundlagen Objekt-orientierter Modellierung

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree 1

Grundlagen Objekt-orientierterModellierung

Analyse und Design mit UML

O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang Pree

www.SoftwareResearch.net

Page 2: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 2

OO Analyse-und Design-

Tools

Page 3: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 3

In OO gesetzteErwartungen

Verbesserte Modularisierung Verbesserte Wiederverwendbarkeit

Potential von wiederverwendbaren OO SW-Architekturen (= generischen komplexen Komponenten)wurde bisher keineswegs ausgeschöpft

Durchgängiges Denkmodell Analyse → Design → Implementierung

Wichtige Grundlage: Unterstützung der OOModellierung

Page 4: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 4

Was ist von OOAD-Toolszu erwarten? (I)

Great designs come from greatdesigners, not from great tools.

Tools help bad designers createghastly designs much morequickly.

Grady Booch(1994)

Page 5: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 5

Was ist von OOAD-Toolszu erwarten? (II)

OO Analyse- und Design- (OOAD)Werkzeuge können fogende Aufgabenübernehmen:

Erstellen und Editieren von Diagrammenbasierend auf diversen OO Notationen

Konsistenz- und Constraint-Checkshat ein Objekt die aufgerufene Methode?werden die Invarianten (nur eine Instanz, etc.)

eingehalten? . . .

Prüfungen auf Vollständigkeitwerden alle Methoden/Klassen benutzt? . . .

Page 6: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 6

Konventionelle (SA/SD)versus OO Werkzeuge (I)

Unterschiede ergeben sich in zweierlei Hinsicht:

(1) Software-Architektur Konventionelle Werkzeuge basieren auf einer

Trennung von Daten (ER-Modell) undFunktionen

OO Werkzeuge bieten bessereAusdrucksmittel, um Objekte als in sichgeschlossene Einheiten aus Daten undFunktionen zu sehen und darzustellen

Page 7: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 7

Konventionelle (SA/SD) versusOO Werkzeuge (II)

(2) Semantische MöglichkeitenKonventionelles ER-Modell:has_a (1:1)is_a (1:1)owns, contains, is_contained_in (1:m)consists_of (m:m)

Page 8: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 8

Konventionelle (SA/SD)versus OO Werkzeuge (III)

Bei OO Modellierung werden umfangreichereund vom ER-Modell abweichendeAusdrucksmöglichkeiten geboten:Klassen-/Objektbeziehungen: inheritance association (friend, virtual, static) has-a (by value, by reference) uses-a (by value, by reference) is_abstract, is_metaclass,

is_parameterized . . .Zugriffsrechte

Page 9: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 9

Methodenlandschaft zuBeginn der 90er Jahre

OOD / Rational RoseGrady Booch

Object Modeling Technique (OMT)James Rumbaugh et al.

OO Software EngineeringIvar Jacobson et al.

OO Analysis (OOA)Peter Coad und Ed. Yourdon

Responsibility-Driven Design (RDD)Rebecca Wirfs-Brock et al.

OO System Analysis (OOSA)Sally Shlaer and Steve Mellor

. . .

Page 10: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 10

Beispiel für Booch-Notation

aa

Folder

TextDocument

Mailer

1

N

1

1

N

N

Page 11: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 11

Beispiel fürOMT-Notation

aaaa

Mailer

... ...Folder

Mailbox

EmployeeGroup

Employee DesktopItem

Page 12: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 12

Gemeinsamkeiten vonOOAD-Methoden (I)

Sie zielen darauf ab, die reale Welt ohne künstlicheTransformationen auf Software-Systemeabzubilden:

Anwendung gleicher Ideen und Konzepte inallen Phasen der Software-Entwicklung

Grenze zwischen Analyse und Design verschwimmt stärker

Dazu werden sehr vage Richtlinienangegeben.

Page 13: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 13

Gemeinsamkeiten vonOOAD-Methoden (II)

OOAD Methoden erlauben die Modellierung folgenderAspekte eines Systems:

statische Aspekteim Vordergrund steht das Klassen-

/Objektmodell,auf höhere Abstraktion werden Subsysteme

entworfen

dynamische AspekteZustandsübergangsdiagramme, Interaktionsdiagramme

Page 14: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 14

Unterschiede zwischenOOAD-Methoden

Die Unterschiede zwischen den Methoden liegeninsbesondere in der Notation.Dennoch sind die Notationen in den einzelnenOOAD-Methoden weitgehend sprachunabhängig.

=> Vereinheitlichung ist naheliegend (→ UML)

All of the OO methodologies havemuch in common and should becontrasted more with non-OOmethodologies than with each other.

James Rumbaugh(1991)

Page 15: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 15

UML-Einflüße

Die Unified Modeling Language (UML) enhältdiverse Aspekte und Notationen aus verschiedenenMethoden:

BoochHarel (State Charts)Fusion (Methodennummerierung)

Rumbaugh (Notation) Jacobson (Use Cases) Wirfs-Brock (Responsibilities) Shlaer-Mellor (Object Life Cycles) Meyer (Pre- und Post-Conditions)

Page 16: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 16

UML-Standard

Der erste Draft (Version 0.8) wurde im Oktober 1995publiziert.

Diverse Anpassungen und die Einbeziehung von IvarJacobson führten zu Version 0.9 im Oktober 1996.

Version 1.0 wurde der Object Management Group (OMG)im Juli 1997 als Grundlage zur Standardisierung vorgelegt.

Im September 1997 wurden noch diverse Details inVersion 1.1 modifiziert.

1998 und 1999 ist die Standardisierung wesentlicherElemente vorangetrieben worden.

Im April 1999 wurde Version 1.3 veröffentlicht.

Page 17: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 17

The Unified ModelingLanguage(I)

Was ist die UML? Sprache

KommunikationAustausch von Ideen

ModellierungsspracheVokabeln und Regeln für die Darstellung von

Aspekten eines Systems

Page 18: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 18

The Unified ModelingLanguage(II)

Was ist die UML nicht? Keine Methode

Spezifiziert wie Modelle gemacht werden,aber nicht welche und wann.

Aufgabe des Entwicklungsprozesses

Prozess + Modellierungssprache = Methode

Page 19: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 19

The Unified ModelingLanguage(III)

Wofür braucht man die UML?

Visualisierung von Modellen Spezifikation von Modellen Konstruktion des Systems

Forward and Reverse Engineering Dokumentation des Systems

Page 20: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 20

The Unified ModelingLanguage(IV)

Modelle Projektionen des Systems auf eine

Sichtweise Für das Verständnis des Systems

Page 21: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 21

OO KonzepteDarstellung in UML

Objekte, Klassen, Nachrichten/Methoden Vererbung, Polymorphismus, Dynamische Bindung Abstrakte Klassen, abstrakte Kopplung

Page 22: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 22

OO vs Prozedural

Prozedural Trennung von Daten und Prozeduren

Page 23: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 23

OO vs Prozedural

Objekt-orientiert: Daten und Prozeduren bilden eine logische

Einheit ein Objekt

Page 24: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 24

Objekte(I)

Ein Objekt ist eine Repräsentation einer

konkreten Einheit, wieeiner Person, einem Auto, etc.

oder einer logischen Einheit, wieeinem chemischen Prozess, einer mathematischen Formel, etc.

Page 25: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 25

Objekte(II)

Die wesentlichen Merkmale einesObjektes sind:

Seine Identität Sein Zustand Sein Verhalten

Page 26: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 26

Objekte(III)

ZustandDer Zustand eines Objektes besteht aus seinenstatischen Eigenschaften und derendynamischen Werten.

Werte können primitiv sein: int, double,boolean

Werte können Referenzena auf andereObjekte oder selbst andere Objekte sein

Page 27: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 27

Objekte(IV)

Beispiel Getränkeautomat Zustand: Bereit Zustand: Bezahlt Zustand: Bereit

Eigenschaften – Werte Bezahlt:boolean Dosen:Menge von Dosen

Bezahlen

Getränk ausgeben

Page 28: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 28

Objekte(V)

Das Verhalten von Objekten wirdspezifiziert durch Methoden (=Operationen).

Im Prinzip sind Methoden konzeptionellwie Prozeduren/Funktionen:Methode = Name + Parameter +

Rückgabeparameter

Page 29: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 29

Objekte(VI)

Beispiel Quadrat:

Name der Operation: setzeFarbeParameter: Name der Farbe (z.B.: Rot)Rückgabeparameter: keine

Das Aufrufen einer Operation(z.B.:setzeFarbe) eines Objektes wird alsSchicken einer Nachricht an dasObjekt bezeichnet.

Page 30: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 30

Objekte(VII)

IdentitätIdentität ist die Eigenschaft einesObjektes, die es von allen anderenunterscheidet.

Zwei Objekte können verschieden sein,auch wenn ihre Eigenschaften, Werte undOperationen übereinstimmen.

Page 31: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 31

Objekt-Orientierung

Klassifikation Gruppierung von Objekten

Polymorphismus Statische und dynamische Typen Dynamischen Binden

Vererbung Hierarchien von Typen

Page 32: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 32

Klassifikation(I)

KlasseEine Klasse ist eine Menge von Objekten, diegleiche Struktur und gleiches Verhaltenhaben.

KlasseEine Klasse ist eine Schablone, aus der Objektegeneriert werden können.

Page 33: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 33

Klassifikation(II)

Klasse: Person Eigenschaften: Name:String, Alter:int.... Operationen: schlafe, esse, ...

Objekt vom Typ Person: Steffen Eigenschaften: Name:Steffen, Alter:24

Page 34: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 34

Klasse als Schablone/Typ (I)

Vergleich mit der Sprache C:struct{

int day, month, year;

} date;

date d1, d2;

=> alles zugreifbar, keine Methoden

Page 35: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 35

Klasse als Schablone/Typ (II)

Page 36: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 36

Klasse als Schablone/Typ (III)

Eine Klasse gibt an, von welchem Typeine Objekt ist, d.h. welche Nachrichtenes versteht und welche Eigenschaften eshat.

Eine Klasse besteht aus: einem eindeutigen Name Attributen(=Eigenschaften) und deren Typen Methoden/Operationen

Page 37: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 37

Klassen in UML(I)

UML Notation einer Klasse:BeispielStruktur

Page 38: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 38

Klassen in UML (II)

Notation für Attribute:A nur der Attributname: C nur der Name der AttributklasseA : C Attributname und KlasseA : C = E w. o.; zusätzliche Definition eines

AttributwertestimeWhenStarted → A: Date → : CtimeWhenStarted : Date → A : CtimeWhenStarted : Date = 1.1.1999 → A : C = EtimeWhenStarted = 1.1.1999 → A = E

Page 39: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 39

Klassen in UML (III)

Notation für Methoden/Operationen:

m() nur der Methodennamem(arguments): R Methodenname, Argumente, Rückgabeparametertyp

Beispiele:printInvoice() → m()printInvoice(itemNo: int): bool →m(arguments): R

Page 40: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 40

Klassen in UML(IV)

Sogenannte Adornments (dt.: Schmuck, Zierde)ergänzten in der Booch-Methode Notationselemente undwurden durch ein Dreieckssymbol dargestellt.

Methoden und Attribute haben in UML grafischeSymbole beigefügt, um die Zugriffsrechte (public,protected, private) auszudrücken.Beispiel:

+schlafe(Stunden:int)

Page 41: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 41

Beispiel: Zugriffsrechte

Unnötige Komplexität, dakeine Abhängigkeit zw. xund y besteht

besser

Page 42: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 42

Klassen in Java

public class Person{

String name; int age; ...

public int getAge(){ return age; } public void setAge(int theAge){ age = theAge; }}

Name derKlasse

Eigenschaften

Operationen

Page 43: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 43

Verwendung von Klassenin Java

Klassen werden in Java dazu verwendet,den Typ von Variablen festzulegen undObjekte zu instanziieren

Schlüsselwort: new Beispiel

Person manager = new Person(„Steffen“);

Deklaration derVariable„manager“

Instanziierung einesObjektes der Klasse Personmit dem Namen Steffen

Page 44: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 44

Beispiel:Hotelreservierung

Was könnte man bei einermHotelreservierungsystem als Klassenmodellieren?

Welche Eigenschaften haben dieseKlassen?

Welche Operationen? Welche Instanzen(Objekte) dieser

Klassen könnte es geben?

Page 45: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 45

Objekte in UML

Notation in UML

Objektdiagramme stellen einen Laufzeit-Schnappschuss des Systems dar. Dabeiwerden Objekte und Verbindungenzwischen den Objekten dargestellt, die ausdrücken,daß zwischen den Objekten navigiert werden kann

Page 46: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 46

Objektdiagramme

... mehr dazu bei Sequenz-diagrammen

Page 47: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 47

Klassenbeziehungen (I)

Eine Association zwischen zwei Klassen kann durch die anderenBeziehungen verfeinert werden.

Oft modelliert man zunächst nur die Tatsache, daß zwei Klassenuntereinander in Beziehung stehen und verfeinert später diesesallgemeine Notationselement.

Association

InheritanceAggregation (has-a)

Abhängigkeit

Page 48: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 48

Klassenbeziehungen (II)

Jede der Beziehungen kann durch einen Text-Labelgenauer gekennzeichnet werden (→ ER-Modell).

Zusätzlich können an den Enden einer AssociationRollen-Namen spezifiziert werden.

Eine Klasse kann auch eine Association auf sichselbst haben. Damit wird ausgedrückt, daß Objekte dergleichen Klasse in Beziehung stehen.

Page 49: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 49

Klassenbeziehungen (III)

Die Kardinalität von Beziehungen kann wie in der ER-Notation jeweils amEnde einer Beziehung angegeben werden:

1 genau eins* beliebig (0 oder mehr)0..* beliebig (0 oder mehr)1..* 1 oder mehr0..1 0 oder eins2..5 Wertebereich1..5, 9 Wertebereich oder genaue Zahl

Page 50: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 50

Klassenbeziehungen (IV)

Beispiel:

Page 51: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 51

VererbungPolymorphismus

Dynamische Bindung

Page 52: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 52

Vererbung(I)

Klassen definiren den Typ eines Objektes Modelliert man beispielsweise eine

Klasse Kunde und eine KlasseFirmenkunde, so sollte jedes Objekt vomTyp Firmenkunde auch vom Typ Kundesein. Der Typ Firmenkunde ist einUntertyp vom Typ Kunde.

Page 53: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 53

Vererbung(II)

Eine Oberklasse verallgemeinert eineUnterklasse

Eine Unterklasse spezialisiert eineOberklasse

Eine Unterklasse erbt alle Methoden undEigenschaften einer Oberklasse.

Page 54: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 54

Vererbung(III)

Eine Unterklasse hat folgendeMöglichkeiten, ihr Verhalten zuspezialisieren: Neue Operationen und Eigenschaften definieren Die Implementation bestehender Operationen

modifizieren (eine Methode „überschreiben“).

Flache Sicht:

aa

iv1iv2iv3

m1()m2()m3()m4()

m1()m4()m5()

iv4

aa

iv1iv2iv3

m1()m2()m3()m4()

m5()m4()m3()m2()m1()

iv4iv3iv2iv1

Page 55: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 55

Vererbung(IV)

UML Notation:

Page 56: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 56

Vererbung (V)

“Delta”-Sicht „Flache“ Sicht(nicht in Standard UML!)

Page 57: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 57

Vererbung (VI)—in Java

Java unterstützt einfache Vererbung, d.h.Jede Klasse hat höchstens eineOberklasse.

Das Schlüsselwort ist extends.

public class Firmenkunde extends Kunde{ ...}

Page 58: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 58

Polymorphismus (I)

Sogenannte Objekttypen sind poly (= viel)morph (= Gestalt). Anschaulich ist das mit„Steckerkompatibilität“ vergleichbar:

„Stecker“-StandardObjekte, die zu diesemStecker kompatibel sind

Page 59: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 59

Polymorphismus (II)

Objekte vom Typ Firmenkunde(Unterklasse) haltenmindestens den selben Vertrag ein wie Objekte vom TypKunde(Oberklasse).Es ist daher sinnvoll, zu definieren, daß ein Objekt einerKlasse Ai, die eine Unterklasse von A ist, nicht nur den TypAi sondern auch den Typ aller Oberklassen von Ai hat,insbesondere natürlich den Typ A.Das heißt, daß ein Objekt nicht nur einen Typ sondernbeliebig viele Typen hat. Die Anzahl ist abhängig von derPosition jener Klasse in der Klassenhierarchie, aus der dasjeweilige Objekt generiert wurde.Der Objekttyp ist also poly (= viel) morph (= Gestalt).

Page 60: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 60

Polymorphismus-Beispiel (I)

Kunde kunde= new Kunde();Privatkunde privatkunde = new Privatkunde();Firmenkunde firmenkunde = new Firmenkunde();

Page 61: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 61

Polymorphismus-Beispiel (II)

kunde=privatkunde; //OK kunde=firmenkunde;//OK

Page 62: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 62

Polymorphismus-Beispiel (III)

privatkunde = kunde; //Fehler firmenkunde = kunde ; //analog

Page 63: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 63

Polymorphismus-Beispiel(IV)

Der Grund liegt darin, daß ein von „kunde“referenziertes Objekt (d.h.:, wenn es eine Instanzvon Kunde ist) nicht unbedingt Methodenaufrufeverstehen muß, die Instanzen von Unterklassenvon Kunde verstehen würden:

firmenkunde=kunde;firmenkunde.rechneFuerMonatAb();

würde in einem Laufzeitfehler resultieren ("keineMethode zum Methodenaufruf gefunden" ="Methodenaufruf nicht verstanden"), wenn kunde(und nach der Zuweisung auch firmenkunde) einObjekt referenziert, das z.B. aus Kunde generiertwurde.

Page 64: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 64

Statischer und dynamischerTyp von Variablen

In objektorientierten Sprachen mit strenger Typenprüfung(wie in Java, Eiffel, Oberon, C++) muß man zwischeneinem statischen und einem dynamischen Datentypunterscheiden:

der statische Typ einer Variable ist der Typaufgrund der Variablendeklaration im (statischen)Programmtext

der dynamische Typ einer Variable ist der Typ desreferenzierten Objektes zur Laufzeit

Eine Variable hat somit exakt einen statischen Typ. ZurLaufzeit kann sie mehrere dynamische Typen annehmen(abhängig von der Breite und Tiefe der Klassenhierarchie).Im zuvor präsentierten Beispiel hat die Variable kunde denstatischen Typ Kunde. Nach der Zuweisung kunde =firmenkunde hat sie nach wie vor den statischen TypKunde, jedoch den dynamischen Typ Firmenkunde, da sienun eine Instanz der Klasse Firmenkunde referenziert.

Page 65: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 65

Dynamische Bindung (I)

Dynamische Bindung heißt, daß der Compiler nicht festlegt, welcheMethode zur Laufzeit aufgerufen wird. Welche Methode tatsächlich zurLaufzeit aufgerufen wird, hängt

vom Methodennamen vom dynamischen Typ der Variable

ab.

Beispiel (basierend auf zuvor präsentierter Klassenhierarchie):

Kunde kunde= new Firmenkunde; // durch Polymorphismus möglichkunde.pruefeObStammkunde();

Page 66: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 66

Dynamische Bindung (II)

Die Variable kunde referenziert ein Objekt, das aus der KlasseFirmenkunde generiert wurde (kunde hat also den dynamischenTyp Firmenkunde). Es wird daher die MethodepruefeObStammkunde(), wie sie in Firmenkundeimplementiert ist, ausgeführt.

In Java sind alle Methoden dynamisch gebunden, außer manmarkiert sie explizit, indem man das Schlüsselwort static vor dieMethodendefinition stellt.(In C++ müssen hingegen Methoden explizit als "dynamischgebunden" markiert werden. Dazu wird das Schlüsselwort virtualvor die Methodendeklaration gestellt.)

Page 67: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 67

Dynamische Bindung (III)

Dynamische Bindung heißt, daß es vom eingestecktenObjekt abhängt, welche Methode tatsächlichausgeführt wird. Das gelbe Objekt implementiert m1()zB anders als das rote Objekt:

m1()

m1()

m1()

call m1

Page 68: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 68

Type-Test und Type-Guardin Java

Type-Test: Abfrage des dynamischen TypsType-Guard: Laufzeit-geprüfte Typumwandlung (::Type-Cast)

Beispiele:if (kunde instanceof Firmenkunde) { // type test Firmenkunde fKunde= (Firmenkunde )kunde; // type guard

...}

if (kunde instanceof Firmenkunde) ((Firmenkunde)kunde).rechneFuerMonatAb();

Page 69: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 69

Achtung: Is-A versus Has-A

Typischer Fehler: Is-A statt Has-A

Page 70: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 70

Verstehen derInteraktionen

zwischenObjekten

Page 71: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 71

Object Game

„Durchspielen“ einerHotelzimmerreservierung

Page 72: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 72

AbstrakteKlassen und

abstrakteKopplung

Page 73: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 73

Warum abstrakte Klassen?

Objektorientierte Sprachen werden in vielen Software-Projekten ähnlich wie modulorientierte Sprachen (Modula-2, Ada) zur Erstellung von Legobausteinsammlungenverwendet:

Klassen sind ein Sprachkonstrukt zurImplementierung von Modulen / abstraktenDatentypen.

durch Unterklassenbildung können derartigeSoftware-Bausteine an neue Projekte angepaßtwerden.

Um jedoch das volle Potential objektorientierter Sprachenauszuschöpfen, also die Wiederverwendbarkeit vonSoftwarearchitekturen zu ermöglichen, ist eine geschickteKombination von Unterklassenbildung (und somitPolymorphismus) sowie dynamischer Bindung in Form vonabstrakten Klassen essentiell.

Page 74: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 74

Abstrakte Klassen (I)

Eigenschaften ähnlicher Objekte werden ineine gemeinsame Klasse "herausgefiltert".Dieser Vorgang kann mit dem "Heraus-faktorisieren" von Termen in mathematischenAusdrücken verglichen werden.

Die entstandene Klasse wird nur wenigeMethoden konkret implementieren können.Wenn auch einige Methoden nicht konkretimplementiert werden können, kann man beidiesen Methoden zumindest Namen undParameter festlegen und beschreiben, was dieMethode "im Prinzip" tun soll.

es wird eine Standardisierung derKlassenschnittstelle für alle Unterklassenvorgenommen

Page 75: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 75

Abstrakte Klassen (II)

Die durch Herausfaktorisieren von gemeinsamenEigenschaften entstandenen Klassen spiegelnmeist nicht Objekte der realen Welt wider. Eshandelt sich vielmehr um Abstraktionen davon.Deshalb nennt man diese Klassen abstrakteKlassen.

Ein weiterer Grund für diese Namensgebung ist,daß es keinen Sinn ergibt, Instanzen aussolchen Klassen zu generieren. AbstrakteKlassen enthalten ja "dummy"-Implementierungen oder keineImplementierungen (→ abstrakte Methoden) füreinige Methoden.

Page 76: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 76

Abstrakte Kopplung (I)

Andere Klassen können basierend auf abstraktenKlassen implementiert werden. Die Kopplungzwischen einer Klasse (zB Klasse B) und einerabstrakten Klasse (zB Klasse A) kann aufmehrere Arten erfolgen:

B hat eine Instanzvariable vom statischen Typ Aeine oder mehrere Methoden von B haben einen

Parameter vom statischen Typ AB greift auf eine globale Variable vom statischen

Typ A zu

Page 77: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 77

Abstrakte Kopplung (II)

Diese mit einer abstrakten Klasse gekoppelten Klassenkönnen dank Polymorphismus und dynamischer Bindungohne Änderung mit Objekten beliebiger Unterklassender abstrakten Klassen, auf denen sie basieren, arbeiten.Das Verhalten dieser Komponenten wird also nicht durchdirekten Eingriff verändert, sondern durchsoftwaretechnisch saubere Modifikation der abstraktenKlassen in Unterklassen.

Abstrakte Klassen + abstrakteKopplung bilden somit die Basis fürOO Frameworks (= Halbfertigfabrikate).

Page 78: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 78

Abstrakte Kopplung (III)

Das Hauptproblem ist, guteAbstraktionen zu finden, sodaß andereSoftware-Komponenten darauf aufbauendrealisiert werden können.Abstrakte Klassen entwickeln sichtypischerweise erst im Zusammenspielmit den mit ihnen gekoppelten Klassenevolutionär weiter.

Page 79: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 79

BeispielHotelreservierung

Page 80: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 80

Frameworks—Statische Sicht

abstrakte Klassen(hier mit jeweils einerabstrakten Methode)

aaa

. . .

CreditCardEMoney

Framework-Klassen

Framework-Adaption

. . .. . .. . .

A1

A

Payment

Promotion

FreqShopping

. . .

. . .

Page 81: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 81

Black-Box versus White-BoxFramework-Teile

aa

vor der Adaptierung

EMoneyPayment

nach der Adaptierung

Page 82: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree 82

Hands-On Übung

Webshop

Page 83: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 83

Case StudyWebshop (I)

Es soll ein Webshop konstruiert werden,mit Hilfe dessen man Bücher über dasInternet kaufen kann.

Ein Bestandteil soll der „Katalog“ sein,der die Bücher verwaltet.

Page 84: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 84

Case StudyWebshop (II)

Erster Entwurf:

Page 85: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 85

Case StudyWebshop (III)

Problem: Es sollen nun auch CDs undComputerspiele mitangeboten werden;Der Katalog muß also erweitert werden.

Page 86: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 86

Case StudyWebshop (IV)

Neuer Entwurf:

Page 87: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree 87

Collaboration& SequenceDiagramme

Page 88: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 88

Collaboration-Diagramm (I)

In einem Collaboration-Diagramm gibt es nur einfache Beziehungenzwischen Objekten( ).

Optional kann auch der Message-Fluß zwischen Objektendargestellt werden. (Dazu sind aber meist Sequence-Diagrammebesser geeignet.)

message ist: [no:] method() method() wird wie bei Klassendiagrammen angegeben no ist eine optionale Nummer, die die Reihenfolge der

Methodenaufrufe definiert.

message, ...

Page 89: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 89

Collaboration-Diagramm(II)

Beispiel:

Page 90: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 90

Sequence-Diagramm (I)

Ein Sequence-Diagramm drückt imwesentlichen die gleiche Semantik aus wie einCollaboration-Diagramm, ist aber evtl. leichterzu lesen.

Collaboration-Diagramme bieten den Vorteil,daß zusätzliche Informationen darstellbar sind(zB Beziehungen zwischen Objekten).

Collaboration-Diagramme können automatischin Sequence-Diagramme überführt werden.

Page 91: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 91

Sequence-Diagramm (II)

Beispiel:

Page 92: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 92

Case Study:Webshop (I)

Katalog dynamisch: Wie werden Produkte in den Katalog

eingefügt? Wie sieht das Sequence – Diagramm aus? Wie sieht das Collaborations – Diagramm

aus?

Page 93: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 93

Case Study:Webshop (II)

Page 94: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 94

Case Study:Webshop (III)

Page 95: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 95

Use Cases

Page 96: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 96

Use Case:Erstes Artefakt

Use Cases helfen, die Anforderungen eines Systems besser zu

verstehen. die Anforderungen eines Systems zu

dokumentieren.

Use Cases verbinden die verschiedenenModelle eines Systems

Page 97: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 97

Papierübung

Lehrveranstaltungssystem Professoren tragen ihre Veranstaltungen ein Studenten wählen ihre Veranstaltungen System berechnet Gebühren

Was sind die Anforderungen? Wie könnte man die Anforderungen

dokumentieren? Wie könnte man die Anforderungen

visualisieren?

Page 98: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 98

Use-Case: Kommunikations-grundlage

Use Cases (Szenarien) stellen ein wichtigesKommunikationsvehikel dar, mit Hilfedessen sich die Endanwender/Benutzer einesSystems und die Entwickler verständigen.Bestandteile eines Use-Case-Modells:

Systemfunktionen (Use Cases) Umgebung (Actors) Beziehungen zwischen Use Cases und

Actors (Use Case Diagrams)

Page 99: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 99

Actors

Darstellung in UML:

Es sollte nicht für jede Rolle, die jemand hat, ein Actordefiniert werden.

Beispiele für Actors: Studenten, die sich für Lehrveranstaltungen

anmelden (externes) Abrechnungssystem Rezeptionist, der ein Hotelreservierungssystem

bedient

Page 100: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 100

Use Cases (I)

Ein Use Case modelliert einen Dialogzwischen einem Actor und dem System.Damit wird beschrieben, welche Funktionalitätdas System einem Actor bietet.

Darstellung in UML:

Page 101: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 101

Use Cases (II)

Hilfreiche Fragen, um Use Cases zu definieren:• Was sind die Aufgaben eines Actors?• Wird ein Actor Informationen im System erzeugen,

speichern, ändern, löschen oder lesen?• Welche Use Cases werden diese Informationen

erzeugen, speichern, ändern, löschen oder lesen?• Muß ein Actor über bestimmte Ereignisse im System

informiert werden?• Können alle funktionalen Anforderungen mit den Use

Cases erfüllt werden?

Page 102: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 102

Use Cases (III)

Beispiel für die Kurzbeschreibung eines Use Cases:Bezeichnung: Anmeldung zu einer Lehrveranstaltung(LVA)Dieser Use Case wird durch einen Studenten gestartet. Eswird die Möglichkeit geboten, einen Stundenplan für einbestimmtes Semester zu erstellen, löschen, ändernund/oder anzuschauen.

Ereignisfluß (Flow of Events) wird in Form eines Text-Dokuments (zB Word)

beschrieben Vorschlag für eine Schablone:

Pre-ConditionsMain Flow und eventuelle Sub-FlowsAlternative Flows

Page 103: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 103

Use Cases (IV)

Beispiel: Auswahl von LVAs (durch Professoren), dieangeboten werden

Pre-ConditionsDer Use Case “Anbieten von Kursen” muß ausgeführt sein,

bevor dieser Use Case beginnt. Main FlowDieser Use Case beginnt, wenn sich ein Professor im LVA-

Verwaltungssystem anmeldet und sein/ihr Passworteingibt. Das System verifiziert, ob das Passwort gültig ist(E-1) und fordert den Professor auf, das aktuelleSemester oder ein künftiges Semester auszuwählen (E-2). Danach wählt der Professor die gewünschte Tätigkeit:Hinzufügen, Löschen, Anzeigen, Drucken oder Beenden.

Page 104: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 104

Use Cases (V)

Wenn Hinzufügen gewählt wurde, wird der Sub-Flow S-1:Hinzufügen eines LVA-Angebots ausgeführt.... Sub-FlowsS-1: Hinzufügen eines LVA-AngebotsÜber entsprechende Eingabefelder können LVA-Bezeichnungund Nummer eingegeben werden (E-3). Das System verbindetden Professor mit der angebotenen LVA (E-4). Der Use Casebeginnt von neuem.... Alternative FlowsE-1: Ein falscher Name oder ein flasches Passwort wurdeneingegeben. Der Benutzer kann beides neu eingeben oder denUse Case beenden.

Page 105: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 105

Use Case Diagramm (I)

Diese zeigen bestimmte oder alle Actors, Use Casessowie Beziehungen zwischen diesen Entitäten.Typischerweise gibt es

ein Main Use Case Diagram, welches diewichtigsten Actors und die Hauptfunktionalitätgrafisch darstellt

beliebig viele weitere Use Case Diagrams, zBein Diagramm, welches alle Use Cases für einen

bestimmten Actor zeigtein Diagramm, welches einen Use Case und alle seine

Beziehungen zeigt

Page 106: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 106

Use Case Diagramm (II)

Beispiel:

Page 107: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 107

Use Case Diagramm (III)

Die “Uses”-Beziehung zeigt, daß Funktionalität inmehreren Use Cases benötigt wird.

Die “Extends”-Beziehung drückt optionalesVerhalten eines Use Cases aus.

Beide Beziehungen werden durch einen Abhängigkeits-Pfeil dargestellt und durch Stereotypen-Namenbezeichnet:In UML gibt es das sogenannte Stereotype-Konzept,mit Hilfe dessen die grundlegendenModellierungselemente erweitert werden können. DieNamen von Stereotypen sind zwischen << und >>.Stereotypen werden zB benutzt, um die Beziehungenzwischen Use Cases zu beschreiben.

Page 108: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 108

Use Case Diagramm (IV)

Beispiel:

Page 109: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 109

Hands-On Übung

Webshop Vgl. Amazon.com Kunde surft durch das Angebot, wählt Produkt,bezahlt mit Karte oder Bankeinzug...

Anbieter kann neue Produkte in den Katalogstellen...

Page 110: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 110

Hands-On Übung

Page 111: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 111

Hands-On Übung:Registrieren

MainflowDer Use Case beginnt, wenn der Benutzer denPunkt „registrieren“ wählt. Das System fordertihn auf, ein Formular auszufüllen, in dem erseinen Namen, Adresse, Alter, Nickname undPasswort angibt(E-1). Danach schickt dasSystem eine E-Mail an den Benutzer und zeigtihm an, dass er sich erfolgreich registriert hat.

Page 112: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 112

Case Study:Registrieren

Alternative FlowsE-1: Falls der Benutzer das Formularunvollständig ausgefüllt hat, wird eraufgefordert, die unausgefüllten Felderauszufüllen.E-1: Falls ein Nickname vom System schonvergeben wurde, wird er aufgefordert, einenanderen Nickname zu wählen...

Page 113: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 113

CRC-Karten

Page 114: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 114

CRC Karten(I)

Welche Klassen werden gebraucht,um ein Szenario zu modellieren?

Wie arbeiten diese Klassenzusammen?

Page 115: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 115

CRC Karten(II)

Class, Responsibility, Collaboration Beck und Cunningham, OOPSLA89

Entwickelten CRC – Karten, um denParadigmenwechsel (prozedural OO) anschaulich unterrichten zukönnen.

Unmittelbare Einführung in die Ideevon „Verantwortungen“ (Wirfs-Brock1990)

Page 116: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 116

CRC-Karten(III)

4x6 Index Karten Spezifizieren:

Klassennamen Verantwortungen Zusammenarbeit

Page 117: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 117

Beispiel:

Page 118: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 118

CRC Karten(IV)

Vorteile Kommunikation zwischen Designern Weg von Datenbehältern – hin zu

„Verantwortungen“ Kollaboration zwischen Klassen wird

leichter verstanden (kann nachgespieltwerden)

Grösse der Karten sorgt für richtigeGranularität der Klassen und forciert eineHigh-Level Spezifikation der Klassen

Page 119: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 119

Pakete und

Paketdiagramme

Page 120: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 120

Pakete

Pakete weden verwendet, um Klassen zugruppieren. Klassen, die logischzusammengehören, werden in Paketenstrukturiert.UML Notation:

Page 121: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 121

Pakete(II)

Pakete können geschachtelt sein, umkomplizierte Architekturen besserstrukturieren zu können.In UML können optional dieKlassennamen, die zu einem Paketgehören, aufgelistet werden.

Page 122: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 122

Paketdiagramme

Folgende Beziehungen zwischen Paketen könnendefiniert werden: Abhängigkeit

Wird verwendet, um auszudrücken, daß dieKlassen des einen Pakets Klassen desanderen Pakets verwenden Verallgemeinerung

Wird verwendet, wenn die Klassen des einen Pakets dieVerträge der Klassen des anderen Pakets erfüllen

Page 123: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 123

Beispiel:E-Commerce-Anwendung

Page 124: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 124

Zustands-übergangs-diagramme

Page 125: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 125

Notationselemente (I)

Zustandsübergangsdiagramme zeigen das dynamischeVerhalten einer Klasseninstanz oder eines ganzenSystems.

Symbol für einen Zustand:

Symbol für den Zustandsübergang:

aa

state name

actions

aa

event / action

Page 126: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 126

Notationselemente (II)

Eine Aktion kann wie folgt geschrieben werden: converter.ReadFile() method call DeviceFailure event triggering start Converting begin some activity stop Converting stop some activity

Page 127: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 127

Beispiel

Controller in einem Glashaus:

aa

Idle Daytime

Nighttime

defineclimate

temperature drop or rise /AdjustTemp()

sunset /LightOff()

sunrise /LightOn()

temperature drop or rise /AdjustTemp()

terminate climate

terminate climate

Page 128: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 128

Notationszusätze (I)

Innerhalb eines Zustandes können Aktionen definiertwerden,

wenn das System in diesen Zustand kommt, bzw. ihnverläßt:

sich in einem Zustand befindet: do Heating

Zustandsübergänge können an Bedingungen geknüpftwerden, die in eckigen Klammern angegeben werden.

aa

Heating

entry StartUp()exit ShutDown() too cool

[restart time >= 5 minutes]

Page 129: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 129

Notationszusätze (II)

Bedingungen können auch Zeitlimits enthalten:timeout(Heating, 30s) TRUE, wenn System

länger als 30 Sek.im Zustand Heating ist

Zustände können beliebig geschachtelt werden:

aa

Ready

Startup

Running

Cooling

compressorrunning

fanrunning

Page 130: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 130

Notationszusätze (III)

Zustände mit “Gedächnis”:Ein Zustand, der weitere Unterzustände enthält,kann ein "Gedächnis" bekommen, also sichmerken, in welchem Unterzustand er sich befand,wenn der Zustand verlassen wird.Dies wird durch das Adornment

ausgedrückt.

aa

H

Page 131: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 131

Beispiel

aa

H

Heating

entry StartUp()exit ShutDown()

Idle

too cool[restart time >= 5 minutes]

too hot

OK

Ready

Startup

Running

Cooling

compressorrunning

fanrunning

loggedlogready

createlog

createdposted

post

Failure

failure failurecleared

failure

Page 132: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 132

Beispiel: GUI

Abfolge von Dialogen alsZustandsübergangsdiagramm:

Page 133: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 133

Hands-On Übung

Page 134: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 134

Hands-On Übung

Welche Zustände kann ein Telefonhaben?

Gibt es Unterzustände? Weche Zustandsübergange gibt es? Gibt es Bedingungen für diese?

Page 135: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 135

Hands-On Übung

Page 136: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 136

Case Study:Webshop (I)

Shoppingcart Welche Zustände hat ein

Einkaufswagen? Um es spannender zu machen; es

sollen nie mehr als 10 Elemente imWagen sein.

Page 137: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 137

Case Study:Webshop (II)

Page 138: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 138

Component-Diagramme

Page 139: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 139

Notation

Klassen entsprechen Komponenten. Analog zuPackages können mehrere Klassen in eine Komponentezusammengfasst werden.In UML-Notation wird eine Komponente wie folgtdargestellt:

Komponenten entsprechen Modulen inmodulorientierten Sprachen.C++: Nachbau von Modulen durch .h, .C FilesSmalltalk: Klassengruppen, keine ModuleOberon und Java: Modularisierung direkt durch dieSprache unterstützt

Page 140: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 140

Deployment-Diagramm

Page 141: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 141

Notation

Diese Darstellung ist aus Booch’sProzeßdiagramm entstanden. Sie drückt aus,welche Hauptprogramme bzw. welche aktivenObjekte welchen Prozessoren zugeordnet sind,wenn ein System auf mehreren Prozessorenverteilt läuft.

aa

greenhouse 1

greenhouse 2

gardenerworkstation

Page 142: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 142

Beispiel: CORBA

Page 143: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 143

Hands-On Übung:Webshop

Ein Webshop ist typischerweise eineverteilte Anwendung. Normalerweise sinddrei Schichten beteiligt.

Wie könnte die Topologie des Systemsaussehen?

Welche Komponenten befinden sich aufwelchen computational-nodes?

Page 144: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 144

3-tier Applikationen

Page 145: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 145

Webshop:Topologie

Page 146: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 146

Anhang ALiteraturhinweise

Page 147: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 147

Literaturhinweise (I)Booch G., Jacobson I, Rumbaugh J. (1999)

Objektorientierte Analyse und Design. Mit praktischenAnwendungsbeispielenDas UML-Benutzerhandbuch (Unified Modeling Language User

Guide)Unified Modeling Language Reference Manual,The Objectory Software Development Process,Addison-Wesley

Österreich B. (2000) Erfolgreich mit Objektorientierung, Oldenburg VerlagBalzert H. (2000) Objektorientierung in 7 Tagen, m. CD-ROM. Vom UML-Modell zur

fertigen Web-Anwendung, Spektrum Akadem. VerlagBudd T. (1997) An Introduction to Object-Oriented Programming, Addison-WesleyFayad M., Schmidt D., Johnson R. (1999) Building Application Frameworks: Object-

Oriented Foundations of Framework Design, WileyFayad M., Schmidt D., Johnson R. (1999) Implementing Application Frameworks:

Object-Oriented Frameworks at Work, WileyFayad M., Schmidt D., Johnson R. (1999) Domain-Specific Application Frameworks:

Manufacturing, Networking, Distributed Systems, and SoftwareDevelopment, Wiley

Fowler M. (1997) Analysis Patterns, Addison-Wesley.Fowler M. (1999) UML Distilled (= UML konzentriert)

Page 148: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 148

Literaturhinweise (II)

Gamma E., Helm R., Johnson R. and Vlissides J. (1995). Design Patterns—Elementsof Reusable OO Software. Reading, MA: Addison-Wesley (auch als CDverfügbar)

Pree W. (1995). Design Patterns for Object-Oriented Software Development.Reading, Massachusetts: Addison-Wesley/ACM Press

Goldberg A., Rubin K. (1995) Suceeding with Objects—Decision Frameworks forProject Management, Addison-Wesley

Fontoura M., Pree W., Rumpe B. (2001) The UML-F Profile for FrameworkArchitectures, Addison Wesley

Larman C. (1998) Applying UML And PatternsRumbaugh J. (1992) Object-Oriented Modeling and Design, Prentice-Hall

http://www.rational.com (diverse aktuelle Informationen zu Rational Tools, UML)

http://www.together.com (diverse aktuelle Informationen zu Together Tools, UML)

Page 149: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 149

Anhang BUML Essentials

Page 150: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 150

Anhang:UML: Klasse, Vererbung

Klassen:

Vererbung:

Page 151: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 151

Anhang:UML: Klassenbeziehungen

Association:

Vielfachheiten:

Page 152: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 152

Anhang:UML: Klassenbeziehungen

Aggregation:

Navigierbarkeit:

Abhängigkeit:

Page 153: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 153

Anhang:UML: Objekte, Bemerkungen

Objekt:

Bemerkung:

Page 154: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 154

Anhang:UML: Use Case Diagramm

Page 155: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 155

Anhang:UML: Sequence Diagramm

Page 156: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 156

Anhang:UML: Collaboration Diagramm

Page 157: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 157

Anhang:UML: Zustandsdiagramm

Page 158: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 158

Anhang:UML: Paketdiagramm

Page 159: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 159

Anhang:UML: Deployment Diagramm

Page 160: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 160

Anhang CUML-

Beispieldiagramme

Page 161: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 161

Getränkeautomat

Page 162: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 162

Hotel-reservierungs-system

Page 163: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 163

Hotel – Collaboration

Page 164: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 164

Hotel – Sequence

Page 165: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 165

WebShop – Use Case

Page 166: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 166

WebShop – Katalog

Page 167: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 167

WebShop – ShoppingCart

Page 168: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 168

Login-Dialog

Page 169: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 169

CORBA – Deployment

Page 170: Grundlagen Objekt-orientierter Modellierung

© 2002, W. Pree, OOAD/UML 170

3-Tier – Deployment