430 likes | 556 Vues
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
E N D
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
UML-Historie (2/2) 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
Implementation view User view Behavioral view Structural view Environment view Views (Ansichten) Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User-View (1/5) User view Behavioral view Structural view Environment 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 Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view User-View (2/5): Use Case Diagramme • 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
Implementation view User view Behavioral view Structural view Environment view Name Name <<uses>> Name Name <<extends>> User-View (3/5): Use Case Diagramme • 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. Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view User-View (4/5): Use Case DiagrammeBeispiel 1: Frank Simon, BTU Cottbus: Einführung in UML
User-View (5/5): Use Case DiagrammeBeispiel 2: Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment 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
Implementation view User view Behavioral view Structural view Environment 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
Implementation view User view Behavioral view Structural view Environment view Structural View (3/11): Klassendiagramme Name Name • Elemente (Fts) • Interfaces:Definieren eine Menge von extern verfügbarenOperationen, die anderen Klassen angeboten werden. • Templates:Beschreiben eine Familie vonKlassen, die eine gemeinsameForm haben. Spezielle Klassenlegen freie Parameter der Template-Klasse fest. • Entwurfsmuster:Standardentwürfe für Teilprobleme Parameter-List Name <<bind>> (Value-List) Name Rolle Klasse1 Entwurfs- muster Klasse2 Rolle Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Structural View (4/11): Klassendiagramme * | n..m * | n..m Name Klasse1 Klasse2 • Beziehungen: • Assoziationen (binär) • Beschreiben Verbindungenzwischen Klassen. • Zahlen oder * an den Endender Assoziationen geben an,wieviele Objekte der Klasse manan 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. Rolle1 Rolle2 Name Klasse1 Klasse3 Klasse2 Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Structural View (5/11): Klassendiagramme Klasse1 Klasse2 Name • Beziehungen (Fts) • Assoziation (Fts) • Qualifizierte AssoziationZugriffsschlüssel auf beteiligteKlasse. • AggregationGanzes-Teil-Beziehung • Kardinalitäten wie bei AssoziationStandard 1:n • KompositionStrengere Form der Aggregation,Teil vom Ganzen existenzabhängig. • Kardinalitäten wie bei Aggregation Klasse1 Klasse2 Klasse1 Klasse2 Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Structural View (6/11): Klassendiagramme Klasse1 • Beziehungen (Fts) • VererbungGeneralisierung/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
Implementation view User view Behavioral view Structural view Environment 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
Implementation view User view Behavioral view Structural view Environment view Structural View (10/11): Objektdiagramme1. Beispiel t=x Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Structural View (11/11): Objektdiagramme2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment 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
Implementation view User view Behavioral view Structural view Name Environment view Behavioral View (2/15): Sequenzdiagramme • Elemente • Objektinstanz mit Lebenslinie • Aktivierung eines Objektes • Nachricht / Antwort • Rekursion • Löschen eines Objektes Name() Name Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Behavioral View (3/15): Sequenzdiagramme1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Behavioral View (4/15): Sequenz-diagramme2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Behavioral View (5/15): Kooperationsdiagramme Objekt::Klasse • Elemente • Objektinstanz • Nachricht • Erstellung /Löschen • Reihenfolge Name New() Destroy() Reihenfolge-Nr.(geschachtelt) Name Frank Simon, BTU Cottbus: Einführung in UML
Behavioral View (6/15): Kooperationsdiagramme1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Behavioral View (7/15): Kooperationsdiagramme2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Behavioral view (8/15): Statechart-Diagramme(erweiterte Zustandsautomaten) Name Aktivitäten(entry, do, exit) • Elemente • Zustand(Ausprägung von Eigenschafteneines Objektes, die über einegewisse Zeitspanne konstant ist) • Anfangszustand • Endzustand • Zustandsüberführung • Zustandshierarchie Ereignis [Bedingung]/ Aktion E/A Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Behavioral view (9/15): Statechart-Diagramme • Elemente (Fts.) • Nebenläufige Zustände • Synchronisation Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment view Behavioral view (10/15): Statechart-Diagramme1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Behavioral view (11/15): Statechart-Diagramme2. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Behavioral view (12/15): Aktivitäts-Diagramme Implementation view User view Behavioral view Structural view Environment view Name • Elemente • Aktivität • Aktivitätswechsel • Entscheidung • Synchronisation / Splitting [Bedingung] [Bedingung1] [Bedingung2] Frank Simon, BTU Cottbus: Einführung in UML
Behavioror view (13/15): Aktivitäts-Diagramme Implementation view User view Behavioral view Structural view Environment view • Elemente (Fts.) • Startaktivität • Endaktivität • Mitführen vonrelevanten Objektenund deren Zustand Objekt::Klasse [Zustand] Frank Simon, BTU Cottbus: Einführung in UML
Behavioral view (14/15): Aktivitäts-Diagramme1. Beispiel 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 User view Behavioral view Structural view Environment 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 User view Behavioral view Structural view Environment view Implementation view (2/3): Komponenten-Diagramm Name:Typ • Elemente: • Komponente(Quellcodes, Libraries,Programme...) • Aufruf, Abhängigkeit Frank Simon, BTU Cottbus: Einführung in UML
Implementation view (3/3): Komponenten-Diagramm, 1. Beispiel Frank Simon, BTU Cottbus: Einführung in UML
Implementation view User view Behavioral view Structural view Environment 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
Implementation view User view Behavioral view Structural view Environment view Environment view (2/3): Deployment-Diagramm Name:Typ • Elemente • Komponenten(Computer, Geräte...) • Kommunikation zwischenKomponenten • Enthaltensein vonImplementierung 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
Implementation view User view Behavioral view Structural view Environment view Zusammenfassung Komponenten- Diagramm Sequenz-, Kooperations-, Statechart-, Aktivitäts- Diagramm Klassen-, Objekt- Diagramm Deployment- Diagramm 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