Porcio, Elias (2021) Automatische Generierung von Softwarebeschreibungen aus Source Code. Master's, Hochschule München.
![]() |
PDF
1MB |
Abstract
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.
Item URL in elib: | https://elib.dlr.de/147105/ | ||||||
---|---|---|---|---|---|---|---|
Document Type: | Thesis (Master's) | ||||||
Title: | Automatische Generierung von Softwarebeschreibungen aus Source Code | ||||||
Authors: |
| ||||||
Date: | 2021 | ||||||
Refereed publication: | No | ||||||
Open Access: | Yes | ||||||
Gold Open Access: | No | ||||||
In SCOPUS: | No | ||||||
In ISI Web of Science: | No | ||||||
Number of Pages: | 54 | ||||||
Status: | Unpublished | ||||||
Keywords: | Source Code Translation, Natural Language Processing, Neural Networks | ||||||
Institution: | Hochschule München | ||||||
HGF - Research field: | Aeronautics, Space and Transport | ||||||
HGF - Program: | Space | ||||||
HGF - Program Themes: | other | ||||||
DLR - Research area: | Raumfahrt | ||||||
DLR - Program: | R - no assignment | ||||||
DLR - Research theme (Project): | R - no assignment | ||||||
Location: | Köln-Porz | ||||||
Institutes and Institutions: | Institute for Software Technology Institute for Software Technology > Intelligent and Distributed Systems | ||||||
Deposited By: | Hecking, Tobias | ||||||
Deposited On: | 14 Dec 2021 14:23 | ||||||
Last Modified: | 14 Dec 2021 14:23 |
Repository Staff Only: item control page