Grundlagen der UML und Softwaremodellierung
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 6,89 KB
Einführung in UML und Softwaremodellierung
Die Modellierung ist ein entscheidender Bestandteil der Softwareentwicklung. Sie hilft, komplexe Systeme zu verstehen, zu kommunizieren und zu dokumentieren. Die Unified Modeling Language (UML) ist dabei ein standardisiertes Werkzeug, das verschiedene Aspekte eines Systems visuell darstellt.
Das Problem und Use Cases
Das Problem kann definiert werden als die Differenz zwischen der wahrgenommenen und der tatsächlichen Situation. Im Kontext von Use Cases ist es die Entschlüsselung einer Reihe von Aktionen, die ein System von einem Akteur ausführen lässt, um ein beobachtbares Ergebnis von Wert zu erzielen. Use Cases werden durch Beobachtung und Interaktionssequenzen (Szenarien) aus der Sicht des Benutzers bestimmt, die Interaktionen zwischen Akteuren beschreiben.
Anwendungsfalldiagramm
Ein Anwendungsfalldiagramm (Use Case Diagramm) ist eine Technik, um Informationen über die Dienste zu erfassen, die ein System seiner Umgebung bereitstellt. Sie ermöglichen es, die Systemgrenzen und die Beziehungen zwischen dem System und seiner Umgebung zu definieren.
Use Cases sind Beschreibungen der Systemfunktionalität, unabhängig von der Implementierung.
Vergleich mit Datenflussdiagrammen
Ein Vergleich mit Datenflussdiagrammen des strukturierten Ansatzes zeigt die unterschiedlichen Schwerpunkte der Modellierung.
Akteure (Actors)
Akteure sind externe Entitäten, die mit dem System interagieren, um ein Ziel zu erreichen, und einen kohärenten Satz von Rollen darstellen.
Modellierung in der Softwareentwicklung
Modellierung ist das Rückgrat der Qualität in der Softwareentwicklung. Sie hilft, das Systemverhalten zu kommunizieren und zu erklären. Je besser wir das System verstehen, desto besser wird es.
UML: Unified Modeling Language
Die UML ermöglicht es, das objektorientierte Paradigma in logische und einfache Modelle zu überführen. Sie ist eine standardisierte Sprache zur Erstellung von Software-Plänen und kann für die Visualisierung, Spezifikation, Konstruktion und Dokumentation aller Artefakte eines Softwaresystems verwendet werden.
UML Konstruktionsblöcke
UML-Modelle bestehen aus verschiedenen Konstruktionsblöcken, die statische und dynamische Aspekte des Systems beschreiben.
Strukturelle Elemente
Strukturelle Elemente sind meist statische Teile eines Modells:
- Klassen: Gruppieren Objekte mit ähnlichen Eigenschaften und Verhaltensweisen.
- Schnittstelle (Interface): Eine Sammlung von Operationen, die eine Dienstleistung oder eine Komponentenklasse definieren. Eine Schnittstelle definiert nicht die Implementierung von Operationen.
Use Case Definition
Ein Use Case ist:
- Eine Beschreibung einer Abfolge von Aktionen.
- Beschreibt die Interaktion zwischen Akteuren und dem System.
- Ist die Beschreibung einer Reihe von Aktionen, die ein System ausführt und ein bestimmtes Ergebnis produziert, das für einen bestimmten Akteur von Interesse ist.
Verhaltenselemente: Interaktionen
Interaktionen beschreiben den Austausch einer Reihe von Nachrichten zwischen Objekten in einem bestimmten Kontext, um einen bestimmten Zweck zu erreichen.
- Zustandsmaschine (State Machine): Gibt die Abfolge von Zuständen an, die ein Objekt durchläuft.
- Pakete: Sie ermöglichen es, Elemente in Gruppen zu organisieren. Alle bisher betrachteten Elemente können in Paketen zusammengefasst werden.
- Anmerkungen (Notes): Helfen, das Modell zu erläutern. Sie sind Symbole für Beschränkungen und Kommentare, die neben einem Element oder einer Reihe von Elementen angezeigt werden. Es sind Kommentare, die verwendet werden können, um jedes Element eines Modells zu beschreiben, zu klassifizieren und zu kommentieren.
Beziehungen in UML
UML definiert verschiedene Arten von Beziehungen zwischen Elementen:
- Abhängigkeit: Eine Änderung in Element B kann Element A beeinflussen.
- Assoziation: Zwei Objekte sind miteinander verbunden.
- Generalisierung: Ein Element ist eine Spezialisierung eines anderen (z.B. Kind von Eltern).
- Realisierung (Realization): Element B erfüllt einen Vertrag, der garantiert, dass es eine bestimmte Funktionalität bereitstellt.
UML-Diagramme im Überblick
Ein Diagramm dient als Ansicht eines Teils des Systems und bietet verschiedene Perspektiven und Detaillierungsgrade, um das Systemverständnis zu erleichtern:
- Use Case Diagramm: Zeigt eine Reihe von Anwendungsfällen und Akteuren sowie deren Beziehungen.
- Klassendiagramm: Zeigt eine Reihe von Schnittstellen und Klassen sowie deren Beziehungen und Kooperationen.
- Objektdiagramm: Sind Momentaufnahmen von Instanzen der Elemente, die in Klassendiagrammen gefunden werden.
- Sequenzdiagramm: Hebt die zeitliche Reihenfolge der Nachrichten hervor.
- Kollaborationsdiagramm: Hebt die strukturelle Organisation von Objekten hervor, die Nachrichten senden und empfangen.
- Zustandsdiagramm: Hebt das ereignisgesteuerte Verhalten eines Objekts und seine Zustandsübergänge hervor.
- Aktivitätsdiagramm: Betont die Ablaufsteuerung zwischen Objekten.
- Komponentendiagramm: Zeigt die Organisation und Abhängigkeiten zwischen einer Reihe von Komponenten.
- Einsatzdiagramm: Zeigt die Konfiguration der Prozessoren zur Ausführungszeit.
Allgemeine Aspekte von UML-Elementen
UML-Elemente haben bestimmte Eigenschaften, die ihre Verwendung und Interpretation definieren:
- Name: Identifiziert und referenziert Elemente.
- Bedeutung/Umfang: Der Kontext und die Bedeutung, die mit dem Namen verbunden sind.
- Sichtbarkeit: Definiert, wie ein Name gesehen und verwendet werden kann.
- Integrität: Beschreibt, wie Elemente miteinander in Beziehung stehen und die Ausführung beeinflussen.
- Ausführung: Bezieht sich auf das Ausführen oder Simulieren eines dynamischen Modells.
Problemdomäne und ihre Modellierung
Die Problemdomäne ist eine grafische Darstellung der realen Welt, die wir modellieren möchten. Zur Untersuchung der Problemdomäne existieren folgende Modelle:
- Use Case Diagramm
- Klassendiagramm (Abstrakte Klassen)
- Aktivitätsdiagramm
- Sequenzdiagramm (Basis-Sequenz)