Software Analytics and Evolution

Die Mission von SAE ist die Weiterentwicklung des Softwareengineering und speziell der Werkzeuge und Methoden zur Analyse und Extraktion funktionaler und nicht-funktionaler Softwareeigenschaften als analytische Basis für Programmverständnis, Softwaretest und Softwaremigration.

Die Analyse und Extraktion von funktionalen und nichtfunktionalen Anforderungen gilt als vielversprechender Ansatz zur Lösung von Problemen bei der Entwicklung von Software in der Industrie und bei Software, die (a) einen Lebenszyklus von Jahrzehnten aufweisen und sich aufgrund der sich wandelnden Softwaretechnologie, neuer Kundenanforderungen, sich ändernder regulativer Anforderungen und neuer Marktsituationen einer ständigen Weiterentwicklung gegenübersehen, und (b) nicht mehr im Vorfeld mit aktuellem Design- und Architekturwissen entworfen werden, sondern im Laufe der Zeit mit abnehmendem Entwicklungswissen entwickelt und gepflegt werden. Daraus abgeleitete Forschungsthemen sind:

  • Automatisierte Software-Testgenerierung
  • Quellcode- und Programmanalyse und Softwareevolution
  • Automatisierte Programmdokumentation
  • Benutzer-zentriertes Software Engineering

Intelligentes Testen von Software

  • Automatisierte Testfallgenerierung
  • Automatisierte Testausführung und Varianten
  • Zufalls-basiertes Testen
  • Testqualität und Mutationsanalyse
  • Zielgerichtetes, risikobasiertes, optimiertes Testen

Software Evolution und Dokumentation

Programmanalyse als Basis für Evolution und Dokumentation

  • Automatische Extraktion von Fachwissen aus dem Quellcode
  • Abstraktion der Programmstruktur
  • Darstellung des Fachwissens je nach Domäne in z.B. Formeln, Entscheidungstabellen, Kurven
  • Sichern des Fachwissens aus Legacy-Softwaresystemen
  • Erstellung druckfertiger Fach-Dokumentation aus dem Quellcode.
  • Interaktives Verstehen von Software durch Pfadanalyse mit konkreten Parameterwerten, dynamische symbolische Ausführung
  • Extraktion von Information über Software für Qualitätssicherung

Benutzer zentriertes Software Engineering

Neue Interaktionsmöglichkeiten und User Experience für industrielle Anwendungen

  • Maßgeschneiderte Softwareentwicklung für die konkreten Benutzer
  • Entwicklung innovativer Interaktionsmöglichkeiten, Integration neuer Eingabegeräte
  • Verwendbarkeit, Integration in Arbeitsablauf
  • Technologie und Methoden für moderne Software Schnittstellen (reduzierte, angepasste Oberflächen, Multitouch,...)
  • Domänen Spezifische Sprachen

Beispiele und interaktive Demos zu diesen Themen finden Sie auf unserer Demoseite.