Frank Simon, BTU Cottbus: Einführung in UML UML-Historie (1/2) Vereinheitlichung und Erweiterung bestehender OO-Modellierungstechniken: Grady Booch (OOD, “Wolkenklassen”) James Rumbaugh (OMT) Ivar Jacobsen (Use-Cases) Januar 1997: Version 1.0 (von OMG als Standard gewählt); heute: Version 1.3 in Vorbereitung Exakte Spezifikation unter: http://www.rational.com Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML UML-Historie (2/2) Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Ziel von UML: Objektorientierte Modellierung aller Systeme in allen Entwicklungsstufen. Umfangreiche Dokumentation. Detaillierte Spezifikation der Semantik. Verfügbarkeit, Akzeptanz, Erweiterbarkeit Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Views (Ansichten) Structural view Behavioral view Implementation view Environment view User view Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML User-View (1/5) Implementation view Behavioral view User view Structural view Wie sieht der Anwender das System? Beschreibt das Problem und die Lösung aus der Sicht derjenigen Menschen, dessen Probleme durch die Lösung angesprochen werden. Summe aller Beschreibungen bildet die externe Sicht des Systems. UML-Notationen: Use-Cases Environment view Frank Simon, BTU Cottbus: Einführung in UML
User-View (2/5): Use Case Diagramme Structural view Behavioral view Implementation view Environment view User view Einsatz Analysephase Kommunikation mit Auftraggeber / Benutzer Erfassung von Anwendungsfällen (Use Cases) Elemente Akteure System Use Cases Kommentare Beziehungen <<Acteur>> Name Name Name Name Frank Simon, BTU Cottbus: Einführung in UML
User-View (3/5): Use Case Diagramme Structural view Behavioral view Implementation view Environment view User view Beziehungen (Fts): <<uses>>: Ein Anwendungsfall D benutzt (uses) einen Anwendungsfall B, wenn er dessen Verhalten beinhaltet. Die <<uses>>-Beziehung faktorisiert gemeinsames Verhalten aus Anwendungsfällen heraus, um es in verschiedenen anderen Fällen benutzen zu können. <<extends>>: Ein Anwendungsfall D erweitert (extends) einen Anwendungsfall B, wenn er an einem Erweiterungspunkt zusätzliches spezialisiertes Verhalten einfügt. Name <<uses>> Name <<extends>> Frank Simon, BTU Cottbus: Einführung in UML
User-View (4/5): Use Case Diagramme Beispiel 1: Structural view Behavioral view Implementation view Environment view User view User-View (4/5): Use Case Diagramme Beispiel 1: Frank Simon, BTU Cottbus: Einführung in UML
User-View (5/5): Use Case Diagramme Beispiel 2: Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Structural View (1/11) Modelliert statische Struktur der Problemwelt und der Lösung (logische Sicht). Ignoriert weitestgehend Verhalten des Systems. Anwendbar auf verschiedenen Abstraktionsniveaus Durchgängig benutzbar von Analyse bis zur Wartung UML-Notationen: Klassendiagramme (Statische Struktur des Systems) Objektdiagramme (Statische Struktur des Systems zu einem bestimmten Zeitpunkt während der Ausführung. Beschreiben konkrete Instanziierung eines Klassendiagramms.) Frank Simon, BTU Cottbus: Einführung in UML
Structural View (2/11): Klassendiagramme Behavioral view Implementation view Environment view User view Structural View (2/11): Klassendiagramme Elemente Klassen: Beschreibung von einer Menge von Objekten mit gleichen strukturellen Eigenschaften und gleichem Verhalten. Sichtbarkeit: + public, # protected, - private Besonderheiten: Klassenvariablen und -methoden, abstrakte Klassen/Methoden (Stereotyp) Name Attribute [:type [=initval]] oder Name Operation (arglist): retype Frank Simon, BTU Cottbus: Einführung in UML
Structural View (3/11): Klassendiagramme Behavioral view Implementation view Environment view User view Structural View (3/11): Klassendiagramme Elemente (Fts) Interfaces: Definieren eine Menge von extern verfügbaren Operationen, die anderen Klassen angeboten werden. Templates: Beschreiben eine Familie von Klassen, die eine gemeinsame Form haben. Spezielle Klassen legen freie Parameter der Template-Klasse fest. Entwurfsmuster: Standardentwürfe für Teilprobleme Name Name Parameter-List Name <<bind>> (Value-List) Name Rolle Klasse1 Entwurfs- muster Klasse2 Rolle Frank Simon, BTU Cottbus: Einführung in UML
Structural View (4/11): Klassendiagramme Behavioral view Implementation view Environment view User view Structural View (4/11): Klassendiagramme Beziehungen: Assoziationen (binär) Beschreiben Verbindungen zwischen Klassen. Zahlen oder * an den Enden der Assoziationen geben an, wieviele Objekte der Klasse man an diesem Ende finden kann, wenn man von einem Objekt auf der anderen Seite ausgeht. Keine Angabe= 1 „Name“ sollte durch ein die Leserichtung vorgeben. Gerichtete Assoziationen (Pfeilspitze) kennzeichnen lediglich Referenzen in Pfeilrichtung. Assoziationen (n-är) Raute, die mit den beteiligten Klassen verbunden ist. * | n..m * | n..m Name Klasse1 Klasse2 Rolle1 Rolle2 Name Klasse1 Klasse3 Klasse2 Frank Simon, BTU Cottbus: Einführung in UML
Structural View (5/11): Klassendiagramme Behavioral view Implementation view Environment view User view Structural View (5/11): Klassendiagramme Beziehungen (Fts) Assoziation (Fts) Qualifizierte Assoziation Zugriffsschlüssel auf beteiligte Klasse. Aggregation Ganzes-Teil-Beziehung Kardinalitäten wie bei Assoziation Standard 1:n Komposition Strengere Form der Aggregation, Teil vom Ganzen existenzabhängig. Kardinalitäten wie bei Aggregation Klasse1 Klasse2 Name Klasse1 Klasse2 Klasse1 Klasse2 Frank Simon, BTU Cottbus: Einführung in UML
Structural View (6/11): Klassendiagramme Behavioral view Implementation view Environment view User view Structural View (6/11): Klassendiagramme Klasse1 Beziehungen (Fts) Vererbung Generalisierung/ Spezialisierung Klasse2 Klasse3 Frank Simon, BTU Cottbus: Einführung in UML
Structural View (7/11): 1. Beispiel Kardinalitäten? Frank Simon, BTU Cottbus: Einführung in UML
Structural View (8/11): 2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Structural View (9/11): Objektdiagramme Behavioral view Implementation view Environment view User view Structural View (9/11): Objektdiagramme Variante des Klassendiagramms Zeigt alle in Beziehung stehenden Instanzen „Snapshot“ eines (Teil-) Systems Können verwendet werden, um spezielle Objektkonfigurationen zu untersuchen. Notation: InstanzName:Klassenname Nur einfache Links zwischen Klassen Keine Methoden Frank Simon, BTU Cottbus: Einführung in UML
Structural View (10/11): Objektdiagramme 1. Beispiel Behavioral view Implementation view Environment view User view Structural View (10/11): Objektdiagramme 1. Beispiel t=x Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Structural View (11/11): Objektdiagramme 2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Behavioral View (1/15) Modelliert dynamische Aspekte des Systems, sein Verhalten Ignoriert weitestgehend Struktur des Systems. Anwendbar auf verschiedenen Abstraktionsniveaus Durchgängig benutzbar von Analyse bis zur Wartung UML-Notationen: Sequenz-Diagramme: Stellt den Fluß von Nachrichten zwischen Objekten im Zeitablauf dar. Kooperations-Diagramme: Andere Form der Sequenzdiagramme mit Fokus auf der Verantwortlichkeit und Kooperation der beteiligten Objekte. Statechart-Diagramme: Geben an, bei welchen Ereignissen Objekte einer Klasse ihren Zustand ändern und welche Reaktionen sie dabei zeigen. Aktivitäts-Diagramme: Andere Form der Statechart-Diagramme, wobei meistens in Zuständen eine Aktivität ausgeführt wird und die meisten Zustandsübergänge durch das Ende einer Aktivität ausgelöst wird. Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Behavioral View (2/15): Sequenzdiagramme Elemente Objektinstanz mit Lebenslinie Aktivierung eines Objektes Nachricht / Antwort Rekursion Löschen eines Objektes Name Name() Name Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Behavioral View (3/15): Sequenzdiagramme 1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Behavioral View (4/15): Sequenz- diagramme 2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Behavioral View (5/15): Kooperationsdiagramme Elemente Objektinstanz Nachricht Erstellung /Löschen Reihenfolge Objekt::Klasse Name New() Destroy() Reihenfolge-Nr.(geschachtelt) Name Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Behavioral View (6/15): Kooperationsdiagramme 1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Behavioral View (7/15): Kooperationsdiagramme 2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Behavioral view (8/15): Statechart-Diagramme (erweiterte Zustandsautomaten) Elemente Zustand (Ausprägung von Eigenschaften eines Objektes, die über eine gewisse Zeitspanne konstant ist) Anfangszustand Endzustand Zustandsüberführung Zustandshierarchie Name Aktivitäten (entry, do, exit) Ereignis [Bedingung]/ Aktion E/A Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Behavioral view (9/15): Statechart-Diagramme Elemente (Fts.) Nebenläufige Zustände Synchronisation Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Behavioral view (10/15): Statechart-Diagramme 1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Behavioral view (11/15): Statechart-Diagramme 2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Behavioral view (12/15): Aktivitäts-Diagramme Structural view Behavioral view Implementation view Environment view User view Elemente Aktivität Aktivitätswechsel Entscheidung Synchronisation / Splitting Name [Bedingung] [Bedingung1] [Bedingung2] Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Behavioror view (13/15): Aktivitäts-Diagramme Structural view Behavioral view Implementation view Environment view User view Elemente (Fts.) Startaktivität Endaktivität Mitführen von relevanten Objekten und deren Zustand Objekt::Klasse [Zustand] Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Behavioral view (14/15): Aktivitäts- Diagramme 1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Behavioral view (15/15): Aktivitäts-Diagramme 2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Implementation view (1/3) Structural view Behavioral view Implementation view Environment view User view Implementation view (1/3) Beschreibt Struktur der Realisierung (Komponenten, Beziehungen und Abhängigkeiten) Ignoriert weitestgehend Struktur des Anwendungssystems. Anwendbar auf der Ebene der Implementierung. UML-Notationen: Komponenten-Diagramm Frank Simon, BTU Cottbus: Einführung in UML
Implementation view (2/3): Komponenten-Diagramm Structural view Behavioral view Implementation view Environment view User view Implementation view (2/3): Komponenten-Diagramm Elemente: Komponente (Quellcodes, Libraries, Programme...) Aufruf, Abhängigkeit Name:Typ Frank Simon, BTU Cottbus: Einführung in UML
Implementation view (3/3): Komponenten-Diagramm, 1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Structural view Behavioral view Implementation view Environment view User view Environment view (1/3) Modelliert strukturelle Aspekte aus der Umgebung des Problembereichs und den Zusammenhang zur erstellten Software. Betrachtet wird dabei ein laufendes System. Stellt Zusammenhang zwischen Implementierung und der Zielumgebung her. Anwendbar auf der Ebene der Implementierung. UML-Notationen: Deployment-Diagramm Frank Simon, BTU Cottbus: Einführung in UML
Environment view (2/3): Deployment-Diagramm Structural view Behavioral view Implementation view Environment view User view Environment view (2/3): Deployment-Diagramm Elemente Komponenten (Computer, Geräte...) Kommunikation zwischen Komponenten Enthaltensein von Implementierung Name:Typ Name:Typ Name: Typ Name: Typ Frank Simon, BTU Cottbus: Einführung in UML
Environment view (3/3): Deployment-Diagramm, 1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Zusammenfassung Structural view Behavioral view Implementation view Environment view User view Komponenten- Diagramm Sequenz-, Kooperations-, Statechart-, Aktivitäts- Diagramm Klassen-, Objekt- Diagramm Deployment- Diagramm Frank Simon, BTU Cottbus: Einführung in UML
Frank Simon, BTU Cottbus: Einführung in UML Referenzen Sinan Si Alhir: „UML in a nutshell - a desktop quick reference“, O‘Reilly & Associates, USA 1998 Klaus Zerbe: „Bauplan für Objekte - eine Einführung in objektorientierte Verfahren mit der Unified Modelling Language“, in c‘t 21/1999, Seite 338-354, Heise-Verlag, Hannover 1999 Günter Wahl: „UML kompakt“, in OBJEKTspektrum 2/98, Seite 22-33, SIGS Conferences, Bergisch Gladbach 1998 Alek Opitz: „Unified Modeling Language (UML)“, Ausarbeitung für das Proseminar „Java“ im Sommersemester 1998 Frank Simon, BTU Cottbus: Einführung in UML