Modellierung mit UML
March 18, 2018 | Author: Anonymous | Category: N/A
Short Description
Download Modellierung mit UML...
Description
Modellierung mit UML Thomas Kistel 24. November 2006
Thema - Untertitel • Datum/Semester • Ihr Name • Seite 1
Inhalt
1. Einführung zu UML 2. Zielsetzung von UML 3. Sichten und Diagramme von UML 4. Model Driven Architecture (MDA)
Modellierung mit UML • © 2006 Thomas Kistel • Seite 2
Einleitung (Motivation)
Modellierung = Abstraktion der Realität mit Konzentration auf die wesentlichen Aspekte
Für Entwicklung (komplexer) Softwaresysteme ist Modellierung unabdingbar
Modellierung hilft • die gewünschte Struktur und das Verhalten eines Systems zu beschreiben und zu diskutieren • das System besser zu verstehen, indem man sich zu einem Zeitpunkt nur auf einen Ausschnitt bzw. einen einzelnen Aspekt konzentriert • frühzeitig Probleme des Modells zu erkennen und zu beheben Modellierung mit UML • © 2006 Thomas Kistel • Seite 3
Einleitung (Was ist UML)
UML – Unified Modeling Language
Eine Familie grafischer Notationen, hinter den ein eiziges Metamodell steht
Notationen helfen bei der Beschreibung und Entwicklung von Softwaresystemen (insbesondere OO)
UML ist ein relativ offener Standard • Wird von der Object Management Group (OMG) kontrolliert • Entstanden 1995-1997 Modellierung mit UML • © 2006 Thomas Kistel • Seite 4
Einleitung (Einsatzmöglichkeiten von UML)
UML als Skizze • Forward Engineering • Reverse Engineering
Blaupausen • Verfeinerung des Forward Engineering – Trifft alle Entwurfsentscheidungen (Vollständigkeit) – Detaillierungsgrad bis zur Ebene von Schnittstellen für Subsysteme – Die Implementierung beginnt ab diesem Entwurf
• Reverse Engineering – Dokumentation der Einzelheiten des Quellcodes – Bis zur Offenlegung der Einzelheiten einer Klasse
Programmierung • Viele Tools unterstützen die Generierung von Code aus UML-Diagrammen • Wechselseitige Anwendung von FE und RE bezeichnet man als Round-Trip Engineering Modellierung mit UML • © 2006 Thomas Kistel • Seite 5
Einleitung (Einsatzmöglichkeiten von UML)
UML ist eine graphische Sprache zur • Visualisierung • Spezifikation • Konstruktion und • Dokumentation
objektorientierter Systeme in der Entwicklung
Basis eines defacto Standards für • OOA (Object Oriented Analysis) • OOD (Object Oriented Design) Modellierung mit UML • © 2006 Thomas Kistel • Seite 6
Historie zu Programmiersprachen
Quelle: Oestereich, 2006 Modellierung mit UML • © 2006 Thomas Kistel • Seite 7
Historie von UML
Quelle: Oestereich, 2006 Modellierung mit UML • © 2006 Thomas Kistel • Seite 8
Sichten und Diagramme
UML-Konstrukte lassen sich nach verschiedenen Sichten einteilen
Sicht (View) • Betrachtung des Softwaresystems aus einer bestimmten Perspektive • Fokussierung auf einen speziellen Sachverhalt
Verschiedene Sichten sinnvoll, da • bei Erstellung eines Softwaresystems verschiedene Personengruppen involviert sind • verschiedene Sichtweisen auf denselben Sachverhalt hilfreich für das Verständnis sein können
Unterteilung der Sichten in drei Hauptbereiche • Struktur • Dynamik und • Modell-Management Modellierung mit UML • © 2006 Thomas Kistel • Seite 9
Sichten und Diagramme Quelle: Syrjakow, TFH Wildau
Modellierung mit UML • © 2006 Thomas Kistel • Seite 10
UML Diagrammtypen
Klassendiagramme
Aktivitätsdiagramme
Objektdiagramme
Kommunikationsdiagramme
Sequenzdiagramme
Kompositionsstrukturen
Paketdiagramme
Komponentendiagramme
Einsatzdiagramme
Kollaborationen
Anwendungsdiagramme
Interaktionsdiagramme
Zustandsdiagramme
Zeitdiagramme
Modellierung mit UML • © 2006 Thomas Kistel • Seite 11
Klassendiagramme
bilden den Kern von UML
zeigen die Elemente eines Systems, ihre Inhalte und Beziehungen
geben die logische (statische) Struktur des Systems wieder
Modellierung mit UML • © 2006 Thomas Kistel • Seite 12
Kassendiagramme
Quelle: Fowler, 2004 Modellierung mit UML • © 2006 Thomas Kistel • Seite 13
Kassendiagramme (fortgeschritten)
Qualifizierte Assoziation
Quelle: Fowler, 2004
class Auftrag public Auftragsposition getPositionsartikel(Produkt einProdukt); public void addPositionsartikel(Zahl zahl, Produkt fürProdukt);
Klassenbezogene Operationen und Attribute
Quelle: Fowler, 2004
Modellierung mit UML • © 2006 Thomas Kistel • Seite 14
Kassendiagramme (fortgeschritten)
Schnittstellen und abstrakte Klassen
Quelle: Fowler, 2004 Modellierung mit UML • © 2006 Thomas Kistel • Seite 15
Kassendiagramme (fortgeschritten)
Gelenknotation private List positionsartikel = new ArrayList();
Quelle: Fowler, 2004
Parametrissierte Klassen (Template Klassen) • Ursprünglich aus C++ • Jetzt auch Java, C# class Menge void insert(T newElement);
Quelle: Fowler, 2004
void remove(T oldElement); Modellierung mit UML • © 2006 Thomas Kistel • Seite 16
Objektdiagramme
Oft gibt es Situationen, in denen man mit einem Klassendiagramm eine Struktur ganz genau zeigen kann, ohne das diese dabei allerdings anschaulich wird
Ein Objektdiagramm zeigt Instanzen statt Klassen ¾ Instanzdiagramm
Sind nützlich, wenn Beispiele für miteinander verbundene Objekte zeigen möchte
Quelle: Fowler, 2004
Modellierung mit UML • © 2006 Thomas Kistel • Seite 17
Sequenzdiagramme
dienen zur schematischen Veranschaulichung von zeitbasierten Vorgängen
zeigen den Nachrichtenaustausch/Zusammenarbeit zwischen verschiedenen Objekten unter Betonung der zeitlichen Abfolge
chronologische Darstellung von Objekten, die Botschaften austauschen, auf einer Zeitachse
Eigenen sich weniger um das Verhalten präzise zu definieren • Zustandsdiagramm: Verhalten eines Objekts über mehrere Anwendungsfälle hinweg • Aktivitätsdiagramm: Verhalten über viele Anwendungsfälle oder Threads beobachten
Graphische Darstellung • beteiligte Objekte werden horizontal angeordnet • jedes Objekt hat eine Lebenslinie (Lifeline), die vertikal aufgetragen wird • Nachrichten (Messages) = Pfeile zwischen den Lebenslinien der beteiligten Objekte Modellierung mit UML • © 2006 Thomas Kistel • Seite 18
Sequenzdiagramme (zur zentralen Steuerung)
Quelle: Fowler, 2004 Modellierung mit UML • © 2006 Thomas Kistel • Seite 19
Sequenzdiagramme (zur verteilten Steuerung)
Quelle: Fowler, 2004
Modellierung mit UML • © 2006 Thomas Kistel • Seite 20
Paketdiagramme
Schaffen bei großen Systemen Überblick über die Abhängigkeiten zwischen den größeren Systembestandteilen
Passen gut mit gebräuchlichen Programmierstrukturen zusammen
Sind ein Mechanismus zur Zusammenfassung von Elementen zur Kompilierungszeit • Wenn man allerdings zeigen möchte wie Objekte zur Laufzeit zusammengesetzt sind, verwendet man Kompositionsstrukturdiagramme
Modellierung mit UML • © 2006 Thomas Kistel • Seite 21
Paketdiagramme
Quelle: Fowler, 2004
Modellierung mit UML • © 2006 Thomas Kistel • Seite 22
Zustandsdiagramme
Beschreiben das Verhalten eines Objekts über mehrere Anwendungsfälle hinweg • Weniger gut geeignet, um das Verhalten mehrerer zusammenarbeitender Objekte zu erklären
Werden oft auch zusammen mit anderen Diagrammformen verwendet
Kann auch zur Veranschaulichung von Steuerobjekten und Elementen der Benutzeroberfläche verwendet werden
Modellierung mit UML • © 2006 Thomas Kistel • Seite 23
Zustandsdiagramme (Beispiel: geheimes Schaltpult)
Quelle: Fowler, 2004
Modellierung mit UML • © 2006 Thomas Kistel • Seite 24
Zustandsdiagramme (Geschachtelte, nebenläufige, orthogonale Zustände)
Quelle: Fowler, 2004
Modellierung mit UML • © 2006 Thomas Kistel • Seite 25
Aktivitätsdiagramme
Die Stärke von Aktivitätsdiagrammen liegt darin, dass sie Parallelismus unterstützen • Werkzeug zur Modellierung von Workflows und Geschäftsprozessen • UML 2 wurde maßgeblich von Workflow-Modellierern geprägt
Auch für Flussdiagramme einsetzbar
Für parallele Algorithmen und nebenläufige Programme • Wenig eingesetzt, u.a. weil sie nicht offenlegen wo es zu Datenverklemmungen kommen kann
Beschreibung von Anwendungsfälle • Gefahr das diese von Zielpersonen nicht gelesen werden können Modellierung mit UML • © 2006 Thomas Kistel • Seite 26
Aktivitätsdiagramme
Quelle: Fowler, 2004 Modellierung mit UML • © 2006 Thomas Kistel • Seite 27
Weitere Diagramme (1)
Einsatzdiagramme • Zeigen physikalische Anordnung eines Systems (welche Hard- und Software wo eingesetzt wird)
Anwendungsdiagramme • Modellierung von Anwendungsfällen
Kommunikationsdiagramme • Sind eine Art Interaktionsdiagramm (Sequenzdiagramm) • Freie Anordnung der beteiligten Komponenten und Verbindung durch nummerierte Pfeile • Betonen Objektbeziehungen besser als Sequenzdiagramme • In UML 1.x als Kollaborationsdiagramme bezeichnet Modellierung mit UML • © 2006 Thomas Kistel • Seite 28
Weitere Diagramme (2)
Kompositionsstrukturen • Neuerung in UML 2.0 • Zerlegung einer Klasse (komplexes Objekt in seine Einzelteile) • Eigenen sich zur Darstellung von Komponenten und Bestandteilen von Komponenten • Paketdiagramme sind ähnlich, liefern aber eine Zusammenfassung von Komponenten zur Kompilierungszeit
Komponentendiagramme • Darstellung von UML 1 zu UML 2 leicht verändert • Geeignet zur Zerlegung eines Systems in Komponenten – Aufzeigen von gegenseitigen Beziehungen durch Schnittstellen – Schachtelung von Komponenten Modellierung mit UML • © 2006 Thomas Kistel • Seite 29
Weitere Diagramme (3)
Kollaborationen • Stammt aus UML 1, kein offizielles Diagramm von UML 2 (Kompositionsdiagramm) • Möglichkeit Interaktionsverhalten zu gruppieren, wenn die unterschiedlichen Rollen von verschiedenen Klassen übernommen werden • Sehr wenig verwendet
Interaktionsdiagramme • Neu in UML 2 • Kombination aus Aktivitäts- und Sequenzdiagramme
Zeitdiagramme • In der Elektrotechnik schon länger verwendet • Besondere Rolle bei Hardwareentwicklern • Nützlich, um Zeiteinschränkungen zwischen Zustandsänderungen unterschiedlicher Objekte zu zeigen Modellierung mit UML • © 2006 Thomas Kistel • Seite 30
Übersicht der Diagramme
Quelle: Fowler, 2004 Modellierung mit UML • © 2006 Thomas Kistel • Seite 31
Model Driven Architekture (MDA)
Oft erwähnt im Zusammenhang mit UML
Stammt ebenfalls von der Object Management Group (OMG)
Probleme bei der Softwareentwicklung • Termintreue • Programmfehler • Geringe Akzeptanz der Anwender • Ineffizienz der Entwicklung
Diskussion um das optimale Vorgehen bei der Software-Entwicklung • Evolution der Programmiersprachen: Assembler, 3- und 4-GLs, OOSprachen • Komplexität der Anwendungen (Verteilung, Sicherheit, Performanz), sowie der Platformen moderner Systeme hat sich weiter vergrößert • Vereinfacht ausgedrückt ist Modellierung die nächste (Sprach-) Stufe, um der Komplexität zu begegnen Modellierung mit UML • © 2006 Thomas Kistel • Seite 32
Model Driven Architekture (MDA)
Quelle: Petrasch, 2006 Modellierung mit UML • © 2006 Thomas Kistel • Seite 33
MDA und UML
MDA nutzt UML als Basismodelliersprache
MDA teilt die Entwicklungsarbeit in 2 Hauptbereiche: • Modellierer stellen eine bestimmte Applikation dar, indem sie ein plattformunabhängiges Modell bauen (Platform Independent Model, PIM) – ist ein UML-Modell – Hängt von keiner Technologie ab
• Werkzeuge wandeln ein PIM in ein plattformspezifisches Modell um (Platform Specific Model, PSM) – Modell eines Systems für konkrete Anwendungsumgebung – Kann in UML verfasst sein, muss aber nicht – Aus PSM kann dann Code erzeugt werden Modellierung mit UML • © 2006 Thomas Kistel • Seite 34
SW-Architekturen mit MDA
MDA umfasst eine Sammlung von Einführungen, Spezifikationen, Empfehlungen und Hinweise auf Produkte
Basierend auf historischen Konzepten wie: •
Code-Generierung
•
Executable UML
•
Formales UML (OCL)
•
Komponenten-basierte Softwareentwicklung
•
Metamodellierung
•
Domain Specific Languages
•
Architekturmuster und –stile für SWSysteme
•
Forward-Engineering
•
Analyse und Design Patterns
•
Modelltransformationen
Quelle: Petrasch, 2006
Offizielles Symbol der MDA
Modellierung mit UML • © 2006 Thomas Kistel • Seite 35
Software Tools
UML • Poseidon for UML (http://www.gentleware.com) – Apollo for Eclipse
• Omondo Eclipse UML (http://www.omondo.de) • Innovator • Jude
MDA • http://www.programmiermaschine.de (Herr Brunthaler) • Enterprise Architect (David Schilling) Modellierung mit UML • © 2006 Thomas Kistel • Seite 36
Literatur und Quellen
Martin Fowler, UML konzentriert, Addison-Wesley, 3. Auflage, 2004
Roland Petrasch & Oliver Meimberg, Model Driven Architecture, DPunkt-Verlag, 2006
Bernd Oesterreich, Analyse und Design mit UML 2.1, 8. Auflage, Oldenburg-Verlag, 2006
Modellierung mit UML • © 2006 Thomas Kistel • Seite 37
View more...
Comments