Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
 

Softwarearchitektur (Wintersemester 2023/2024)

Lecturer: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Eva Krebs (Software-Architekturen) , Patrick Rein (Software-Architekturen) , Marcel Taeumel (Software-Architekturen) , Dr. Jens Lincke (Software-Architekturen) , Stefan Ramson (Software-Architekturen) , Toni Mattis (Software-Architekturen) , Tom Beckmann (Software-Architekturen) , Lukas Böhme , Leonard Geier (Software-Architekturen)
Tutors: Ole Becker Joana Bergsiek Marius Doerbandt Ricardo Martinez-BaronaPerdomo Luc Prestin Ennio Strohauer

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 01.10.2023 - 31.10.2023
  • Teaching Form: Lecture
  • Enrolment Type: Compulsory Module
  • Course Language: German

Programs, Module Groups & Modules

IT-Systems Engineering BA

Description

Software-Entwicklung ist ein kreativer Prozess, in dem Ideen und Entscheidungen zwischen Entwicklern klar kommuniziert und über die Zeit dokumentiert werden müssen. In der Verwendung von Programmiersprachen und darüber hinaus haben sich Idiome, Entwurfsmuster, Frameworks und Architekturstile als hilfreich erwiesen.

Im Rahmen dieser Veranstaltung werden maßgebliche Vertreter dieser Kategorien für die objektorientierte Softwareentwicklung besprochen sowie zugehörige und weitergehende Konzepte und Ansätze vorgestellt.

Stichworte: Software-Architektur, Software-Design, objektorientierte Programmierung, Idiome, Entwurfsmuster, Architekturstile, Refactoring, Frameworks

Lehrinhalte

  • Modularity
  • Objects
  • Idioms
  • Design Patterns
  • Pattern Languages
  • Architectural Styles
  • Architecture Description Languages (ADLs)

Die Vorlesung wird in Präsenz im Hörsaal 2 stattfinden.

Persönliche Kommunikation wird über Slack stattfinden. Alle für die Veranstaltung essenziellen Informationen werden außerdem per Moodle (siehe unten) kommuniziert. Die Kommunikationsmittel für die Projektarbeit kann individuell mit den Tutoren abgestimmt werden. Um einen Missbrauch der Kommunikationskanäle vorzubeugen bitten wir darum Ihren tatsächlichen Namen zu verwenden.

 

Wichtige Links

Requirements

Vertiefte Programmierkenntnisse in mindestens einer Programmiersprache.

Erfolgreiche Teilnahme an Programmiertechnik I und Programmiertechnik II.

Literature

  • Erich Gamma, Richard Helm, Ralph E. Johnson, John Vlissides: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley 1997
  • Martin Fowler: Refactoring - Improving the Design of Existing Code. Addison-Wesley 1999
  • Joshua Kerievsky: Refactoring to Patterns. Addison-Wesley 2004
  • Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad: Pattern-Oriented Software Architecture - A System of Patterns. John Wiley and Sons 1996
  • Mary Shaw and David Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996.
  • Weitere Literatur wird jeweils gesondert bekannt gegeben.

Learning

Vorlesung mit Übungen/Seminaren

Examination

Die Leistung wird zum einen durch die Erstellung und Präsentation einer Software-Anwendung, zum anderen durch eine schriftliche Prüfung von 90 Minuten Dauer erbracht. Beide Teile sind mit 50 % gewichtet; sie werden mit insgesamt 6 benoteten Leistungspunkten angerechnet. Zur erfolgreichen Teilnahme an der Lehrveranstaltung müssen beide Teile mit jeweils mindestens 4,0 benotet worden sein.

Im Rahmen einer Projektarbeit sollen Teilnehmer in kleinen Gruppen eine Anwendung entwerfen, implementieren und dokumentieren. Die Themen hierfür werden gestellt. Die Arbeit wird in einem Vortrag von 30 Minuten Dauer präsentiert, an den sich eine Diskussion anschließt. Beim Vortrag besteht für alle Mitglieder der vortragenden Gruppe Anwesenheitspflicht. Der Vortrag soll technische Aspekte der durchgeführten Arbeit als Demonstration beinhalten und mindestens die folgenden Aspekte des Projekts dokumentieren:

  • Architektur und Funktionsweise des Gesamtsystems,
  • Entwurfsentscheidungen,
  • Konsequenzen der getroffenen Entwurfsentscheidungen, und
  • zusammenfassende Bewertung des Projekts.

In Quellcode und Präsentation ist auf die korrekte Angabe aller verwendeten Quellen zu achten. Eine Eigenleistung muss erkennbar sein. Die Entdeckung von Plagiaten führt zu jedem Zeitpunkt zum sofortigen Nichtbestehen der jeweiligen Leistung.

Bis spätestens eine Woche vor dem jeweiligen Vortragstermin bespricht jede Gruppe eine Vorversion ihrer Vortragsunterlagen mit einem der Betreuer. Die Vortragsunterlagen sind spätestens am unter Termine angegebenen Zeitpunkt vor dem Vortrag über das elektronische Abgabesystem einzureichen. Sie bestehen aus

  • den Dokumentquellen der im Vortrag verwendeten Folien,
  • einer PDF-Version derselben,
  • dem vollständigen in der Demonstration verwendeten Quelltexte einschließlich der benötigten Ressourcen,
  • einer Installationsbeschreibung,
  • einem Demo-Script, und
  • einem Demo-Videoclip (screen cast).

Zudem bereitet jede Gruppe eine Diskussion der Architektur einer anderen, zugewiesenen Gruppe vor. Die Diskussion wird in einem fünfminütigen Vortrag im Anschluss an den Vortrag der zugewiesenen Gruppe vorgestellt.

Die erstellte Anwendung ist in ihrer endgültigen Version bis 23:59 Uhr am unter Termine angegebenen Tag über das elektronische Abgabesystem einzureichen. Wird das Einreichen verlangter Dokumente bis zum jeweils angegebenen Datum und Zeitpunkt versäumt, so gelten diese als nicht eingereicht, was zur Abwertung der Gesamtleistung führt.

Alle im Rahmen der Veranstaltung erstellten Quelltexte und verwendeten Ressourcen sollen unter der MIT-Lizenz und, falls notwendig, mit einer den verwendeten Systemen kompatiblen Lizenz bereitgestellt werden.

Dates

Erster Termin:

  • 17. Oktober 2023 Onboarding, Einführung, Projektvorstellung

Vorlesungen:

  • Dienstag, 11:00 - 12:30 Uhr
  • HS2

Sondertermine Tutorien:

  • 19. Oktober 2023 15:15 - 16:45 Uhr im HS1 (alle Teilnehmer)
  • Für das Koans Tutorial werden zwei Termine angeboten, damit für bessere Betreuung jeweils nur die Hälfte der Teilnehmer anwesend ist. Terminwahl wird über Moodle erfolgen. Die Termine sind am 1. November 2023 17:00 - 18:30 Uhr und 2. November 2023 15:15 - 16:45 in H2.57/58

Klausur:

  • Freitag 1. März 2024, 10:00 Uhr, Hörsaalgebäude

Werksgesprächsabgabe:

  • Montag 15. Januar 2024, 12:30 Uhr, Moodle

Projektabgabe:

  • Freitag 9. Februar 2024, 23:59, Moodle

Zurück