Unified Modeling Language (UML)

Werbung
09.01.14
Vorlesung „Programmieren“
Unified Modeling Language (UML)
Prof. Dr. Stefan Fischer
Institut für Telematik, Universität zu Lübeck
http://www.itm.uni-luebeck.de/people/fischer
Unified Modeling Language (UML)
•  Standard zur graphischen
Modellierung
–  Spezifikation, Konstruktion und
Dokumentation von Software
–  Vielzahl verschiedener
Diagramme
•  Entwickelt von der Object
Management Group (OMG)
–  Standardisiert von OMG und
ISO (ISO/IEC 19501, Version
2.1.2)
Bildquelle: http://en.wikipedia.org/wiki/File:UML_Diagrams.jpg
Unified Modeling Language (UML)
•  Diagramme stellen Softwaresysteme sprachunabhängig
dar
–  Ermöglicht Diskussion über Eigenschaften ohne über technische
Details einer Programmiersprache zu diskutieren
–  Erlaubt es auch nicht technisch-versiertem Personal (z.B.
Domänenexperten) am Design mitzuwirken
•  Beispiele zur Nutzung von UML
–  Kunde und Auftragnehmer prüfen Anforderungen an ein System
–  Domänenexperten beschreiben (bzw. modellieren) Abläufe in
Aktivitätsdiagrammen
–  Softwareexperten erstellen daraus Klassen- und
Sequenzdiagramme
Security - 00 Layout Master
#3
1
09.01.14
UML Diagrammtypen (14 Stück)
Strukturdiagramme
Verhaltensdiagramme
• 
• 
• 
• 
• 
• 
• 
•  Aktivitätsdiagramm
•  Sequenzdiagramm
•  Anwendungsfalldiagramm
(auch: Use-Case-Diagramm)
•  Interaktionsübersichtsdiagramm
•  Kommunikationsdiagramm
•  Zeitverlaufsdiagramm
•  Zustandsdiagramm
Komponentendiagramm
Klassendiagramm
Verteilungsdiagramm
Objektdiagramm
Paketdiagramm
Profildiagramm
Kompositionsstrukturdiagramm (auch:
Montagediagramm)
Security - 00 Layout Master
#4
Aktivitätsdiagramm
• 
Stellt eine bestimmte Sicht auf dynamische Aspekte eines modellierten
Systems dar
–  Es wird oft der Ablauf eines Anwendungsfalls des Systems modelliert
–  Zeigt Zusammenhänge verschiedener Aktionen auf und stellt die Kontroll- und Datenflüsse dar
• 
Beispiel: Spaghetti kochen
http://de.wikipedia.org/w/index.php?title=Datei:Activity_2.png&filetimestamp=20110727175635
Security - 00 Layout
Master
#5
Komponentendiagramm
•  Darstellung umfasst Komponenten und deren
Schnittstellen
–  Stellt Abhängigkeiten zwischen Komponenten dar
–  Zeigt, wie Komponenten miteinander verbunden
sind
http://de.wikipedia.org/w/index.php?title=Datei:Component-4.png&filetimestamp=20080905134924
#6
2
09.01.14
Klassendiagramm
Security - 00 Layout Master
#7
Klassendiagramm
•  Modellierung von Klassen, Schnittstellen und deren
Beziehungen
–  Klassen und Interfaces und deren Attribute und Methoden
–  Zugriffsschutz (public, private, etc.)
–  Vererbungsbeziehungen
•  „ist ein“-Beziehungen: extends, implements
•  Kiwi ist ein Obst, Apfel ist ein Obst
–  Kompositionen bzw. Assoziationen
•  „hat ein“- bzw. „hat mehrere“-Beziehungen
•  Obstkost „hat mehrere“ Obst-Instanzen
Security - 00 Layout Master
#8
Rückblick: Beispiel: Objekt „Punkt“
•  Besteht aus Zustand (Attributen)
und Verhalten (Methoden)
Punkt
Attribute:
-  double x = 1;
-  double y = 3;
•  Zustand eines Punktes
–  Definiert durch aktuelle x- und
y- Werte
Methoden:
-  void setze(double x, double y);
-  void verschiebe(double dx, double dy);
-  void rotiere(double radians);
•  Verhalten eines Punktes
–  Definiert durch seine Methoden
–  z.B. Setzen der x- und y-Werte,
verschieben, rotieren
Security - 04 Cryptology
#9
3
09.01.14
Modellierung einer Klasse in UML
•  Klasse ohne Attribute,
Methoden, etc.
•  Klasse mit einem Attribut
•  Klasse mit einer Methode
•  Klasse mit einem Attribut
und einer Methode
Security - 00 Layout Master
#10
Zugriffssteuerung (Methoden & Attribute)
•  „+“ für public
•  „#“ für protected
~
•  „-“ für private
•  „~“ für package private
–  Nur in wenigen
Programmiersprachen
verfügbar (Java, C#)
Security - 00 Layout Master
#11
Umsetzung in Java
Security - 00 Layout Master
#12
4
09.01.14
Umsetzung in Java
Security - 00 Layout Master
#13
Umsetzung in Java
Security - 00 Layout Master
#14
Umsetzung in Java
Security - 00 Layout Master
#15
5
09.01.14
Modellierung von Interfaces in UML
•  Interfaces markiert
durch <<interface>>
Security - 00 Layout Master
#16
Modellierung einer Klasse in UML
•  Statische Elemente
– Markiert durch
Unterstreichung
•  Abstrakte Elemente
– Markiert durch
kursive Schrift
Security - 00 Layout Master
#17
Statische Elemente in Java
Security - 00 Layout Master
#18
6
09.01.14
Abstrakte Elemente in Java
Security - 00 Layout Master
#19
Vererbung in UML
Security - 04 Cryptology
#20
Security - 00 Layout Master
#21
Vererbung
•  Einfache
Vererbung
7
09.01.14
Vererbung in Java
Security - 00 Layout Master
#22
Vererbung
•  Vererbung + Implementieren von
Interfaces
Security - 00 Layout Master
#23
Vererbung in Java
Security - 00 Layout Master
#24
8
09.01.14
Beispiel: Obstkorb
Security - 00 Layout Master
#25
Objektdiagramm
Security - 04 Cryptology
#26
Objektdiagramm
•  Dient zur Darstellung des Programmzustands
•  Notation
variablenname : Klasse
attributname = wert
•  Beispiel
p : Person
name = "Walter"
geburtsdatum = "12.12.1922"
9
09.01.14
Objektdiagramm (Beispiel)
b1: Bus
hersteller="Ford"
wechselintervall=10000
km_gefahren=3722
baujahr=1920
b2: Bus
Bus
hersteller="Mercedes-Benz"
wechselintervall=20000
km_gefahren=5647
baujahr=1999
hersteller: String
wechselintervall: int
km_gefahren: int
baujahr: int
b3: Bus
hersteller="MAN"
wechselintervall=30000
km_gefahren=10432
baujahr=2005
oelwechsel(): boolean
b4: Bus
hersteller="Scania"
wechselintervall=35000
km_gefahren=54432
baujahr=2003
5-2-28
Beziehungen zwischen Klassen
Security - 04 Cryptology
#29
Beispiel: Ein Haus hat ein Fenster
Security - 04 Cryptology
#30
10
09.01.14
Beziehungen zwischen Klassen
•  Ein Haus mit einem
Fenster
–  Ein Haus hat ein
Fenster
•  Ein Haus mit 1-n
Fenstern
–  Ein Haus hat viele
Fenster (aber
mindestens 1)
Security - 00 Layout Master
#31
Bidirektionale Beziehungen
•  Beispiel
– Ein Haus hat 1..*
Fenster
– Jedes Fenster hat
0..1 Häuser
Security - 00 Layout Master
#32
Umsetzung in Java
Security - 00 Layout Master
#33
11
09.01.14
Umsetzung in Java
Security - 00 Layout Master
#34
Sequenzdiagramm
Security - 00 Layout Master
#35
Sequenzdiagramm
•  Grafische Darstellung von Interaktionen
•  Beschreibt Austausch von „Nachrichten“ zwischen „Ausprägungen“
–  Also z.B. Methodenaufrufe zwischen Instanzen
–  Beschreibt eine mögliche Interaktion, nicht alle Interaktionen müssen
so ablaufen
http://de.wikipedia.org/w/index.php?title=Datei:Sequenz_diagramm-2.png&filetimestamp=20080906015648
Security - 00 Layout Master
#36
12
09.01.14
Sequenzdiagramm - Bausteine
Security - 00 Layout Master
#37
Beispiel (Obstkorb)
Security - 00 Layout Master
#38
Beispiel (Obstkorb)
#39
13
09.01.14
Live Demo
Security - 00 Layout Master
#40
www.gliffy.com
Security - 00 Layout Master
#41
Soyatec eUML2 für Eclipse
•  http://www.soyatec.com/euml2/installation/galileo/index.php
Security - 04 Cryptology
#42
14
09.01.14
Jetbrains IDEA IntelliJ
Security - 04 Cryptology
#43
Buchtipp
•  UML Distilled: A Brief
Guide to the Standard
Object Modeling
Language
•  Details
–  Taschenbuch: 175 Seiten
–  Verlag: Addison-Wesley
Longman, Amsterdam
–  Sprache: Englisch
–  ISBN-10: 0321193687
–  ISBN-13: 978-0321193681
Security - 04 Cryptology
#44
15
Herunterladen