SlideShare a Scribd company logo
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
1
Διπλωματική Εργασία
Ανίχνευση και Διόρθωση Σφαλμάτων
Πηγαίου Κώδικα με Τεχνικές Βαθιάς
Μάθησης
Εκπόνηση:
Ιωάννα Μαρία
Παπαβασιλείου
ΑΕΜ: 9375
Επίβλεψη:
Καθηγητής Ανδρέας Συμεωνίδης
Δρ. Θεμιστοκλής Διαμαντόπουλος
25/11/2024
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
2
Διάρθρωση Παρουσίασης
1. Κίνητρο
2. Στόχοι Διπλωματικής
3. Μεθοδολογία
4. Αποτελέσματα
5. Συμπεράσματα
25/11/2024
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
3
25/11/2024
Κίνητρο
49.9%
του χρόνο ενός
προγραμματιστή αφιερώνεται
στο debugging*
- Τα έργα λογισμικού σήμερα γίνονται όλο και μεγαλύτερα, πιο πολύπλοκα και φτάνουν και
εκατομμύρια γραμμές κώδικα.
- Η αυτόματη ανίχνευση και διόρθωση σφαλμάτων μπορεί να αυξήσει την αποδοτικότητα των
προγραμματιστών και την ποιότητα του παραγόμενου πηγαίου κώδικα.
* T. Britton, L. Jeng, G. Carver, T. Katzenellenbogen, and P. Cheak, “Reversible debugging software: quantify the time and cost saved using reversible debuggers",” 11 2020.
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
4
25/11/2024
Στόχοι Διπλωματικής
Υλοποίηση Συστήματος για:
1. Ανίχνευση
2. Κατηγοριοποίηση
3. Διόρθωση Σφαλμάτων Πηγαίου Κώδικα
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
5
25/11/2024
Μεθοδολογία
Δομή συστήματος Ανίχνευσης, Κατηγοριοποίησης και Διόρθωσης Σφαλμάτων
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
6
25/11/2024
Μεθοδολογία - Συνέχεια
Σύνολο Δεδομένων:
- Το σύνολο δεδομένων που χρησιμοποιείται είναι το ManySStuBs4J.
- Αποτελείται από σχεδόν 63 χιλιάδες παραδείγματα κώδικα, πριν και μετά από μικρές
διορθώσεις.
- Περιέχει 16 κατηγορίες σφαλμάτων από 1000 open source έργα λογισμικού Java.
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
7
25/11/2024
Μεθοδολογία -
Συνέχεια
Κατηγορίες Σφαλμάτων: Πλήθη:
1. Change Identifier Used
7773
2. Change Numeric Literal 2447
3. Change Modifier. 5010
4. Change Boolean Literal 3841
5. Wrong Function Name 5100
6. Same Function More Args 5179
7. Same Function Less Args 2588
8. Same Function Wrong Caller 2504
9. Same Function Swap Args 3012
10. Change Binary Operator 3241
11. Change Unary Operator 2016
12. Change Operand 2203
13. Less Specific If 2813
14. More Specific If 2381
15. Missing Throws Exception 1015
16. Delete Throws Exception 1037
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
8
25/11/2024
Μεθοδολογία - Συνέχεια
Προεπεξεργασία Δεδομένων:
- Εύρεση διαφορών
- Μετατροπή κώδικα σε μορφή AST
- Επιλογή Συναρτήσεων
- Αφαίρεση κενών στοίχισης
- Προσθήκη μεταβλητών - στόχων
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
9
25/11/2024
Μεθοδολογία - Συνέχεια
Διαδικασία Fine-tuning:
Μοντέλα που χρησιμοποιούνται για την Ανίχνευση και Κατηγοριοποίηση :
- CodeBert
- RoBERTa
- CodeBERTa
Μοντέλα που χρησιμοποιούνται για την Διόρθωση
- BART
- CodeT5
- T5
- LED
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
10
25/11/2024
Μεθοδολογία - Συνέχεια
Διαδικασία Fine-tuning:
- Δειγματοληψία με Βάρη
- AdamW
- OneCycleLR
- Gradual Freezing
- Chain Thaw
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
11
25/11/2024
Μεθοδολογία - Συνέχεια
Απλοϊκή Αναπαράσταση του της υλοποίησης του μοντέλου CodeBert που χρησιμοποιήθηκε
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
12
25/11/2024
Αποτελέσματα – Ανίχνευση Σφαλμάτων
- Πρόβλημα Δυαδικής Ταξινόμησης
- Δίνοντας σαν είσοδο τμήματα κώδικα, το σύστημα πρέπει να
αναγνωρίσει αν περιέχουν σφάλματα ή όχι
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
13
25/11/2024
Αποτελέσματα – Ανίχνευση Σφαλμάτων
- Εκπαίδευση του μοντέλου με τα δύο ανώτερα layers διαθέσιμα για εκπαίδευση:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
14
25/11/2024
Αποτελέσματα – Συνέχεια
- Εκπαίδευση του μοντέλου με τα τρία ανώτερα layers διαθέσιμα για εκπαίδευση:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
15
25/11/2024
Αποτελέσματα – Συνέχεια
- Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
Κατά την εκκίνηση της εκπαίδευσης
Μετά το πέρας του 50% των εποχών
Μετά το πέρας του 75% των εποχών
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
16
25/11/2024
Αποτελέσματα – Συνέχεια
- Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
17
25/11/2024
Αποτελέσματα – Συνέχεια
- Εκπαίδευση του μοντέλου με τα τρία ανώτερα επίπεδα - παγώνοντας τα επίπεδα διαδοχικά :
Κατά την εκκίνηση της εκπαίδευσης
Μετά το πέρας του 50% των εποχών
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
18
25/11/2024
Αποτελέσματα – Συνέχεια
- Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα - παγώνοντας τα επίπεδα διαδοχικά :
Κατά την εκκίνηση της εκπαίδευσης
Μετά το πέρας του 50% των εποχών
Μετά το πέρας του 75% των εποχών
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
19
25/11/2024
Αποτελέσματα – Συνέχεια
- Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
20
25/11/2024
Αποτελέσματα – Ανίχνευση Σφαλμάτων
Αποτελέσματα με την χρήση διαφορετικών μοντέλων:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
21
25/11/2024
Αποτελέσματα –Κατηγοριοποίηση Σφαλμάτων
- Πρόβλημα Πολυκατηγοριακής Ταξινόμησης
- Δίνοντας σαν είσοδο τμήματα κώδικα, το σύστημα πρέπει να
αναγνωρίσει σε ποια από τις 16 κατηγορίες σφαλμάτων ανήκουν
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
22
25/11/2024
Αποτελέσματα – Κατηγοριοποίηση Σφαλμάτων
Εκπαίδευση του μοντέλου με τα δύο ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
Εκπαίδευση του μοντέλου με τα τρία ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
23
25/11/2024
Αποτελέσματα – Πολυκατηγορική Ταξινόμηση
Εκπαίδευση του μοντέλου με διαδοχικό πάγωμα και ξεπάγωμα τριών επιπέδων:
Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
24
25/11/2024
Αποτελέσματα – Συνέχεια
Εκπαίδευση του μοντέλου με διαδοχικό πάγωμα
και ξεπάγωμα τεσσάρων επιπέδων:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
25
25/11/2024
Αποτελέσματα – Κατηγοριοποίηση Σφαλμάτων
Αποτελέσματα με την χρήση διαφορετικών μοντέλων:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
26
25/11/2024
Αποτελέσματα – Διόρθωση Σφαλμάτων
- Πρόβλημα παραγωγής φυσικής γλώσσας
- Δίνοντας σαν είσοδο τμήματα κώδικα, το σύστημα πρέπει να κάνει τις
απαραίτητες διορθώσεις
- Μετρικές Αξιολόγησης:
o Ορθότητα: Γίνεται χρήση του Συστήματος Ανίχνευσης Σφαλμάτων
o Μετρική BLEU
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
27
25/11/2024
Αποτελέσματα – Διόρθωση Σφαλμάτων
Παράδειγμα Ορθής Διόρθωσης στην κατηγορία σφάλματος Same Function Less Args:
Αρχικό Τμήμα Κώδικα:
Αναμενόμενη Διόρθωση:
Διόρθωση του συστήματος:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
28
25/11/2024
Αποτελέσματα – Διόρθωση Σφαλμάτων
Παράδειγμα Ορθής Διόρθωσης στην κατηγορία σφάλματος Change Identifier Used:
Αρχικό Τμήμα Κώδικα:
Αναμενόμενη Διόρθωση:
Διόρθωση του συστήματος:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
29
25/11/2024
Αποτελέσματα – Διόρθωση Σφαλμάτων
Παράδειγμα Ορθής Διόρθωσης στην κατηγορία σφάλματος Change Identifier Used:
Αρχικό Τμήμα Κώδικα:
Αναμενόμενη Διόρθωση:
Διόρθωση του συστήματος:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
30
25/11/2024
Αποτελέσματα – Διόρθωση Σφαλμάτων
Παράδειγμα Λανθασμένης Διόρθωσης στην κατηγορία σφάλματος Change Numeric Literal:
Αρχικό Τμήμα Κώδικα:
Αναμενόμενη Διόρθωση:
Διόρθωση του συστήματος:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
31
25/11/2024
Αποτελέσματα – Διόρθωση Σφαλμάτων
Αποτελέσματα με την χρήση διαφορετικών μοντέλων:
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
32
25/11/2024
Συμπεράσματα
1. Τα μοντέλα μετά την προσαρμογή τους ήταν σε θέση να ανιχνεύσουν αν ο
κώδικας περιέχει σφάλματα και να κατηγοριοποιήσουν τα σφάλματα με
βάση 16 κατηγορίες.
2. Τα μοντέλα παρήγαγαν διορθώσεις, οι οποίες ήταν αρκετά όμοιες με τις
αναμενόμενες. Ωστόσο, λόγω της φύσης του προβλήματος οι μικρές
αποκλίσεις από τις αναμενόμενες απαντήσεις μπορεί να οδηγήσουν σε
κώδικα που έχει πιθανά νέα σφάλματα. Από την άλλη, οι μικρές αποκλίσεις
δεν μπορούν να θεωρούνται πάντα λανθασμένες, καθώς στον κώδικα
μπορούν δύο διαφορετικές εκφράσεις να επιφέρουν το ίδιο αποτέλεσμα.
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
33
25/11/2024
Μελλοντικές Επεκτάσεις
1. Τα μοντέλα εκπαιδεύτηκαν και αξιολογήθηκαν αποκλειστικά σε αρχεία κώδικα γραμμένα
σε Java. Εχει ενδιαφέρον να γίνει έλεγχος για το αν τα μοντέλα μπορούν να ανιχνεύσουν
σφάλματα και να κάνουν διορθώσεις σε κώδικα άλλης γλώσσας.
2. Οι παραγόμενες διορθώσεις θα μπορούσαν να αξιολογηθούν και με βάση την
λειτουργικότητά τους. Αυτό απαιτεί συνήθως ενασχόληση ενός προγραμματιστή και
μπορεί να αποδειχθεί χρονοβόρα διαδικασία.
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
34
25/11/2024
Ευχαριστώ πολύ για την
προσοχή σας!
Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι
κές Βαθιάς Μάθησης
35
25/11/2024
Ερωτήσεις;

More Related Content

PPTX
Maria Ioanna Sifaki
PPTX
Εφαρμογή τεχνικών εξόρυξης δεδομένων για την αυτοματοποιημένη διόρθωση σφαλμάτων
PPTX
Εφαρμογή τεχνικών εξόρυξης δεδομένων για την αυτοματοποιημένη διόρθωση σφαλμάτων
PDF
Stelios poulakakis daktylidis diploma thesis presentation
PDF
ThesisPresentation
DOCX
ΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσεις
PDF
Domimenos programmatismos
PPTX
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Maria Ioanna Sifaki
Εφαρμογή τεχνικών εξόρυξης δεδομένων για την αυτοματοποιημένη διόρθωση σφαλμάτων
Εφαρμογή τεχνικών εξόρυξης δεδομένων για την αυτοματοποιημένη διόρθωση σφαλμάτων
Stelios poulakakis daktylidis diploma thesis presentation
ThesisPresentation
ΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσεις
Domimenos programmatismos
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...

Similar to Source Code Bug Detection and Repair using Deep Learning Techniques (20)

PPTX
Ελευθεριάδου
PPTX
Νίνα Ελευθεριάδου
PDF
Σημειώσεις Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον, Θερινή προετοιμ...
PPTX
Evaluating code readability models in incremental changes and developing a ne...
PPTX
Αξιολόγησvη μοντέλων αναγνωσvιμότητας κώδικα σvε μικρές μεταβολές και κατασvκ...
PDF
ΘΕΜΑΤΑ ΠΑΝΕΛΛΗΝΙΩΝ 2025 - ΠΛΗΡΟΦΟΡΙΚΗ.pdf
DOC
διδακτικο σεναριο στη δομή επιλογής
PDF
ΑΕΠΠ: 1ο Επαναληπτικό Τεστ
PPT
Αναστασία Ηροδότου
PDF
Salavasidis Petros (2013) - Methodology for solving exercises on the IP fragm...
PDF
ΑΕΠΠ - ΤΑ Σ/Λ των Πανελλαδικών
PPTX
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
PDF
Βοήθημα για το μάθημα «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον».
PPTX
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
PDF
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
PPTX
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...
PPTX
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM
PDF
ΣΥΝ_116268_ΠΛΗΡΟΦΟΡΙΚΗ_Γ ΓΕΛ ΠΡΟΣ_2022_23.pdf
PDF
σενάριο Scratch δομή_επανάληψης
PDF
VET4SBO Level 3 module 2 - unit 1 - v1.0 gr
Ελευθεριάδου
Νίνα Ελευθεριάδου
Σημειώσεις Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον, Θερινή προετοιμ...
Evaluating code readability models in incremental changes and developing a ne...
Αξιολόγησvη μοντέλων αναγνωσvιμότητας κώδικα σvε μικρές μεταβολές και κατασvκ...
ΘΕΜΑΤΑ ΠΑΝΕΛΛΗΝΙΩΝ 2025 - ΠΛΗΡΟΦΟΡΙΚΗ.pdf
διδακτικο σεναριο στη δομή επιλογής
ΑΕΠΠ: 1ο Επαναληπτικό Τεστ
Αναστασία Ηροδότου
Salavasidis Petros (2013) - Methodology for solving exercises on the IP fragm...
ΑΕΠΠ - ΤΑ Σ/Λ των Πανελλαδικών
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
Βοήθημα για το μάθημα «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον».
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM
ΣΥΝ_116268_ΠΛΗΡΟΦΟΡΙΚΗ_Γ ΓΕΛ ΠΡΟΣ_2022_23.pdf
σενάριο Scratch δομή_επανάληψης
VET4SBO Level 3 module 2 - unit 1 - v1.0 gr
Ad

More from ISSEL (20)

PPTX
A hybrid Edge-to-Cloud Architecture towards low-code development of global fo...
PPTX
Upon evaluating source code generated by LLMs and improving the prompt engine...
PPTX
Implementation of a recording and playback tool for data served by IoT brokers
PPTX
Implementation of a Mechanism for Automatic Transformation and Synchronizatio...
PPTX
Bias detection and evaluation in personalized ubiquitous computing
PPTX
Development of a Data Stream Prediction Methodology using AutoML models
PPTX
Methodology and prototype design for the identification of recyclable materia...
PPTX
DynaCraft: a super-strongly typed programming language
PPTX
Applying Machine Learning Techniques on Software Data Streams for Automated I...
PPTX
Application of Drift Detection and Management Techniques in Data Streams Usin...
PPTX
Υλοποίηση συστήματος προς καταχώρηση και αυτόματη αναγνώριση κατηγοριών κινήσ...
PDF
Σχεδιασμός και υλοποίηση No-Code μηχανισμού για τη δημιουργία και εφαρμογή π...
PPTX
Μελέτη Τεχνικών Ημι-επιβλεπόμενης Μάθησης για Κατηγοριοποίηση Κειμένου
PPTX
Υλοποίηση συστήµατος εντοπισµού ϑέσης σε εσωτερικό χώρο µε χρήση αισθητήρων κ...
PPTX
Σχεδίαση και Ανάπτυξη Μηχανισμού Εκτίμησης προσωποποιημένου Χρόνου Εκτέλεσης ...
PPTX
Ανάπτυξη Μοντέλου Διόρθωσης Γραμματικών Λαθών για την Ελληνική Γλώσσα.pptx
PPTX
Εντοπισμός και χαρτογράφηση ατελειών οδοστρώματος κατά την οδήγηση μέσω αισθη...
PDF
Ταχεία ανάπτυξη λογισμικού για πράκτορες συναλλαγών υψηλής συχνότητας σε αγορ...
PPTX
Σχεδιασµός και υλοποίηση αρθρωτού συστήµατος υπολογισµού τρισδιάστατης θέσης ...
PPTX
Σχεδίαση και ανάπτυξη πλατφόρμας για χρήση του Node-red απομακρυσμένα από πο...
A hybrid Edge-to-Cloud Architecture towards low-code development of global fo...
Upon evaluating source code generated by LLMs and improving the prompt engine...
Implementation of a recording and playback tool for data served by IoT brokers
Implementation of a Mechanism for Automatic Transformation and Synchronizatio...
Bias detection and evaluation in personalized ubiquitous computing
Development of a Data Stream Prediction Methodology using AutoML models
Methodology and prototype design for the identification of recyclable materia...
DynaCraft: a super-strongly typed programming language
Applying Machine Learning Techniques on Software Data Streams for Automated I...
Application of Drift Detection and Management Techniques in Data Streams Usin...
Υλοποίηση συστήματος προς καταχώρηση και αυτόματη αναγνώριση κατηγοριών κινήσ...
Σχεδιασμός και υλοποίηση No-Code μηχανισμού για τη δημιουργία και εφαρμογή π...
Μελέτη Τεχνικών Ημι-επιβλεπόμενης Μάθησης για Κατηγοριοποίηση Κειμένου
Υλοποίηση συστήµατος εντοπισµού ϑέσης σε εσωτερικό χώρο µε χρήση αισθητήρων κ...
Σχεδίαση και Ανάπτυξη Μηχανισμού Εκτίμησης προσωποποιημένου Χρόνου Εκτέλεσης ...
Ανάπτυξη Μοντέλου Διόρθωσης Γραμματικών Λαθών για την Ελληνική Γλώσσα.pptx
Εντοπισμός και χαρτογράφηση ατελειών οδοστρώματος κατά την οδήγηση μέσω αισθη...
Ταχεία ανάπτυξη λογισμικού για πράκτορες συναλλαγών υψηλής συχνότητας σε αγορ...
Σχεδιασµός και υλοποίηση αρθρωτού συστήµατος υπολογισµού τρισδιάστατης θέσης ...
Σχεδίαση και ανάπτυξη πλατφόρμας για χρήση του Node-red απομακρυσμένα από πο...
Ad

Source Code Bug Detection and Repair using Deep Learning Techniques

  • 1. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 1 Διπλωματική Εργασία Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνικές Βαθιάς Μάθησης Εκπόνηση: Ιωάννα Μαρία Παπαβασιλείου ΑΕΜ: 9375 Επίβλεψη: Καθηγητής Ανδρέας Συμεωνίδης Δρ. Θεμιστοκλής Διαμαντόπουλος 25/11/2024
  • 2. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 2 Διάρθρωση Παρουσίασης 1. Κίνητρο 2. Στόχοι Διπλωματικής 3. Μεθοδολογία 4. Αποτελέσματα 5. Συμπεράσματα 25/11/2024
  • 3. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 3 25/11/2024 Κίνητρο 49.9% του χρόνο ενός προγραμματιστή αφιερώνεται στο debugging* - Τα έργα λογισμικού σήμερα γίνονται όλο και μεγαλύτερα, πιο πολύπλοκα και φτάνουν και εκατομμύρια γραμμές κώδικα. - Η αυτόματη ανίχνευση και διόρθωση σφαλμάτων μπορεί να αυξήσει την αποδοτικότητα των προγραμματιστών και την ποιότητα του παραγόμενου πηγαίου κώδικα. * T. Britton, L. Jeng, G. Carver, T. Katzenellenbogen, and P. Cheak, “Reversible debugging software: quantify the time and cost saved using reversible debuggers",” 11 2020.
  • 4. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 4 25/11/2024 Στόχοι Διπλωματικής Υλοποίηση Συστήματος για: 1. Ανίχνευση 2. Κατηγοριοποίηση 3. Διόρθωση Σφαλμάτων Πηγαίου Κώδικα
  • 5. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 5 25/11/2024 Μεθοδολογία Δομή συστήματος Ανίχνευσης, Κατηγοριοποίησης και Διόρθωσης Σφαλμάτων
  • 6. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 6 25/11/2024 Μεθοδολογία - Συνέχεια Σύνολο Δεδομένων: - Το σύνολο δεδομένων που χρησιμοποιείται είναι το ManySStuBs4J. - Αποτελείται από σχεδόν 63 χιλιάδες παραδείγματα κώδικα, πριν και μετά από μικρές διορθώσεις. - Περιέχει 16 κατηγορίες σφαλμάτων από 1000 open source έργα λογισμικού Java.
  • 7. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 7 25/11/2024 Μεθοδολογία - Συνέχεια Κατηγορίες Σφαλμάτων: Πλήθη: 1. Change Identifier Used 7773 2. Change Numeric Literal 2447 3. Change Modifier. 5010 4. Change Boolean Literal 3841 5. Wrong Function Name 5100 6. Same Function More Args 5179 7. Same Function Less Args 2588 8. Same Function Wrong Caller 2504 9. Same Function Swap Args 3012 10. Change Binary Operator 3241 11. Change Unary Operator 2016 12. Change Operand 2203 13. Less Specific If 2813 14. More Specific If 2381 15. Missing Throws Exception 1015 16. Delete Throws Exception 1037
  • 8. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 8 25/11/2024 Μεθοδολογία - Συνέχεια Προεπεξεργασία Δεδομένων: - Εύρεση διαφορών - Μετατροπή κώδικα σε μορφή AST - Επιλογή Συναρτήσεων - Αφαίρεση κενών στοίχισης - Προσθήκη μεταβλητών - στόχων
  • 9. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 9 25/11/2024 Μεθοδολογία - Συνέχεια Διαδικασία Fine-tuning: Μοντέλα που χρησιμοποιούνται για την Ανίχνευση και Κατηγοριοποίηση : - CodeBert - RoBERTa - CodeBERTa Μοντέλα που χρησιμοποιούνται για την Διόρθωση - BART - CodeT5 - T5 - LED
  • 10. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 10 25/11/2024 Μεθοδολογία - Συνέχεια Διαδικασία Fine-tuning: - Δειγματοληψία με Βάρη - AdamW - OneCycleLR - Gradual Freezing - Chain Thaw
  • 11. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 11 25/11/2024 Μεθοδολογία - Συνέχεια Απλοϊκή Αναπαράσταση του της υλοποίησης του μοντέλου CodeBert που χρησιμοποιήθηκε
  • 12. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 12 25/11/2024 Αποτελέσματα – Ανίχνευση Σφαλμάτων - Πρόβλημα Δυαδικής Ταξινόμησης - Δίνοντας σαν είσοδο τμήματα κώδικα, το σύστημα πρέπει να αναγνωρίσει αν περιέχουν σφάλματα ή όχι
  • 13. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 13 25/11/2024 Αποτελέσματα – Ανίχνευση Σφαλμάτων - Εκπαίδευση του μοντέλου με τα δύο ανώτερα layers διαθέσιμα για εκπαίδευση:
  • 14. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 14 25/11/2024 Αποτελέσματα – Συνέχεια - Εκπαίδευση του μοντέλου με τα τρία ανώτερα layers διαθέσιμα για εκπαίδευση:
  • 15. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 15 25/11/2024 Αποτελέσματα – Συνέχεια - Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα διαθέσιμα για εκπαίδευση: Κατά την εκκίνηση της εκπαίδευσης Μετά το πέρας του 50% των εποχών Μετά το πέρας του 75% των εποχών
  • 16. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 16 25/11/2024 Αποτελέσματα – Συνέχεια - Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
  • 17. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 17 25/11/2024 Αποτελέσματα – Συνέχεια - Εκπαίδευση του μοντέλου με τα τρία ανώτερα επίπεδα - παγώνοντας τα επίπεδα διαδοχικά : Κατά την εκκίνηση της εκπαίδευσης Μετά το πέρας του 50% των εποχών
  • 18. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 18 25/11/2024 Αποτελέσματα – Συνέχεια - Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα - παγώνοντας τα επίπεδα διαδοχικά : Κατά την εκκίνηση της εκπαίδευσης Μετά το πέρας του 50% των εποχών Μετά το πέρας του 75% των εποχών
  • 19. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 19 25/11/2024 Αποτελέσματα – Συνέχεια - Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
  • 20. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 20 25/11/2024 Αποτελέσματα – Ανίχνευση Σφαλμάτων Αποτελέσματα με την χρήση διαφορετικών μοντέλων:
  • 21. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 21 25/11/2024 Αποτελέσματα –Κατηγοριοποίηση Σφαλμάτων - Πρόβλημα Πολυκατηγοριακής Ταξινόμησης - Δίνοντας σαν είσοδο τμήματα κώδικα, το σύστημα πρέπει να αναγνωρίσει σε ποια από τις 16 κατηγορίες σφαλμάτων ανήκουν
  • 22. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 22 25/11/2024 Αποτελέσματα – Κατηγοριοποίηση Σφαλμάτων Εκπαίδευση του μοντέλου με τα δύο ανώτερα επίπεδα διαθέσιμα για εκπαίδευση: Εκπαίδευση του μοντέλου με τα τρία ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
  • 23. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 23 25/11/2024 Αποτελέσματα – Πολυκατηγορική Ταξινόμηση Εκπαίδευση του μοντέλου με διαδοχικό πάγωμα και ξεπάγωμα τριών επιπέδων: Εκπαίδευση του μοντέλου με τα τέσσερα ανώτερα επίπεδα διαθέσιμα για εκπαίδευση:
  • 24. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 24 25/11/2024 Αποτελέσματα – Συνέχεια Εκπαίδευση του μοντέλου με διαδοχικό πάγωμα και ξεπάγωμα τεσσάρων επιπέδων:
  • 25. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 25 25/11/2024 Αποτελέσματα – Κατηγοριοποίηση Σφαλμάτων Αποτελέσματα με την χρήση διαφορετικών μοντέλων:
  • 26. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 26 25/11/2024 Αποτελέσματα – Διόρθωση Σφαλμάτων - Πρόβλημα παραγωγής φυσικής γλώσσας - Δίνοντας σαν είσοδο τμήματα κώδικα, το σύστημα πρέπει να κάνει τις απαραίτητες διορθώσεις - Μετρικές Αξιολόγησης: o Ορθότητα: Γίνεται χρήση του Συστήματος Ανίχνευσης Σφαλμάτων o Μετρική BLEU
  • 27. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 27 25/11/2024 Αποτελέσματα – Διόρθωση Σφαλμάτων Παράδειγμα Ορθής Διόρθωσης στην κατηγορία σφάλματος Same Function Less Args: Αρχικό Τμήμα Κώδικα: Αναμενόμενη Διόρθωση: Διόρθωση του συστήματος:
  • 28. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 28 25/11/2024 Αποτελέσματα – Διόρθωση Σφαλμάτων Παράδειγμα Ορθής Διόρθωσης στην κατηγορία σφάλματος Change Identifier Used: Αρχικό Τμήμα Κώδικα: Αναμενόμενη Διόρθωση: Διόρθωση του συστήματος:
  • 29. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 29 25/11/2024 Αποτελέσματα – Διόρθωση Σφαλμάτων Παράδειγμα Ορθής Διόρθωσης στην κατηγορία σφάλματος Change Identifier Used: Αρχικό Τμήμα Κώδικα: Αναμενόμενη Διόρθωση: Διόρθωση του συστήματος:
  • 30. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 30 25/11/2024 Αποτελέσματα – Διόρθωση Σφαλμάτων Παράδειγμα Λανθασμένης Διόρθωσης στην κατηγορία σφάλματος Change Numeric Literal: Αρχικό Τμήμα Κώδικα: Αναμενόμενη Διόρθωση: Διόρθωση του συστήματος:
  • 31. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 31 25/11/2024 Αποτελέσματα – Διόρθωση Σφαλμάτων Αποτελέσματα με την χρήση διαφορετικών μοντέλων:
  • 32. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 32 25/11/2024 Συμπεράσματα 1. Τα μοντέλα μετά την προσαρμογή τους ήταν σε θέση να ανιχνεύσουν αν ο κώδικας περιέχει σφάλματα και να κατηγοριοποιήσουν τα σφάλματα με βάση 16 κατηγορίες. 2. Τα μοντέλα παρήγαγαν διορθώσεις, οι οποίες ήταν αρκετά όμοιες με τις αναμενόμενες. Ωστόσο, λόγω της φύσης του προβλήματος οι μικρές αποκλίσεις από τις αναμενόμενες απαντήσεις μπορεί να οδηγήσουν σε κώδικα που έχει πιθανά νέα σφάλματα. Από την άλλη, οι μικρές αποκλίσεις δεν μπορούν να θεωρούνται πάντα λανθασμένες, καθώς στον κώδικα μπορούν δύο διαφορετικές εκφράσεις να επιφέρουν το ίδιο αποτέλεσμα.
  • 33. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 33 25/11/2024 Μελλοντικές Επεκτάσεις 1. Τα μοντέλα εκπαιδεύτηκαν και αξιολογήθηκαν αποκλειστικά σε αρχεία κώδικα γραμμένα σε Java. Εχει ενδιαφέρον να γίνει έλεγχος για το αν τα μοντέλα μπορούν να ανιχνεύσουν σφάλματα και να κάνουν διορθώσεις σε κώδικα άλλης γλώσσας. 2. Οι παραγόμενες διορθώσεις θα μπορούσαν να αξιολογηθούν και με βάση την λειτουργικότητά τους. Αυτό απαιτεί συνήθως ενασχόληση ενός προγραμματιστή και μπορεί να αποδειχθεί χρονοβόρα διαδικασία.
  • 34. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 34 25/11/2024 Ευχαριστώ πολύ για την προσοχή σας!
  • 35. Ανίχνευση και Διόρθωση Σφαλμάτων Πηγαίου Κώδικα με Τεχνι κές Βαθιάς Μάθησης 35 25/11/2024 Ερωτήσεις;