Objektorientierte Modellierung mit UML Verteilungsdiagramm Der vorliegende Foliensatz basiert auf: M. Seidl, M. Brandsteidl, C. Huemer, G. Kappel: UML@Classroom, dpunkt.verlag, 2012. C. Larman: UML 2 und Patterns angewendet, mitp-Verlag, 2005. 1 UML im Projektverlauf am Beispiel des Unified Process Anwendungsfalldiagramm Klassendiagramm (Domänenmodell) Klassendiagramm (technisches Modell) Aktivitätendiagramm Sequenzdiagramm Komponentendiagramm Verteilungsdiagramm Zustandsdiagramm Quelle: Rational Software Verteilungsdiagramm 2 Diagrammart Strukturdiagramm Klassendiagramm Verteilungsdiagramm Objektdiagramm Inhalt Einführung Knoten Artefakt Kompositionsstrukturdiagramm Anwendungsfalldiagramm Interaktionsdiagramm Kommunikationsdiagramm Zeitdiagramm «client workstation» : GenericPC «browser» : WebBrowser HTTP Interaktionsübersichtsdiagramm «server» : Dell PowerEdge 3600 { OS=Red Hat Enterprise Linux 4 } «web server cluster» : Apache 2.1 { clusterCount = 4 } Ajpv13 «servlet container» : Tomcat 6 { JVM = Sun Hotspot 2.0 } «artifact» webstore.war «server» : Dell PowerEdge 3400 SQL device node execution environment node «OS» : Red Hat Enterprise Linux 4 «database» : PostgreSQL 10 Zustandsdiagramm Aktivitätsdiagramm «artifact» MyRichGUIClient.exe a communication path can indicate the protocol Verteilungsdiagramm Verteilungsdiagramm «client workstation» : GenericPC TP HT Einsatzspezifikation Beispiel Komponentendiagramm Sequenzdiagramm / AP SO Manifestation Verteilung Paketdiagramm Verhaltensdiagramm alternate notation for an artifact webstore.war 3 Verteilungsdiagramm Einführung Modellierung der eingesetzten Hardware- und Softwaretopologie Knoten und Kommunikationsbeziehungen Modellierung des zugeordneten »Laufzeitsystems« Artefakte Einsatzspezifikationen (Manifestationen) Verteilungsdiagramm kann auf Typ- oder Instanzebene modelliert werden Verteilungsdiagramm 4 Verteilungsdiagramm Knoten 1/2 Knoten repräsentieren Geräte oder Ausführungsumgebungen, auf die Artefakte verteilt werden Gerät «device» repräsentiert Hardware und besitzt Rechenkapazität Ausführungsumgebung «execution env» repräsentiert die notwendige Software, um das Laufzeitsystem auszuführen Verteilungsdiagramm 5 Verteilungsdiagramm Knoten 2/2 Hierarchische Knoten können durch Schachtelung oder durch interne Strukturen erstellt werden Kommunikationsbeziehungen sind spezielle Assoziationen und können durch Stereotypen näher definiert werden Beispiel: «device» calServer:Host «execution env» :J2EE Server «internet» «device» calClient:PC Verteilungsdiagramm 6 Verteilungsdiagramm Artefakt – Manifestation und Verteilung Artefakte stellen die »Objekte« der Verteilung dar Ein Artefakt repräsentiert die physische Realisierung («manifest») von paketierbaren (logischen) Modellelementen «component» Termin «manifest» «artifact» Termin.jar Verteilungsdiagramm 7 Verteilungsdiagramm Artefakt – Verteilung Unter Verteilung wird die Zuweisung von Artefakten an Knoten verstanden Ein Artefakt kann auf mehrere Knoten verteilt werden 3 Notationsvarianten «device» AppServer Explizite Modellierung als Abhängigkeit mit Schlüsselwort «deploy» «deploy» «artifact» Grafische Schachtelung von Artefakten auf Knoten Termin.jar «device» AppServer «artifact» Termin.jar Notation der Artefaktnamen im Knotensymbol Verteilungsdiagramm «device» AppServer Termin.jar 8 Verteilungsdiagramm Einsatzspezifikation Verteilungsdetails eines Artefakts durch Parameter in Einsatzspezifikation (deployment specification) definierbar z.B. Modellierung von Konfigurationsdateien Für eine Verteilung können verschiedene Einsatzspezifikationen definiert werden 2 Notationsalternativen «artifact» Termin.jar «artifact» Termin.jar {session=statefull management=container} Verteilungsdiagramm «deployment spec» Termin.xml session : statefull management : container transaction : false 9 Verteilungsdiagramm Beispiel – Onlinekalender «device» calClient:PC «internet» «execution env» :Browser «device» calServer:Host «execution env» :J2EE Server «artifact» jdbc.jar «deploy» «artifact» CALENDARIUM.java «deploy» «artifact» calServerProgram.jar «manifest» «component» CALENDARIUM Verteilungsdiagramm «deployment spec» calServerProgram.xml maxUser : 50 transaction : true «ethernet» «device» dbServer 10