LE 5 | UML - Unified Modeling Language - TK [überarbeitet 20150702 / TK] Flashcards
Welche Diagrammarten gibt es?
-
Strukturdiagramme (statisch)
- Use-Case
- Paketdiagramm
- Klassendiagfamm
- Objektdiagramm
-
Architekturdlagramme (statisch)
- Verteilungsdiagramm
- Komponentendiagramm
- Kompositionsdiagramm
- Subsystemdiagramm
-
Verhaltensdiagramme (dynamisch)
- Aktivitätsdiagramm
- Zustandsdiagramm
-
Interaktionsdiagramm (dynamisch)
- Sequenzdiagramm
- lnteraktionsübersicht
- Kommunikationsdiagramm
- Zeitdiagramm
Welche Diagrammreihenfolge ist am Besten?
- Use-Case
- Deployment
- Package
- Component
- Class
- Com posite/Subsystem/Object
- Activity
- Sequence
- State
- Interaction-Overview
Was versteht man unter dem Verteilungsdiagramm (Deployment)
- statisches Diagram
- Physische Verteilung der Hard- und Software des Systems
- z.B. TollCollect
- verschiedene Rechenzentren
- Sateliten Geräte auf Autobahnen
- Geräte an den Raststätten
Beschreibe das Komponentendiagramm
- statisches Diagram
- Aus welchen Komponenten besteht das System?
- Die konkrete Struktur des Systems
- Keinesfalls Details
- Abhängigkeiten und Schnittstellen spezifizieren
- Notation: Rechteck mit “Lego-Symbol”

Beschreibe das Paketdiagramm
- statisches Diagram
- Zeigt die hierarchische Struktur der Elemente
- Zeigt Schichten und Blöcke auf
- Patterns und Schichten werden transparent
- Abhängigkeiten modellieren

Beschreibe das Klassendiagram!
- Visualisierung von Klassen
- Beziehungen der Klassen
- Innere Struktur der Klassen:
- Stereotypen (werden in << stereotyp >> geschrieben) können sowohl an Klassen als auch an Beziehungen gesetzt werden
- interface
- abstract
- send
- instantiate
- stateless
- Signaturen (Sichtbarkeit, Rückgabe, Parameter)
- Sichtbarkeiten
- public
- # protected
- private
- ~ package
- Zuerst Name dann Typ (person : String)
- Beziehungen zwischen Klassen y
- Assoziation
- Aggregation
- Komposition
- Eine Klasse ist abhängig von einer anderen Klasse, wenn sie diese zwingend benötigt um ihre Aufgabe zu erfüllen.

Beschreibe das Objektdiagram!
- Zeigt den Beispielhaften Zustand eines oder mehrerer Objekte im System
- Quasi ein Instanzdiagramm in dem konkrete Werte angegeben werden können
Beschreibe das Use-Case-Diagramm!
- Möglichst einfach zeigen was mit dem System gemacht werden soll
- Beschreibt Arbeitsabläufe im System die möglich sein sollten
- Zusammenhängende Anwendungsfälle in einem Kasten
- Akteure werden als Strichmännchen gezeichnet
- Use-Cases als Kreise
- Mit ungerichteten Kanten verbunden
- Gestrichelter Pfeil stellt eine Realisierung da
- Extends und include analog zur Programmierung
- Spezialisierungspfeil (analog Klassendiagramm) kann ein genereller Anwendungsfall in weitere Subanwendungsfälle unterteilen (Spezialisierung)

Beschreibe das Aktivitätsdiagram
Aktivitätsdiagramm
- Zeigt die Abfolge durch die ein Anwender im System geleitet werden kann
- Es gibt:
- Startknoten .
- Endknoten
- Aktionsknoten
- Objektknoten
- Zeigen an, an welcher Stelle welche Objekte vorhanden sind
- Nicht häufig eingesetzt
- Kontrollknoten
- Verzweigung/ Zusammenführung
- Splittung (fork)/Synchronisation (join)
- Bedingungen können in eckigen Klammern angegeben werden [x > 0]
Beschreibe das Zustandsdiagramm
Zustandsdiagramm
- Beschreibt das Verhalten des Systems bei bestimmten Ereignissen
- Es gibt:
- Zustände
- Transitionen
- Regionen/Bereiche
- Start- und Endzustand
- Zustände werden mit Namen versehen
- Es können folgende Angaben über Zustände gemacht werden
- Entry -> Eintrittsaktivität
- Exit -> Austrittsaktivität
- Do -> anhaltende Aktivität
- Trigger -> Verzögerung und Auslöser
- Guards sind Bedingungen die an eine Transition geschrieben werden kann [blub found], [timeout], etc.
Beschreibe das Sequenzdiagramm
- Zeigt wie Klassen interagieren
- Sachverhalte werden transparenter
- Zeigt die Nachrichten zwischen Klassen im zeitlichen Ablauf
- Objekte werden oben angeordnet und besitzen Lebenslinien ~
- lnstanziierte Objekte werden als Kasten auf der Linie dargestellt
- Nachrichten zwischen Objekten als horizontale Pfeile
- Synchron: gefüllte Pfeilspitze
- Asynchron: nicht gefüllte Pfeilspitze
- Gestrichelte Linie: Antwort/Return
- Verzweigungen, Schleifen, etc. werden durch „Kästen“ eingezeichnet und mit „loop”, „alt”, etc. gekennzeichnet
- Zwei Arten von Kommunikarionsschemata:
- Centralized Control: Ein Objekt macht die Arbeit, andere arbeiten zu
- Distributed Control: Objekte sind gleichberechtigt/ keine zentrale Kontrolle
Beschreibe das Interaktionsdiagram
- Mischform eines Aktivitätsdiagrammes
- Einzelne Aktivitäten werden durch ein Interaktionsdiagramm näher beschrieben
- Zustände werden vergrößert dargestellt und eingebettet
- Kommt zum Einsatz wenn Zustände sehr komplex sind
Beschreibe das Kommunikationsdiagram
- Stellt komplexe Abläufe in der Kommunikation dar
- Immer dann benutzt, wenn Inhalte der Zustände, Daten, Übergänge unwichtig sind
Beschreibe das Zeitdiagramm!
- Meist nur für embedded oder e-technische Anwendungen
- Zeitliche Darstellung von Vorgängen
- Wie signale auf Oszilloskop
- Enthalten:
- Zeitverlaufslinien
- Bedingungen
- Nachrichten die zu Zustandsänderungen führen können
Was ist UML?
- Unified Modeling Language = Verfahren zur Modellentwicklung von Softwaresystemen
- Entstand: 1996
- Derzeit aktuell: 2.1.2 (Nov. 2007)
Nenne vier Tools mit dessen Hilfe UML entwickelt werden kann
- Together
- Magic Draw
- Rational Rose
- Omondo
Welche Diagrammtypen werden unterschieden?
- statische
- dynamische
Nenne 7 statische Diagrammarten
- Strukturdiagram
- Paketdia
- Klassendia
- Objektdia
- Architekurdiagram
- Einsatz- und Verteilungsdia (Deployment)
- Komponentendia
- Kompositionsstruktodia
- Subsystemdia
Nenne dynamische Diagrammarten!
- Verhaltendiagram
- Aktivitätsdiagram
- Zustandsdiagram
- Use Case Diagram
- Interaktionsdiagram
- Sequenzdia
- Interaktionsübersicht
- Kommunikationsdia
- Zeitdia
Warum sind Paketdiagramme wichtig?
- “Spielwiese” für Entwickler um Testcode entwickeln zu können
- können die wirkliche Systemarchitektur wiederpiegeln => steigert die Transparenz
- Modelierung von Abhängigkeiten