Εντοπίστηκε ένα σφάλμα στη λειτουργία της ΠΥΞΙΔΑΣ όταν χρησιμοποιείται μέσω του προγράμματος περιήγησης Safari. Μέχρι να αποκατασταθεί το πρόβλημα, προτείνουμε τη χρήση εναλλακτικού browser όπως ο Chrome ή ο Firefox. A bug has been identified in the operation of the PYXIDA platform when accessed via the Safari browser. Until the problem is resolved, we recommend using an alternative browser such as Chrome or Firefox.
 

Code generation in repository level through LLMs

dc.contributor.degreegrantinginstitutionAthens University of Economics and Business, Department of Informaticsen
dc.contributor.opponentVassalos, Vasiliosen
dc.contributor.opponentVrontos, Ioannisen
dc.contributor.thesisadvisorMalakasiotis, Prodromosen
dc.creatorΔρούζας, Βασίλειος Ηλίαςel
dc.creatorDrouzas, Vasileios-Iliasen
dc.date.accessioned2025-03-26T19:12:47Z
dc.date.available2025-03-26T19:12:47Z
dc.date.issued26-11-2024
dc.date.submitted2024-11-29 10:20:41
dc.description.abstractΣτη σύγχρονη µηχανιϰή λογισµιϰού, η αποδοτιϰή αναγνώριση σχετιϰού ϰώδιϰα εντός µεγάλων αποϑετηρίων (repositories) έχει γίνει ολοένα ϰαι πιο δύσϰολη λόγω της αυξανόµενης πολυπλοϰότητας ϰαι ϰλίµαϰας των βάσεων για ϰώδιϰα. Στόχος αυτής της διπλωµατιϰής εργασίας είναι η ανάπτυξη µιας λύσης ιϰανής να παράγει αρχεία ϰώδιϰα που σχετίζονται µε συγϰεϰριµένα προγραµµατιστιϰά αρχεία εντός ενός αποϑετηρίου, χωρίς την ανάγϰη εξαντλητιϰής ανάλυσης του αποϑετηρίου στο σύνολό του για την εύρεση των πιο σχετιϰών αρχείων. Αυτή η µέϑοδος αξιοποιεί πολλαπλούς παράγοντες, όπως η τεϰµηρίωση (όπου είναι διαϑέσιµη), οι εισαγωγές βιβλιοϑηϰών, οι ϰλήσεις συναρτήσεων ϰαι τα ονόµατα µεταβλητών, για να αποµονώσει δυναµιϰά τα σχετιϰά αρχεία.Η αναπτυχϑείσα λύση, AutoTestLab, βασίζεται σε αυτήν την ιϰανότητα αυτοµατοποίησης της δηµιουργίας, εϰτέλεσης ϰαι επιϰύρωσης µονάδων δοϰιµών για τα αναγνωρισµένα αρχεία. Με την ενσωµάτωση Μεγάλων Γλωσσιϰών Μοντέλων (LLMs), το AutoTestLab ϰαταφέρνει να βελτιστοποιήσει τη δηµιουργία δοϰιµών χρησιµοποιώντας few-shot learning, βελτιώνοντας την αϰρίβεια των δοϰιµών αϰόµη ϰαι για ϰώδιϰες µε περιορισµένη τεϰµηρίωση. Η παρούσα διπλωµατιϰή εργασία αξιολογεί την απόδοση του AutoTestLab µέσω πειραµάτων που πραγµατοποιήϑηϰαν σε βιβλιοϑήϰες Apache Commons, αποδειϰνύοντας την ιϰανότητά του να διαχειρίζεται σύνϑετους ϰώδιϰες ϰαι να δηµιουργεί αυτόµατα αξιόπιστα unit tests. Η προσέγγιση συνδυάζει τεχνιϰέςδηµιουργίας ϰώδιϰα σε επίπεδο αποϑετηρίου ϰαι δυναµιϰή επιϰύρωση δοϰιµών για να εξασφαλίσει υψηλή ϰάλυψη ϰαι ποσοστά επιτυχίας.Παρά τα υποσχόµενα αποτελέσµατα στην ϰάλυψη των δοϰιµών ϰαι την αποτελεσµατιϰότητα, το σύστηµα αποϰαλύπτει προϰλήσεις, όπως η διαχείριση πιο σύνϑετων, αλληλοεξαρτώµενων παϰέτων ϰαι η ϰλιµάϰωση σε µεγαλύτερα σύνολα δεδοµένων. Μελλοντιϰές έρευνες ϑα επιϰεντρωϑούν στην επέϰταση του συνόλου δεδοµένων, στην ενσωµάτωση της δηµιουργίας µε επαυξηµένη ανάϰτηση (Retrieval-Augmented Generation - RAG) ϰαι στη βελτίωση της προσαρµοστιϰότητας του συστήµατος σε ένα ευρύτερο φάσµα περιβαλλόντων λογισµιϰού.el
dc.description.abstractIn modern software engineering, efficiently identifying relevant code within large repositories has become increasingly challenging due to the growing complexity and scale of codebases. The objective of this thesis is to develop a solution capable of generating code files relevant to specific coding tasks within a repository, without the need for exhaustive repository-wide parsing to find the most relevant code archives. This method leverages multiple factors, including documentation (when available), library imports, function calls, and variable names, to isolate relevant files dynamically.The developed solution, AutoTestLab, builds upon this capability by automating the generation, execution, and validation of unit tests for the identified files. By integrating Large Language Models (LLMs), AutoTestLab is able to streamline test generation using few-shot learning, which improves test accuracy even for codebases with limited documentation. This thesis evaluates AutoTestLab’s performance through experiments conducted on Apache Commons libraries, demonstrating its capacity to handle complex codebases and automatically generate reliable unit tests. The approach combines repository-level code generation techniques and dynamic test validation to ensure high coverage and pass rates.Despite achieving promising results in test coverage and efficiency, the system reveals challenges, such as handling more complex, interdependent packages and scaling across larger datasets. Future work will focus on expanding the dataset, incorporating Retrieval-Augmented Generation (RAG), and enhancing the system’s adaptability across a broader range of software environments.en
dc.embargo.expire2024-11-29 10:20:41
dc.embargo.ruleOpen access
dc.format.extent62p.
dc.identifierhttp://www.pyxida.aueb.gr/index.php?op=view_object&object_id=11735
dc.identifier.urihttps://pyxida.aueb.gr/handle/123456789/2062
dc.languageen
dc.rightsCC BY: Attribution alone 4.0
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/
dc.subjectΚώδικαςel
dc.subjectΜεγάλα γλωσσικά μοντέλαel
dc.subjectΑποθετήριοel
dc.subjectΈλεγχος μονάδαςel
dc.subjectCodeen
dc.subjectLarge Language Model (LLM)en
dc.subjectRepositoryen
dc.subjectFew shoten
dc.subjectUnit testen
dc.titleCode generation in repository level through LLMsen
dc.title.alternativeΠαραγωγή κώδικα σε επίπεδο αποθετηρίου μέσω μεγάλων γλωσσικών μοντέλωνen
dc.typeText

Αρχεία

Πρωτότυπος φάκελος/πακέτο

Τώρα δείχνει 1 - 2 από 2
Φόρτωση...
Μικρογραφία εικόνας
Ονομα:
Drouzas_2024.pdf
Μέγεθος:
1.24 MB
Μορφότυπο:
Adobe Portable Document Format
Δεν υπάρχει διαθέσιμη μικρογραφία
Ονομα:
Drouzas.zip
Μέγεθος:
12.73 MB
Μορφότυπο:
Unknown data format