diff --git a/04-termin.md b/04-termin.md new file mode 100644 index 0000000..2ef888a --- /dev/null +++ b/04-termin.md @@ -0,0 +1,29 @@ + + +# Termin 4 + +--- + +# Fragen + +--- + +# Links +[https://git.haw-hamburg.de/pm2-tutorium](https://git.haw-hamburg.de/pm2-tutorium) +- Aufgaben +- Tutoriumsfolien + +--- + +# Plan für heute + +Level 6 Themen: + +- **Werkzeug & Material-Ansatz** +- **Entwurfsmuster** diff --git a/entwurfsmuster.md b/entwurfsmuster.md new file mode 100644 index 0000000..fc4d86e --- /dev/null +++ b/entwurfsmuster.md @@ -0,0 +1,37 @@ + + +# Entwurfsmuster +## Gang of Four Design Patterns + +--- + +# Grundlagen + +Lösungsansätze für häufig auftretende Probleme beim entwickeln von Software. Entwickelt von Gamma et al. (1994) und im Buch Design Patterns erschienen. Die Entwurfsmuster werden in einem bestimmten Format angegeben: + +* Name, des Entwurftmusters +* Problem, das gelöst werden soll +* Kontext, in dem sich das Problem stellt +* Lösung, durch eine Klassenhierarchie mit Interaktion +* Konsequenzen, die aus dem Muster entstehen (Vor- und Nachteile) + +--- + +# Observer + +"Definiere eine 1-zu-n-Abhängigkeit zwischen Objekten, so dass die Änderung des Zustands eines Objekts dazu führt, das alle abhängigen Objekte benachrichtigt und automatisch aktualisiert werden." + +![width:500px](https://www.philipphauer.de/study/se/design-pattern/observer/observer-def-schema.svg) +*Bildquelle: [Philipp Hauer](https://www.philipphauer.de/study/se/design-pattern/observer.php)* + +--- + +# Observer Implementation + +![width:350px](https://i.ibb.co/jJtnCSb/mermaid-diagram-20210527132005.png) diff --git a/wam-ansatz.md b/wam-ansatz.md new file mode 100644 index 0000000..c8cf9e5 --- /dev/null +++ b/wam-ansatz.md @@ -0,0 +1,69 @@ + + +# Werzeug & Material Ansatz + +--- + +# Grundlagen + +Gibt Entwurfsregeln zum entwerfen von interaktiven Softwaresystemen vor. Die Klassen werden aufgeteilt in vier Elementtypen: + +* **Materialien** : Anwendungsbezogene Gegenstände +* **Fachwerte** : Anwendungsbezogene unveränderliche Werte +* **Werkzeuge** : Grafische Benutzeroberfläche zum Bearbeiten von Materialien +* **Services** : Materialübergreifende fachliche Dienstleistungen + +--- + +# Materialien + +Gegenstände aus der Anwendungsdomäne mit denen gearbeitet wird. Müssen keine materiellen Gegenstände sein. + +Darf zugreifen auf: + + * Andere Materialien + * Fachwerte + +Beispiel: Film, Abrechnung, ... + +--- + +# Fachwerte + +Unveränderliche Werte aus der Anwendungsdomänce. Es gibt einen Fachwert nur genau einmal. + +Darf auf keine anderen Elemente zugreifen. + +Beispiel: Zeit, Geldbetrag, ... + +--- + +# Services + +Bieten Dienstleistungen an die im gesamten System zur Verfügung stehen sollen. Es gibt immer nur ein Serviceexemplar für einen Servicetypen. + +Darf zugreifen auf: + * Andere Services + * Materialien + * Fachwerte + +Beispiel: Datenbankservice, Kundenstammservice, ... + +--- + +# Werkzeug + +Bieten Möglichkeiten zur Benutzerinteraktion. Sollten möglichst eine klare Aufgabe übernehmen. Häufig werden Werzeuge in eine UI- und Werkzeugklasse aufgeteilt. + +Darf zugreifen auf: + + * Andere Werkzeuge + * Services + * Materialien + * Fachwerte