David Schirrmeister 465f6f5668 updatet
2024-05-07 09:16:07 +02:00

5.4 KiB

UML (Unified Modeling Language)

Categories

Structure Diagrams

  • dynamisches Verhalten der Elemente (bspw. Veränderung über Zeit) wird nicht beachtet

  • Class Diagram

  • Package Diagram

  • Object Diagram

  • Component Diagram

  • Profile Diagram

  • Composition Structure Diagram

  • Deployment Diagram

Behavior Diagram

  • Kann Verhalten detailliert definieren

  • Bestimmt, wie sich der Zustand eines Elements über Zeit verändert

  • State Machine Diagram

  • Use Case Diagram

  • Activity Diagram

  • Interaction Diagram

    • Sequence Diagram
    • Interaction Overview Diagram
    • Communication Diagram
    • Timing Diagram

Klassen Diagramme

  • Klassen werden als Boxen dargestellt mit
    • Name
    • Attribute
    • Methoden

Aufbau Klassen-Diagramm

1. Bereich: Name der Klasse

  • beginnt mit Großbuchstaben
  • ist ein Nomen
  • sollte die Klasse beschreiben

2. Bereich: Attribute der Klasse

Es gibt zwei Arten die Attribute darzustellen

3. Bereich: Methoden der Klasse

  • Haben 4 Elemente:
  • Bspw.: + addEntry(int number, string description): void

Sichtbarkeit von Attributen / Methoden

  • Public (+)
    • Jedes Objekt anderer Klassen kann zugreifen
  • Protected (#)
    • Jedes Objekt der Klasse und der Unterklassen kann darauf zugreifen
  • Package (~)
    • Jedes Objekt, deren Klasse im selben Package ist, kann darauf zugreifen
  • Private (-)
    • Nur das Objekt selbst kann darauf zugreifen

Beispiel Klassen Diagramme:

  • 3 Klassen (Student, Course, LectureHall)
  • Student kann keine bis n Lectures beitreten
  • Courses können in keine bis einer LectureHall stattfinden
  • Student hat einen first name, last name, date of birth...
  • etc.

image_87.png

Erstellung eines Klassen-Diagramms

  1. Identifizierung der Klassen
    • image_107.png
  2. Identifizierung der Attribute
    • image_108.png
  3. Identifizierung von Generalisierungen
    • image_109.png
  4. Identifizierung von Assoziationen und Aggregationen
    • image_110.png

Entstandenes UML-Diagramm ist nicht einzig korrektes!

Objekt Diagramme

Beispiel Objekt Diagramme:

  • 4 Instanzen / Objekte vom Typ Student (Helen, Mike, Paul)
  • Helen ist im Kurs oom und iprog
  • Der Kurs db ist in der LectureHall lh2
  • image_88.png

Relationship Overview

Klassen arbeiten zusammen über verschiedene Arten von Relationships

  • Relationships werden als Linie zwischen den Boxen dargestellt mit
    • Name
    • Leserichtung
    • Multiplizität
      • Sind als Intervall dargestellt [Min..Max]
        • Falls es kein Limit gibt: *
        • Falls Min = Max: nur eins hinschreiben
      • Bsp.:
        • [0..1]: Attribut hat 0 - 1 Wert
        • [5]: Attribut hat genau 5 Werte
        • [*]: Attribut hat 0 bis unendlich Werte
        • [3..*]: Attribut hat 3 bis unendlich Werte

Association

Wenn ein Objekt einer Klasse mit Objekten einer anderen Klasse arbeitet

image_89.png

  • schwächstes Relationship
    • Kommunikationspartner können auf Attribute und Methoden des Anderen zugreifen
  • Bsp.:
    • image_98.png

Navigatability

  • x: Darauf ist nicht zugreifbar
  • >: Darauf kann zugegriffen werden
  • nix: undefined

Aggregation

Wenn eine Klasse eine Referenz zu Objekten einer anderen Klasse besitzt und teilt

image_90.png

  • Objekte existieren auch unabhängig
  • Es können auch mehrere Objekte in einer Aggregation verbunden werden

Composition

Wenn eine Klasse Objekte einer anderen Klasse enthält

image_91.png

  • Nur maximal eine Instanz
  • Objekt kann nicht allein existieren

Generalization (Inheritance)

Wenn eine Klasse ein Typ einer anderen Klasse ist

image_92.png

Erstellung von Klassen

Appropriate Level of detail

Detail der Zeichnung sollte abhängig vom SDLC sein.

  1. keine Details (erste Analyse für die ersten Diskussionen des Domänen-Konzepts)
    • image_93.png
  2. mehr Details (während späterer Analysen)
    • image_94.png
  3. sehr detaillierte Beschreibung (detaillierte Analyse oder während Implementierung)
    • image_95.png

N-Ary Association

  • Relationship zwischen mehr als zwei Klassen
    • Wird durch hohle Raute in der Mitte der Klassen dargestellt
      • bspw.: image_99.png

Implementierung in Code von N-Ary Association

  • nicht existent in Standard-Programmiersprachen

Using Two Binary Associations

image_100.png

Using additional Class

image_101.png

Association Class

Introduction Association Class

Erlaubt N-Ary Associations

Possible Implementations of Association Classes

image_102.png image_103.png

Abstract Class

image_104.png

  • nur im Kontext von Generalisierungsbeziehungen sinnvoll

Interface

image_106.png