Zur Webseite der Informatik

Forschung und Entwicklung der Abteilung Software Engineering

Die Abteilung Software Engineering sieht ihre Aufgabe darin, Beiträge zum Software Engineering zu liefern, die in der realen Welt anwendbar sind und auch angewendet werden. Dabei gilt der Grundsatz, daß wir externen Partnern nichts zumuten können, was wir selbst nicht bei unserer täglichen Arbeit anwenden. Insofern sind wir unsere eigenen, keineswegs immer erfolgreichen Versuchstiere.

 


Forschungsgebiete

 

  • Empirisches Software Engineering
  • Software-Qualität
  • Softwarequalitätssicherung und Metriken
  • Agiles/kontinuierliches/lean Software Engineering
  • Requirements Engineering
  • Safety and Security Engineering
  • Behavioural Software Engineering

 


 

Forschungsprojekte der Abteilung Software Engineering

  • System-Theoretic Analysis of Dependable Systems in the Automotive Domain (MISTI Global Seed Fund)
    • Beteiligter Mitarbeiter: Dr. Asim Abdulkhaleq
    • In Kooperation mit: Prof. Dr. Nancy Leveson, Dr. John Thomas (MIT)
    • The software-based functions in cars are increasing and becoming more complex at a breathtaking speed. We already have electronic/software components controlling safety-critical functions such as the anti-lock braking system. Yet, so far, these components individually were comparably small and classical embedded systems. With the two major new developments in the automotive domain to let cars communicate via wireless networks („connected car“) and to let them drive fully automatically („autonomous driving“), the software will reach a new dimension of complexity. Traditional methods to analyse safety in automobiles assume electromechanical systems and do not apply to software nor do they scale up to the complexity starting to emerge in these systems. Furthermore, new degrees of requirements on security and privacy will be needed for those future cars. The recent Tesla accidents involving what they call their “autopilot” is just the beginning.
    • This project aims at building on the promising results with a system-theoretic approach to safety analysis and developing and evaluating an integrated analysis approach to safety, security and privacy for this new generation of automotive systems. System theory is especially suitable for identifying problems in the interaction of different components instead of individual component faults. Furthermore, system theory allows us to take the whole socio-technical system into account including humans. Similarly, security and privacy relies on a suitable interaction of system components and humans.
    • The further potential application areas are far beyond automotive systems, but we want to be focused in this collaboration.
  • Gefährdungsbeurteilung hochautomatisierter Fahrfunktionen (gefördert durch Continental Teves AG & Co. oHG)
  • Forschungsprojekt PATRON (patronresearch.de, gefördert durch die Baden-Württemberg Stiftung). Concealing Patterns - Privacy in Stream Processing
    • Beteiligter Mitarbeiter: Kai Mindermann M.Sc.
    • In diesem Forschungsprojekt sollen Verfahren entwickelt werden, um verschiedene Informationen aus Datenströmen von Sensoren der verschiedensten Geräte des Internets der Dinge (IoT) zu verschleiern. Das Ziel ist eine Balance zwischen Datenschutz und Dienstgüte (Quality of Service) zu erreichen. Die Relevanz zeigt sich bereits jetzt am Beispiel von Fitnesstrackern die den Herzschlag und ähnlich sensible Informationen erheben und verarbeiten können.
  • Dissertationsthema Dipl. Ing. Jan-Peter Ostberg: "Verbesserung der Akzeptanz der statischen Code Analyse"
    • Werkzeugunterstützte statische Codeanalyse ist ein kostengünstiges Mittel zur Verbesserung der Code-Qualität. Leider sind die Werkzeuge jedoch noch nicht so benutzerfreundlich und einfach zu handhaben, dass sich ihr Einsatz allgemein durchgesetzt hat. Meine Forschungsarbeit beschäftigt sich mit dem Ansatz die individuelle Interaktion des Anwenders mit dem Werkzeug zu verbessern. Hierbei liegt ein psychologische Modell zugrunde. Ein zweite Richtung ist die genauere Erforschung des Zusammenhangs von Softwaremetriken und den Warnungen von statischen Analysewerkzeugen mit dem Ziel dem Benutzer Empfehlungen aussprechen zu können.
  • Dissertationsthema Kai Mindermann M.Sc.: "Verbesserung der Gebrauchstauglichkeit von Security in der Softwaretechnik" (inoffiziell)
    • Die Umsetzung von fundierten mathematischen Verfahren in der modernen Kryptographie kann die Informationssicherheit in hohem Maße fördern. Sehr vielen Implementierungen fehlt jedoch die Möglichkeit der einfachen Anwendung; Sie sind durch komplizierte Bedienung nicht für die Allgemeinheit verwendbar, sie sind durch fehlerhafte Implementierung der Verfahren anfällig und sie sind häufig schwer auf dem aktuellen Stand der Technik zu halten. Meine Forschung soll diese Probleme in der Softwaretechnik, durch die Methoden der Softwaretechnik selbst, vermindern.
  • Dissertationsthema Daniel Kulesz, M.Sc.: "Prüfung und Bewertung von Spreadsheet-Programmen"
    • Spreadsheet-Programme sind aus der heutigen Welt nicht mehr wegzudenken. Gegenüber traditionellen Programmen genießen Anwender von Spreadsheet-Programmen eine größere Flexibilität und haben die Möglichkeit, die Programme selbst zu entwickeln. Leider sind Fehler in Spreadsheet-Programmen weit verbreitet und können zu erheblichen Schäden führen. Meine Forschungsarbeit beschäftigt sich mit der Prüfung und Bewertung von Spreadsheet-Programmen.
  • Dissertationsthema Yang Wang: "Sicherheitsanalyse (Safety and Security) in Agiler Softwareentwicklung für Sicherheitskritische Systeme" (finanziert durch ein Stipendium des Landes Baden-Württemberg)
    • Agile ist eine vorherrschende Methode der traditionellen Softwareentwicklung. Aufgrund des Mangels an Sicherheitsaktivitäten wurde Agile Softwareentwicklung bisher bei sicherheitskritischen Systemen wenig berücksichtigt. Deswegen soll mehr Gewicht auf die Gewährleistung der Sicherheit in der agilen Softwareentwicklung festgelegt werden. Meine Forschungsrichtung konzentriert sich darauf, wie man Sicherheitsanalyse in Agile durchführen kann.
  • Dissertationsthema Sebastian Vöst: "Continuous Integration in der Automobilindustrie auf Gesamtsystemebene"
    • Die Continuous Integration ist nach Ansicht vieler Informatiker in der Software-Entwicklung schon lange State of the Art. Diese Aussage trifft aber leider nicht auf alle Bereiche der Software-Entwicklung zu. Zu diesen gehört die Entwicklung von Eingebetteter Software in der Automobilindustrie. Viele Hindernisse machen hier auch heute noch eine Big-Bang-Integration notwendig. Dazu zählen u.a. die enge Verzahnung der Software mit der Hardware, die eine Ausführung von Tests auf der Zielplattform (Hardware in the Loop) notwendig macht, der Variantenreichtum unter den Steuergeräten und die weite Verteilung der Funktionen über viele individuelle Steuergeräte. Gerade auf der Gesamtsystem- oder Funktionsebene könnte hier jedoch durch schnelles Feedback an den Entwickler die Softwarequalität erheblich verbessert und der Integrationsaufwand deutlich verringert werden. In dieser Dissertation, die eingebettet in ein Integrationsprojekt bei der BMW Group durchgeführt wird, soll daher untersucht werden, wie eine solche Continuous Integration in einer Organisationsstruktur wie einem Automobilkonzern im Gesamtsystem durchgeführt werden kann. Dabei werden zunächst die domänenspezifischen Probleme beleuchtet und ein abgewandelter Continuous Integration Prozess vorgestellt, der vor allem organisatorische Probleme durch eine Kaskade verschiedener Integrationsstufen zu lösen oder zumindest mildern versucht. Im Fokus auf die Gesamtsystemebene wird ein besonderer Fokus auf das adaptive Test Suite Design, abgestimmt auf einzelne Änderungen, gelegt. Neue Methoden zur Testauswahl werden entwickelt und in Fallstudien mit realen Daten aus der Industrie evaluiert.
  • Dissertationsthema Dipl. math. oec. Erica Weilemann: "Wie beeinflusst die Persönlichkeit eines Softwareingenieurs die Softwarequalität?"
    • Im Entstehungsprozess von Software sind immer Menschen beteiligt. Diese haben einen Einfluss darauf, wie das Software-Endprodukt ausgestaltet ist, auch bezüglich verschiedener Softwarequalitätskriterien. In meiner Forschung beschäftige ich mich damit, inwieweit die Persönlichkeit aller am Entwicklungsprozess Beteiligten einen Einfluss auf die Softwarequalität nimmt. In einem ersten Schritt konzentriere ich mich darauf, ob und wie die Persönlichkeit eines Programmierers die Wartbarkeit der Software beeinflusst.
  • Dissertationsthema Rainer Niedermayr: "Bewertung und Verbesserung von Softwaretests"
    • Automatisierte und manuelle Softwaretests werden in der Qualitätssicherung eingesetzt, um Fehler in einem Softwareprodukt frühzeitig aufzudecken. In der Praxis wird häufig die Testabdeckung (Code Coverage) verwendet, um die Effektivität der Testfälle zu beurteilen. Allerdings gibt diese nur Auskunft darüber, welche Codestellen von Tests ausgeführt werden, nicht jedoch, wie intensiv die ausgeführten Stellen auf Fehler überprüft werden. Diese Arbeit untersucht, wie die Effektivität von Testfällen aussagekräftiger bestimmt werden kann und mit welchen Mitteln unzureichend getestete Codestellen priorisiert werden können.

 

Abgeschlossene Forschungsprojekte

  • Anwendung von STPA in der Daimler-Umgebung (gefördert durch Daimler AG)
  • Dissertationsthema Asim Abdulkhaleq, Msc.: "Sicherheitstechnik für softwareintensive Systeme"
    Die Sicherheitsanalyse ist eines der wichtigsten Elemente bei der Entwicklung sicherheitskritischer Systeme. Ein sicherheitskritisches System ist ein System, das Gefahren für die Menschen, erhebliche Sachwerte oder die Umwelt verursachen kann. Viele sicherheitskritische Systeme stützen sich auf Software, um ihre Funktionen zu realisieren. Software kann Gefahren durch fehlerhafte Steuerung des Systems oder durch Irreführung der Anlagenbetreiber verursachen, wobei unangemessene Handlungen entstehen. STAMP steht für „Systems-Theoretic Accident Modeling and Processes” und wird von Prof. Leveson entwickelt. Es handelt sich also um ein Verfahren zur Modellierung und Analyse von Unfällen mit den Methoden der Systemtheorie. Die STPA-Methode ist eine Top-down Sicherheitanalyse-Methode für die Software-intensive System-Entwicklung die auf dem STAMP basiert. Damit werden die dysfunktionalen Wechselwirkungen zwischen Software, Hardware, Betreiber- und Unternehmensleitungen untersucht. Verifikations-Ansätze werden im Entwicklungsprozess verwendet, um die funktionale Korrektheit von Software zu behaupten. Diese reicht aber nicht aus, um den sicheren Betrieb der Software gewährleisten zu können. Meine Forschungsarbeit beschäftigt sich mit der Entwicklung eines umfassenden Sicherheitstechnik-Ansatzes für die Software-Entwicklung basierend auf STPA, der die Sicherheitsanalyse mit Verifikationsansätzen kombiniert. Für die Zwecke der Entwicklung einer sicheren Software kann dieser innerhalb eines definierten Softwareentwicklungsprozess eingebettet werden, um Software- und Sicherheitsingenieuren dabei zu helfen die Software-Risiken zu erkennen.
  • Dissertationsthema Jasmin Ramadani, Msc.: "Software Repositories Data Mining"
    Software-Repositories enthalten Informationen die zur Fehlerbehebung oder Wartung zur Verfügung gestellt werden können. Die Anwendung von Data-Mining-Techniken kann den Entwicklern helfen die Dateien zu identifizieren, die häufig zusammen geändert wurden. Somit  ist es möglich die Entwickler mit Vorschlägen über gekoppelte Dateienänderungen zu unterstützen. Es wird auch analysiert, wie nützlich die Vorschläge für die Entwickler sind und welche weiteren Informationen aus der Software Repositories das Interesse erhöhen könnte.
  • Experimentelle Verbesserung des Lernens von Software Engineering, EVELIN (Im Unterauftrag der HS Neu-ULM, gefördert durch das BMBF)
  • Forschungssthema Dr. Ivan Bogicevic: "Spezifikation von Software-Modulen"
    Wenn eine Software nicht aus präzise voneinander abgegrenzten Teilen besteht, ist sie kaum wartbar. Es ist deshalb notwendig und auch üblich, Systeme zu modularisieren. Ein gut dokumentierter Software-Entwurf enthält Modulspezifikationen, die aktuell und präzise sind. In der Praxis ist die Dokumentation auf dieser Ebene aber oft völlig unzureichend. Meist ist unklar, wofür ein Modul zuständig ist. Die Dokumente sind veraltet, oder ihr Zustand ist ungewiss. Diese Arbeit untersucht die Frage, wie Entwickler Module spezifizieren und dokumentieren können. Sie stellt ein neues Prozessmodell vor, mit dem Module präzise und praxisgerecht beschrieben werden können. Der Kern ist dabei ein Katalog von Modulspezifikationen, der eine Software auf Modulebene beschreibt.