Modellierung mit UML

Transcription

Modellierung mit UML
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<T>
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

Documents pareils