Woche 5: Objektorientiertes Design
Nachdem wir letzte Woche die Grundlagen des Softwaredesigns kennengelernt haben, werden wir uns in dieser Woche mit dem objektorientierten Design beschäftigen. Wir werden dabei die Grundlagen der Objektorientierung kennenlernen und uns mit den SOLID-Prinzipien auseinandersetzen.
Theorie
Vorbereitung (zu bearbeiten bis 17. Oktober)
Als Vorbereitung für die Vorlesungsstunde in dieser Woche bearbeiten Sie bitte folgende Schritte:
- Schritt 1: Schauen Sie das Video zum Thema “Objektorientierung”. (Video, Slides)
- Schritt 2: Lesen Sie den Artikel “Vererbung und Objektkomposition” (Artikel)
- Schritt 3: Lesen Sie den Artikel zum Thema “Designheuristiken” (Artikel)
- Schritt 4: Schauen Sie das Video zu den “SOLID Prinzipien” an (Video, Slides)
- Schritt 5a: Schauen Sie sich die Slides zum Talk von Dan North, Why Every single element of SOLID is wrong, an.
- Schritt 5b: Lesen Sie die Ausführungen von Dan North auf seinem Blog
- Schritt 6: Bearbeiten Sie den Test. (Adam).
Präsenzveranstaltung vom 18. Oktober
In der Präsenzveranstaltung werden wir die SOLID-Prinzipien vertieft diskutieren. Wir werden auch ein Objektorientiertes Design für eine einfache Anwendung erstellen und dabei CRC Karten praktisch einsetzen.
Praxis
Im praktischen Teil der Veranstaltung werden Sie eine erste eigene Erweiterung von JabRef schreiben.
Hausaufgaben
Die folgenden Hausaufgaben sollten bis zum 24. Oktober bearbeitet werden.
- Arbeiten Sie den Selbststudiumsteil Woche 6 durch und bearbeiten Sie die dort angegebenen Aufgaben.
- Falls Sie an der Präsenzveranstaltung nicht anwesend waren, bearbeiten Sie die Theoriefragen und reichen diese bis zum 25.10 auf Adam ein.
- Bearbeiten Sie die praktische Übung und reichen Sie diese wie angegeben per Pull Request ein.
Lernziele
Die Teilnehmer*innen
- kennen die Merkmale und Mechanismen, der Objektorientierung und können diese anwenden
- können die grundlegenden Ideen der Objektorientierung in den Kontext vom Moduldesign setzen
- Anhand eines Szenarios Kandidaten für Module/Klassen identifizieren
- können die SOLID Prinzipien im Kontext der allgemeineren Software-Engineering Prinzipien setzen
- kennen die SOLID Prinzipien und können Code auf deren Umsetzung analysieren