UML
UML steht für Unified Modeling Language
und hat das Ziel, eine normierte Möglichkeit zu schaffen, Design- und Architekturinformationen und Spezifikationen zwischen Entwicklern auszutauschen.
Für den Unterricht konzentrieren wir uns auf die folgenden fünf Diagramme:
Dies ist vermutlich das wichtigste UML-Diagramm. Es zeigt den internen Aufbau von Klassen, und die Beziehungen zwischen Klassen. Hierzu zählen:
- Erweiterung (oder Vererbung)
- Assozisation
- Komposition
- Aggregation
- Implementierung
Das vielleicht einfachste Diagramm ist das Aktivätsdiagramm. Hier werden Aktionen, welche von unterschiedlichen Akteueren
vorgenommen werden sollen, in eine Art "Flussdiagramm" gebracht. Hierbei stehen uns folgende Elemente zur Verfügung:
- Kontrollflüsse
- Start- und Endknoten
- Aktivitätsknoten
- Verantwortungsbereichen ("Swimlanes")
- Objektknoten
- Entscheidungen und Verbindungen
- Gabelungen und Vereinigungen
Zur Modellierung der zeitlichen Abläufe von Funktionsaufrufen wurde das Sequenzdiagramm eingeführt. Hierbei
sprechen wir über folgende Themen:
- Lebenslinie und aktive Bereiche
- Erzeugung von Objekten
- Synchrone und asynchrone Sufrufe
- Destruktionsnachrichten
- Gefundene und verlorene Nachrichten
- Dekomposition
- Nachrichten an sich selbst
- Alternativen und Optionen
- Schleifen
Dies ist da abstrakteste Diagramm der UML Familie. Hier geht es darum, den Nutzen der Software aus Usersicht zu modellieren.
Es soll also die Frage geklärt werden: "was will der User eigentlich machen?". Im Wesentlichen geht es dabei um folgende Punkte:
- Akteuere
- Systemgrenze
- Anwendungsfälle
- Vererbungen/Generalisierungen von Anwendungsfällen und Akteueren
- Assoziationen
- Include und Extend Beziehungen
- Extension Points
Neben dem Klassendiagramm ist aus meiner Sicht das Statusdiagramm eines der nützlichsten. Der Grund liegt darin, dass wir
das Programmierkonzept der "State-Machine" mit Hilfe des Statusdiagramms sehr gut planen und umsetzen können.
Folgende Themen werden berücksichtigt:
- Der Zustand
- Eventhandling
- Guards
- Aktionen
- Selbsttransition
- Entscheidung
- Verhaltens- vs. Protokollautomat