David Schirrmeister 2291e164f7 updatet f5aw
2024-05-03 15:27:45 +02:00

4.1 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

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

Composition

Wenn eine Klasse Objekte einer anderen Klasse enthält
image_91.png

Generalization

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