Upload
hedy-motl
View
108
Download
2
Embed Size (px)
Citation preview
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
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
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
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
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?
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
Abteilung für Informationswirtschaft
Seite 8Dr. Michael Hahsler
Vererbung (Inheritance)• Hierarchische Beziehung zwischen Klassen mit
ähnlichen Eigenschaften
Behälter
Dose Häferl Gießkanne
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?
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?
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• ...
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
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
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!
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
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
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• ...
Abteilung für Informationswirtschaft
Seite 18Dr. Michael Hahsler
Zusammenfassung• Akteure und Anforderungen• Use Cases• Szenarios
Abteilung für Informationswirtschaft
Seite 19Dr. Michael Hahsler
Das Klassendiagram• Logischen Aufbau des Systems• Statischen Aspekte• Zusammenhänge und Beziehungen
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
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 aus
1 *Auto Einzelteile
Einzelteil
Motor Karosserie ...
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
4
1besteht aus
PKW ist nur fahrtüchtig
mit: Räder, Karosserie,...
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 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.
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
...
Abteilung für Informationswirtschaft
Seite 28Dr. Michael Hahsler
Beispiel: KFZ VersicherungKlasse Versicherung:• Welche Attribute?• Welche Methoden?
Versicherung
?
?
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
Activity DiagramZweck:• Ablaufmöglichkeiten eines Systems
Aktivitäten sind zugeordnet:– Klassen– Operationen– einem Use Case
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.
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
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
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.
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
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
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.
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
Abteilung für Informationswirtschaft
Seite 39Dr. Michael Hahsler
Zusammenfassung• Zwischen Objekten:
– Interaktionen– Nachrichten
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)
Abteilung für Informationswirtschaft
Seite 41Dr. Michael Hahsler
Elemente: State Transition Diagram
• Zustand
• Übergang (Ereignis)
Name
Ereignis(Argumente)
[Bedingungen]/Aktion
Aktivität
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.
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]
Abteilung für Informationswirtschaft
Seite 44Dr. Michael Hahsler
Zusammenfassung• Zustände• Übergänge