Porcio, Elias (2021) Automatische Generierung von Softwarebeschreibungen aus Source Code. Masterarbeit, Hochschule München.
PDF
1MB |
Kurzfassung
In dieser Arbeit geht es darum, mithilfe von neuronalen Netzen Readme-Dateien automatisch aus dem Sourcecode von Projekten zu erstellen. Die Readme-Dateien sollen den Zweck des Projekts beschreiben und als Basis für Sourcecode-Retrieval Systeme geeignet sein. Das vereinfacht den Umgang mit undokumentierter Software, insbesondere wenn man mit großen Mengen davon konfrontiert ist. Zur Umsetzung werden zwei verschiedenen Ansätze verfolgt. In beiden werden zunächst die wichtigsten Funktionen des Projekts bestimmt, indem der Call-Graph des Projekts erstellt und die zentralsten Knoten in diesem ermittelt werden. Im sog. Inlining-Ansatz werden die wichtigsten Funktionen ineinander geinlined, sodass eine einzige Funktion entsteht, die das gesamte Projekt repräsentiert. Diese dient anschließend als Input für code2seq - einem neuronalen Netz, das Beschreibungen für einzelne Funktionen erstellen kann. Der so entstandene Text wird dann als Readme verwendet. Im sog. Summary-Ansatz generiert code2seq für die wichtigsten Funktionen zuerst einen Docstring. Die Docstrings werden konkateniert und mithilfe von PEGASUS zu einem Readme zusammengefasst. PEGASUS ist ein neuronales Netz, das auf Textzusammenfassung trainiert ist. In beiden Ansätzen wird ein Fine-Tuning der Netze auf ihre neue Aufgabe durchgeführt. Die Ergebnisse werden bewertet, indem sie mit den originalen Readme-Dateien verglichen werden. Dazu kommen die Metriken ROUGE und BLEU, sowie ein BERT-Modell zur Bewertung semantischer Ähnlichkeit zum Einsatz. Zum Schluss wird die Qualität auch durch eine Umfrage unter Softwareexperten bewertet. Das Generieren von sinnvollen Readme-Dateien gelingt mit beiden Ansätzen in seltenen Fällen. Bei den meisten Projekten fehlt den generierten Beschreibungen ein inhaltlicher Bezug zum tatsächlichen Projekt. Deshalb wäre eine weitere Verbesserung der Ansätze nötig, bevor sie für die genannten Zwecke einsetzbar sind.
elib-URL des Eintrags: | https://elib.dlr.de/147105/ | ||||||||
---|---|---|---|---|---|---|---|---|---|
Dokumentart: | Hochschulschrift (Masterarbeit) | ||||||||
Titel: | Automatische Generierung von Softwarebeschreibungen aus Source Code | ||||||||
Autoren: |
| ||||||||
Datum: | 2021 | ||||||||
Referierte Publikation: | Nein | ||||||||
Open Access: | Ja | ||||||||
Seitenanzahl: | 54 | ||||||||
Status: | nicht veröffentlicht | ||||||||
Stichwörter: | Source Code Translation, Natural Language Processing, Neural Networks | ||||||||
Institution: | Hochschule München | ||||||||
HGF - Forschungsbereich: | Luftfahrt, Raumfahrt und Verkehr | ||||||||
HGF - Programm: | Raumfahrt | ||||||||
HGF - Programmthema: | keine Zuordnung | ||||||||
DLR - Schwerpunkt: | Raumfahrt | ||||||||
DLR - Forschungsgebiet: | R - keine Zuordnung | ||||||||
DLR - Teilgebiet (Projekt, Vorhaben): | R - keine Zuordnung | ||||||||
Standort: | Köln-Porz | ||||||||
Institute & Einrichtungen: | Institut für Softwaretechnologie Institut für Softwaretechnologie > Intelligente und verteilte Systeme | ||||||||
Hinterlegt von: | Hecking, Dr. Tobias | ||||||||
Hinterlegt am: | 14 Dez 2021 14:23 | ||||||||
Letzte Änderung: | 14 Dez 2021 14:23 |
Nur für Mitarbeiter des Archivs: Kontrollseite des Eintrags