+ - 0:00:00
Notes for current slide
Notes for next slide

Software-Entwicklung 2

UML

1 / 28

Fragen?

Fragen zur letzten Vorlesung?

2 / 28

Ist Modellierung/Modellbildung wichtig?

  • Generierung von Testcases
  • No Code/Low Code Anwendungen (Generierung von Frontend/Backend)
  • Production Line Software mit Generierung von Customization
  • Datenbank-Interfaces generieren
  • Modellgetriebene Entwicklung
  • ....

Mit einem Modell (maschinenlesbar) hat man alle Möglichkeiten

3 / 28

Einführung UML

Sprache und Notation für:

  • Spezifikation

  • Konstruktion

  • Visualisierung

  • Dokumentation

Keine Methode!

4 / 28

Themen - UML

Strukturdiagramme (Structure Diagrams):

  • Use-Case-Diagramm
  • Klassendiagramm (Class Diagram)
  • Objektdiagramm (Object diagram)
  • Komponentendiagramm (Component Diagram)
  • Kompositionsstrukturdiagramm
  • Verteilungsdiagramm
  • Paketdiagramm

Verhaltensdiagramme (Behaviour Diagrams):

  • Sequenzdiagramm (Sequence Diagram)
  • Aktivitätsdiagramm (Activity Diagram)
  • State Machine Diagram
  • Kommunikationsdiagramm
5 / 28

Use-Case Diagramme

Use-Case-Diagramme verdeutlichen, wer was in einem beobachteten System tut

6 / 28

Use-Case Diagramm (Symbole)

Use-Case

= Funktionalität bzw. Tätigkeit

7 / 28

Use-Case Diagramm (Symbole)

Actor/Aktor

= Ausführende/r.

Muss kein Mensch, sondern kann z.B. auch Hardware sein.

Ein Aktor hat eine „Rolle“ im betrachteten Anwendungsfall (z.B. Sachbearbeiter, Administrator, etc)

8 / 28

Use-Case Diagram - Beispiel I

Assoziation

Ein Aktor ist an einem Anwendungsfall beteiligt

=> Aktor und Anwendungsfall kommunizieren miteinander

Generalisierung (Vererbung)

Erbt ein Aktor von einem anderen, so heißt das dass er mit den gleichen Anwendungsfällen kommunizieren kann wie sein "Super-Aktor".

9 / 28

Frage: Was bedeutet das Use-Case-Diagramm?

Use-Case Diagramm - Generalisierung

Use-Cases können verallgemeinert werden:

10 / 28

Use-Case Diagramm - Include

  • Das Verhalten des eingebunden Anwendungsfalles ist in den einbindenden Anwendungsfall eingefügt

  • Der "including-Use-Case" kommt nicht ohne den "included-Use-Case" aus

  • <<include>> = unbedingter Aufruf von Teilfunktionalität (in deutsch: included-Use-Case wird immer beim Aufruf des including-Use-Case mitaufgerufen)

11 / 28

Use-Case Diagramm - Extend

Quelle: UML 2.4.1 Superstructure

  • <<extend>> = bedingter Aufruf einer Teilfunktionalität

  • extending-Use-Case kann nicht alleine aufgerufen werden

  • Extended-Use-Case kommt ohne extending-Use-Case aus

12 / 28
  • Linker Use-Case: extended
  • Rechter Use-Case: extending

Use-Case Diagramm - Beispiel 2

Quelle: https://de.wikipedia.org/wiki/Anwendungsfalldiagramm _

13 / 28

Use-Case Diagramm - Beispiel 3

Quelle: UML 2.4.1 Superstructure

14 / 28

Klassendiagramme

Beschreibt alle Zusammenhänge/ Beziehungen zwischen den verschiedenen Klassen eines Programms.

Zentrales Diagramm!

15 / 28

Klassendiagramm (Symbole)‏

  • + für public

  • # für protected

  • ~ für package

  • − für private

16 / 28

Klassendiagramme (Symbole)

  • Abstrakt: kursiv geschriebener Klassenname.

  • Oder "{abstract} Klassenname"

17 / 28

Klassendiagramme (Symbole)

Notationsbeispiel

Quelle nach: OOSE UML 2 Notationsübersicht

18 / 28

Klassendiagramme (Symbole)

Quelle: OOSE UML 2 Notationsübersicht

19 / 28

Klassendiagramme (Symbole)

Quelle: OOSE UML 2 Notationsübersicht

20 / 28

Objektdiagramme

Das Objektdiagramm soll verdeutlichen, wie die Attribute einer Klasse zu einem bestimmten Zeitpunkt (Snapshot) des Programms sind.

21 / 28

Objektdiagramme

Unterschiede zum Klassendiagramm:

  • Nur Attribute, keine Methoden

  • Bezeichnungsvorschrift:

    • Objektname:Klassenname (Wichtig: Unterstreichen nicht vergessen! Mit Unterstreichen wird deutlich gemacht, dass es sich um Objekte handelt. Dies gilt für alle UML-Diagramme)‏

    • Bei unbekanntem Objektnamen: :Klassenname

  • Datentypen sind optional!

22 / 28

Sequenzdiagramme

  • Zeigt den Nachrichtenverlauf zwischen Objekten

  • Nachricht = Methode

  • Fokus auf zeitlichen Verlauf

  • Zeit verläuft von oben nach unten

23 / 28

Sequenzdiagramme - Beispiel

Quelle: UML 2.4.1 Superstructure

24 / 28

Wie finde ich meine Klassen?

class Nachricht {
....
public String lesen() { ...}
}
  • Aus dem Use-Case Substantiv wird eine Klasse
  • Aus dem Use-Case Verb wird eine public Methode (nicht notwendigerweise in der gleichen Klasse: Beispiel Verzeichnis - Datei)
25 / 28

Wie verbinde ich meine Klassen zu einer Applikation?

  • Aus Assoziationen im Modell werden Referenzen auf Objekte
  • Tischplatte und TischBein[] sind Referenzen auf Teile von Tisch die eigene Klassen sind.

Quelle: https://info-wsf.de/assoziation-aggregation-und-komposition/

26 / 28

Wer baut die Referenzen?

  • Im Konstruktor werden Referenzen übergeben und in der Klasse gespeichert
  • Die Klasse baut sich die benötigten Referenzen selber (z.B. new Tischbein()).

Quelle: https://info-wsf.de/assoziation-aggregation-und-komposition/

27 / 28

Fragen?

28 / 28

Fragen?

Fragen zur letzten Vorlesung?

2 / 28
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow