Einführung in UML
Transcription
Einführung in UML
Vorlesung GIS Einführung in UML Stephan Mäs 28. Mai 2009 Überblick 1. Was ist UML??? • Was ist ein Modell??? • UML Geschichte,... 2. Diagrammtypen • Schwerpunkt: Klassendiagramme 3. UML Software Arbeitsgemeinschaft GIS Stephan Mäs 2 Was ist ein Modell??? 1. Abbildung: Ein Modell ist immer ein Abbild von etwas, eine Repräsentation natürlicher oder künstlicher Originale, die selbst wieder Modelle sein können. 2. Verkürzung / Vereinfachung: Ein Modell erfasst nicht alle Attribute des Originals, sondern nur diejenigen, die dem Modellschaffer bzw. Modellnutzer relevant erscheinen. 3. Pragmatismus: Pragmatismus bedeutet soviel wie Orientierung am Nützlichen. Ein Modell ist einem Original nicht von sich aus zugeordnet. Die Zuordnung wird durch die Fragen Für wen?, Warum? und Wozu? relativiert. Ein Modell wird vom Modellschaffer bzw. Modellnutzer innerhalb einer bestimmten Zeitspanne und zu einem bestimmten Zweck für ein Original eingesetzt. Das Modell wird somit interpretiert. Ein Modell zeichnet sich also durch Abstraktion aus, also die bewusste Vernachlässigung bestimmter Merkmale, um die für den Modellierer oder den Modellierungszweck wesentlichen Modelleigenschaften hervorzuheben. http://de.wikipedia.org/wiki Arbeitsgemeinschaft GIS Stephan Mäs 3 Modelle in der Geoinformatik Konzeptionelle Modelle: stellen (in der Regel permanent) gespeicherte Daten, ihre innere Struktur und ihre Beziehungen untereinander dar. Die Beschreibung der Daten erfolgt durch eine formale Darstellung (z.B. einem Diagramm) und zusätzlicher textueller Beschreibung. Es sind alle relevanten Daten der Aufgabenstellung vollständig und widerspruchsfrei darzustellen. • Unterstützen Kommunikation zwischen Entwicklern und Anwendern • Bilden Grundlage für den Entwurf von Datenbanken http://de.wikipedia.org/wiki Arbeitsgemeinschaft GIS Stephan Mäs 4 Was ist UML??? • standardisierte graphische Sprache zur - Spezifikation, - Visualisierung, - Konstruktion - und Dokumentation objektorientierter Modelle • Ist eine Notation: ein Ausdruck zur verkürzten Darstellung einer Klasse und/oder von Relationen zwischen Klassen in Klassifikationssystemen -> Notationssysteme liefern Zeichenvorrat aus Symbolen Zahlen, Sonderzeichen und Buchstaben Arbeitsgemeinschaft GIS Stephan Mäs 5 UML - Geschichte • Erste OO-Modellierungssprachen bereits Mitte der 70er • Bis 1994 gab es ca. 50 Modellierungssprachen • Von der Object Management Group (OMG) als Standard herausgegeben • Entwickelt von Grady Boch, Ivar Jacobsen und Jim Rumbaugh von RATIONAL ROSE SOFTWARE • Beteiligte Firmen: Microsoft, HP, IBM, Oracle.... • Versionen: - November 1997 UML 1.1 - November 1999 UML 1.3 - Inzwischen 2.2 (seit Feb. 2009) Arbeitsgemeinschaft GIS Stephan Mäs 6 Diagrammtypen 1. 2. 3. 4. 5. 6. 7. 8. Class Diagram - Klassendiagramm Use Case Diagram - Anwendungsfalldiagramm Sequenz Diagram – Sequenzdiagramm Statechart Diagram - Zustandsdiagramm Activity Diagram - Aktivitätsdiagramm Collaboration Diagram – Kollaborationsdiagramm Component Diagram – Komponentendiagramm Deployment Diagram - Verteilungsdiagramm Arbeitsgemeinschaft GIS Stephan Mäs 7 1. Class Diagram - Klassendiagramm Klasse Definition: Eine Klasse ist eine Menge von Objekten, in der die Eigenschaften (Attribute), Operationen/Methoden und die Semantik der Objekte definiert werden. Alle Objekte einer Klasse entsprechen dieser Festlegung. Beschreibung: Eine Klasse ist eine Zusammenfassung gleichartiger Objekte. Die Gleichartigkeit bezieht sich auf Eigenschaften (Attribute) und/oder auf Fähigkeiten (Operationen / Methoden) der Objekte einer Klasse..... Arbeitsgemeinschaft GIS Stephan Mäs 8 1. Class Diagram - Klassendiagramm Notation: Abstrakte Klasse: • Grundlage für weiter Unterklassen • bewußt unvollständig gehalten • hat keine konkreten Objekte / Instanzen Pakete: Ansammlungen von Modellelementen mit denen das Gesamtmodell in kleine überschaubare Einheiten untergliedert wird. Arbeitsgemeinschaft GIS Stephan Mäs 9 1. Class Diagram - Klassendiagramm Attribut Definition: ein Datenelement, das in jedem Objekt einer Klasse gleichermaßen enthalten ist und von jedem Objekt mit einem individuellen Wert repräsentiert wird. Beschreibung: Attribute sind Informationen bzw. Daten die ein Element einer Klasse näher beschreiben. Sie werden mindestens durch ihren Namen beschrieben, außerdem sind möglich: Initialwert, Zusicherungen (Wertebereich, Wertemenge), Merkmale (read only), Sichtbarkeit nach außen (public, privat) Attributtypen: z.B. Integer, Double, String, Boolean, Enumerationen.... Arbeitsgemeinschaft GIS Stephan Mäs 10 1. Class Diagram - Klassendiagramm Methoden/ Operationen Definition: sind Dienstleistungen, die von einem Objekt aufgerufen werden können. Sie werden durch ihre Signatur (Operationsname, Parameter, Rückgabewert) beschrieben. Eine Methode ist die Implementation einer Operation. Sie besteht aus einer Folge von Anweisungen. Beschreibung: besteht aus Namen, evtl. Übergabeparametern (vgl. Attribute), einem Rückgabewert und Merkmalen (z.B. abstrakt, veraltet) Notation: Arbeitsgemeinschaft GIS Stephan Mäs 11 Klassen vs. Instanzen Instanzen / Objekte Klasse Id: 1 Besitzer: Donald Farbe: gelb Id: 2 Besitzer: Speedy Farbe: rot Arbeitsgemeinschaft GIS Stephan Mäs 12 1. Class Diagram - Klassendiagramm Vererbung Definition: ...ein Umsetzungsmechanismus für die Relation zwischen Oberklasse und Unterklasse, wodurch Attribute und Operationen der Oberklasse auch den Unterklassen zugänglich werden. Generalisierung und Spezialisierung sind Abstraktionsprinzipien zur hierarchischen Gliederung der Semantik eines Modells. Notation: Arbeitsgemeinschaft GIS Stephan Mäs 13 1. Class Diagram - Klassendiagramm Beispiele: Vererbung / Generalisierung Arbeitsgemeinschaft GIS Stephan Mäs 14 1. Class Diagram - Klassendiagramm Beispiele: Vererbung / Generalisierung Arbeitsgemeinschaft GIS Stephan Mäs 15 1. Class Diagram - Klassendiagramm Vorsicht bei Mehrfachvererbung !!! • Was passiert, wenn verschiedene Oberklassen gleichnamige Eigenschaften beinhalten, die sich natürlich unterschiedlich verhalten können ? • Von welcher Oberklasse soll die Unterklasse die Eigenschaften übernehmen ? Arbeitsgemeinschaft GIS Stephan Mäs 16 1. Class Diagram - Klassendiagramm Assoziation Definition: Eine Assoziation beschreibt als Relation zwischen Klassen die Notation: gemeinsame Semantik und Struktur einer Menge von Objektverbindungen. Varianten der Assoziation sind die Aggregation und die Komposition. .... Die Multiplizität / Cardinalität einer Assoziation gibt an, mit wieviel Objekten der gegenüberliegenden Klasse ein Objekt assoziiert sein kann. Ist diese Zahl variabel, wird die Bandbreite angegeben, also Minimum und Maximum. Ist das Minimum gleich Null, so ist die Beziehung optional. Auf jeder Seite der Assoziation können Rollennamen vergeben werden.... Arbeitsgemeinschaft GIS Stephan Mäs 17 1. Class Diagram - Klassendiagramm Gerichtete Assoziation Definition: Gerichtete Assoziationen sind Beziehungen, die nur in eine Richtung navigierbar sind. Dargestellt wird die Navigation durch eine offen Pfeilspitze, die die zugelassene Navigationsrichtung angibt. Notation: Arbeitsgemeinschaft GIS Stephan Mäs 18 1. Class Diagram - Klassendiagramm Aggregation Definition: Eine Aggregation ist eine Assoziation, deren beteiligte Klassen eine Ganzes-Teile-Hierarchie darstellen. Notation: Arbeitsgemeinschaft GIS Stephan Mäs 19 1. Class Diagram - Klassendiagramm Komposition Definition: Eine Komposition ist eine strenge Form der Aggregation, bei der die Teile vom Ganzen existenzabhängig sind. Notation: Unterschiede zur Aggregation: • Die Kardinalität auf der Aggregatseite kann nur 1 sein. -> Jedes Teil ist von nur genau einem Kompositionsobjekt abhängig. • Die Lebenszeit der Einzelteile ist der des Ganzen untergeordnet. Arbeitsgemeinschaft GIS Stephan Mäs 20 1. Class Diagram - Klassendiagramm Annotationen / Notizen Definition: sind Kommentare zu einem Diagramm oder zu einem beliebigen Element in einem Diagramm, ohne semantische Bedeutung. Notation: Arbeitsgemeinschaft GIS Stephan Mäs 21 1. Class Diagram - Klassendiagramm Abhängigkeiten (Dependencies) Definition: Eine Abhängigkeit ist eine Beziehung zwischen zwei Modellelementen, die zeigt, daß eine Änderung in dem einen (unabhängigen) Element eine Änderung in dem anderen (abhängigen) Element bewirkt. Die Abhängigkeit bezieht sich dabei auf die Modellelemente selbst und nicht auf eventuelle Instanzen dieser Elemente. Notation: Arbeitsgemeinschaft GIS Stephan Mäs 22 1. Class Diagram - Klassendiagramm Klasse 1 Parent (generalized element) Attribute Methoden() Package (Paket) Dependencies (Abhängigkeit) Generalization (Vererbung) multiplicity Klasse 3 Klasse 2 * 0..1 Attribute Name 1 Methoden() Class (Klasse) Association (Beziehung) Name 2 Child (spezialized element) Attribute Methoden() Role (Rolle) 1 Aggregation Part (Teil) Arbeitsgemeinschaft GIS Stephan Mäs 23 1. Class Diagram - Klassendiagramm Beispiel: Arbeitsgemeinschaft GIS Stephan Mäs 24 1. Class Diagram - Klassendiagramm 0..1 isObserved / Observes Bsp.: Verknüpfung von geologischen Objekten, Messgeräten und Messungen * * Arbeitsgemeinschaft GIS Stephan Mäs 25 Aufgabe - Klassendiagramm Situation: 8 10 12 Waldstraße Arbeitsgemeinschaft GIS Stephan Mäs 26 Aufgabe - Klassendiagramm Identifizierung von Objektklassen Strasse Straße Flurstueck Flurstück Gebaeude Gebäude 8 Arbeitsgemeinschaft GIS Stephan Mäs 27 Aufgabe - Klassendiagramm Katasterobjekte • Alle Objekte werden von einer Basisklasse abgeleitet iD: Integer • Flächenförmige Objekte verwenden in diesem Fall den Datentyp GM_POLYGON des ISO Spatial Schemas Flaechenfoermige_Objekte -geometrie : GM_Polygon Flurstueck * -Flurstuecksnr:String Liegt an Strasse Steht auf 1 Gebaeude -Hausnummer :String • Die Klassen enthalten sowohl die Attribute als auch die Geometrie (sie wurde von der Vaterklasse geerbt) -Strassenname:String Arbeitsgemeinschaft GIS Stephan Mäs 28 OCL for UML Object Constraint Language: • Textuelle Erweiterung für UML • Beschreibt Einschränkungen und Erläuterungen zum objektorientierten Modell context Flight inv: passengers->size() <= plane.numberOfSeats Arbeitsgemeinschaft GIS Stephan Mäs 29 2. Use Case - Anwendungsfalldiagramm Definition: besteht aus einer Menge von Anwendungsfällen und stellt die Beziehungen zwischen Akteuren und Anwendungsfällen dar. Es zeigt das äußerlich erkennbare Systemverhalten aus der Sicht eines Anwenders. Beschreibung: beschreibt die Zusammenhänge zwischen verschiedenen Anwendungsfällen untereinander und zwischen Anwendungsfällen und den beteiligten Akteuren. Es zeigt die Struktur und Zusammenhänge von verschiedenen Geschäftsvorfällen und wie mit ihnen verfahren wird. Arbeitsgemeinschaft GIS Stephan Mäs 30 2. Use Case - Anwendungsfalldiagramm Notation: • Anwendungsfälle und Akteure durch Linien einander zugeordnet, • Beschreibung des Anwendungsfalls in Textform • Hierarchische Schachtelung von Anwendungsfällen Arbeitsgemeinschaft GIS Stephan Mäs 31 2. Use Case - Anwendungsfalldiagramm Arbeitsgemeinschaft GIS Stephan Mäs 32 2. Use Case - Anwendungsfalldiagramm Beispiel: http://de.wikipedia.org/wiki/Unified_Modeling_Language Arbeitsgemeinschaft GIS Stephan Mäs 33 3. Sequenz Diagram – Sequenzdiagramm Definition: beschreibt die zeitliche Abfolge von Interaktionen zwischen einer Menge von Objekten innerhalb eines zeitlich begrenzten Kontextes. Notation: Objekte Nachricht mit Argumenten Lebenslinien http://de.wikipedia.org/wiki/Unified_Modeling_Language Arbeitsgemeinschaft GIS Stephan Mäs 34 3. Sequenz Diagram – Sequenzdiagramm Beispiel: Arbeitsgemeinschaft GIS Stephan Mäs 35 4. Statechart Diagram - Zustandsdiagramm Definition: Ein Objekt kann in seinem Leben verschiedenartige Zustände annehmen. Mit Hilfe des Zustandsdiagrammes visualisiert man diese, sowie Funktionen, die zu Zustandsänderungen des Objektes führen. Beschreibung: beschreibt eine hyphotetische Maschine, die sich zu jedem Zeitpunkt in einer Menge endlicher Zustände befindet. Sie besteht aus: • einem Anfangszustand • einer endlichen Menge von Zuständen • einer endlichen Menge von Ereignissen • einer endlichen Anzahl von Transitionen (beschreiben Übergang des Objektes zum nächsten Zustand) • einem oder mehrerer Endzustände Arbeitsgemeinschaft GIS Stephan Mäs 36 4. Statechart Diagram - Zustandsdiagramm Notation: Im Zustandsdiagramm werden die Zustände als abgerundete Rechtecke verbunden durch Pfeile, auf denen die Transitionen stehen, visualisiert. Startzustand ist ein gefüllter Kreis, die Endzustände sind leere Kreise mit einem kleineren gefüllten in der Mitte. Arbeitsgemeinschaft GIS Stephan Mäs 37 4. Statechart Diagram - Zustandsdiagramm Beispiel „Buchzustände in der Bibliothek“: http://de.wikipedia.org/wiki/Unified_Modeling_Language Arbeitsgemeinschaft GIS Stephan Mäs 38 5. Activity Diagram - Aktivitätsdiagramm Definition: In einem Aktivitätsdiagramm werden die Objekte eines Programmes mittels der Aktivitäten, die sie während des Programmablaufes vollführen, beschrieben. Eine Aktivität ist ein einzelner Schritt innerhalb eines Programmablaufes, d.h. ein spezieller Zustand eines Modellelementes, eine interne Aktion sowie eine oder mehrere von ihm ausgehende Transitionen enthält. ... ein Aktivitätsdiagramm (gilt) als Sonderform eines Zustandsdiagrammes, dessen Zustände der Modellelemente in der Mehrzahl als Aktivitäten definiert sind. Arbeitsgemeinschaft GIS Stephan Mäs 39 5. Activity Diagram - Aktivitätsdiagramm Notation: Arbeitsgemeinschaft GIS Stephan Mäs 40 5. Activity Diagram - Aktivitätsdiagramm Beispiel: Arbeitsgemeinschaft GIS Stephan Mäs 41 5. Activity Diagram - Aktivitätsdiagramm Beispiel „Spagetti kochen“: http://de.wikipedia.org/wiki/Unified_Modeling_Language Arbeitsgemeinschaft GIS Stephan Mäs 42 6. Collaboration Diagram – Kollaborationsdiagramm Definition: Die verschiedenen Modellelemente eines Programmes agieren innerhalb des Programmablaufes miteinander. Um diese Interaktionen für einen bestimmten begrenzten Kontext, unter besonderer Beachtung der Beziehungen unter den einzelnen Objekten und ihrer Topographie, darzustellen, wird das Kollaborationsdiagramm (Interaktionsdiagramm) verwendet. Notation: Arbeitsgemeinschaft GIS Stephan Mäs 43 7. Component Diagram – Komponentendiagramm Definition: Damit bei späterer Implementierung der Softwarelösung Compiler- und Laufzeitabhängigkeiten klar sind, werden die Zusammenhänge der einzelnen Komponenten der späteren Softwarelösung in einem Komponentendiagramm dargestellt. Abhängigkeit zwischen Komponenten Notation: -> Festlegung der Compilierreihenfolge Arbeitsgemeinschaft GIS Stephan Mäs 44 8. Deployment Diagram - Verteilungsdiagramm Definition: Ein Verteilungsdiagramm (Einsatzdiagramm) beschreibt, welche Komponenten (Objekte) auf welchen Knoten ablaufen, d.h. wie diese konfiguriert sind und welche Abhängigkeiten bestehen. Kommunikation zwischen Knoten Notation: Knoten Arbeitsgemeinschaft GIS Stephan Mäs 45 Austausch von UML Diagrammen - XMI • Zum Austausch von UML Diagrammen zwischen verschiedenen Softwarewerkzeugen ist ein standardisiertes Format notwendig: XMI: XML Metadata Interchange • • • • Object Management Group XML basiert Für UML Modelle und beliebige andere Metadaten Ab UML 2.0 Arbeitsgemeinschaft GIS Stephan Mäs 46 UML Software http://jeckle.de/umltools.html Was zeichnet ein gutes UML-Tool aus??? • Unterstützung möglichst aller Diagrammtypen • Übersetzung von und nach C++, Java..... -> Codegenerierung / Roundtrip Engineering / Reverse Engineering • Datenbankentwicklung • XMI Unterstützung • Standardkonformität !!! Arbeitsgemeinschaft GIS Stephan Mäs 47 UML im Internet http://www.jeckle.de UML Spezifikationen Tutorials UML-Software UML-Begriffsübersetzung ...... Wikipedia http://ivs.cs.uni-magdeburg.de/~dumke/UML/ Arbeitsgemeinschaft GIS Stephan Mäs 48