24
Seite 1 Abteilung für Informationswirtschaft Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler Abteilung für Informationswirtschaft Seite 2 Dr. Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung? Modellierung mit UML Welche Diagramme gibt es? Wie liest und erstellt man diese Diagramme

UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 1

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified

Modeling Language

ADV-SeminarLeiter: Dr. Michael Hahsler

Abteilung für Informationswirtschaft

Seite 2Dr. Michael Hahsler

Ziel dieses Seminars• Verständnis von Objekt-Orientierung

– Was sind Klassen?– Was ist Vererbung?

• Modellierung mit UML– Welche Diagramme gibt es?– Wie liest und erstellt man diese

Diagramme

Page 2: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 2

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 3Dr. Michael Hahsler

Unterlagen zu UML• Buch

– M. Fowler, K. Scott: UML konzentriert, Addison-Wesley, München 2000 (ISBN 3-8273-1617-0)

• On-Line / Tools– Object Management Group (Spezifikationen)

http://www.omg.org/technology/uml/– Rational (Info und Tool)

http://www.rational.com/umlhttp://www.rational.com/products/rose

– Link Sammlunghttp://wwwai.wu-wien.ac.at/~hahsler/work/adv/

Abteilung für Informationswirtschaft

Seite 4Dr. Michael Hahsler

Das Wasserfall Modell• Analyse (WAS?)

– Erstellung der Problembeschreibung, Requirements– Abbildung der Realität im Objektmodell

• Design (WIE?)– Verfeinerung des Objektmodells– Beschreibung der Eigenschaften der Objekte

• Implementierung– Auswahl einer Programmiersprache– Programmieren, Testen, Dokumentieren– Wartung und Verbesserung

UML alsNotation

Page 3: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 3

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 5Dr. Michael Hahsler

Objekte• „Dinge“ aus der realen Welt• Besitzen:

– Eigenschaften (Attribute)– Verhalten (Methoden)

• Kommunizieren mit anderen Objekten(Nachrichten)

trinken

Abteilung für Informationswirtschaft

Seite 6Dr. Michael Hahsler

Nachrichten und Methoden• Nachrichten sind Signale von einem Objekt an ein

anderes.• Nachrichten lösen Methoden des anderen Objekts

aus.

trinken (einen Schluck)

Michael1. Dose

Nachricht

Page 4: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 4

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 7Dr. Michael Hahsler

Kapselung• Objekte können Eigenschaften (Attribute) verbergen• Objekte können Methoden gegen Zugriff von außen

schützen• Die allgemein zugänglichen Methoden nennt man Interface

Wieviel Flüssigkeit ist in dieser Dose?Kann jeder diese Dose verschließen?

Abteilung für Informationswirtschaft

Seite 8Dr. Michael Hahsler

Klassen• Bauplan für ähnliche Objekte.• Beschreibt Methoden und Attribute die das Objekt

bekommt.• Objekte (Instanzen) werden aus Klassen erzeugt

Volumen = x

Instanzierung

Page 5: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 5

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 9Dr. Michael Hahsler

Vererbung (Inheritance)• Hierarchische Beziehung zwischen Klassen mit

ähnlichen Eigenschaften

Behälter

Dose Häferl Gießkanne

Abteilung für Informationswirtschaft

Seite 10Dr. Michael Hahsler

Polymorphismus• Griechisch: Vielgestaltigkeit• Gemeinsames Interface von verschiedenen Objekten

Behälter

Dose Häferl Gießkanne

Ich kenne das Interface eines Behälters!

Was weiß ich daher überGießkannen?

Page 6: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 6

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 11Dr. Michael Hahsler

Objekte und Abstraktion• Modellierung ist Vereinfachung• Modellierung ist Einschränkung• Was ist das Wesentliche?

Ist diese Nutzung des modelliertenHäferls vorgesehen?

Abteilung für Informationswirtschaft

Seite 12Dr. Michael Hahsler

Vorteile der Objekt-Orientierung• Objekte in Programmen entsprechen realen Objekten (von

Analyse bis zur Implementierung)• Modularität durch die Kapselung in Objekte• Wiederverwendung von Objektbibliotheken• Geringere Kosten bei Wartung• ...

Page 7: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 7

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 13Dr. Michael Hahsler

Die UML Notation• Use-Case-Diagramm (Akteure, Szenarios)• Klassendiagramm (Klassen, Beziehungen)• Paket-Diagramm (Strukturierung der Darstellung)• Kollaborationsdiagramme (Zusammenwirken der

Komponenten)• Aktivitätsdiagramm (Ablaufmöglichkeiten)• Sequenzdiagramme (Objekte, Interaktionen)• Zustandsübergangsdiagramm (Internes

Verhalten von Objekten)• Komponentendiagramm (Innere Struktur der

Objekte)• Verteilungsdiagramm (Einbettung der Objekte in

eine Umgebung)

Anforderungen(Requirements)

Statische Sicht:log. Aufbau desSystems

Dynamische Sicht:Interaktionen,Abläufe

Implementierung

Abteilung für Informationswirtschaft

Seite 14Dr. Michael Hahsler

Akteure (Actor)• Akteure verwenden das System• Akteure stellen Anforderungen (Requirements) an das

System.

RolleKonsument Ein anderesSystem

Darstellung in UML

Eine andereOrganisation

Page 8: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 8

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 15Dr. Michael Hahsler

Use-Case-DiagrammeZweck der Darstellung• Zeigen die benötigten Interaktionen zwischen dem

System und den Akteuren• Werden durch Szenarios beschrieben

(Normalfall + Problemfälle)• Grundlage für die Erstellung des Systems (müssen daher

vollständig sein!)• Grundlage für das Testen des Systems nach der

Erstellung

Wichtig: Use Cases beschreiben gewünschte Eigenschaftenund nicht das System wie es ist!

Abteilung für Informationswirtschaft

Seite 16Dr. Michael Hahsler

Beispiel: Use-CaseUse-Cases für eine KFZ-Versicherung:

– Versicherung abschließen– Versicherung kündigen– Versicherter bezahlt Prämie– Sachbearbeiter behandelt Schadensfall– Sachbearbeiter ändert Konditionen

Page 9: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 9

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 17Dr. Michael Hahsler

Beispiel: Use-Case-Diagramm

Fahrzeug-halter

V. abschließen

Versicherung

Sachbearbeiter

V. kündigen

Konditionenändern

Schadensfallbehandeln

Prämie bezahlen

Abteilung für Informationswirtschaft

Seite 18Dr. Michael Hahsler

Beispiel: SzenarioSzenario "Schadensfall behandeln"

• Schaden wird von der Versicherung bezahlt– Eigenverschulden– Fremdverschulden

• Fahrzeughalter bezahlt selbst• Gerichtsverhandlung• Andere Versicherung bezahlt• ...

Page 10: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 10

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 19Dr. Michael Hahsler

Das Klassendiagram• Zweck der Darstellung

– Logischen Aufbau des Systems– Statischen Aspekte– Zusammenhänge und Beziehungen zwischen

den Komponenten

Abteilung für Informationswirtschaft

Seite 20Dr. Michael Hahsler

KlassenKlassen sind die Baupläne für Objekte (Instanzen)

Klassenname

Attribute

Methoden

Darstellung in UML

Klassenname

Beispiel einer Klasse in UML

PKWFarbeLeistungGeschwindigkeit....

BeschleunigenBremsenLenken...

Klasse Objekte (Instanzen)

oder

W59777: PKW

Rot

50km

Page 11: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 11

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 21Dr. Michael Hahsler

Elemente Klassendiagramm I• Klassen

• Beziehungen (Paths/Associations)

• Richtung der Beziehungen (Navigability)

Klassenname

Klasse A Klasse Bspricht mit

Klasse A Klasse Bspricht mit

Abteilung für Informationswirtschaft

Seite 22Dr. Michael Hahsler

Elemente Klassendiagramm II• Kardinalitäten (Multiplicity)

• Aggregation (Aggregation/Composition)

• Generalisierung (Generalization)

Klasse A Klasse Bspricht mit1 0..*

besteht aus1 *

Auto Einzelteile

Einzelteil

Motor Karosserie ...

Page 12: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 12

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 23Dr. Michael Hahsler

Elemente Klassendiagramm II• Abhängigkeiten (Dependencies)

• Anmerkungen oder Einschränkung

Klasse A Klasse Bbenötigt

PKW

PKW ist nur fahrtüchtig mit: Räder, Karosserie,...

Abteilung für Informationswirtschaft

Seite 24Dr. Michael Hahsler

Beispiel: Klassendiagramm

PKW Einzelteil

Motor Karosserie

besteht aus

1 *

...verwendet

ZylinderFahrzeughalter

0..*

1

41besteht aus

PKW ist nur fahrtüchtig mit: Räder, Karosserie,...

Page 13: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 13

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 25Dr. Michael Hahsler

Wie kommt man zu Klassen?• Analyse der Use-Cases:

– Substantive sind Kandidaten für Klassen– Verben sind Kandidaten für Methoden

• Auswahl der Klassen– Synonyme finden– Unwichtige Klassen entfernen– Wichtige Klassen hinzufügen (Brainstorming)

• Organisation der Klassen

Abteilung für Informationswirtschaft

Seite 26Dr. Michael Hahsler

Beispiel: KFZ-VersicherungSzenario "KFZ-Versicherung"

Ein Fahrzeughalter muß für sein KFZ eineVersicherung abschließen. Er wird bei derVersicherung von einem Sachbearbeiterbetreut. Nach dem Abschluß bekommt derVersicherte einen Vertrag mit den genauenVersicherungsdaten und der Sachbearbeiterführt Unterlagen zu etwaigen Schadensfällen.

Page 14: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 14

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 27Dr. Michael Hahsler

Eigenschaften von Klassen• Attribute

Was muß sich das Objektmerken können?

• MethodenWelches Verhalten(Funktionen) soll das Objekthaben?

PKWFarbeLeistungGeschwindigkeit....

BeschleunigenBremsenLenken...

Abteilung für Informationswirtschaft

Seite 28Dr. Michael Hahsler

Beispiel: KFZ-VersicherungKlasse Versicherung:

– Welche Attribute?– Welche Methoden?

Versicherung

??

Page 15: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 15

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 29Dr. Michael Hahsler

Zusammenfassung• Was sind Klassen• Wie kommt man zu Klassen• Eigenschaften von Klassen• Beziehungen zwischen Klassen

Abteilung für Informationswirtschaft

Seite 30Dr. Michael Hahsler

Paket-DiagrammZweck der Darstellung

– Es werden als Übersicht Gruppen von Diagrammenoder Elementen zusammengefaßt. Pakte enthaltenmehrere Klassen.

– Es werden Abhängigkeiten angegeben. EineAbhängigkeit bedeutet, dass das abhängige Paketdurch Änderungen im anderen Paket betroffen ist(Änderung des Codes oder neuerliche Kompilierungkann notwendig sein)

Page 16: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 16

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 31Dr. Michael Hahsler

Beispiel: Paket-Diagram

Paket

Abhängigkeit

Generalisierung

Beispiel aus UML Kompakt von Günter Wahl

Abteilung für Informationswirtschaft

Seite 32Dr. Michael Hahsler

AktivitätsdiagrammZweck der Darstellung

– Ablaufmöglichkeiten eines Systems

Aktivitäten sind zugeordnet zu– Klassen– Operationen– einem Use Case

Page 17: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 17

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 33Dr. Michael Hahsler

Beispiel: Kfz-VersicherungSzenario "Schadensfall"

Ein Schadensfall tritt ein. Der Sachbearbeiter wirdinformiert und bearbeitet den Fall. Der Vorfall wird inden Versicherungsunterlagen vermerkt. BeiVerschulden durch den Versicherungsnehmer wirddie monatliche Prämie erhöht.

Abteilung für Informationswirtschaft

Seite 34Dr. Michael Hahsler

Beispiel: Aktivitätsdiagramm

Schaden feststellen

[Schaden ist gering]

[Schaden ist groß]

Selbstbezahlen

Schaden melden

Schadenvermerken

Mit andererVersicherungverhandeln

{AND}

[eigenverschulden]

[fremdverschulden]

Prämieerhöhen

Szenario "Schadensfall"

Page 18: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 18

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 35Dr. Michael Hahsler

SequenzdiagrammZweck der Darstellung

– Interaktion zwischen Objekten aus Szenarios– Identifikation von zusätzlichen Klassen und

Methoden

Enthält– Objekte– Lebenszeit von Objekten– Nachrichten zwischen Objekten

Abteilung für Informationswirtschaft

Seite 36Dr. Michael Hahsler

Beispiel: KFZ-VersicherungSzenario "Versicherung abschließen" Ein Fahrzeughalter beantragt eine KFZ-

Versicherung. Der Antrag wird vom zuständigenSachbearbeiter geprüft. Nach erfolgreicherPrüfung wird ein Vertrag abgeschlossen.

Szenario "Versicherung kündigen"Der Versicherte kündigt die Versicherung. Der

Sachbearbeiter löst den Vertrag auf.

Page 19: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 19

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 37Dr. Michael Hahsler

Beispiel: SequenzdiagrammKFZ-Versicherung - 2 Szenarios

:Fahrzeughalter :Sachbearbeiter

Ein V.: Versicherung

Versicherung beantragen (Daten)

Antrag prüfen

Vertrag erstellenVertrag schicken(Versicherungs#)

Kündigen (Versicherungs#)

Vertrag auflösen

bestätigen

Versicherungabschließen

Versicherungauflösen

Abteilung für Informationswirtschaft

Seite 38Dr. Michael Hahsler

KollaborationsdiagrammZweck der Darstellung

– Interaktion und Verflechtung zwischenObjekten

– Alternative zum Sequenzdiagramm

Enthält– Objekte– Struktur der Objekte– Sequenz von Nachrichten zwischen Objekten

Page 20: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 20

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 39Dr. Michael Hahsler

Beispiel: KFZ-VersicherungSzenario "Versicherung abschließen"

Ein Fahrzeughalter beantragt eine KFZ-Versicherung. Der Antrag wird vom zuständigenSachbearbeiter geprüft. Nach erfolgreicherPrüfung wird ein Vertrag abgeschlossen.

Abteilung für Informationswirtschaft

Seite 40Dr. Michael Hahsler

Beispiel: KollaborationsdiagrammSzenario "Versicherung abschließen"

:Fahrzeughalter :Sachbearbeiter

Eine V.: Versicherung

1: Versicherung beantragen (Daten)2: Antrag prüfen

3: Vertrag erstellen

4: Vertrag schicken(Versicherungs#)

Versicherungsdatenbank

Page 21: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 21

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 41Dr. Michael Hahsler

Zustandsübergangsdiagramm(State Transition Diagramm)

Zweck der Darstellung– Ablauf innerhalb eines Objekts

Enthält– Zustände (States)

– Ereignisse (Events)

– Übergänge zwischenZuständen (Transitions)

Name

Aktivität

Ereignis(Argumente)[Bedingungen]/Aktion

Abteilung für Informationswirtschaft

Seite 42Dr. Michael Hahsler

Beispiel: Kfz-VersicherungSzenario "Schadensfall"

Ein Schadensfall tritt ein. Der Sachbearbeiter wirdinformiert und bearbeitet den Fall. Der Vorfall wird inden Versicherungsunterlagen vermerkt. BeiVerschulden durch den Versicherungsnehmer wirddie monatliche Prämie erhöht.

Page 22: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 22

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 43Dr. Michael Hahsler

Beispiel: Kfz-VersicherungKlasse Versicherung aus Szenario "Schadensfall"

Klasse Versicherung

Versichert BearbeitungSchaden tritt ein

kündigen

vermerken

Fertig [Eigenverschulden]/Prämie erhöhen

Fertig [Fremdverschulden]

Abteilung für Informationswirtschaft

Seite 44Dr. Michael Hahsler

KomponentendiagrammZweck der Darstellung

– Abhängigkeit zwischen den Softwarekomponenten(Quellcode, Binärcodekomponenten und ausführbarenProgrammen)

– Abhängigkeiten entsprechen den Abhängigkeiten imPaket-Diagramm

Enthält– Komponenten (Module)– Interfaces– Abhängigkeiten

Page 23: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 23

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 45Dr. Michael Hahsler

Beispiel: Komponentendiagramm

Beispiel aus UML Kompakt von Günter Wahl

InterfaceKomponente

Abhängigkeit

Abteilung für Informationswirtschaft

Seite 46Dr. Michael Hahsler

Verteilungsdiagramm (Deployment Diagram)

Zweck der Darstellung– Einbettung des Komponentenmodells in eine

externe (HW-/SW-)Umgebung– Physikalische Realisierung der Softwarelösung

auf Servern und im Netz

Enthält– Module– Clients und Server– Netzwerkanbindungen

nach: Martin Klarner/Horst Silberhorn, Uni Erlangen

Page 24: UML-Basics: Einführung in Objekt- Orientierte …UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Dr. Michael Hahsler

Seite 24

Abteilung für Informationswirtschaft

Abteilung für Informationswirtschaft

Seite 47Dr. Michael Hahsler

Beispiel: Verteilungsdiagramm

GenerischeWeb-Applikation

nach: Martin Klarner/Horst Silberhorn, Uni Erlangen