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

Softwaretechnik I (Sommersemester 2022)

Dozent: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Patrick Rein (Software-Architekturen) , Dr. Jens Lincke (Software-Architekturen) , Eva Krebs (Software-Architekturen)
Tutoren: Joana Bergsiek Tom Braun Silvan Verhoeven Christoph Thiede Leonard Geier Paula Klinke

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 01.04.2022 - 30.04.2022
  • Prüfungszeitpunkt §9 (4) BAMA-O: 28.07.2022
  • Lehrform: Vorlesung / Übung
  • Belegungsart: Pflichtmodul
  • Lehrsprache: Deutsch

Studiengänge, Modulgruppen & Module

IT-Systems Engineering BA

Beschreibung

Im Rahmen dieser Veranstaltung werden gebräuchliche Vorgehensmodelle und best practices bei der Entwicklung von Softwaresystemen behandelt.

  • Software life cycle
  • Traditional development processes
  • Requirements engineering
  • Rational unified process
  • Scrum
  • Lean software development
  • Kanban
  • Object design
  • Responsibility-driven design
  • Extreme programming
  • Test-driven development
  • Refactoring
  • Patterns
  • Reverse Engineering
  • Debugging & Code reading
  • Change & quality management
  • ...

 

Aufgrund der aktuellen Situation wird diese Vorlesung in Präsenz im Hörsaal 1 stattfinden und parallel auf Zoom gestreamt. 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.

Voraussetzungen

  • Vertiefte Programmierkenntnisse in mindestens einer Programmiersprache
  • Vorlesung Software-Architektur

Literatur

  • Ian Sommerville: Software Engineering. Addison-Wesley 2006
  • Kent Beck, Cynthia Andres: Extreme Programming Explained - Embrace Change. Addison-Wesley 2004
  • Kent Beck: Test Driven Development - By Example. Addison-Wesley 2002
  • Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener: Designing Object-Oriented Software. Prentice Hall 1990.
  • Rebecca Wirfs-Brock, Alan McKean: Object Design - Roles, Responsibilities and Collaborations.: Roles, Responsibilities and Collaborations. Addison-Wesley 2002
  • Ivar Jacobson, Grady Booch, James Rumbaugh: Unified Software Development Process. Addison-Wesley 1999
  • Martin Fowler: UML Distilled - A Brief Guide to the Standard Object Modeling Languange. Addison-Wesley 2003
  • Serge Demeyer, Stephane Ducasse, Oscar Nierstrasz: Object Oriented Reengineering Patterns. Morgan Kaufmann 2002
  • Martin Fowler: Refactoring - Improving the Design of Existing Code. Addison-Wesley 1999
  • Joshua Kerievsky: Refactoring to Patterns. Addison-Wesley 2004
  • Andrew Hunt, David Thomas: The Pragmatic Programmer - From Journeyman to Master. Addison-Wesley 1999

Weitere Literatur wird jeweils gesondert bekannt gegeben.

Lern- und Lehrformen

Vorlesung mit Übungen/Seminaren.
 

Wichtige Links

Leistungserfassung

Die Leistung wird zum einen durch die Erstellung und Präsentation einer Software-Anwendung und zum anderen durch eine Prüfung erbracht. Zu diesem Zeitpunkt ist als Prüfung vorläufig eine schriftliche Prüfung von 90 Minuten Dauer geplant. 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. Die Note der Projektarbeit ergibt sich zu einem Drittel aus Bewertung des Softwareartifakts und zu zwei Dritteln aus der Bewertung der Präsentation.

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

  • Anforderungen an das Softwaresystem,
  • Architektur und Funktionsweise des Gesamtsystems,
  • zugrunde gelegter Entwicklungsprozess sowie vorgenommene Anpassungen,
  • Konsequenzen der vorgenommenen Anpassungen am Prozess,
  • Projektverlauf, und
  • zusammenfassende Bewertung des Projekts.

In Quelltext 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 Ende des Tages 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 Quelltext einschließlich der benötigten Ressourcen,
  • einem Demo-Script inklusive Installationsbeschreibung, und
  • einem Demo-Videoclip (screen cast).

Die erstellte Anwendung ist in ihrer endgültigen Version zum Ende der Vorlesungszeit ü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 sollen unter der MIT-Lizenz und, falls notwendig, mit einer den verwendeten Systemen kompatiblen Lizenz bereitgestellt werden.

Termine

Erster Termin:

Vorlesungen und Übungen/Seminare

  • Dienstag, 11:00 - 12:30 Uhr
  • Donnerstag, 9:15 - 10:45 Uhr
  • HS1, Zoom

Themenwahl:

  • Bis 24. April 2022

Themenvergabe:

  • 26. April 2022

Klausur:

  • 28. Juli 2022

Projektabgabe

  • 29. Juli 2022

Zurück