Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer
Unified Modeling Language (UML) Standard zur graphischen Modellierung Zur 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 Sprache 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
UML Diagrammtypen (14 Stück) Strukturdiagramme Komponentendiagramm Klassendiagramm Verteilungsdiagramm Objektdiagramm Paketdiagramm Profildiagramm Kompositionsstrukturdiagramm (auch: Montagediagramm) Verhaltensdiagramme Aktivitätsdiagramm Sequenzdiagramm Anwendungsfalldiagramm (auch: Use-Case-Diagramm) Interaktionsübersichtsdiagramm Kommunikationsdiagramm Zeitverlaufsdiagramm Zustandsdiagramm 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
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
Klassen in UML Security - 04 Cryptology #9
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
Umsetzung in Java Security - 00 Layout Master #13
Umsetzung in Java Security - 00 Layout Master #14
Umsetzung in Java Security - 00 Layout Master #15
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
Abstrakte Elemente in Java Security - 00 Layout Master #19
Vererbung in UML Security - 04 Cryptology #20
Vererbung Einfache Vererbung Vererbung + Implementieren von Interfaces Security - 00 Layout Master #21
Vererbung in Java Security - 00 Layout Master #22
Vererbung in Java Security - 00 Layout Master #23
Beispiel: Obstkorb Security - 00 Layout Master #24
Instanzen von Klassen Security - 04 Cryptology #25
Instanzen von Klassen in UML Notation eines Objekts objektname: Klasse attributname = wert Beispiel p : Person name = "Walter" geburtsdatum = "12.12.1922"
Instanzen von Klassen in UML b1: Bus hersteller="ford" wechselintervall=10000 km_gefahren=3722 baujahr=1920 b3: Bus hersteller="man" wechselintervall=30000 km_gefahren=10432 baujahr=2005 Bus hersteller: String wechselintervall: int km_gefahren: int baujahr: int oelwechsel(): boolean b2: Bus hersteller="mercedes-benz" wechselintervall=20000 km_gefahren=5647 baujahr=1999 b4: Bus hersteller="scania" wechselintervall=35000 km_gefahren=54432 baujahr=2003 5-2-27
Beziehungen zwischen Objekten Security - 04 Cryptology #28
Beispiel: Ein Haus hat ein Fenster Security - 04 Cryptology #29
Beziehungen zwischen Objekten 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 #30
Bidirektionale Assoziationen Beispiel Ein Haus hat 1..* Fenster Jedes Fenster hat 0..1 Häuser Security - 00 Layout Master #31
Umsetzung in Java Security - 00 Layout Master #32
Sequenzdiagramm Security - 00 Layout Master #33
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 - Layout Master #34
Beispiel (Obstkorb) Sequenzdiagramm, um einen Apfel und eine Kiwi in den Einkaufskorb zu legen und den Gesamtpreis zu berechnen Security - 00 Layout Master #35
Live Demo Security - 00 Layout Master #36
Soyatec euml2 für Eclipse http://www.soyatec.com/euml2/installation/galileo/index.php Security - 04 Cryptology #37
Jetbrains IDEA IntelliJ Security - 04 Cryptology #38