Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung...

44
Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler

Transcript of Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung...

Page 1: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

UML-Basics: Einführung in Objekt-Orientierte Modellierung

mit der Unified Modeling Language

Michael Hahsler

Page 2: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language 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 3: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 3Dr. 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 4: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 4Dr. Michael Hahsler

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

– Eigenschaften (Attribute)– Verhalten (Methoden)

• Kommunizieren mit anderen Objekten (Nachrichten)

trinken

Page 5: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 5Dr. 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 6: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 6Dr. 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?

Page 7: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 7Dr. 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 8: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 8Dr. Michael Hahsler

Vererbung (Inheritance)• Hierarchische Beziehung zwischen Klassen mit

ähnlichen Eigenschaften

Behälter

Dose Häferl Gießkanne

Page 9: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 9Dr. 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 10: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 10Dr. Michael Hahsler

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

Ist diese Nutzung des modellierten

Häferls vorgesehen?

Page 11: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 11Dr. 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 12: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 12Dr. Michael Hahsler

Die UML NotationUse Cases

– Akteure, Szenarios

Klassendiagramme– Klassen, Beziehungen

Collaborationsdiagramme

Aktivitätsdiagramm– Ablaufmöglichkeiten

Sequenzdiagramme– Objekte, Interaktionen

State-Transition Diagramme– Internes Verhalten von Objekten

Anforderungen

(Requirements)

Statische Sicht:

log. Aufbau des

Systems

Dynamische Sicht:

Interaktionen,

Abläufe

Page 13: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 13Dr. Michael Hahsler

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

System.

RolleKonsument Ein anderes

System

Darstellung in UML

Eine andere

Organisation

Page 14: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 14Dr. Michael Hahsler

Use Case Diagramme• 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!

Page 15: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 15Dr. Michael Hahsler

Beispiel: Use Case

Use Cases für eine KFZ Versicherung:– Versicherung abschließen– Versicherung kündigen– Versicherter bezahlt Prämie– Sachbearbeiter behandelt Schadensfall– Sachbearbeiter ändert Konditionen

Page 16: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 16Dr. Michael Hahsler

Beispiel: Use Case

Fahrzeug-halter

V. abschließen

Versicherung

Sachbearbeiter

V. kündigen

Konditionen ändern

Schadensfall behandeln

Prämie bezahlen

Page 17: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 17Dr. Michael Hahsler

Beispiel: SzenarioSchadensfall behandeln:• Schaden wird von der Versicherung bezahlt

– Eigenverschulden– Fremdverschulden

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

Page 18: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 18Dr. Michael Hahsler

Zusammenfassung• Akteure und Anforderungen• Use Cases• Szenarios

Page 19: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 19Dr. Michael Hahsler

Das Klassendiagram• Logischen Aufbau des Systems• Statischen Aspekte• Zusammenhänge und Beziehungen

Page 20: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

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

PKW

FarbeLeistung

Geschwindigkeit

....

Beschleunigen

Bremsen

Lenken

...

KlasseObjekte (Instanzen)

oder

W59777: PKW

Rot

50km

Page 21: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

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

Page 22: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

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 aus

1 *Auto Einzelteile

Einzelteil

Motor Karosserie ...

Page 23: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

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,...

Page 24: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 24Dr. Michael Hahsler

Beispiel: Klassendiagramm

PKW Einzelteil

Motor Karosserie

besteht aus

1 *

...verwendet

ZylinderFahrzeughalter

0..*

1

4

1besteht aus

PKW ist nur fahrtüchtig

mit: Räder, Karosserie,...

Page 25: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

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

Page 26: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 26Dr. Michael Hahsler

Beispiel: KFZ VersicherungSzenario KFZ Versicherung: Ein Fahrzeughalter

muß für sein KFZ eine Versicherung abschließen. Er wird bei der Versicherung von einem Sachbearbeiter betreut. Nach dem Abschluß bekommt der Versicherte einen Vertrag mit den genauen Versicherungsdaten und der Sachbearbeiter führt Unterlagen zu etwaigen Schadensfällen.

Page 27: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 27Dr. Michael Hahsler

Eigenschaften von Klassen• Attribute

Was muß sich das Objekt merken können?

• MethodenWelche Eigenschaften soll es haben?

PKW

FarbeLeistung

Geschwindigkeit

....

Beschleunigen

Bremsen

Lenken

...

Page 28: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 28Dr. Michael Hahsler

Beispiel: KFZ VersicherungKlasse Versicherung:• Welche Attribute?• Welche Methoden?

Versicherung

?

?

Page 29: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 29Dr. Michael Hahsler

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

Page 30: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 30Dr. Michael Hahsler

Activity DiagramZweck:• Ablaufmöglichkeiten eines Systems

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

Page 31: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 31Dr. Michael Hahsler

Beispiel: Kfz VersicherungSzenario Schadensfall: Ein Schadensfall tritt ein. Der

Sachbearbeiter wird informiert und bearbeitet den Fall. Der Vorfall wird in den Versicherungsunterlagen vermerkt. Bei Verschulden durch den Versicherungsnehmer wird die monatliche Prämie erhöht.

Page 32: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 32Dr. Michael Hahsler

Beispiel: Activity Diagram

Schaden feststellen

[Schaden ist gering]

[Schaden ist groß]

Selbstbezahlen

Schaden melden

Schaden

vermerken

Mit anderer

Versicherung

verhandeln

{AND}

[eigenverschulden]

[fremdverschulden]

Prämieerhöhen

Page 33: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 33Dr. Michael Hahsler

Sequence DiagramZweck:• Interaktion zwischen Objekten aus Szenarios• Identifikation von zusätzlichen Klassen und

Methoden

Beinhaltet:• Objekte• Lebenszeit von Objekten• Nachrichten zwischen Objekten

Page 34: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 34Dr. Michael Hahsler

Beispiel: KFZ VersicherungSzenario Versicherung abschließen: Ein

Fahrzeughalter beantragt eine KFZ Versicherung. Der Antrag wird vom zuständigen Sachbearbeiter geprüft. Nach erfolgreicher Prüfung wird ein Vertrag abgeschlossen.

Szenario Versicherung kündigen: Der Versicherte kündigt die Versicherung. Der Sachbearbeiter löst den Vertrag auf.

Page 35: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 35Dr. Michael Hahsler

Beispiel: Sequence DiagramKFZ Versicherung

:Fahrzeughalter :Sachbearbeiter

Ein V.: Versicherung

Versicherung beantragen (Daten)

Antrag prüfen

Vertrag erstellenVertrag schicken(Versicherungs#)

Kündigen (Versicherungs#)

Vertrag auflösen

bestätigen

Versicherung

abschließen

Versicherung

auflösen

Page 36: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 36Dr. Michael Hahsler

Collaboration DiagramZweck:• Interaktion und Verflechtung zwischen Objekten• Alternativ zu Sequence Diagrams

Beinhaltet:• Objekte• Struktur der Objekte• Sequenz von Nachrichten zwischen Objekten

Page 37: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 37Dr. Michael Hahsler

Beispiel: KFZ VersicherungSzenario Versicherung abschließen: Ein

Fahrzeughalter beantragt eine KFZ Versicherung. Der Antrag wird vom zuständigen Sachbearbeiter geprüft. Nach erfolgreicher Prüfung wird ein Vertrag abgeschlossen.

Page 38: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 38Dr. Michael Hahsler

Beispiel: Collaboration Diagram

KFZ Versicherung

:Fahrzeughalter :Sachbearbeiter

Eine V.: Versicherung

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

3: Vertrag erstellen

4: Vertrag schicken

(Versicherungs#)

Versicherungsdatenbank

Page 39: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 39Dr. Michael Hahsler

Zusammenfassung• Zwischen Objekten:

– Interaktionen– Nachrichten

Page 40: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 40Dr. Michael Hahsler

State Transition DiagramZweck:• Ablauf innerhalb eines Objekts

Beinhaltet:• Zustände (States)• Ereignisse (Events)• Übergänge zwischen Zuständen (Transitions)

Page 41: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 41Dr. Michael Hahsler

Elemente: State Transition Diagram

• Zustand

• Übergang (Ereignis)

Name

Ereignis(Argumente)

[Bedingungen]/Aktion

Aktivität

Page 42: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 42Dr. Michael Hahsler

Beispiel: Kfz VersicherungSzenario Schadensfall: Ein Schadensfall tritt ein. Der

Sachbearbeiter wird informiert und bearbeitet den Fall. Der Vorfall wird in den Versicherungsunterlagen vermerkt. Bei Verschulden durch den Versicherungsnehmer wird die monatliche Prämie erhöht.

Page 43: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 43Dr. Michael Hahsler

Beispiel: Kfz VersicherungKfz Versicherung

Klasse Versicherung

Versichert BearbeitungSchaden tritt ein

kündigen

vermerken

Fertig [Eigenverschulden]/Prämie erhöhen

Fertig [Fremdverschulden]

Page 44: Abteilung für Informationswirtschaft UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.

Abteilung für Informationswirtschaft

Seite 44Dr. Michael Hahsler

Zusammenfassung• Zustände• Übergänge