Was ist UML?
Was ist UML?
Was ist UML?
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Unified<br />
Modeling<br />
Language<br />
Einführung in <strong>UML</strong><br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Inhalt<br />
• <strong>Was</strong> <strong>ist</strong> <strong>UML</strong> ?<br />
• Entstehung<br />
• Ziele<br />
• Vor- und Nachteile<br />
• <strong>UML</strong>- Diagramme<br />
• Welche Diagrammarten gibt es?<br />
• Wofür werden Sie benötigt?<br />
• <strong>UML</strong>- Tools<br />
• Zusammenfassung<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Entstehung und Evolution<br />
• Enstehung<br />
• Ab 1988- Beginn der Geschichte der OO Methoden<br />
• Okt. 1994- Rumbaugh tritt der Firma Rational bei<br />
• Okt. 1995-Unified Method(UM) Version 0.8<br />
Jacobson tritt ebenfalls Rational bei<br />
• Rumbaugh, Booch, Jacobson = „drei Amigos”<br />
• Evolution<br />
• Juni 1996-<strong>UML</strong> Version 0.9<br />
• Jan.1997-<strong>UML</strong> Version 1.0<br />
• Juli 1997-<strong>UML</strong> Version 1.1<br />
• 1998-<strong>UML</strong> 1.2 und 1.3<br />
• Ca. 2003-Version 2.0<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
<strong>Was</strong> <strong>ist</strong> <strong>UML</strong>?<br />
<strong>UML</strong> = Sprache zur Beschreibung<br />
von Softwaresystemen<br />
• Grundgedanke: Einheitliche Notation für alle Softwaresysteme!<br />
• <strong>UML</strong> entstand aus mehreren bestehenden Notationen<br />
• Verschiedene Diagrammtypen, die sich gegenseitig ergänzen<br />
und verschiedene Systemaspekte hervorheben<br />
• Bsp: Analogie Bauplan für Haus – Grundriss, Aussenansichten,<br />
Werkpläne für versch. Handwerker...<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
<strong>Was</strong> <strong>ist</strong> <strong>UML</strong>?<br />
• <strong>UML</strong> (Unified Modelling Language)<br />
<strong>ist</strong> eine graphische Sprache zur:<br />
• Visualisierung<br />
• Spezifikation<br />
• Konstruktion<br />
• Dokumentierung<br />
von Softwaresystemen<br />
• <strong>UML</strong> <strong>ist</strong> eine standardisierte Modellierungssprache<br />
• <strong>UML</strong> schreibt jedoch keinen bestimmten<br />
Softwareentwicklungsprozess vor<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Phasen der objektorientierten Softwareentwicklung<br />
Jede Software durchläuft während ihres "Lebens" verschiedene<br />
Phasen des sogenannten Software Life-Cycles<br />
Analyse<br />
Rückkopplung<br />
<strong>UML</strong><br />
Informationsfluss<br />
Entwurf<br />
<strong>UML</strong><br />
Implementation<br />
Java,<br />
C/C++, ..<br />
Test<br />
Einführung<br />
Dokumentation<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
<strong>UML</strong>-Konstrukte<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• <strong>UML</strong>-Konstrukte lassen sich nach verschiedenen Sichten einteilen<br />
• Sicht = Betrachtung des Softwaresystems aus einer bestimmten<br />
Perspektive; Fokussierung auf einen speziellen Sachverhalt<br />
• Verschiedene Sichten sinnvoll, da<br />
• bei Erstellung eines Softwaresystems verschiedene<br />
Personengruppen involviert sind<br />
• verschiedene Sichtweisen auf denselben Sachverhalt hilfreich für<br />
das Verständnis sein können.<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Sichten – grobe Unterteilung<br />
• <strong>UML</strong> bietet Vielzahl von Konzepten und Konstrukten zur Realisierung<br />
verschiedener Sichten an<br />
• Grobe Unterteilung der Sichten:<br />
• Anforderung an das System<br />
• Struktur des Systems<br />
• Ablauf des Systems<br />
• Implementierung des Systems<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Diagrammarten<br />
• Anwendungsfalldiagramm<br />
• Klassendiagramm<br />
• Paketdiagramm<br />
Anforderungen an<br />
das System<br />
Struktur des<br />
Systems<br />
• Interaktionsdiagramm<br />
• Kollaborationsdiagramm<br />
• Sequenzdiagramm<br />
• Aktivitätsdiagramm<br />
• Zustandsdiagramm<br />
• Komponentendiagramm<br />
• Verteilungsdiagramm<br />
Ablauf des<br />
Systems<br />
Implementierung<br />
des Systems<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Klassendiagramme<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• Beschreiben statische Struktur der Klassen und Objekte und<br />
ihre Beziehungen untereinander<br />
• Ermittelung der Klassen <strong>ist</strong> nicht Sache der Klassendiagramme!<br />
• anderer Hilfsmittel z.B.:<br />
• - CRC Cards (Class, Responsability and Collaboration)<br />
• - Use Cases<br />
• Zentraler Bestandteil der <strong>UML</strong><br />
• aber nicht einziger!<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Beispiel für Klassendiagramme<br />
In der Analysephase<br />
nur oberflächige<br />
Wiedergabe der<br />
Struktur, später<br />
Verfeinerung der<br />
Struktur bis hin zur<br />
detaillierten Lösung.<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Beschreibung von Klassen und Objekten<br />
• Ein Objekt <strong>ist</strong> ein elementarer Bestandteil des betrachteten<br />
Fachgebiets. Ein Objekt hat klar definierte Eigenschaften und ein<br />
Verhalten. Es wird erzeugt und behält eine unveränderliche<br />
Objektidentität.<br />
• Eine Klasse <strong>ist</strong> eine Beschreibung gleichartiger Objekte. Jedes<br />
Objekt gehört zu (<strong>ist</strong> Instanz von) genau einer Klasse.<br />
• <strong>UML</strong> Notation:<br />
Klasse<br />
Objekt : Klasse<br />
• Beispiel:<br />
Bremskraftregler<br />
br : Bremskraftregler<br />
:Bremskraftregler<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Attribute: Beschreibung des Zustandes<br />
• Ein Attribut einer Klasse <strong>ist</strong> die Beschreibung eines<br />
Datenelements, das in jeder Instanz der Klasse vorhanden <strong>ist</strong>.<br />
In der Beschreibung der Klasse wird der Name des Attributs<br />
angegeben. Eine Objekt-Instanz der Klasse besitzt für jedes<br />
Attribut einen individuellen Attributwert.<br />
• Notation:<br />
Klasse<br />
Attribut_1<br />
….<br />
Attribut_n<br />
Objekt : Klasse<br />
Attribut_1 = Attributwert_1<br />
….<br />
Attribut_n = Attributwert_n<br />
• Beispiel:<br />
Bremskraftregler<br />
Blockierungsdauer<br />
br : Bremskraftregler<br />
Blockierungsdauer = 0<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Datentypen der Attribute<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• Für ein Attribut können bestimmte Datentypen vorgeschrieben<br />
sein.<br />
• Datentypen können sein:<br />
• Einfache Standard-Datentypen (z.B. Boolean, Char, Int)<br />
• Zusammengesetzter Datentypen (z.B. Int [10])<br />
• Klassenamen (dann <strong>ist</strong> der Attributwert eine Objektreferenz)<br />
• Notation: Attribut oder<br />
Attribut : Typ oder<br />
Attribut : Typ = Initialisierungswert<br />
• Beispiel: Bremskraftregler<br />
Blockierungsdauer : Int = 0<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Weitere Informationen zu Attributen<br />
• Sichtbarkeit<br />
• + global (public visibility)<br />
• # geschützt (protected visibility, Klasse und Unterklasse)<br />
• - privat (private visibility, nur innerhalb Klasse)<br />
• Kardinalität<br />
• [n..m] mindestens n-, höchstens m-mal<br />
• [n..*] mindestens n mal, beliebig oft<br />
• [0..1] optionales Attribut<br />
• Beispiel:<br />
Bremskraftverteiler<br />
# Blockierungsdauer[1..4] : Int = 0<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Operationen<br />
• Die Operation einer Klasse <strong>ist</strong> die Beschreibung einer Funktion, die<br />
jede Instanz der Klasse ausführen kann. In der Beschreibung der<br />
Klasse wird der Name der Operation angegeben, die Parameterl<strong>ist</strong>e <strong>ist</strong><br />
optional. Operationen werden klein geschrieben.<br />
• Notation:<br />
Klasse<br />
operation_1<br />
….<br />
operation_n<br />
Implementierungsbeschreibung<br />
• Beispiel: Bremskraftregler<br />
bremsen()<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Abstrakte Klassen<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• Eine Klasse die nicht instanziiert werden kann wird als abstrakte<br />
Klasse bezeichnet<br />
• Me<strong>ist</strong> keine Attribute<br />
• Abstrakte Klassen werden verwendet um:<br />
• Teilimplementationen zur Verfügung zu stellen<br />
• Methodenschnittstellen für zukünftige Unterklassen<br />
vorzugeben<br />
• Namen der Klasse und Operationen werden kursiv geschrieben<br />
• Notation: Beispiel: Bremskraftregelsystem<br />
Klasse<br />
Operation_1<br />
….<br />
Operation_n<br />
bremsen()<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Rein abstrakte Klassen = Interfaces<br />
• Eigenschaften<br />
• keine Attribute<br />
• Menge von Methodenschnittstellen<br />
• Funktion<br />
• kann zu anderen Klassen "dazugemischt" werden<br />
• gibt eine Schnittstelle vor<br />
• die Klasse muss die Schnittstelle implementieren<br />
• mehrere Interfaces können implementiert werden<br />
• Notation:<br />
<br />
Namen<br />
Operation_1<br />
….<br />
Operation_n<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Beispiel<br />
• Beschreibung Klassen, Objekte, Attribute und Methoden<br />
Klassenschreibweise<br />
PKW Namen<br />
# Farbe<br />
- Modell<br />
Attribute<br />
- Hubraum<br />
+ hupen() Operationen<br />
+ fahren()<br />
Motor an, Gang einlegen<br />
Objektschreibweise<br />
pkw : PKW<br />
# Farbe = rot<br />
- Modell = Ferrari<br />
- Hubraum = 3600<br />
• weitere Elemente: abstrakte Klassen und Interfaces<br />
Fahrzeug<br />
fahren()<br />
<br />
Fahrzeug<br />
fahren()<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Beziehungen zwischen den Klassen (Relationen)<br />
• Statische Sicht auf das System<br />
• Beschreibt die Beziehungen zwischen Klassen<br />
• 4 wichtige Beziehungstypen<br />
• Assoziation benutzt-Beziehung<br />
• Aggregation hat-Beziehung<br />
• Generalisierung <strong>ist</strong>-Beziehung<br />
• Subsystem <strong>ist</strong>-eingebettet-in-Beziehung<br />
• Anwendung hauptsächlich der Klassenschreibweise<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Beziehungen zwischen den Klassen (Relationen)<br />
• Relationen dienen zur Kommunikation zwischen Objekten.<br />
• <strong>UML</strong> hat 4 Arten von Relationen:<br />
• Assoziationen<br />
• semantische Relation zwischen Klassen<br />
• Instanz zwischen Tupeln von Klasseninstanzen<br />
• (bi)-direktionale Verbindungen zwischen Klassen<br />
• Spezialformen: Aggregation und Komposition<br />
• Abhängigkeiten<br />
• schwächere Relationen zwischen Client und Server<br />
• Benötigen keine Instanzierung für ihre Bedeutung.<br />
• Generalisierung<br />
• Realisierung<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Relationen<br />
Assoziation<br />
Komposition<br />
Aggregation<br />
Abhängigkeit<br />
Generalisierung<br />
Realisierung<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Assoziation: benutzt-Beziehung<br />
• Modelliert eine allgemeine Beziehung zwischen Klassen<br />
Land<br />
Name<br />
hat zur<br />
Hauptstadt<br />
Stadt<br />
Name<br />
Bremskraftregler<br />
meldet<br />
blockiert<br />
Sensor<br />
• Assoziation = Menge aller Verbindungen zwischen den Objekten der<br />
beteiligten Klassen<br />
• Me<strong>ist</strong> als Zeiger implementiert (Java Objektreferenz)<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Kardinalität von Assoziationen<br />
Bestimmt die Anzahl Verbindungen zwischen den Klassen<br />
A<br />
B<br />
Jedes A <strong>ist</strong> genau mit einem B verbunden<br />
A<br />
2 3<br />
B<br />
Jedes A <strong>ist</strong> mit 3 B verbunden<br />
Jedes B <strong>ist</strong> mit 2 A verbunden<br />
A<br />
2..4<br />
B<br />
Jedes A <strong>ist</strong> mit 2 .. 4 B verbunden<br />
A<br />
0..1<br />
B<br />
Jedes A <strong>ist</strong> mit 0..1 B verbunden (optional)<br />
A<br />
*<br />
B<br />
Jedes A <strong>ist</strong> mit 0..∞ B verbunden<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Aggregationen: : hat-Beziehung<br />
• Hat-Beziehung, wenn man "besteht aus" sagen kann<br />
• Dokument hat mehrere Absätze: besteht aus mehreren<br />
Absätzen<br />
• Ein Land hat eine Hauptstadt: besteht aber nicht aus ihr<br />
• Echte "<strong>ist</strong> enthalten" Beziehung, im Gegensatz zu Assoziation, die<br />
"steht in Verbindung mit" Beziehung <strong>ist</strong><br />
• Notation: Beispiel:<br />
Klasse_1<br />
Bremse<br />
Klasse_2<br />
Bremsscheibe<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Komposition: hat-exklusiv<br />
exklusiv-Beziehung<br />
• Eigenschaften<br />
• <strong>ist</strong> ein Spezialfall der hat-Beziehung<br />
• drückt stärkere Bindung als hat-Beziehung aus<br />
• Unterscheidungsmerkmal: Teile haben die gleiche<br />
Lebensdauer<br />
• Kardinalität von Aggregation und Komposition <strong>ist</strong> analog zur<br />
Assoziation<br />
• Notation:<br />
Bremse<br />
• Beispiel:<br />
Bremsbelag 4<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Weiteres Beispiel<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Lieferung<br />
Rechnung<br />
Assoziation mit Namen und Leserichtung:<br />
„Ware Kostet Preis“<br />
Ware<br />
Kostet<br />
Preis<br />
Eine Lieferung setzt sich aus den zu liefernden Waren zusammen.<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Generalisierung: <strong>ist</strong>-Beziehung<br />
• Klassen können auch durch Spezialisierung von allgemeineren<br />
Oberklassen hervorgehen.<br />
• Generalisierung wird me<strong>ist</strong> durch Vererbung implementiert<br />
• Notation: Oberklasse<br />
Beispiel:<br />
Person<br />
Unterklasse<br />
Student<br />
Poliz<strong>ist</strong><br />
Vorsicht: Generalisierung darf nicht verwechselt werden mit:<br />
• Klassifikation (<strong>ist</strong>-Exemplar-von-Beziehung)<br />
• Ein Student <strong>ist</strong> eine Person Generalisierung<br />
• Franz <strong>ist</strong> ein (Objekt der Klasse) Student Klassifikation<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Paketdiagramme<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• Grössere Systeme werden in Subsysteme (Pakete) unterteilt.<br />
• Zweck<br />
• Bildung von zusammengehörenden Einheiten die einzeln<br />
verstanden, gewartet und verteilt werden können<br />
Wird in der Analyse und<br />
Entwurfsphase erstellt, um das<br />
System übersichtlicher zu<br />
gestalten<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Subsystem (Paket): <strong>ist</strong>-eingebettet<br />
eingebettet-in-Beziehung<br />
• Notation: Beispiel:<br />
Antriebssystem<br />
Paketnamen<br />
Bremssystem<br />
Bremspedal<br />
Bremskraftregler<br />
Bremse<br />
Sensor<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Interaktionsdiagramme<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• Beschreiben zeitliche Abläufe (Aufrufsequenzen) zwischen (bekannten)<br />
Objekten<br />
• Dynamische Sicht im Gegensatz zu statischen Klassendiagrammen<br />
• Zwei semantisch äquivalente Darstellungen:<br />
• Einfach andere Darstellungsarten, aber dieselbe Sicht<br />
• Sequenzdiagramme:<br />
• Verwendung bei wenigen Klassen<br />
• Zeitablauf klar ersichtlich<br />
• Kollaborationsdiagramme:<br />
• Verwendung bei wenigen Nachrichten<br />
• Zeitablauf weniger klar ersichtlich<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Interaktionsdiagramm: Kollaborationsdiagramm<br />
• Beschreibt die Interaktion von<br />
Elementen im Bezug auf<br />
Ereignisse<br />
• Enthält immer nur Ausschnitte<br />
des Gesamtsystems<br />
• Kommunikation der Elemente<br />
steht im Vordergrund<br />
Gehört zur strukturellen Analyse des<br />
Systems Analysephase<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Interaktionsdiagramm: Sequenzdiagramm<br />
• Zeigt die Interaktion der Objekte in ihrer zeitlichen Abfolge<br />
• Im Vordergrund steht die Lebenszeit der Objekte im Bezug auf<br />
bestimmte Abläufe<br />
Alle Interaktionsdiagramme<br />
werden durch genauere<br />
Betrachtung der<br />
Strukturdiagramme generiert<br />
zeitlich: Analyse/ Entwurf<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Weiteres Beispiel für ein Sequenzdiagramm<br />
• Beispiel: :Bremspedal :Bremskraftregler :Bremse :Sensor<br />
bremsen<br />
Bremsdruck<br />
erhöhen<br />
meldet blockiert<br />
lösen<br />
warte 100 ms<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Aktivitätsdiagramme<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• Beschreibt die Aktivitäten, die ein Element bzgl. eines bestimmten<br />
Programmablaufes durchführt<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Aktivitätsdiagramme: Beispiel<br />
Gast<br />
Kellner<br />
Rest. betreten<br />
auf Gast warten<br />
auf Platz warten<br />
[Restaurant voll ]<br />
setzen<br />
[Platz frei]<br />
bestellen<br />
Essen besorgen und servieren<br />
essen<br />
mit Rechnung warten<br />
bezahlen und gehen<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Zustands-Diagramme<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• Zeigt alle Zustände, die ein Objekt während des Programmablaufs<br />
annehmen kann<br />
• Maschinenmodell mit Menge<br />
von Zuständen<br />
Startzustand,<br />
Endzustand,<br />
Ereignissen/<br />
Transitionen<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Weiteres Beispiel für Zustandsdiagramme<br />
• Beispiel: Bremskraftregler<br />
Inaktiv<br />
Bremspedal<br />
gedrückt<br />
bremsend<br />
Bremspedal gelöst<br />
Räder für > 100 ms<br />
gelöst & Bremspedal<br />
gedrückt<br />
Räder blockiert > 100 ms<br />
lösend<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
Implementierungsdiagramm<br />
• Komponentendiagramm<br />
• Zusammenhänge von<br />
Implementierten<br />
Komponenten<br />
• Verteilungsdiagramm<br />
(Deployment-Diagramm)<br />
• Physische Verteilung<br />
der Komponenten<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
<strong>UML</strong>-Werkzeuge<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
• Die me<strong>ist</strong>en Werkzeuge sind sehr weit weg von der <strong>UML</strong><br />
(z.B. Rational Rose, Together).<br />
• Es gibt aber auch sehr gute Werkzeuge, die sich wirklich an<br />
die <strong>UML</strong> halten (insbesondere MagicDraw).<br />
• Für kleine Beispiele gehen auch einfache Malwerkzeuge<br />
(Visio „Schablone „Software“, xfig).<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI
Zusammenfassung<br />
Forschungszentrum Karlsruhe<br />
in der Helmholtz-Gemeinschaft<br />
<strong>UML</strong> = Sprache zur Beschreibung<br />
von Softwaresystemen<br />
• Verschiedene Diagrammtypen, die sich gegenseitig ergänzen und<br />
verschiedene Systemaspekte hervorheben<br />
• <strong>UML</strong> <strong>ist</strong> ein Werkzeug für die Systemanalyse und beim Design<br />
• abstrakte Beschreibungssprache<br />
• ermöglicht Kommunikation zwischen Entwicklern und Benutzern<br />
<strong>UML</strong> – Unified Modelling Language<br />
Dr. Wolfgang Süß / IAI