Post on 18-Oct-2020
transcript
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 1
Prof. Dr. Mario Winter FH KölnSP2-2a
Softwareentwicklung und Projektmanagement Teil 2: Objektorientierte SoftwareentwicklungWS 05/06
Kapitel 2: UML – Strukturelle Modellierung Teil 1
Folie 2 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Lernziele: Nach dieser Vorlesung sollten Sie ...
• Wissen, was ein Modell ist und welche Eigenschaften gute Modelle haben• Die wesentlichen Modellierungselemente der UML aufzählen und erläutern
können• Die drei wesentlichen Modellierungssichten bei der Entwicklung von
Software kennen und voneinander abgrenzen können• Objekte und Klassen als strukturelle Modellierungskonzepte kennen und
zueinander in Bezug setzen können• Attribute und Operationen als die beiden Hauptbestandteile einer Klasse
kennen und erläutern können• Assoziationen in Klassenmodellen erkennen und charakterisieren können• Standardoperationen anhand der Attribute und Assoziationen von Klassen
benennen und erläutern können
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 2
Folie 3 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Inhaltsüberblick
• Modellierung mit der UML• Objekte• Klassen• Assoziationen• Standardoperationen
Folie 4 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Zur Erinnerung
• Große Software– Ist komplex – Besteht aus umfangreichen formalisierten Artefakten– Hat eine lange Lebensdauer
• Softwaretechnik umfasst die Bereitstellung von Methoden, Techniken und Werkzeugen zur Produktion– Großer Software hoher Qualität– Kostengünstig innerhalb eines festen Budgetrahmens– Zum geplanten Zeitpunkt
⇒ Zentrales Anliegen: Beherrschung der Komplexität
ModellierungObjekteKlassen
AssoziationenStandardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 3
Folie 5 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Konzepte zur Komplexitätsbeherrschung
• Teile und Herrsche – „Vertikale“ Problemzerlegung – Oft nach Teilfunktionen (Modularisierung)– Gut geeignet bei wohlstrukturierten Problemen mit abgrenzbaren Teilen
• Abstraktion – „Horizontale“ Problemzerlegung– Vereinfachte Beschreibung der Realität, die einige der Details oder
Eigenschaften herausstellt, während sie andere unterdrückt– Bezogen auf die Perspektive des jeweiligen Betrachters werden jene
relevanten Charakteristika herausgearbeitet, die den Betrachtungsgegenstand von anderen unterscheiden und ihn möglichst scharf abgrenzen
– Eine gute Abstraktion lenkt die Aufmerksamkeit des Betrachters auf die im Kontext wesentlichen Dinge und verzichtet auf bedeutungslose undablenkende Details
– Oft in mehreren Stufen (Hierarchisierung)• Prinzip des geringsten Erstaunens (principle of the least astonishment)
– Es werden genau die im Kontext benötigten Eigenschaften betrachtet; es gibt keine darüber hinausgehenden „überraschenden“ Eigenschaften
• Diese Konzepte bilden die Grundlagen der Modellierung
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Folie 6 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Modellierung
• Wie erkennen und verstehen wir die Welt?– Schemen- bzw. Bild-(Wieder-)Erkennung– Szenen- und Bildzerlegung ⇒ Teile und Herrsche!– Begriffsbildung ⇒ Abstraktion!– Objektifizierung: Eigenschaften und Fähigkeiten
Groß – Lärm –Räder – Motor –
Kabine – ...
Lastwagen!
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Ein Modell ist eine aufgabenangemessene, abstrahierende Sicht auf einen Gegenstand oder Sachverhalt
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 4
Folie 7 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Drei Modell-Kriterien
• Abbildung– Es gibt ein Ding oder einen Sachverhalt, der im Modell abgebildet wird– Ding oder Sachverhalt werden oft als “das Original” bezeichnet
• Verkürzung (Abstraktion)– Nicht alle Eigenschaften des Originals sind im Modell repräsentiert, sondern
das Modell ist eine “Verkürzung” (Reduktion, Vereinfachung, Abstraktion…) des Originals
– Auf der anderen Seite muss das Modell zumindest einige Eigenschaften des Originals widerspiegeln
• Pragmatik– Das Modell ersetzt das Original für einen bestimmten Zweck. D.H., das Modell
ist nützlich …• … für jemanden (ein wahrnehmendes oder agierendes Subjekt) …• … in einem bestimmten Zeitraum …• … eingeschränkt für bestimmte Interpretationen oder Operationen
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Folie 8 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Methodische Softwareentwicklung
• Methodos (Griech. methodos) = Das Nachgehen• Methode (Balzert) = Planmäßig angewandte, begründete
Vorgehensweisen zur Erreichung von festgelegten Zielen
Methode
Vorgehensweise Konzepte Notation
AktivitätenTechniken
Regeln Beispiele Grafisch Textuell
Angelehnt an: Helmut Balzert: Lehrbuch der Software-Technik Bd. I — Software Entwicklung.Spektrum Akademischer Verlag, Heidelberg, 2. Aufl. 2001
ModellierungObjekteKlassen
AssoziationenStandardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 5
Folie 9 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Das Ziel: Vom Modell zum Anwendungssystem
Folie 10 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Unified Modelling Language – UML
• Modellierungssprache• KEINE Methode• OMG-Standard seit 1997• De Facto – Industriestandard• Verbindliche Version: 2.0
ModellierungObjekteKlassen
AssoziationenStandardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 6
Folie 11 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Modellierungselemente
• Strukturelle Elemente– Klasse, Interface, Kollaboration, Aktive Klasse, Komponente, Knoten
• Funktionsorientierte Elemente– Akteur, Anwendungsfall, Operation
• Verhaltensorientierte Elemente– Interaktion, Nachricht, Zustand, Zustandswechsel, Zustandsmaschine
• Gruppierende Elemente– Paket, Teilsystem
• Andere Elemente– Notiz
• “Eingebaute” Erweiterungsmöglichkeiten– Constraints– Stereotype– Metamodellierung
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Folie 12 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Modellierungssichten
• Struktur– Welche Dinge muss das Anwendungssystem kennen?– Womit soll die Anwendungssystem umgehen (Daten)?
• Funktion– Welche Aufgaben soll das Anwendungssystem unterstützen?
• Verhalten– Wie sollen Benutzer mit dem Anwendungssystem interagieren?– Welche Interaktionen zwischen Objekten?– Welche Geschäftsregeln gelten für einzelne Objekte?
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Struktur (Daten)
Funk
tion Verhalten
Anwendungssystem
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 7
Folie 13 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Visuelle Modellierung mit UML Diagrammen
Actor A
Use Case 1
Use Case 2
Actor B
Use Case 3
Anwendungsfall-diagramm
user : »ç¿ëÀÚ
mainWnd : MainWnd
fileMgr : FileMgr
repository : Repositorydocument : Document
gFile : GrpFile
9: sortByName ( )
L1: Doc view request ( )
2: fetchDoc( )
5: readDoc ( )
7: readFile ( )
3: create ( )
6: fillDocument ( )
4: create ( )
8: fillFile ( )
Kommunikations-diagramm
usermainWnd fileMgr :
FileMgrrepositorydocument :
DocumentgFile
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByName ( )
ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼- °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
È-¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡ º¸¿©ÁØ´Ù.
Sequenz-diagramm
Document
FileManager
GraphicFileFile
Repository DocumentList
FileList
Komponenten-diagramm
Openning
Writing
Reading Closing
add file [ numberOffile==MAX ] / flag OFF
add file
close file
close file
Zustands-diagramm
Wi ndow95
¹®¼-°ü¸® Ŭ¶óÀ̾ðÆ®.EXE
Wi ndowsNT
¹®¼-°ü¸® ¿£Áø.EXE
Wi ndowsNT
Wi ndows95
Solaris
ÀÀ¿ë¼-¹ö.EXE
AlphaUNIX
IBM Mainframe
µ¥ÀÌŸº£À̽º¼- ¹ö
Wi ndows95
¹®¼-°ü¸® ¾ÖÇ Ã¸´
Deployment-diagramm
Klassendiagramm
GrpFile
read( )open( )create( )fillFile( )
rep
Repository
name : char * = 0
readDoc( )readFile( )
(from Persistence)
FileMgr
fetchDoc( )sortByName( )
DocumentList
add( )delete( )
Document
name : intdocid : intnumField : int
get( )open( )close( )read( )sortFileList( )create( )fillDocument( )
fList
1
FileList
add( )delete( )
1
File
read( )
read() fill the code..
Aktivitäts-diagramm
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Funktion
Verhalten
Log. Struktur
Phys. Struktur
Folie 14 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Modell, Sichten und Diagramme
Use CaseDiagramsUse Case
DiagramsAnwendungsfallDiagrammAktivitäts
Diagramm
Funktionssicht
ScenarioDiagramsScenario
DiagramsKommunikationsDiagramm
ScenarioDiagramsScenario
DiagramsZustandsDiagramm
Use CaseDiagramsUse Case
DiagramsSequenzDiagramm
Verhaltenssicht
StateDiagramsState
DiagramsObjektDiagramm
StateDiagramsState
DiagramsKlassenDiagramm
Log. Struktursicht
StateDiagramsState
DiagramsKomponentenDiagramm
ComponentDiagramsComponent
DiagramsDeploymentDiagramm
Phys. Struktursicht
Modell
ModellierungObjekteKlassen
AssoziationenStandardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 8
Folie 15 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Strukturelle Modellierung
• Modellierung der relevanten materiellen und immateriellen Dinge (Gegenstände und Sachverhalte)
• Insbesondere Daten und Informationen („aufbereitete“ Daten)– In der Anforderungsermittlung: der Realwelt– Im Entwurf: des Softwareprodukts– In der Implementation: des Programmes– Im Test: der Programmfunktionen, des Programmablaufs– In Auslieferung, Installation und Betrieb: der Rechner-Infrastruktur
• sowie – deren Einzelmerkmale (Attribute),– Fähigkeiten (Operationen) und – Querbezüge (Assoziationen)
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Folie 16 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Strukturelle Modellierung mit der UML
• Objekte– Zustand– Verhalten– Verbindungen
• Klassen– Attribute– Operationen– Assoziationen
• Pakete– Strukturierung großer Modelle
ModellierungObjekteKlassen
AssoziationenStandardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 9
Folie 17 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Wo sind wir?
• Modellierung• Objekte• Klassen• Assoziationen• Standardoperationen
Folie 18 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Objekte
• Objekte modellieren einzelne, konkrete „Dinge“ (der Realwelt, der Software, ...)• Jedes Objekt ist charakterisiert durch Identität, Zustand und Verhalten• Identität
– Eindeutige „Identifikation“, meist implizit (Referenz, „Zeiger“)– Manchmal auch explizit als Objekt-Identifikator (OID)
• Zustand– Zu einem bestimmten Zeitpunkt beobachtbare Eigenschaften
• Verhalten– Reaktionen des Objekts auf Ereignisse (Nachrichten, Operationsaufrufe, ...)
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Objektbezeichnung
person1
person2
abteilung1
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 10
Folie 19 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
einGetränkeautomat
seriennummer = 83249943geldeinwurf = 5auswahl = Limo1wechselgeldEuro1= 73wechselgeldEuro2= 57vorratLimo1 = 20vorratLimo2 = 17
Attribute und Objektzustand
AttributnameAttributwert
ModellierungObjekteKlassen
AssoziationenStandardoperationen
person1
name = Klausalter = 25
person2
name = Mariaalter = 34
person3
name = Claudiaalter = 23
Folie 20 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Objektverbindungen
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Person1
Name = KlausAlter = 25
Person2
Name = MariaAlter = 34
Service
TechnikerKauf
Kunde
Verkäufer
Person3
Name = ClaudiaAlter = 23
Kauf
Kunde
VerkäufereinGetränkeautomat
seriennummer = 83249943geldeinwurf = 5auswahl = Limo1wechselgeldEuro1= 73wechselgeldEuro2= 57vorratLimo1 = 20vorratLimo2 = 17
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 11
Folie 21 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Objektverhalten
• Objekte reagieren auf Ereignisse (z.B. Nachrichten), indem sie– ihren Zustand ändern– Verbindungen lösen oder neu eingehen– selbst Ereignisse auslösen oder Nachrichten an (andere) Objekte senden
• Eine Nachricht besteht aus Name und Parametern
geldEinwerfen (2)
ModellierungObjekteKlassen
AssoziationenStandardoperationen
einGetränkeautomat
seriennummer = 83249943geldeinwurf = 5auswahl = Limo1wechselgeldEuro1= 73wechselgeldEuro2= 57vorratLimo1 = 20vorratLimo2 = 17
7
Folie 22 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Wo sind wir?
• Modellierung• Objekte• Klassen• Assoziationen• Standardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 12
Folie 23 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Klassen
• Eine Klasse beschreibt Objekte mit gemeinsamen Eigenschaften• Charakterisiert durch Name, Attribute und Operationen• Die von einer Klasse beschriebenen Objekte werden als Instanzen
(Ausprägungen) dieser Klasse bezeichnet• Das Erzeugen eines Objekts nennt man Instanzierung
Bestellung Kunde AngestellterKlassen
Meier
Mueller Schmidt
Bestellung1
Bestellung2
Kuhn
Keller
Objekte(Instanzen)
ModellierungObjekte
KlassenAssoziationen
Standardoperationen
Folie 24 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Bezeichnung von Klassen
• Sprechende Namen verwenden• Erster Buchstabe und Wortanfänge groß• Keine Umlaute (global development)• Im Diagramm: Fettdruck• Z.B.
– Kunde– Person– GehaltsKonto
ModellierungObjekte
KlassenAssoziationen
Standardoperationen
Kunde
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 13
Folie 25 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Bezeichnung von Objekten (Instanzen)
• Benannte Instanz mit unbekannter Klasse– Objektname
• Benannte Instanz mit bekannter Klasse– Objektname : Klassenname
• Unbenannte Instanz mit bekannter Klasse (anonymes Objekt)– : Klassenname
ModellierungObjekte
KlassenAssoziationen
Standardoperationen
Lisa Mueller : Kunde
Folie 26 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Eine Klasse, viele Objekte
: Kunde
Lisa Mueller : Kunde
Maria Klein
Petra Schmidt : Kunde
Ulrich Thorn : Kunde
Kunde
Klasse Instanzen (Objekte)Unbenannte Instanz mit
bekannter Klasse (anonymes Objekt)
Benannte Instanz mit bekannter Klasse
Benannte Instanz mit unbekannter Klasse
ModellierungObjekte und KlassenAssoziationenGeneralisierungSpezifikationPakete
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 14
Folie 27 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Attribute beschreiben den Zustand
• Charakterisiert durch Name, Typ, Sichtbarkeit und Eigenschaften• Name
– Alphanumerische Zeichen, kleingeschrieben, Wortanfänge groß, ...• Typ
– In Programmiersprachen üblichen Datentypen wie Boolean, Integer, Real, Char, String und Date
– Einfache anwendungsspezifische Datentypen wie Personalnummer oder Kundennummer
– Auch Klassen als Attributtyp – Ggf. initiale Wertebelegung und eine den
Wertebereich einschränkende Zusicherung• Sichtbarkeit
– public +, private -, protected #• Eigenschaften
– changeable, frozen, ...
Firmenkunde
+ name : String {frozen}+ adresse+ kontakt- kreditrahmen
ModellierungObjekte
KlassenAssoziationen
Standardoperationen
Folie 28 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Gleichheit von Objekten
• Wertegleichheit– Verschiedene Objekte besitzen dieselben Attribute (sind Instanz ein- und
derselben Klasse) und stimmen in allen Attributwerten überein• Referentielle Gleichheit
– Verschiedene Verbindungen verweisen auf ein- und dasselbe Objekt• Java-Beispiel
...String A = “alle“;String B = “alle“;if (A == B) { ... }if (A.isEqual(B)) { ... }A = B;if (A == B) { ... }if (A.isEqual(B)) { ... }...
ModellierungObjekte
KlassenAssoziationen
Standardoperationen
A : String
value = „alle“
B : String
value = „alle“
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 15
Folie 29 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Operationen beschreiben (aktivierbares) Verhalten
• Charakterisiert durch Signatur, Sichtbarkeit und Eigenschaften• Signatur
– NameAlphanumerische Zeichen, kleingeschrieben, Wortanfänge groß, ...
– ParameterÜbergabeart
in Eingabe-Werteparameterinout Eingabe-Referenzparameter, existiert vor Ausführungout Ausgabe-Referenzparameter, wird bei Ausführung erzeugt
Typ (wie Attributtypen)– Ergebnistyp (Wie Ausgabe-Referenzparameter)
• Sichtbarkeit– public +, private -, protected #
• Eigenschaften– abstract, isQuery, «create», «destroy», ...
Firmenkunde
nameadressekontaktkreditrahmen
monatsumsatz() {isQuery}bonitaet() {isQuery}monatsrechnung()mahnen()
public monatsumsatz(in aktMonat : Monat) : Geld {isQuery}
ModellierungObjekte
KlassenAssoziationen
Standardoperationen
Folie 30 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Instanz- und Klasseneigenschaften
• Instanzeigenschaften betreffen eine bestimmte Instanz– Klasse Person mit (Instanz-)Attributen name und geburtsdatum und
(Instanz-)Operationen setzeName() und gibGeburtsdatum()• Klasseneigenschaften betreffen die Klasse (mit allen Instanzen)
– Klasse Person mit (Klassen-)Attribut volljährigkeit und (Klassen-)Operation setzeVolljährigkeit()
Person
volljährigkeit = 21namegeburtsdatum
setzeVolljährigkeit()setzeName()gibGeburtsdatum()
Klasse Instanzen
A: Person
name = Petergeburtsdatum = ...
B: Person
name = UteGeburtsdatum = ...
setzeVolljährigkeit(18)setzeName(Paul)
18Paul
ModellierungObjekte
KlassenAssoziationen
Standardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 16
Folie 31 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
class XYZ {static Person meinFreund;public static main() {
meinFreund = new Person(„Peter“, 23051981);
...;}...
}
Klassen und Objekte in Java
class Person {String name;int geburtstag; // in ttmmyyyy mit führenden Nullen
Person( String n, int g ) { // Konstruktorname = n;geburtstag = g;
}void drucken() {
System.out.println("Name: "+ this.name);System.out.println("Geburtsdatum: "+
this.geburtstag);}boolean hat_geburtstag ( int datum ) {
return this.geburtstag == datum;}
}
Attribute
(Instanzvariablen)Operationen
Personname: Stringgeburtstag: int
Person(): Persondrucken()hat_geburtstag(): boolean
ModellierungObjekte
KlassenAssoziationen
Standardoperationen
meinFreund: Personname = Petergeburtstag = 23051981
Folie 32 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Wo sind wir?
• Modellierung• Objekte• Klassen• Assoziationen• Standardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 17
Folie 33 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Assoziationen beschreiben Objektverbindungen
• Charakterisiert durch Name, beteiligte Klassen und Eigenschaften• Name• Beteiligte Klassen
– Normalerweise zwei verschiedene Klassen ⇒ binäre Assoziation– Selten n verschiedene Klassen ⇒ n-äre Assoziation– Ein- und dieselbe Klasse ⇒ reflexive Assoziation
• Eigenschaften– implicit, ...
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Auftrag
Kunde
vornamenachnameadresse
setzeVorname()gibVorname()...
Bestellung
auftragsnummerbestellwertdatum
erledigen()abschliessen()...
Folie 34 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Eine Assoziation, viele Objektverbindungen
ModellierungObjekteKlassen
AssoziationenStandardoperationen
BestellungKundeKlassenAuftrag
Meier
Mueller
Bestellung1
Bestellung2
Objekte(Instanzen)
Auftrag
Auftrag
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 18
Folie 35 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Assoziationsenden beschreiben Rollen der Klassen
• Charakterisiert durch Rollenname, Multiplizität (Kardinalität) und Eigenschaften
• Rollenname– Beschreibt die Art / den Grund der Beteiligung der Klasse– Wie Klassennamen
• Multiplizität– Gibt an, wie viele Instanzen der Klasse bez. der Assoziation verbunden sein
können– Fest z.B. 1 oder 5– Bereich 1..5 oder 0..10 oder 1,3,5..*– Ein Stern (*) alleine bedeutet 0.. ∞
• Eigenschaften– isNavigable, ordered, sorted, changeable, frozen, addOnly, ...
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Rolle B
Multipliz. B
Rolle A
Multipliz. AA B
Assoz. Name
Folie 36 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Assoziationsenden: Navigierbarkeit
• Navigierbarkeit ist Eigenschaft (isNavigable) des Assoziationsendes• Welche Instanzen “kennen“ verbundene Instanzen, d.H. können z.B.
Nachrichten an diese versenden
• In Java
einA.dasB.operation1() //ok
ModellierungObjekteKlassen
AssoziationenStandardoperationen
A B
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 19
Folie 37 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Assoziationsenden: Multiplizitäten
• 1:1-Assoziation – Beide Enden der Assoziation Multiplizität 1 oder 0..1
• 1:n-Assoziation – Ein Ende die Multiplizität 1 oder 0..1, das andere Ende die Multiplizität 0..p (für
eine feste natürliche Zahl p > 1), p oder *• n:m-Assoziation
– Alle anderen Fälle• Mehrwertige Assoziation
– Assoziation, die mindestens eine Multiplizität größer als 1 besitzt• Assoziierte Objekte werden als Menge aufgefasst,
– Jedes Paar bzw. Tupel verbundener Objekte höchstens einmal– Ohne ordered keine Ordnung auf den Zielobjekten
ModellierungObjekteKlassen
AssoziationenStandardoperationen
0..1 1..*A B
Folie 38 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Assoziationen und Verbindungen
0..1 1..*Assoz
ass1: Assoz
Klassen
Instanzenass1: Assoz
ass2: Assoz
ModellierungObjekteKlassen
AssoziationenStandardoperationen
A B
a1 : A
a2 : A
a3 : A
b1 : B
b2 : B
b3 : B
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 20
Folie 39 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Beispiel: Klassendiagramm Kursverwaltung
Lehrkraft
vornamenachnametitellehrgebiet
Kurs
kurstitelkursnummerdurchführung
Kursbetreuung
Beleger
matrikelNummervornamenachname
Kursbelegung
ModellierungObjekteKlassen
AssoziationenStandardoperationen
Lese-Richtung der Assoziation
1*
*
*
Folie 40 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Beispiel: Objektdiagramm Kursverwaltung
EineLehrkraft������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������
�������
�������������������������������������������������������������������vorname = “Karoline“nachname = “Meier“titel = “Prof. Dr.“lehrgebiet = “Praktische Informatik X“
EinKurs : Kurs����������������������������������������������������
�������������������������������������������������������������������������������������������������������������������������������������������
����������
� �����������������������������������������������������������������kurstitel = “Software Engineering I“kursnummer = 98765durchführung = “SS99“
� ���������������������������������������Kursbetreuung��������������������������
: Beleger��������������������������������
�������������������������������������������������������������������������������������������������������������������������
����������
� ��������������������������������������������������������
matrikelNummer = 98765432vorname = “Jochen“nachname = “Müller“
��
��
����������
Kursbelegung������������������������
: Beleger
matrikelNummer = 843278845Vorname = “Petra“Nachname = “Schmidt“
Kursbelegung
ModellierungObjekteKlassen
AssoziationenStandardoperationen
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 21
Folie 41 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Wo sind wir?
• Modellierung• Objekte• Klassen• Assoziationen• Standardoperationen
Folie 42 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Standardoperationen
• Absprachen zur Vereinfachung der Modelle• Werden oft nicht im Diagramm angegeben
– gibAtt():T liefert den Wert des Attributs att– setzeAtt(in wert:T) setzt den Wert des Attributs att auf den
übergebenen Wert wert– verbindeAss(in einB:B) verbindet die ausführende A-Instanz mit der
übergebenen B-Instanz einB– gibAss():B gibt die mit der ausführenden A-Instanz verbundene B-Instanz
bzw. — bei einer mehrwertigen Assoziation — die Menge aller verbundenen B-Instanzen zurück
– loeseAss(in einB:B) hebt die Verbindung zwischen der ausführenden A-Instanz und der übergebenen B-Instanz einB wieder auf
– erzeuge():K gibt eine neue Instanz der Klasse K zurück– zerstoere() zerstört die ausführende Instanz
• Im Entwurf oft englisch geschrieben– getAtt(), setAtt(), connectAss(), getAss(), disconnectAss(),
create(), destroy()
ModellierungObjekteKlassen
AssoziationenStandardoperationen
AssB
Aatt: T
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter
SP2-2a WI-3 imWS05/06 22
Folie 43 Prof. Dr. Mario Winter, FH KölnSP2-2a UML – Strukturelle Modellierung Teil 1
Zusammenfassung
• Modellierung• UML Diagramme: Überblick• Objekte
– Zustand, Verhalten und Identität• Klassen
– Attribute, Operationen• Assoziationen
– Navigierbarkeit– Multiplizität
• Standardoperationen – Zum Lesen und Setzen von Attributwerten– Zum Abfragen, Verbinden und Lösen von Verbindungen bez. Assoziationen