UML - Einführung

Marcel Lüthi
Departement Mathematik und Informatik

Graphische Modellierungssprachen

  • Ziel: Software auf hoher Abstraktions-ebene verstehen
  • Brauchen standardisierte Notationen um Artefakte und Entscheidungen zu
    • Modellieren
    • Dokumentieren
    • Kommunizieren

UML

Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von Software und anderen Systemen
  • Quasi standard zur graphischen Modellierung von OO-Systemen
  • Entwickelt 1990 (G. Booch, I. Jacobson, J. Rumbaugh)
  • Mittlerweise in der Version 2.5

UML Hype

Von Idotter - http://en.wikipedia.org/wiki/File:Gartner_Hype_Cycle.svg, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=7560534
  • UML ist kein Wundermittel wie anfang 2000 geglaubt wurde
  • ... aber trotzdem enorm nützlich

Diagrammarten (UML 2)

Strukturdiagramme
(statisch)

  • Klassendiagramm
  • Montagediagramm
  • Komponentendiagramm
  • Verteilungsdiagramm
  • Objektdiagramm
  • Paketdiagramm
  • Profildiagramm

Verhaltensdiagramme (dynamisch)

  • Aktivitätsdiagramm
  • Use-case Diagramm
  • Interaktionsdiagramm
  • Kommunikationsdiagramm
  • Sequenzdiagramm
  • Zeitverlaufdiagramm
  • Zustandsdiagramm

Klassendiagramm

  • Wichtigste Diagrammart in UML
  • Häufig nur als Werkzeug für das Detaildesign verwendet
  • Ist aber auch mächtiges Modellierungstool
    • Klassen entsprechen zu modellierenden Entitäten
    • Klasse in UML muss nicht Klasse in Implementation entsprechen

Beispiel: Bibliotheksanwendung

Diagramm nach Pfleeger & Atlee, Software Engineering

Assoziationen

  • Beziehungen zwischen Klassen, die Implementation unterstützen muss
    • Optional: Multiplizitäten
  • Definiert implizit eine "Uses" Beziehung

Paketdiagramm

  • Zeigt die Struktur des Systems auf Paketebene.
    • Modelliert "is_component_of" Beziehung
  • Angabe von Beziehungen möglich

Toolunterstützung

  • Weite Verbreitung → Gute Toolunterstützung
  • Empfehlung: Modelio (www.modelio.org)
    • Modernes und mächtiges Open Source Tool