![Page 1: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/1.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/2.jpg)
© 2002, W. Pree, OOAD/UML 2
OO Analyse-und Design-
Tools
![Page 3: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/3.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/4.jpg)
© 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-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/5.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/6.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/7.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/8.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/9.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/10.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/11.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/12.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/13.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/14.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/15.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/16.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/17.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/18.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/19.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/20.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/21.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/22.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/23.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/24.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/25.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/26.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/27.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/28.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/29.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/30.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/31.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/32.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/33.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/34.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/35.jpg)
© 2002, W. Pree, OOAD/UML 35
Klasse als Schablone/Typ (II)
![Page 36: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/36.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/37.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/38.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/39.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/40.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/41.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/42.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/43.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/44.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/45.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/46.jpg)
© 2002, W. Pree, OOAD/UML 46
Objektdiagramme
... mehr dazu bei Sequenz-diagrammen
![Page 47: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/47.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/48.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/49.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/50.jpg)
© 2002, W. Pree, OOAD/UML 50
Klassenbeziehungen (IV)
Beispiel:
![Page 51: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/51.jpg)
© 2002, W. Pree, OOAD/UML 51
VererbungPolymorphismus
Dynamische Bindung
![Page 52: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/52.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/53.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/54.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/55.jpg)
© 2002, W. Pree, OOAD/UML 55
Vererbung(IV)
UML Notation:
![Page 56: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/56.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/57.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/58.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/59.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/60.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/61.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/62.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/63.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/64.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/65.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/66.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/67.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/68.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/69.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/70.jpg)
© 2002, W. Pree, OOAD/UML 70
Verstehen derInteraktionen
zwischenObjekten
![Page 71: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/71.jpg)
© 2002, W. Pree, OOAD/UML 71
Object Game
„Durchspielen“ einerHotelzimmerreservierung
![Page 72: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/72.jpg)
© 2002, W. Pree, OOAD/UML 72
AbstrakteKlassen und
abstrakteKopplung
![Page 73: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/73.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/74.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/75.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/76.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/77.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/78.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/79.jpg)
© 2002, W. Pree, OOAD/UML 79
BeispielHotelreservierung
![Page 80: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/80.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/81.jpg)
© 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, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/82.jpg)
© 2002, W. Pree 82
Hands-On Übung
Webshop
![Page 83: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/83.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/84.jpg)
© 2002, W. Pree, OOAD/UML 84
Case StudyWebshop (II)
Erster Entwurf:
![Page 85: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/85.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/86.jpg)
© 2002, W. Pree, OOAD/UML 86
Case StudyWebshop (IV)
Neuer Entwurf:
![Page 87: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/87.jpg)
© 2002, W. Pree 87
Collaboration& SequenceDiagramme
![Page 88: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/88.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/89.jpg)
© 2002, W. Pree, OOAD/UML 89
Collaboration-Diagramm(II)
Beispiel:
![Page 90: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/90.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/91.jpg)
© 2002, W. Pree, OOAD/UML 91
Sequence-Diagramm (II)
Beispiel:
![Page 92: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/92.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/93.jpg)
© 2002, W. Pree, OOAD/UML 93
Case Study:Webshop (II)
![Page 94: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/94.jpg)
© 2002, W. Pree, OOAD/UML 94
Case Study:Webshop (III)
![Page 95: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/95.jpg)
© 2002, W. Pree, OOAD/UML 95
Use Cases
![Page 96: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/96.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/97.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/98.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/99.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/100.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/101.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/102.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/103.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/104.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/105.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/106.jpg)
© 2002, W. Pree, OOAD/UML 106
Use Case Diagramm (II)
Beispiel:
![Page 107: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/107.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/108.jpg)
© 2002, W. Pree, OOAD/UML 108
Use Case Diagramm (IV)
Beispiel:
![Page 109: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/109.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/110.jpg)
© 2002, W. Pree, OOAD/UML 110
Hands-On Übung
![Page 111: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/111.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/112.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/113.jpg)
© 2002, W. Pree, OOAD/UML 113
CRC-Karten
![Page 114: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/114.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/115.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/116.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/117.jpg)
© 2002, W. Pree, OOAD/UML 117
Beispiel:
![Page 118: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/118.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/119.jpg)
© 2002, W. Pree, OOAD/UML 119
Pakete und
Paketdiagramme
![Page 120: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/120.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/121.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/122.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/123.jpg)
© 2002, W. Pree, OOAD/UML 123
Beispiel:E-Commerce-Anwendung
![Page 124: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/124.jpg)
© 2002, W. Pree, OOAD/UML 124
Zustands-übergangs-diagramme
![Page 125: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/125.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/126.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/127.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/128.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/129.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/130.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/131.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/132.jpg)
© 2002, W. Pree, OOAD/UML 132
Beispiel: GUI
Abfolge von Dialogen alsZustandsübergangsdiagramm:
![Page 133: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/133.jpg)
© 2002, W. Pree, OOAD/UML 133
Hands-On Übung
![Page 134: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/134.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/135.jpg)
© 2002, W. Pree, OOAD/UML 135
Hands-On Übung
![Page 136: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/136.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/137.jpg)
© 2002, W. Pree, OOAD/UML 137
Case Study:Webshop (II)
![Page 138: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/138.jpg)
© 2002, W. Pree, OOAD/UML 138
Component-Diagramme
![Page 139: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/139.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/140.jpg)
© 2002, W. Pree, OOAD/UML 140
Deployment-Diagramm
![Page 141: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/141.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/142.jpg)
© 2002, W. Pree, OOAD/UML 142
Beispiel: CORBA
![Page 143: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/143.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/144.jpg)
© 2002, W. Pree, OOAD/UML 144
3-tier Applikationen
![Page 145: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/145.jpg)
© 2002, W. Pree, OOAD/UML 145
Webshop:Topologie
![Page 146: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/146.jpg)
© 2002, W. Pree, OOAD/UML 146
Anhang ALiteraturhinweise
![Page 147: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/147.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/148.jpg)
© 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 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/149.jpg)
© 2002, W. Pree, OOAD/UML 149
Anhang BUML Essentials
![Page 150: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/150.jpg)
© 2002, W. Pree, OOAD/UML 150
Anhang:UML: Klasse, Vererbung
Klassen:
Vererbung:
![Page 151: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/151.jpg)
© 2002, W. Pree, OOAD/UML 151
Anhang:UML: Klassenbeziehungen
Association:
Vielfachheiten:
![Page 152: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/152.jpg)
© 2002, W. Pree, OOAD/UML 152
Anhang:UML: Klassenbeziehungen
Aggregation:
Navigierbarkeit:
Abhängigkeit:
![Page 153: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/153.jpg)
© 2002, W. Pree, OOAD/UML 153
Anhang:UML: Objekte, Bemerkungen
Objekt:
Bemerkung:
![Page 154: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/154.jpg)
© 2002, W. Pree, OOAD/UML 154
Anhang:UML: Use Case Diagramm
![Page 155: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/155.jpg)
© 2002, W. Pree, OOAD/UML 155
Anhang:UML: Sequence Diagramm
![Page 156: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/156.jpg)
© 2002, W. Pree, OOAD/UML 156
Anhang:UML: Collaboration Diagramm
![Page 157: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/157.jpg)
© 2002, W. Pree, OOAD/UML 157
Anhang:UML: Zustandsdiagramm
![Page 158: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/158.jpg)
© 2002, W. Pree, OOAD/UML 158
Anhang:UML: Paketdiagramm
![Page 159: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/159.jpg)
© 2002, W. Pree, OOAD/UML 159
Anhang:UML: Deployment Diagramm
![Page 160: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/160.jpg)
© 2002, W. Pree, OOAD/UML 160
Anhang CUML-
Beispieldiagramme
![Page 161: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/161.jpg)
© 2002, W. Pree, OOAD/UML 161
Getränkeautomat
![Page 162: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/162.jpg)
© 2002, W. Pree, OOAD/UML 162
Hotel-reservierungs-system
![Page 163: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/163.jpg)
© 2002, W. Pree, OOAD/UML 163
Hotel – Collaboration
![Page 164: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/164.jpg)
© 2002, W. Pree, OOAD/UML 164
Hotel – Sequence
![Page 165: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/165.jpg)
© 2002, W. Pree, OOAD/UML 165
WebShop – Use Case
![Page 166: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/166.jpg)
© 2002, W. Pree, OOAD/UML 166
WebShop – Katalog
![Page 167: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/167.jpg)
© 2002, W. Pree, OOAD/UML 167
WebShop – ShoppingCart
![Page 168: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/168.jpg)
© 2002, W. Pree, OOAD/UML 168
Login-Dialog
![Page 169: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/169.jpg)
© 2002, W. Pree, OOAD/UML 169
CORBA – Deployment
![Page 170: Grundlagen Objekt-orientierter Modellierung€¦ · © 2002, W. Pree, OOAD/UML 5 Was ist von OOAD-Tools zu erwarten? (II) OO Analyse- und Design- (OOAD) Werkzeuge können fogende](https://reader035.vdokument.com/reader035/viewer/2022063002/5f30c97f2fd36b2a5c5a7021/html5/thumbnails/170.jpg)
© 2002, W. Pree, OOAD/UML 170
3-Tier – Deployment