Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2:...

22
UML – Strukturelle Modellierung Teil 1 © 2005 M. Winter SP2-2a WI-3 imWS05/06 1 Prof. Dr. Mario Winter FH Köln SP2-2a Softwareentwicklung und Projektmanagement Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle Modellierung Teil 1 Folie 2 Prof. Dr. Mario Winter, FH Köln SP2-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

Transcript of Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2:...

Page 1: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 2: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 3: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 4: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 5: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 6: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 7: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 8: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 9: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 10: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 11: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 12: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 13: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 14: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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“

Page 15: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 16: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 17: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 18: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 19: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 20: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 21: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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

Page 22: Softwareentwicklung und Projektmanagement Teil 2 ...winter/sp2-wi3/ws0506/SP2WI3F02a.pdf · Teil 2: Objektorientierte Softwareentwicklung WS 05/06 Kapitel 2: UML – Strukturelle

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