Masterarbeit
Semantische Analyse von Quelltexten
Completion
2017/10
Research Area
Students
Advisers
Dr.-Ing. Sebastian Heil
Description (German)
Sich verändernde Nutzererwartungen stellen neue Anforderungen an bestehende Softwaresysteme. Auch die ständige Weiterentwicklung von Technologien und das Wegfallen der Unterstützung für veraltete Technologien erhöhen den Druck, bestehende Softwaresysteme zu erneuern. Da über lange Zeiträume hinweg entwickelte Systeme viel Wissen über Modelle, Regeln und Lösungen der Anwendungsdomäne im Quelltext beinhalten, ist es oft nicht sinnvoll diese durch eine komplette Neuentwicklung abzulösen. Vielmehr ist es nötig, bestehende Softwaresysteme in neue Systeme zu überführen und dabei bereits vorhandene Wissen zu erhalten. Mit dieser Zielstellung beschäftigt sich die Softwaremigration.
Ein wichtiger Teilbereich der Softwaremigration ist das Reverse Engineering, bei dem versucht wird, das Wissen welches implizit im Quelltext enthalten ist, wiederzugewinnen. Ziel dieser studentischen Arbeit ist es herauszufinden, welches Wissen, das für die Migration nutzbar ist sich aus Quelltexten automatisiert extrahieren lässt. Wie kann man beisielsweise den Aufgabenbereich (UI, Speicherung, Geschäftslogik usw.) eines Codeabschnitts feststellen, wie kann man enthaltene Geschäftsregeln erkennen, wie lassen sich Konzepte aus der Anwendungsdomäne extrahieren? Dabei kann in dieser Arbeit auf eine bereits bestehende Implementierung, welche automatische Klassifikation durch eine Support Vector Machine (SVM) vornimmt, aufgebaut werden. Zur Analyse von Kommentaren lassen sich geeignete Methoden des Natural Language Processing (NLP) verwenden. Wie kann man semantische Ähnlichkeit von Quelltextabschnitten berechnen?
cf. Merlo, E., McAdam, I., & De Mori, R. (2003). Feed-forward and recurrent neural networks for source code informal information analysis. Journal of Software Maintenance and Evolution: Research and Practice, 15(4), 205–244. http://doi.org/10.1002/smr.274