Softwarepraktikum (21W)

  1. Softwarepraktikum

    inklusive Bachelorarbeit

  1. Vorbesprechung:
    8.10.2021, 13:00, online (BBB-Link zusammen mit anderen Infos via Mail)
    Wichtige Informationen:
    Das Softwarepraktikum erstreckt sich (inkl. Bachelorarbeit) über zwei Semester, im Studienplan ist es für das 5. und 6. Semester empfohlen. Es sollte mit dem Ende des 2. Arbeitssemesters abgeschlossen werden. Eine Verlängerung des Praktikums ist im Normalfall nicht vorgesehen. Zwecks optimaler Bewältigung der gestellten Anforderungen wird empfohlen, die Entwicklungsarbeit mit dem Ende des 1. Arbeitssemesters abzuschließen und im 2. Semester die Dokumentation bzw. Bachelorarbeit anzufertigen. Sie soll das Projekt und das entwickelte Softwaresystem gründlich und ausführlich beschreiben – etwa im Umfang einer halben Masterarbeit (d.h. 40-50 Seiten). Sie kann im Team angefertigt werden. Den Abschluss bildet eine Präsentation der Projektergebnisse.
    Bei Interesse bitte per E-Mail Kontakt mit der Betreuerin bzw. dem Betreuer aufnehmen (die/der auch die Beurteilung übernimmt). Eigene Ideen sind (sofern inhaltlich und vom Umfang her passend) sehr willkommen. Bitte kontaktieren Sie hierbei eine fachlich zuständige Betreuerin bzw. einen fachlich zuständigen Betreuer. Sollten Sie sich nicht sicher sein, wer Ihr Softwarepraktikum ggf. betreuen kann, so wenden Sie sich bitte (per E-Mail) an Peter Schartner.
    Wenn Sie das Softwarepraktikum in diesem Semester absolvieren möchten, aber noch kein Thema gefunden haben, dann nehmen Sie bitte an der Vorbesprechung teil.
    Erwartete Vorkenntnisse:
    Da das Softwarepraktikum im 5. Semester (also gegen Ende des Studiums) vorgesehen ist, sollten Sie die für Ihr Softwarepraktikum relevanten Pflichtfächer (siehe Curriculum) großteils absolviert haben.
    Tutorium des Schreibcenters:
    Durch das Tutorium des Schreibcenters erhalten Sie Hilfe beim Erstellen der Bachelorarbeit (Aufbau der Bachelorarbeit, "Roter Faden", allgemeine Tipps rund ums Schreiben, individuelles Feedback zum eigenen Schreibstil, ...). Nehmen Sie dieses Angebot auch in Anspruch!
  1. Thema Betreuer(in)
    Der Anti-Metamorphopsie-Visor von/für Geordi La Forge P. Schartner
    go2algo NG – Re-Engineering von go2algo P. Schartner
    GDPR-compliant oblivious Web-Browser in a (RAM-)Box P. Schartner
    Heuristic Password Cracking E. Teppan
    P. Schartner
    Next generation Video Platform
    Learn how Netflix, YouTube & Co works and contribute to the next generation Video Platform in the context of the ATHENA project.
    C. Timmerer
    Graphical Design Interface for modeling Temporal Activity Charts
    The student builds an (web-) application which allows modelling of UML activity charts with additional temporal constructs (such as activity durations and temporal constraints) in an intuitive way (e.g. drag & drop of elements).
    J. Lubas
    DSGVO-konformes Einwilligungs-Management
    Einwilligung ist eine der gesetzlichen Grundlagen, welche die Verarbeitung von personenbezogenen Daten erlaubt. Die Einwilligung muss jedoch (inkl. Kontaktdaten) dokumentiert werden und sie kann zudem widerrufen werden. Das zu entwickelnde Tool soll die DSGVO-konforme Verwaltung von Einwilligungen zu diversen Verarbeitungsvorgängen und deren Verantwortliche unterstützen.
    P. Schartner
    APP zum Scannen, Archivieren und Suchen P. Schartner
    Etablierung einer Smart Home Software–Werkstatt
    Die auf Java basierende Software Plattform Openhab (www.openhab.org) integriert die Smart Home Komponenten zahlreicher Anbieter und ermöglicht die Entwicklung eigener Treiber (Bindings) für „exotischere“ Anwendungen. Als Vorbereitung für künftige Forschungsprojekte sollen die Studierenden die Openhab Entwicklungsumgebung aufsetzen, einige – noch zu vereinbarende – Treiber implementieren und für spätere Anwendungen entsprechend dokumentieren.

    Gruppengröße: 2-3 Studierende
    Technologie: Java
    G. Leitner
    Smart Home Konfigurator
    Heutzutage wird eine Vielzahl an Smart Home Produkten am Markt angeboten, jedoch ist es besonders für technische Laien oft schwer festzustellen, ob die angebotenen Funktionen für die eigenen Anforderungen (Lebensumstände) geeignet sind. Es soll eine Plattform entwickelt werden, die es interessierten Personen ermöglicht, ihre Lebenssituation inkl. der Anforderungen zu modellieren (Konfigurator) um im Anschluss verfügbare Smart Home Funktionen bezüglich ihrer Eignung/Passung zu prüfen.

    Gruppengröße: 2-3 Studierende
    Technologie: Spring Boot, Thymeleaf, Bootstrap
    G. Leitner
    Zero Knowledge Playground: Enforcing correct decisions over private data on blockchains J. Köpke
    Automatische Generierung von Wochen- und Jahresplänen für Lehrer*innen in der GECKO-Plattform
    In der GECKO-Plattform werden Kompetenzen gesammelt, die Schüler*innen, Studierende aber auch Berufstätige beherrschen bzw. erlernen können. Lehrende können diese Kompetenzen für eigene Kurse sammeln und in eine passende Reihenfolge bringen. In diesem Praktikum soll die Plattform um eine automatische Generierung von Wochen- bzw. Jahrespläne nach einem vorgegebenen Muster erweitert werden.
    S. Pasterk
    Verbesserung des Nutzungserlebnisses (User Experience) und der Bedienfreundlichkeit (Usability) der Webplattform GECKO
    Im Rahmen des Projekts DigiFit4All wird die Webplattform GECKO weiterentwickelt und in Hinblick auf User Experience und Usability überarbeitet. In diesem Praktikum sollen dazu Anforderungen erhoben und soweit wie möglich umgesetzt werden.
    S. Pasterk
    What the heck did you change? Tool zur Extraktion von Änderungen in Gradle Build Konfigurationen
    Build Konfigurationen beschreiben wie ein Software Produkt kompiliert, getestet und ausgeliefert werden soll. Änderungen in solchen Build Konfigurationen haben eine wichtige Bedeutung, da sie dafür verantwortlich sein können, dass Build Ausführungen fehlschlagen. Zur Analyse welche Auswirkung bestimmte Änderungen auf den Erfolg des Builds haben, soll ein Tool erstellt werden, das Änderungen zwischen verschiedenen Versionen einer Gradle Build Konfiguration automatisiert extrahieren kann.
    C. Macho
    The Build Oracle: Vorhersage von Build Resultaten mittels Machine Learning
    In modernen Continuous Integration/Deployment Umgebungen soll jede Änderung am Source Code direkt in das Projekt integriert, getestet und zum Kunden ausgeliefert werden. Manche Änderungen weisen jedoch Eigenschaften auf, die es unnötig oder unsinnig machen, den ganzen Continuous Integration/Deployment Prozess anzuwerfen, weil man bereits antizipieren kann, dass dieser nicht erfolgreich zu Ende gehen wird. In diesem Projekt soll ein Machine Learning Model entwickelt werden, das frühzeitig erkennen kann, ob es sinnvoll ist, den Continuous Integration Prozess zu starten.
    C. Macho
    Tool zum automatisierten Reparieren von fehlgeschlagenen Software Builds
    Software Builds automatisieren das Kompilieren, Testen und Zusammenbauen von Softwareprojekten. Oft führen Fehler in der Software, z.B. in der Konfiguration oder im Code oder in Tests, dazu, dass Software Builds fehlschlagen und das Projekt nicht ausgeliefert werden kann. In diesem Projekt geht es darum ausgewählte Fehlertypen zu identifizieren und Strategien zum automatisierten Reparieren dieser Fehler zu implementieren.
    C. Macho
    Erkennung von Problemen mit Build Systemen anhand von Fragen, Themen und Antworten auf StackOverflow
    Anhand der Fragen und Antworten, die auf Stack Overflow verfügbar sind, sollen die Probleme, die Entwickler mit dem Umgang von Build Systemen (z.B. Apache Maven oder Gradle), erkannt und analysiert werden. Eine interessante Fragestellung ist zum Beispiel ob bei allen Build Systemen die gleichen Fragen auftreten, oder ob es hier Unterschiede gibt.
    C. Macho
    How to cut the cake? – Transforming Monoliths to Microservices
    In den letzten Jahren erfreuen sich Microservices als Trend in der Softwareentwicklung großer Beliebtheit. Microservices sind kleine dezidierte Softwarestücke, die separat programmiert, getestet und ausgeliefert werden können. Es hat sich auch gezeigt, dass das Zerlegen von alten, großen Projekten, genannt Monolithen, sehr schwierig sein kann und in manueller Arbeit oft zu Fehlern führen kann. In dieser Arbeit soll ein Tool programmiert werden, das Monolithen analysiert und Vorschläge zu deren Zerlegung macht bzw. diese in weitere Folge sogar automatisiert durchführen kann.
    C. Macho
    Risk-based Test Case Selection
    Im Rahmen eines Software Builds werden in Projekten oft hunderte, tausende oder noch mehr Tests ausgeführt, um Fehler im Programm Code zu finden. Die Ausführung solcher Tests kann mitunter sehr viel Zeit in Anspruch nehmen und dadurch die Auslieferung der Software verzögern. Außerdem werden sehr viele Ressourcen verschwendet, weil viele Tests durchlaufen werden, die unter Umständen gar nicht notwendig gewesen wären. In diesem Projekt soll ein Tool entwickelt werden, das auf Basis von z.B. Software Metriken, jene Tests priorisiert oder selektiert, die mit großem Risiko behaftet sind und deshalb am ehesten einen Test fehlschlagen lassen.
    C. Macho
    Eigene Themen sind willkommen – Rahmenbedingungen siehe oben!