Softwaretechnik – Unified Modeling Language (UML)
Softwaretechnik –Unified Modeling Language (UML)
Karsten Weicker, Nicole WeickerHTWK Leipzig, FHTW Berlin
David Shayne: She’s so charismatic, and she’s brilliantand beautiful. I mean, a real artist, and,
and we speak the same language.(Bullets Over Broadway, 1994)
Karsten Weicker, Nicole Weicker 1/ 73
Softwaretechnik – Unified Modeling Language (UML)
Modellbildung
Definition: Modell
DefinitionEin Modell ist ein bewusst abstrahiertes (konkretesoder gedankliches) Abbild eines vorhandenenGebildes oder eines konkreten oder gedanklichenVorbilds fur ein zu schaffendes Gebilde.
Beispiele: Spielzeugauto, Lebenslauf,Arbeitslosenstatistik, Modell eines geplantenGebaudes, Musterbrief
Karsten Weicker, Nicole Weicker 2/ 73
Softwaretechnik – Unified Modeling Language (UML)
Modellbildung
Definition: Modell
DefinitionEin Modell ist ein bewusst abstrahiertes (konkretesoder gedankliches) Abbild eines vorhandenenGebildes oder eines konkreten oder gedanklichenVorbilds fur ein zu schaffendes Gebilde.
Beispiele: Spielzeugauto, Lebenslauf,Arbeitslosenstatistik, Modell eines geplantenGebaudes, Musterbrief
Karsten Weicker, Nicole Weicker 2/ 73
Softwaretechnik – Unified Modeling Language (UML)
Modellbildung
Modelle in der Software-Enwicklung
1. Modell der involviertenGeschaftsanwendungsfalle
2. Modell der Software auf derSpezifikationsebene
3. Modell der Software auf Architekturebene
4. (Vorgehensmodelle – hier irrelevant)
Karsten Weicker, Nicole Weicker 3/ 73
Softwaretechnik – Unified Modeling Language (UML)
Modellbildung
1. In der Analyse: Geschaftsebene
Ziel der Modellierung:
I Identifikation des zu modellierenden Teils derFirma
I grobes Modell der Ablaufe
I Identifikation der Geschaftsanwendungsfalle ausKundensicht
I evtl. interne Details wie Dokumentenfluss
Karsten Weicker, Nicole Weicker 4/ 73
Softwaretechnik – Unified Modeling Language (UML)
Modellbildung
2. Spezifikation: Software
Ziel der Modellierung:
I Einpassen der Software in das Geschaftsmodell
I Identifikation der Anwendungsfalle
I Beschreibung der Struktur der involviertenDaten
I Ablaufe eines Anwendungsfalls bzgl. der Daten
I Zustandsveranderungen (der Software oder derBenutzungsoberflache)
Karsten Weicker, Nicole Weicker 5/ 73
Softwaretechnik – Unified Modeling Language (UML)
Modellbildung
3. Architektur: Software
Ziel der Modellierung:
I Beschreibung der Verteilung auf verschiedeneServer etc.
I Beschreibung der Komponenten und ihrerBeziehung zueinander (Architektur)
I Beschreibung der Klassen und ihrer Beziehungzueinander (Feinentwurf)
I Beschreibung der Ablaufe auf den Klassen
Karsten Weicker, Nicole Weicker 6/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Diagrammarten in UML (1)
I Anwendungsfalldiagramm→ Wer darf welche Funktion(alitat)durchfuhren
I Aktivitatsdiagramm→ Abfolge von Tatigkeiten
I Klassendiagramm→ Struktur (der Daten)
I Objektdiagramm→ Momentaufnahme eines Klassendiagramms
Karsten Weicker, Nicole Weicker 7/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Diagrammarten in UML (2)
I Sequenzdiagramm→ zeitliche Abfolge der Interaktion
I Kommunikationsdiagramm→ Zusammenspiel der Klassen
I Zustandsdiagramm→ Zustandsveranderungen
I (Komponentendiagramm)→ Komponenten zur Laufzeit
I (Einsatzdiagramm)→ Verteilung der Software auf die Hardware
Karsten Weicker, Nicole Weicker 8/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Modellierungssichten fur Software
– Entity Relationship
– Klassendiagramm (UML)– Data dictionary
– Zustandsdiagramm (UML)
– Petrinetze
– Datenflussdiagramm
– Sequenzdiagramm (UML)
– Kommunikationsdiagramm(UML)
– GUI– Sequenzdiagramm (UML)– Anwendungsfalle (UML)– Funktionsbaum
strukturelle Sicht Verhaltenssicht
Ablaufsicht
System
Sicht von Außen
Karsten Weicker, Nicole Weicker 9/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Anwendungsfalldiagramm
I engl. Use Case Diagram
I Ziel: Sammlung der Anwendungsfalle(Anwendungsszenarios oder Funktionalitaten)unter Berucksichtigung der Frage, welche
”Benutzer“ mit welchen Anwendungsfallen
interagieren
I Sicht: von Außen
I Ebene: Analyse, Spezifikation
I Details werden ausgespart
Karsten Weicker, Nicole Weicker 10/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Anwendungsfalldiagramm: Notation (1)
Akteure (Menschen undSysteme)
Anwendungsfall
Akteur interagiert selbst-initiiert mit dem Anwen-dungsfall
Akteur wird vom Anwen-dungsfall in die Interakti-on eingebunden
Karsten Weicker, Nicole Weicker 11/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Anwendungsfalldiagramm: Notation (2)
Interaktion kann vonbeiden ausgehen
verschiedene Akteurewerden zusammenge-fasst
Ein Teilablauf wirdaus dem Szenario aus-gelagert und separatbeschrieben
Karsten Weicker, Nicole Weicker 12/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Anwendungsfalldiagramm: Notation (3)
Eine Erweiterung bzw.Variante wird an einenAnwendungsfall ange-lagert
Karsten Weicker, Nicole Weicker 13/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Anwendungsfalldiagramm: Beispiel(Software)
Karsten Weicker, Nicole Weicker 14/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Anwendungsfall: AblaufbeschreibungJeder Anwendungsfall wird genauer beschrieben:
I naturlichsprachlich gemaßt dem Formular
Name: . . .Kurzbeschreibung: . . .Akteure: . . .fachliche Ausloser: . . .normaler Ablauf: 1. . . .
. . .alternative Ablaufe: . . .Vor-/Nachbedingungen: . . .
I oder mit Aktivitats- oder Sequenzdiagrammen
Karsten Weicker, Nicole Weicker 15/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Anwendungsfalldiagramm: Beispiel(Geschaftssystem)
Mensa mit Moglichkeit der Buchung vorab
Karsten Weicker, Nicole Weicker 16/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Einbettung der Software in’sGeschaftssystem
Karsten Weicker, Nicole Weicker 17/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Anwendungsfalldiagramm: Beispiel (SW)
Karsten Weicker, Nicole Weicker 18/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Aktivitatsdiagramm
I engl. activity diagram
I Ziel: Aktivitaten und Verantwortlichkeiten einesSystems dargestellen
I Sicht: von Außen oder Ablauf
I Ebenen: Analyse, (Spezifikation)
I Hier sind insbesonders Kontroll- undDatenflusse von Interesse
Karsten Weicker, Nicole Weicker 19/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Aktivitatsdiagramm: Notation (1)
Aktivitat
Startknoten
Endknoten
Kontrollfluss
Datenobjekt
Karsten Weicker, Nicole Weicker 20/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Aktivitatsdiagramm: Notation (2)
Datenfluss
Entscheidung zwi-schen Alternativen
Zuordnung zu Sy-stemen/Akteuren
Karsten Weicker, Nicole Weicker 21/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Aktivitatsdiagramm: Notation (3)
Parallele Vorgange
Karsten Weicker, Nicole Weicker 22/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Aktivitatsdiagramm: Beispiel
Karsten Weicker, Nicole Weicker 23/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Aktivitatsdiagramm in der Analyse
I interne Ablaufe nicht berucksichtigt→ Konzentration auf die Tatigkeit vonAußenstehenden
I Bedingungen an Verzweigungen: alleMoglichkeiten und eindeutig
I parallele Prozesse nur uber Synchronisationzusammenfuhren
Karsten Weicker, Nicole Weicker 24/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Aktivitatsdiagramm in der AnalyseBeispiel: Mensa der Zukunft
Karsten Weicker, Nicole Weicker 25/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zwei Minuten
I Erstellen Sie ein kleines Aktivitatsdiagramm,das Ihre Aktivitat wahrend dieser Vorlesungbeschreibt.
Karsten Weicker, Nicole Weicker 26/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Klassendiagramm
I engl. Class Diagram
I Ziel: Die Struktur der Daten einer Software solldargestellt werden.
I Sicht: strukturell
I Ebenen: Spezifikation, Entwurf
I Benutzersicht oder Ablaufe sind hier hochstensam Rande von Belang
Karsten Weicker, Nicole Weicker 27/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Klassendiagramm: Notation (1)
Klasse
Assoziation mit einer Be-zeichnung und Multiplizitat
Assoziation mit Rollenangabeund Multiplizitat
Assoziation mit Navigations-richtung
Karsten Weicker, Nicole Weicker 28/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Klassendiagramm: Notation (2)
Aggregation (has-a relation-ship)
Komposition (contains-a re-lationship)
Datentyp
Schnittstelle
Karsten Weicker, Nicole Weicker 29/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Klassendiagramm: Notation (3)
Generalisierungals Klasse
Generalisierung alsSchnittstelle
Karsten Weicker, Nicole Weicker 30/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Klassendiagramm: Notation (4)
Paket
Benutzen der Dienste ei-ner Klasse
Karsten Weicker, Nicole Weicker 31/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Klassendiagramm: Beispiel (Analyse)
Karsten Weicker, Nicole Weicker 32/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
KlassendiagrammSchritte zur Erstellung
1. Identifikation moglicher Klassen
2. Assoziationen: Wo besteht ein Zusammenhangzwischen den Klassen?
3. Kardinalitaten eintragen
4. Attribute definieren5. Verifikation
I Probleme identifizieren, Datenmodell vereinfachenI Sind immer alle Attribute belegt?I Kommen dieselben Attribute in mehreren Klassen
vor?
Karsten Weicker, Nicole Weicker 33/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
KlassendiagrammMensa der Zukunft
Karsten Weicker, Nicole Weicker 34/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Objektdiagramm
I engl. Object Diagram
I Ziel: Darstellung einer moglichen realen Instanzdes Klassendiagramms
I Sicht: strukturell
I Klassen werden durch (ggf. mehrere) Objekteersetzt
I Ebenen: Spezifikation, Entwurf
I wie Klassendiagramm, aber keine Multiplizitatan Assoziationen
Karsten Weicker, Nicole Weicker 35/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Objektdiagramm: Notation
Objekt einer Klasse
Durch Name bezeichne-tes Objekt
Link zwischen zwei Ob-jekten
Karsten Weicker, Nicole Weicker 36/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Objektdiagramm: Beispiel
Karsten Weicker, Nicole Weicker 37/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zwei Minuten
I Schreiben Sie ein Dutzend Objekte aus diesemRaum auf.
I Fassen Sie ahnliche Objekte zu Klassenzusammen.
I Finden Sie Attribute (Daten) zu einer dieserKlassen.
Karsten Weicker, Nicole Weicker 38/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Sequenzdiagramm
I engl. Sequence Diagram
I Ziel: Die Darstellung der Interaktion vonAkteuren und Objekten entlang einer Zeitachse
I Sicht: Ablauf, von Außen
I Ebenen: Spezifikation, Entwurf,sehr eingeschrankt Analyse
I Dies kann auf unterschiedlich hohem Niveaugeschehen.
I vorrangig: Mutationsereignisse
Karsten Weicker, Nicole Weicker 39/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Sequenzdiagramm: Notation
Objekt mit Lebenslinie
Methodenaufruf
Karsten Weicker, Nicole Weicker 40/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Sequenzdiagramm: Notation
Erzeugen eines Objekts
Loschen eines Objekts
Karsten Weicker, Nicole Weicker 41/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Sequenzdiagramm: Notation
Alternative Ablaufe
Karsten Weicker, Nicole Weicker 42/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Sequenzdiagramm: Notation
Wiederholung im Ablauf
Methodenaufruf beimselben Objekt
Karsten Weicker, Nicole Weicker 43/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Sequenzdiagramm: Beispiel
Karsten Weicker, Nicole Weicker 44/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Sequenzdiagramm: Checkliste
I Welche Klassen sind vom Mutationsereignisbetroffen?
I Startobjekt bestimmen
I Wie wird das Mutationsereignis weitergeleitet?
I Parameter der Ereignisse – welche Informationbrauchen die Objekte?
I Verifikation: Gehen die Ereignisse entlang derAssoziationen im Klassendiagramm?
Karsten Weicker, Nicole Weicker 45/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
SequenzdiagrammMensa der Zukunft: Menu abholen
Karsten Weicker, Nicole Weicker 46/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
SequenzdiagrammMensa der Zukunft: Menu abholen
Karsten Weicker, Nicole Weicker 47/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zusammenspiel der UML-DiagrammeModellierung eines IT-Systems
Anwendungsfall-diagramm
Sequenzdiagramm
KlassendiagrammGUI-Prototyp
Zusammenhang
herstellen
Zustandsdiagramm
Kommunikationsdiagramm
Geschaftssystem
G.-Anw.falle Akt.diagramme
pro Anwendungsfall
ergibt sich aus
Sequenzdiagramm
Software-Architektur
Karsten Weicker, Nicole Weicker 48/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Kommunikationsdiagramm
I engl. Collaboration Diagram
I Ziel: Zeitlicher Ablauf in einemObjektdiagramm
I Ebenen: Spezifikation, Entwurf
I Sicht: Ablauf
I vorrangig: Anzeigeaufrufe
Karsten Weicker, Nicole Weicker 49/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Kommunikationsdiagramm: Notation
Aufruf im Objektdia-gramm mit nummerier-ter Reihenfolge
Karsten Weicker, Nicole Weicker 50/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Kommunikationsdiagramm: Beispiel
Karsten Weicker, Nicole Weicker 51/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Kommunikationsdiagramm: Checkliste
I Welche Information soll in der Abfragedargestellt werden?
I Welche Klassen werden gebraucht?
I Was ist das Startobjekt?
I Ereignispfad wird bestimmt.
I Benotigte Attribute werden angegebenI Verifikation:
I Folgen die Ereignisse den Assoziationen?I Wird richtig iteriert?
Karsten Weicker, Nicole Weicker 52/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zustandsdiagramm
I engl. State Diagram
I Ziel: Wann treten Zustandsveranderungen imSystemverhalten auf
I Sicht: Verhalten
I Ebenen: Analyse, Spezifikation, event. Entwurf
I Meist: Zustand eines konkreten Objekts
Karsten Weicker, Nicole Weicker 53/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zustandsdiagramm: Notation
Startknoten
Endknoten
Zustand
Zustand mitfesten Aktivitaten
Karsten Weicker, Nicole Weicker 54/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zustandsdiagramm: Notation
Zustandsubergang(Ereignis)
Zustandsubergang(Ereignis)
Karsten Weicker, Nicole Weicker 55/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zustandsdiagramm: Notation
hierarchischer Zustand
hierarchischer Zustandin anderem Diagramm
Karsten Weicker, Nicole Weicker 56/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zustandsdiagramm: Notation
Zustand mit Gedachtnis
Parallele Durchfuhrungzweier Zustandsdia-gramme
Karsten Weicker, Nicole Weicker 57/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Zustandsdiagramm: Beispiel
Karsten Weicker, Nicole Weicker 58/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
ZustandsdiagrammVerhaltenssicht: Checkliste
I Welche Mutationsereignisse sind fur das Objektwichtig?
I Wie sieht ein”normales Leben“ des Objekts
aus?
I Welche Zustande gibt es?
I Was tun die Objekte? → Aktionen
Karsten Weicker, Nicole Weicker 59/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
ZustandsdiagrammVerhaltenssicht: Mensa der Zukunft
Karsten Weicker, Nicole Weicker 60/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Komponenten- und Einsatzdiagramm
I engl. Component Diagram bzw. DeploymentDiagram
I Ziel:I Modellierung der Implementation eines SystemsI Modellierung der Implementationsumgebung eines
Systems
I Fur die Software-Architektur interessant – wirdin dieser Vorlesung nicht weiter betrachtet
I Sie sollen nur kurz die wichtigsten Symbolesehen
Karsten Weicker, Nicole Weicker 61/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Komponenten- und Einsatzdiagramm:Notation
Komponente
Paket
Karsten Weicker, Nicole Weicker 62/ 73
Softwaretechnik – Unified Modeling Language (UML)
UML
Komponenten- und Einsatzdiagramm:Notation
Schnittstelle
Zugriff auf die Schnitt-stelle einer Komponente
Karsten Weicker, Nicole Weicker 63/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Object Constraint LanguageMotivation
I ist eine umfassende Spezifizierungssprache
I gehort zu UML
I es konnen komplexere Zusammenhange als inden Diagrammen ausgedruckt werden
I hier: Beschreibung von Invarianten inKlassendiagrammen
I auch:I Vor-/NachbedingungenI Wachter (guards)
Karsten Weicker, Nicole Weicker 64/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Object Constraint LanguageOperationen
I arithmetisch: +, −, ∗, /I boolesch: Not, And, Or, Xor, ImpliesI vergleichend: <, >, <=, >=, <>, =I pradikatenlogisch:
I Menge->forall(x : Typ | Bedingung )I Menge->exists(x : Typ | Bedingung )
I Mengen-Operationen:I Anzahl der Elemente: Menge->size()I Test auf Leerheit: Menge->notEmpty()I Restriktion: Menge->select(Bedingung)I Summe: Menge.Attribut->sum()
Karsten Weicker, Nicole Weicker 65/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Object Constraint LanguageDirekt im Klassendiagramm
Karsten Weicker, Nicole Weicker 66/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Object Constraint LanguageErganzend zum Klassendiagramm
Alle Angestellten sind mindestens 16 Jahre alt
contex Firma inv:
self.Angestellter->forall(p:Person | p.Alter > 16)
Karsten Weicker, Nicole Weicker 67/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Object Constraint LanguageErganzend zum Klassendiagramm
Die Anzahl der Angestellten stimmt.
contex Firma inv:
self.Angestellter->size() = self.AnzahlBeschaftigte
Karsten Weicker, Nicole Weicker 68/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Object Constraint LanguageErganzend zum Klassendiagramm
Eine große Firma zahlt mindestens 100000 EuroGehaltsgeld aus.
contex Firma inv:
self.Status = ’groß’ implies
self.Angestellte.Gehalt->sum() > 100000
Karsten Weicker, Nicole Weicker 69/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Object Constraint LanguageErganzend zum Klassendiagramm
Ehefrauen sind weiblich und mindestens 16.
contex Person inv:
self.Ehefrau->notEmpty() implies
( self.Ehefrau.Geschlecht = ’weiblich’ and
self.Ehefrau.Alter >= 16 )
Karsten Weicker, Nicole Weicker 70/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Object Constraint LanguageErganzend zum Klassendiagramm
Die Firma enthalt Angestellte uber 50.
contex Firma inv:
self.Angestellter->select(Alter>50)->notEmpty()
Karsten Weicker, Nicole Weicker 71/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Zwei Minuten
I Beschreiben Sie mit OCL, die Bedingung, dassalle Angestellen einer Firma verheiratet sind.
I contex Firma inv:
self.Angestellter->forall( p:Person |
p.Ehefrau->notEmpty() Or p.Ehemann->notEmpty )
Karsten Weicker, Nicole Weicker 72/ 73
Softwaretechnik – Unified Modeling Language (UML)
Object Constraint Language
Zwei Minuten
I Beschreiben Sie mit OCL, die Bedingung, dassalle Angestellen einer Firma verheiratet sind.
I contex Firma inv:
self.Angestellter->forall( p:Person |
p.Ehefrau->notEmpty() Or p.Ehemann->notEmpty )
Karsten Weicker, Nicole Weicker 73/ 73