Hasso-Plattner-InstitutSDG am HPI
Hasso-Plattner-InstitutDSG am HPI
Login
 

Softwaretechnik (Sommersemester 2023)

Lecturer: Prof. Dr. Holger Giese (Systemanalyse und Modellierung) , Christian Medeiros Adriano (Systemanalyse und Modellierung) , Christian Zöllner (Systemanalyse und Modellierung)

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 01.04.2023 - 30.04.2023
  • Teaching Form: Lecture / Exercise
  • Enrolment Type: Compulsory Module
  • Course Language: German

Programs, Module Groups & Modules

IT-Systems Engineering BA

Description

Die Softwaretechnik (SWT) (Englisch  Software Engineering (SE)) beschäftigt sich mit der systematischen Neuntwicklung und Weiterentwicklung von Softwaresysteme. Dies umfasst zum einen Prinzipien, Methoden und Techniken für ein arbeitsteiliges und ingenieurmäßiges Vorgehen. Darüber hinaus wird das Vorgehen entsprechend geplant und die dabei auftretenden Aktivitäten koordiniert (Vorgehensmodell).

Die im Rahmen einer Neuentwicklung vom Softwaresystemen nötigen Aktivitäten umfassen dabei im Wesentlichen

  • das Requirements-Engineering, um Anforderungen zu erheben und zu etablieren,
  • den Entwurf (Design) und die Implementierung, um eine den Anforderungen entsprechende Lösung zu entwickeln, und
  • die Qualitätssicherung (Quality Assurance), um eine hinreichende Qualität der entwickelten Lösung abzusichern.

In der Praxis ist aber neben Neuentwicklungen eher der Betrieb und die Weiterentwicklung bestehender Softwaresysteme die Regel. Dabei zusätzliche nötige Aktivitäten sind dabei im Wesentlichen

  • die Wartung (Maintenance), um ein Softwaresystem zu verbessern und an sich verändernde Bedingungen und Anforderungen anzupassen,
  • das Reverse-Engineering, um notwendige abstraktere Informationen für die Weiterentwicklung eines Softwaresystems herauszufinden und
  • das Reengineering, um ein Softwaresystem aus Qualitätsgründen neu zu gestalten oder zu ersetzen.

Darüber hinaus wird heutzutage die Weiterentwicklung von Softwaresystemen und die zusätzliche Aktivität des Betriebs (Operation) häufig miteinander verzahnt durchgeführt. Dadurch wird eine schnellere Bereitstellung von Neuerungen ermöglicht und oft durch eine kontinuierliche Prüfung parallel zur Entwicklung eine bessere Qualitätssicherung erreicht.

Die aufgeführten Aktivitäten werden in dieser Veranstaltung in der Vorlesung eingeführt und erläutert. Die meisten Aktivitäten werden daneben im Rahmen eines Projektes auch praktisch erprobt.

Zusätzlich wird im Rahmen der Vorlesung diskutiert, welche Vorgehensmodelle für die Planung und Koordination der Aktivitäten für ein systematisches und ingenieurmäßiges Vorgehen unter welchen Randbedingungen adäquat sind. Insbesondere die Agile Softwareentwicklung in Form von Scrum wird dabei detaillierter betrachtet und auch im Rahmen des Projektes genutzt.

Requirements

Empfohlene Voraussetzungen gem. Studienordnung/Modulkatalog: Vorherige Teilnahme an den Vorlesungen Programmiertechnik I und Modellierungssprachen und Formalismen.

Des Weiteren empfehlen wir:

  • Vertiefte Programmierkenntnisse in mindestens einer Programmiersprache
  • Erfolgreiche Teilnahme an der Vorlesung Software-Architektur

Maximale Teilnehmerzahl

Die Lehrveranstaltung ist nach aktuellem Planungsstand auf 100 Teilnehmende begrenzt, um eine optimale Betreuung aller Teilnehmenden sicher zu stellen.

  • Für Studierende IT-Systems Engineering (BA) aus dem vierten Fachsemester (und höher) wird eine Teilnahme auch bei Überschreitung der maximalen Teilnehmerzahl sichergestellt.
  • Interessent:innen aus anderen Studiengängen sowie aus niedrigeren Fachsemestern werden nur zugelassen, wenn die Maximalzahl nicht überschritten wird. Sollten Sie Interesse an der Teilnahme haben bitten wir um eine Voranmeldung an christian.zoellner(at)hpi.de um ggf. die Kapazitäten rechtzeitig aufstocken zu können.

Literature

Literaturempfehlungen für die Lehrveranstaltungen werden später bekannt gegeben.

Learning

Es finden pro Woche zwei 90-minütige Vorlesungen in Präsenz statt.

Begleitend dazu führen die Studierenden in Teams von 4 bis 6 Personen ein Softwareprojekt durch, bei dem ein komplexes bestehendes Softwareprojekte weiterentwickelt wird. Besonderer Fokus ist das Vorgehendmodell, mit dem die Arbeit der Teams organisiert wird. Dabei sollen von den Teams bewusst verschiedene Praktiken und Hilfsmittel erprobt werden. Das Projekt ist in mehrere Phasen eingeteilt, in denen jeweils andere Aspekte einer typischen Projektarbeit gezielt betrachtet werden. Die Ergebnisse der einzelnen Phasen werden über das für das Projekt verwendete Versionskontrollsystem oder über Moodle eingereicht und im Rahmen von Reviews (nicht-öffentliche Vorträge) vorgestellt. Zentrale Ergebnisse und Erkenntnisse aus der Projektarbeit werden von den Teams zudem kompakt für alle Studierenden in der Vorlesung präsentiert.

Zur Unterstützung bei den Projekten werden wöchentliche Übungen angeboten. An jedem Übungstermin nehmen drei Teams gemeinsam teil, die dort von einer Tutor:in betreut werden. Die Teams, die sich einen Übungstermin teilen, haben zwar jeweils eine eigene Aufgabe, müssen aber auch teilweise (in einem klar definierten Rahmen) zusammenarbeiten. Ebenfalls finden die Reviews am Ende der Projektphasen in Rahmen der Übungstermine statt und erfordern Absprachen der Teams untereinander.

Zur Organisation der Veranstaltung (Ankündigungen, Herausgabe von Materialien, Abgaben, Fragen und Antworten) wird die Plattform Moodle verwendet. Bitte melden Sie sich selbstständig zum Kurs im Moodle an, um keine Ankündigung zu verpassen.

Examination

Die Leistungserfassung zur Lehrveranstaltung besteht aus zwei bewerteten Komponenten:

  • Das Softwareprojekt, welches die Studierenden in Teams durchführen, wird mit einer abschließenden Note pro Team bewertet.
    • Die Note setzt sich aus mehreren Teilnoten zusammen, insbesondere wird jedes Review einzeln bewertet.
    • Es gibt zusätzliche Mindestanforderungen an die Projektarbeit, die zwingend umgesetzt werden müssen, wie z.B. das Einhalten von Fristen und Umsetzung von Richtlinien bei der Arbeit mit dem Versionskontrollsystem. Bei Nichteinhaltung kann die Projektnote herabgesetzt werden.
    • Genaueres zu den benoteten Aspekten der Projektarbeit und zu den umzusetzenden Mindestanforderungen wird rechtzeitig bekannt gegeben.
  • Zum Ende des Semesters findet eine schriftliche Abschlussklausur statt, die ebenfalls benotet wird.

Beide Bestandteile der Leistungserfassung müssen jeweils einzeln von allen Studierenden bestanden werden. Dabei dient das Softwareprojekt als Voraussetzung für den Modulabschluss.

Die abschließende Modulnote ist entweder nur die Klausurnote (100%) oder der Durchschnitt aus Projektnote (50%) und Klausurnote (50%). Es wird jeweils diejenige Variante genommen, mit der die einzelne Studierende die individuell bessere Gesamtnote erreicht.

Dates

Vorlesungen finden mittwochs und freitags jeweils 11:00-12:30 Uhr in HS1 statt. Der erste Termin ist am Mittwoch 19. April 2023 11:00 Uhr. In der zweiten Semesterhälfte wird ein Großteil der Vorlesungstermine ausfallen, um mehr Zeit für den Übungsbetrieb und das Softwareprojekt zu lassen. Relevante Ankündigungen zur Vorlesung erfolgen per Moodle.

Übungen finden ab der zweiten Woche der Vorlesungszeit neben den Vorlesungen an verschiedenen Terminen statt. Die Studierenden wählen dazu in der ersten Vorlesungswoche einen wöchentlichen Termin. Aus den Reihen der Studierenden mit demselben Übungstermin werden beim ersten Übungstermin jeweils drei Projektteams gebildet.

Hinweis: Die Termine im aktuellen Bachelor-Stundenplan sind Platzhalter und können sich noch ändern! Die tatsächlich angebotenen Termine sowie Genaueres zur Terminauswahl wird rechtzeitig in der Vorlesung und im Moodle bekannt gegeben.

Zurück