Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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?
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• ...
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
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
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• ...
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
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 ...
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,...
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.
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
??
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)
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
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"
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.
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
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
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.
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
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
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