UML – Unified Modeling Language Praktischer Einsatz im Unterricht 12. 10. 2010 DI Harald Sander
UML Entwicklung von UML wurde 1994 von Booch, Jacobson und Rumbaugh (3 Amigos) bei Rational Inc. begonnen UML 0.9 – Juni 1996 UML 1.0 – Januar 1997 UML 1.1 – September 1997 Die UML wird seit 1998 als Standard für objektorientierte Modellierung angesehen UML 1.4 März 2001 Viele führende Unternehmen der Computerbranche (Microsoft, Oracle, Hewlett-Packard, ...) wirkten aktiv an der Entwicklung mit und unterstützen die UML UML 2.x – ab 2005, aktuelle Version UML 2.3 – Mai 2010 12. 10. 2010 DI Harald Sander
UML Was ist UML? Sprache zur Spezifikation, Visualisierung, Konstruktion und Dokumentation von Modellen für Softwaresysteme, Geschäftsmodelle und andere Nicht-Softwaresysteme UML bietet den Entwicklern die Möglichkeit, den Entwurf und die Entwicklung von Softwaremodellen auf einheitlicher Basis zu diskutieren UML bietet eine Notation für Modelle, keine Methode 12. 10. 2010 DI Harald Sander
UML Warum ist die UML keine Methode? Sie ist lediglich ein Satz von Notationen zur Formung einer allgemeinen Sprache zur Softwareentwicklung Eine Methode beinhaltet Empfehlungen zur Vorgehensweise bei Entwicklungsprozessen Um UML erfolgreich zu nutzen, ist es notwendig eine passende Methode zu entwickeln, die die UML unterstützt 12. 10. 2010 DI Harald Sander
UML • Use-Case-Diagramm • Klassendiagramm • Objektdiagramm Anforderungen Statische Sicht: Logischer Aufbau des Systems Dynamische Sicht: Interaktionen, Abläufe Implementierung, in VSDB bzw. Dezentrale Systeme • Objektdiagramm • Aktivitätsdiagramm • Verteilungsdiagramm • Komponentendiagramm • Zustandsdiagramm • Sequenzdiagramm • Kollaborationsdiagramm • Paket-Diagramm • Klassendiagramm • Use-Case-Diagramm 12. 10. 2010
UML Klassendiagramm Gemeinsame Darstellung der Klassen und Beziehungen eines Systems. Das zentrale Diagramm zur Modellierung. Es beschreibt alle Zusammenhänge bzw. Beziehungen zwischen den verschiedenen Klassen eines Programms. Komponenten Klassen Objekte Beziehungen 12. 10. 2010 DI Harald Sander
UML Klassendiagramm
UML Darstellung von Klassen Die Klassen – Darstellung beinhaltet Attribute und Methoden Modifizierer + für public # für protected ~ für package − für private 12. 10. 2010 DI Harald Sander
UML Beziehungen zwischen Klassen Ein Stereotyp gibt an, wie ein bereits durch die UML vorgegebenes Modellelement bzw. Metaklasse, für ein spezifisches Einsatzgebiet angepasst werden kann. 12. 10. 2010 DI Harald Sander
UML Objektdiagramm Das Objektdiagramm soll verdeutlichen, wie die Attribute einer Klasse zu einem bestimmten Zeitpunkt (Momentaufnahme) des Programms sind. => Es werden die Ausprägungen einer Klasse dargestellt 12. 10. 2010 DI Harald Sander
UML Objektdiagramm Die Komponenten (Assoziationen, Vererbungspfeile, usw.) sind genau gleich wie beim Klassendiagramm. Unterschiede zum Klassendiagramm: Es werden nur die Attribute mit ihren Werten eingetragen (nicht die Methoden) Statt dem Klassennamen wird das Objekt folgendermaßen bezeichnet: Objektname:Klassenname (Wichtig: Unterstreichen nicht vergessen! Mit Unterstreichen wird deutlich gemacht, dass es sich um Objekte handelt. Dies gilt für alle UML-Diagramme) Bei unbekanntem Objektnamen: :Klassenname Datentypen können weggelassen werden! 12. 10. 2010 DI Harald Sander
UML Objektdiagramm 12. 10. 2010 DI Harald Sander
UML Paketdiagramm Paketdiagramme zeigen Pakete von Klassen und die existierenden Abhängigkeiten zwischen ihnen. Sie dienen zur Strukturierung des Systems in Teilsysteme. Pakete bilden Namensräume aber keine physischen Einheiten 12. 10. 2010 DI Harald Sander
UML Paketdiagramm 12. 10. 2010 DI Harald Sander
UML Paketdiagramm merge – erweitert import und redefiniert importierte Classifier im aufnehmenden Paket, verschmelzt dadurch Pakete. import– erweitert den Namensraum, man kann auf die Klassen des Pakets transitiv unqualifiziert zugreifen. Öffentlicher Paketimport, Pakete sind auch nach außen sichtbar. access - erweitert den Namensraum, man kann auf die Klassen des Pakets nicht transitiv unqualifiziert zugreifen. Privater Paketimport. 12. 10. 2010 DI Harald Sander
UML Kollaborationsdiagramm Darstellung der Interaktionen für einen bestimmten begrenzten Kontext, unter besonderer Beachtung der Beziehungen unter den einzelnen Objekten. Die kommunikativen Aspekte zwischen den einzelnen Objekten werden ereignisbezogen dargestellt, Botschaften zwischen den Objekten sollen visualisiert werden. Der zeitliche Ablauf dieser Interaktionen steht im Hintergrund und wird lediglich durch eine Nummerierung der Nachrichten symbolisiert 12. 10. 2010 DI Harald Sander
UML Kollaborationsdiagramm 1:Versicherung beantragen(Daten) 4: Vertrag schicken() :Versicherungsdatenbank 2: Antrag prüfen() :Fahrzeughalter :Sachbearbeiter 3: Vertrag erstellen() V1:Versicherung 12. 10. 2010 DI Harald Sander
UML Sequenzdiagram Beschreibt die zeitliche Abfolge von Interaktionen zwischen einer Menge von Objekten innerhalb eines zeitlich begrenzten Kontextes, dynamisches Verhalten der Objekte zur Laufzeit. Mittels des Sequenzdiagramms beschreibt man die Interaktionen zwischen den Modellelementen ähnlich, wie bei einem Kollaborationsdiagramm, jedoch steht beim Sequenzdiagramm der zeitliche Verlauf des Nachrichtenaustausches im Vordergrund. 12. 10. 2010 DI Harald Sander
UML Sequenzdiagramm new( ) – erzeugt ein neues Objekt Rekursion – Objekt kommuniziert nicht mit einem anderen Objekt, sondern mit sich selbst Einfache Nachricht – Objekt übergibt die Steuerung an ein anderes Objekt Snychrone Nachricht – Objekt wartet auf Antwort bevor es fortfährt Asynchrone Nachricht – Objekt arbeitet weiter ohne auf Antwort zu warten
UML Sequenzdiagramme V1:Versicherung Aktor neuesObjekt :Fahrzeughalter Vertrag schicken() Versicherung beantragen(Daten) Antrag prüfen() Vertrag erstellen() Kündigen() Vertrag auflösen() Aktor neuesObjekt :Fahrzeughalter :Sachbearbeiter Ergebnis Nachricht Aktivierung Lebenslinie Zerstörung 12. 10. 2010 DI Harald Sander
UML Zustandsdiagramm Ein Zustand ist die Menge von möglichen Attributwerten, die die Objekte einer Klasse annehmen können. Visualisiert verschiedenartige Zustände der Objekte, sowie Funktionen, die zu Zustandsänderungen des Objektes führen (Transitionen). Eine Transition ist ein Zustandsübergang eines Objektes, der durch ein Ereignis ausgelöst wird und kann eine zu erfüllende Bedingung sowie auszuführende Aktionen umfassen. 12. 10. 2010 DI Harald Sander
UML Zustandsdiagramm Startzustand Endzustand einfacher Zustand Entry: Aktion(en) die beim Betreten des Zustands ausgeführt werden soll Do: Aktion(en) die ausgeführt werden, wenn der Zustand aktiv ist Exit: Aktion(en) die beim Verlassen ausgeführt werden 12. 10. 2010 DI Harald Sander
UML Zustandsdiagramm Transition = Übergang von einem Zustand in den anderen event [guard]/action Event: Ereignis das den Zustandsübergang auslöst Guard: Bedingung die überprüft wird (z.B. [tank=voll]) Action: Aktion (Methode) die ausgeführt wird, wenn der Event auftritt Schlüssel umgedreht [tank = voll]/Motor starten 12. 10. 2010 DI Harald Sander
UML Zustandsdiagramm 12. 10. 2010 DI Harald Sander
UML Zustandsdiagramm Darstellung von komplexen Zuständen erfolgt mit Hilfe von Zusammengestzten – Zuständen. Ein Zustand kann selber wieder ein Diagramm aus Unterzuständen enthalten (Zusammengesetzter - Zustand) Flache und tiefe History Zustände.
UML Zustandsdiagramm