Course registration & instruction language
To be admitted to this course, you have to register for the course in the registration system for seminars and labs by the Computer Science department and you have to get a seat.
This course is for bachelor students only and the instruction language is German.
Kursbeschreibung
Sichere Software zu entwerfen ist eine große Herausforderung vieler Softwareentwicklungsprojekte. Leider gibt es einen großen Mangel an Sicherheitsexperten. Dieser Mangel führt dazu, dass viele Softwareprojekte nicht über das nötige Fachwissen verfügen, um Sicherheitsanforderungen adäquat zu berücksichtigen. Dies verschärft die Herausforderung der sicheren Softwareentwicklung und führt zu Sicherheitslücken, die von Angreifern ausgenutzt werden können und gravierende Konsequenzen für Unternehmen und NutzerInnen haben.
Um diesem Problem entgegenzuwirken, erforschen wir am Lehr- und Forschungsgebiet Informatik 3 - Softwarekonstruktion ein neuartiges Recommender-System. Dieses System soll ArchitektInnen im Entwurf und der Dokumentation sicherer Softwarearchitekturen unterstützen, indem es ihnen hilfreiche Designempfehlungen vorschlägt, die auf bewährten Sicherheitspraktiken und aktuellen Forschungsergebnissen basieren. Dadurch können ArchitektInnen effizienter arbeiten und kann die Sicherheitsqualität der Software signifikant erhöht werden.
In diesem Praktikum sollen Prototypen eines solchen Recommender-Systems entwickelt werden. Anhand verschiedener Parameter, wie den Sicherheitsanforderungen, den gewählten Architekturmustern oder der Branche, in der die Software entwickelt und eingesetzt werden soll, müssen die Studierenden geeignete Algorithmen entwickeln, die sinnvolle Security Design Pattern aus einer Wissensdatenbank auswählen, und den NutzerInnen der Software zur Verfügung stellen.
Lernziele
Im Rahmen des Praktikums sollen die Studenten verschiedene Fähigkeiten im Bereich des Software-Engineering erlernen und üben. Die organisatorischen und zwischenmenschlichen Kompetenzen sollen einerseits durch die selbstständige Durchführung eines Softwareprojekts im Team über mehrere Monate hinweg trainiert werden. Die fachlichen Kompetenzen sollen durch die technische Umsetzung der erhobenen Anforderungen mit aktuellen Methoden, Konzepten, Werkzeugen und Technologien erlernt und vertieft werden. Zur Umsetzung werden moderne Frameworks wie Java Spring und Python Django zur Backendentwicklung, Angular, React und Vue.js zur Frontendentwicklung und die Containerizationplattform Docker zum Deployment der Softwarelösungen erlernt und eingesetzt.
Termine
Das Praktikum findet in der Vorlesungszeit im Wintersemester 2024/2025 statt. Bei allen Terminen besteht Pflicht zur Anwesenheit. Begründete Ausnahmen für einzelne Termine sind ggf. bei vorheriger Absprache möglich.
Regelmäßige Termine
- TBA
Einzelne Termine
- Kick-Off Besprechung, am ersten regelmäßigen Termin
- Präsentation des Alpha-Meilensteins, findet voraussichtlich an einem der regelmäßigen Termine statt
- Präsentation des Beta-Meilensteins, findet voraussichtlich an einem der regelmäßigen Termine statt
- Abschlusspräsentation, Termin wird noch angekündigt