Eko - Intelligente Entwicklungswerkzeuge zur korrekten Wiederverwendung bestehender Softwarekomponenten

01.06.2015 -

Abgeschlossen
TU Darmstadt & Deutsche Post DHL Group

Name des Teilnehmers: Sven Amann

Beschreibung des IT-Forschungsprojekts: Wiederverwendung bestehender Softwarekomponenten gehört zum Fundament moderner Softwareentwicklung. Daher müssen Softwareentwickler mit diesen Komponenten und den Best-Practices in deren Verwendung vertraut sein. Eine enorme Herausforderung, wenn man die Vielzahl von Frameworks, Bibliotheken und Technologien bedenkt, die in den letzten Jahren entstanden sind. Die deshalb erforderlichen Weiterbildungen um Mitarbeiter effektiv in Entwicklungsteams einsetzen zu können, sind für viele Firmen sehr kostspielig.

Im Software Campus Projekt "KaVE" haben mein Kollege Sebastian Proksch und ich Assistenzwerkzeuge erforscht, die Softwareentwickler beim Schreiben von neuem Programmcode unter Verwendung bestehender Softwarekomponenten unterstützen. Diese Werkzeuge, oft als "Recommender Systems for Software Engineering" (RSSE) bezeichnet, helfen Entwicklern Softwarekomponenten kennenzulernen und korrekt einzusetzen. Die Basis hierfür bilden Ansätze des maschinellen Lernens, die Verwendungsmuster aus bestehendem Programmcode automatisch erlernen. Damit wird das Wissen vieler Entwickler gebündelt und jedem Einzelnen unmittelbar zur Verfügung gestellt.

Heutzutage besteht Softwareentwicklung jedoch nicht nur aus der Entwicklung neuer Produkte, sondern auch aus der Pflege bestehender Softwaresysteme. Oft hängen solche Legacy-Systeme von alten Versionen anderer Softwarekomponenten ab. Da deren Verwendungsmuster sich über die Zeit üblicherweise weiterentwickeln, können nach einer Aktualisierung potentiell Fehler auftreten. Der Programmcode muss dann an die neuen Verwendungsmuster angepasst werden.

In meinem Software Campus Projekt "Eko" habe ich mich deshalb mit Assistenzwerkzeugen beschäftigt, die Softwareentwickler beim Auffinden und Korrigieren fehlerhafter Verwendungsmuster von Softwarekomponenten unterstützen. Solche Werkzeuge werden auch als API-Misuse-Detektoren bezeichnet.

Das "Eko" Project begann mit der Entwicklung von MUBench, einem automatisierten Benchmark zur Evaluation von API-Misuse-Detektoren. Mit Hilfe von MUBench konnten wir erstmals verschiedene Detektoren unter einheitlichen Bedingungen anwenden und vergleichen. Heraus entstanden wertvolle Erkenntnisse hinsichtlich der Stärken und Schwäche bestehender Detektoren und verschiedener Möglichkeiten diese zu verbessern. Auf Basis dieser Erkenntnisse, habe ich im weiteren Projektverlauf den API-Misuse-Detektor MUDetect entwickelt. Mithilfe von MUBench konnte ich zeigen, dass MUDetect bestehende Ansätze deutlich übertrifft.

Mit meinem Projektpartner Deutsche Post DHL Group konnte ich MUDetect in einem industriellen Umfeld erproben. Diese Studie zeigte, dass MUDetect Entwickler bei der alltäglichen Arbeit unterstützen kann. Die Studie half auch, weiterführende Forschungsfragen zu identifizieren. Zum Beispiel: Wie können Detektoren in Entwicklungsumgebungen integriert werden, sodass sie Entwickler möglichst effektiv unterstützen? Oder: Wie können Erläuterungen für die Funde von Misuse-Detektoren automatisch hergeleitet werden, sodass Entwickler die Einschätzungen der Detektoren nachvollziehen können?

Weitere Informationen zur Forschungsarbeit rund um "Eko" finden Sie [hier].

Software Campus-Partner: TU DarmstadtDeutsche Post DHL Group

Umsetzungszeitraum: 01.06.2015 - 31.05.2017