diff --git a/Writerside/images/image_111.png b/Writerside/images/image_111.png new file mode 100644 index 0000000..098fa2a Binary files /dev/null and b/Writerside/images/image_111.png differ diff --git a/Writerside/images/image_112.png b/Writerside/images/image_112.png new file mode 100644 index 0000000..46a7c7c Binary files /dev/null and b/Writerside/images/image_112.png differ diff --git a/Writerside/images/image_113.png b/Writerside/images/image_113.png new file mode 100644 index 0000000..03d3a1d Binary files /dev/null and b/Writerside/images/image_113.png differ diff --git a/Writerside/images/image_114.png b/Writerside/images/image_114.png new file mode 100644 index 0000000..7e1c8d1 Binary files /dev/null and b/Writerside/images/image_114.png differ diff --git a/Writerside/images/image_115.png b/Writerside/images/image_115.png new file mode 100644 index 0000000..a6b6ea4 Binary files /dev/null and b/Writerside/images/image_115.png differ diff --git a/Writerside/images/image_116.png b/Writerside/images/image_116.png new file mode 100644 index 0000000..b7b91e6 Binary files /dev/null and b/Writerside/images/image_116.png differ diff --git a/Writerside/topics/OOAD/DesigningForMaintainability.md b/Writerside/topics/OOAD/DesigningForMaintainability.md index 37ee3b8..552bae9 100644 --- a/Writerside/topics/OOAD/DesigningForMaintainability.md +++ b/Writerside/topics/OOAD/DesigningForMaintainability.md @@ -1,5 +1,5 @@ # Designing for Maintainability -## UML (Unified Modeling Language) +## [UML (Unified Modeling Language)](UML.md) diff --git a/Writerside/topics/OOAD/UMLSequenzDiagramme.md b/Writerside/topics/OOAD/UMLSequenzDiagramme.md index 85c5fd4..147c8a0 100644 --- a/Writerside/topics/OOAD/UMLSequenzDiagramme.md +++ b/Writerside/topics/OOAD/UMLSequenzDiagramme.md @@ -1 +1,73 @@ # Sequenz Diagramme +gehören in die Kategorie der Verhaltensdiagramme in UML + +Beispiel: + +![image_111.png](image_111.png) + +## Time +- Zeit läuft von oben nach unten + - Abstand zwischen den einzelnen Elementen hat nichts mit der Dauer derer zu tun + +## Participants +- Repräsentieren den Teil des Systems, welcher miteinander interagiert +- Jeder Teilnehmer hat eine lifeline + +### Participant Names +- Format: _role [selector] : class_name_ +- bspw.: + - admin - wird admin genannt, muss aber nicht einer Klasse zugeschrieben werden + - : ContentManagementSystem - Klasse ist bekannt, muss aber keinen Namen haben + - admin : Administrator - Klasse und Name sind bekannt + - eventHandlers[2] : EventHandler - Teil innerhalb Array und bekannte Klasse + +## Messages +- Mit einem Pfeil spezifiziert +- ![image_112.png](image_112.png) + +### Message Signatures +- Format für eine Signatur: + - _attribute = sinal_or_message_name (arguments) : return_type_ + - abhängig von den Informationen die bekannt sind, ggf auch kürzer + +## Activation Bars +Indizieren, dass ein [Teilnehmer](UMLSequenzDiagramme.md#participants) aktiv ist + +![image_113.png](image_113.png) + +## Nested Messages +- [Nachricht](#messages) von einem [Teilnehmer](#participants) resultiert in weitere Nachrichten, welcher der Empfänger schickt + - Diese neuen Nachrichten werden als "nested" innerhalb der triggernden Nachricht bezeichnet +- ![image_114.png](image_114.png) +- Bspw.: + - participant1 sends initialMessage() to p2 + - When p2 receives initialMessage(), p2 becomes active, sends two nested messages to p3 + +## Message Types +### Message Arrows +![image_115.png](image_115.png) + +#### Creation and Destruction +- Nicht alle Teilnehmer leben während der gesamten Sequenz + +![image_116.png](image_116.png) + +### Creation of Participants +- create() Nachricht zu der Lebenslinie +- **Nutzung der "dropped participant box"** + - macht es klar, dass der Teilnehmer vorher nicht existiert + +### Destruction of Participants +- Beendung der Lebenslinie mit dem Löschen-Kreuz + +### Synchronous Messages +- Default +- Nachrichtensender wartet auf Antwort von Empfänger + +### Return Message +- Zeigt, dass die Kontroller der Aktivierung wieder zum Empfänger zurückgeht + +### Asynchronous Message (nicht klausurrelevant) +- Sender wartet nicht bis der Empfänger fertig ist +- Implementierung bspw. durch Threads +