Μηχανική μάθηση και μεγάλα γλωσσικά μοντέλα στην επιδιόρθωση και αναδόμηση λογισμικού

Read full text
Authors: Θεοφάνης Τσακίρης
Cited by: 0

Abstract

Η ανάπτυξη λογισμικού υψηλής ποιότητας, συχνά απαιτεί επενδύσεις αυξημένου κόστους στη συντήρηση αυτού. Ο εντοπισμός και διόρθωση των σφαλμάτων και των ευπαθειών ασφαλείας, όπως και η αφαίρεση προβληματικών patterns από μία βάση κώδικα, γίνονται κυρίως με χειροκίνητο τρόπο, από ειδικούς ή με μια αυτοματοποίηση που βασίζεται σε προαποφασισμένους κανόνες και επομένως έχει περιορισμούς στην αποτελεσματικότητά της. Η άνοδος της βαθιάς μάθησης και των νέων αρχιτεκτονικών στα νευρωνικά δίκτυα, με αποκορύφωμα τα μεγάλα γλωσσικά μοντέλα, άνοιξε το δρόμο για μια αυτοματοποιημένη αντιμετώπιση των παραπάνω, βασισμένη στην αναγνώριση των προβληματικών χαρακτηριστικών, έπειτα από εκπαίδευση ενός μοντέλου σε σχετικά δεδομένα. Η τεχνική αυτή δίνει μια εναλλακτική λύση με υψηλή ευελιξία στην αντιμετώπιση προβλημάτων, που μπορεί να συνδυαστεί με τις υπάρχουσες λύσεις. Η παρούσα διπλωματική εργασία αποτελεί μια βιβλιογραφική ανασκόπηση από δημοφιλείς ερευνητικές εργασίες των πρόσφατων ετών, που είχαν ως θέμα την χρήση νευρωνικών δικτύων για τις τρεις προαναφερθείσες κατηγορίες, δηλαδή διόρθωση σφαλμάτων (bug fixing), εντοπισμό και διόρθωση ευπαθειών (vulnerabilities) και εντοπισμός και αναδόμηση (refactoring) πηγαίου κώδικα που περιέχει code smells. Στο κείμενο αναλύονται οι μεθοδολογίες, οι καινοτομίες και οι αρχιτεκτονικές, που έφεραν τα καλύτερα αποτελέσματα, για την κάθε κατηγορία προβλήματος, τόσο σε συνθετικά σετ δεδομένων, όσο και σε case-studies σε πραγματικά πρότζεκτ. Στη διεθνή βιβλιογραφία παρουσιάστηκαν πολλές ενδιαφέρουσες ιδέες. Από μεθόδους που βασίστηκαν σε μηχανική μετάφραση από προβληματικό (buggy) σε διορθωμένο (fixed) κώδικα, μέχρι την χρήση διαφορετικών μεγάλων γλωσσικών μοντέλων, παρατηρήθηκε μια πρώτη ικανότητα αυτόματης επίλυσης των απλούστερων σφαλμάτων, αλλά χαμηλή επιτυχία στα πιο σύνθετα σφάλματα. Στο κομμάτι της ασφάλειας παρουσιάστηκαν υποσχόμενα αποτελέσματα στον εντοπισμό ευπαθειών, ενώ η αναδόμηση κώδικα για την αυτόματη επιδιόρθωση αυτών, είχε περιορισμένη επιτυχία, με τα διαφορετικά CWE να παρουσιάζουν διαφορετικούς βαθμούς δυσκολίας στην επισκευή τους. Τέλος, τα νευρωνικά δίκτυα, παρουσίασαν υποσχόμενα αποτελέσματα στον εντοπισμό των code smells, κυρίως σε επίπεδο μεθόδου, με τα εργαλεία βαθιάς μάθησης να ξεπερνούν σε απόδοση δημοφιλή στατικά εργαλεία.

Fields of Study & Subjects

Software Engineering Research Software Testing and Debugging Techniques Topic Modeling

Publication details

Journal / source
Athens University of Economics & Business
Publication date
30 January 2026