17.01.2014 Aufrufe

Was ist UML?

Was ist UML?

Was ist UML?

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!