1. Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής & Υπολογιστών
Διπλωματική Εργασία
Εργαστήριο Επεξεργασίας Πληροφορίας
και Τεχνολογίας Λογισμικού (ISSEL)
Επίβλεψη
Αναπληρωτής Καθηγητής Ανδρέας Λ.Συμεωνίδης
Μεταδιδακτορικός Ερευνητής Δρ. Διαμαντόπουλος
Θεμιστοκλής
Εκπόνηση
Ζηκόπης Ευάγγελος
ΑΕΜ: 8808
Ταξινόμηση Σφαλμάτων από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση το Χρόνο Επιδιόρθωσής τους
2. Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους
2
Δομή Παρουσίασης
Συμπεράσματα &
Μελλοντική εργασία
Συμπεράσματα &
Μελλοντική Εργασία
Ε Εισαγωγή
Αποτελέσματα & Αξιολόγηση
4. Περιγραφή
• Κατακόρυφη αύξηση απαιτήσεων
• Νέα πρότυπα εργασίας ομάδων λογισμικού
• ‘Έλλειψη αυτοματοποιημένων διαδικασιών σχετικά με την ανάπτυξη λογισμικού
• Αδυναμία δημιουργίας αντιπροσωπευτικού χρονοδιαγράμματος ολοκλήρωσης
έργου
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 4
Σκοπός
• Συμβολή στην αυτοματοποίηση της διαχείρισης ομάδων ανάπτυξης λογισμικού
• Εκμετάλλευση όλης της διαθέσιμης πληροφορίας που κρύβει ένα Issue Report
• Εξαγωγή συμπερασμάτων σχετικά με τα έργα ανοιχτού κώδικα
Ορισμός Προβλήματος
Η σχεδίαση ενός συστήματος το οποίο ταξινομεί τα σφάλματα λογισμικού ενός συγκεκριμένου
αποθετηρίου, ανάλογα με τον εκτιμώμενο χρόνο επιδιόρθωσής τους
5. GitHub Issue Report
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 5
1
1 Τίτλος
2
2 Κατάσταση
3
3 Περιγραφή
4
4 Υπεύθυνος
5
5 Labels
6 6 Συνδεδεμένα Commits
7
7 Σχόλια
8. Συλλογή & Προεπεξεργασία Δεδομένων
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 8
Κανόνες Επιλογής Issues από τη Βάση Δεδομένων
Είναι σε κατάσταση closed
Έχει διαθέσιμες ημερομηνίες στις
οποίες άνοιξε / έκλεισε
Έχει συμπληρωμένα τα πεδία
τίτλος, περιγραφή, labels, assignee
Το αποθετήριο έχει από 50 έως
5000 έγκυρα issues
01
02
03
04
Προεπεξεργασία Συλλεγμένων Issues
Προεπεξεργασία &
Προετοιμασία κειμένου
για εφαρμογή τεχνικών
εξόρυξης δεδομένων
Εφαρμογή μετασχηματισμού
Z-Score για απομάκρυνση
θορύβου
Διατήρηση μόνο όσων έχουν
κλείσει ή αναφερθεί σε commits ή
έχουν σχόλια
Διαχωρισμός των
issues σε κλάσεις
Διαχωρισμός σε σετ
εκπαίδευσης /
αξιολόγησης
9. Ανάλυση Υπομοντέλων
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 9
Υπομοντέλα Τίτλου & Περιγραφής
“ Υπάρχει σύνδεση μεταξύ της λεκτικής περιγραφής ενός
σφάλματος και του χρόνου επιδιόρθωσής του; ”
Επεξεργασία λεκτικών δεδομένων για αύξηση
αποδοτικότητας
Διανυσματοποίηση με τον μετασχηματισμό TF-IDF (Term
Frequency – Inverse Document Frequency)
𝑡𝑓 − 𝑖𝑑𝑓 𝑤, 𝐷 = 𝑡𝑓 𝑤, 𝐷 × log
𝐶
1 + 𝐷 ∈ 𝐶: 𝑤 ∈ 𝐷
Εκπαίδευση Naïve Bayes ταξινομητή
𝑃 𝑥𝑖 𝑐 =
𝑡𝑓𝑖𝑑𝑓 𝑥𝑖, 𝑐 + 1
𝑡𝑓𝑖𝑑𝑓 𝑐 + |𝑉|
Σχεδίαση ξεχωριστών μοντέλων για τίτλο και περιγραφή
10. Ανάλυση Υπομοντέλων
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους
10
“ Μπορούμε να προβλέψουμε τον χρόνο στον οποίο θα
διορθώσει ένα σφάλμα κάποιος μηχανικός με βάση το
ιστορικό του; ”
Υπομοντέλο Assignee
Συγκέντρωση των issues που έχει επιλύσει στο
παρελθόν ο συγκεκριμένος χρήστης
Μέτρηση της συχνότητας εμφάνισης αυτών των
issues σε κάθε κλάση
Εξαγωγή σκορ συμμετοχής του χρήστη σε κάθε
κλάση (σκορ στο διάστημα [0,1])
11. Ανάλυση Υπομοντέλων
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 11
“ Πόσο γρήγορα επιλύονται τα σφάλματα που
χαρακτηρίζονται από συγκεκριμένο label; ”
Υπομοντέλο Labels
Απομόνωση των issues που έχουν κάποιο από τα
labels του εξεταζόμενου issue
Δημιουργία ευρετηρίου για κάθε ένα από τα labels
του εξεταζόμενου issue
Εξαγωγή τελικού σκορ συμμετοχής σε κάθε κλάση
από τη σύνθεση των επιμέρους σκορ κάθε label
12. Σύνθεση Υπομοντέλων
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 12
Άθροιση & Μέσος Όρος των επιμέρους Σκορ
Class 0 – Fast Class 1– Medium Class 2 - Slow
Title Score 0.22 0.35 0.43
Body Score 0.36 0.25 0.39
Labels Score 0.4 0.6 0
Assignee Score 0.4 0.5 0.1
Final Score 0.345 0.425 0.23
Εξαγωγή των σκορ συμμετοχής σε κάθε κλάση
Άθροιση και Κανονικοποίηση του τελικού σκορ συμμετοχής
του εξεταζόμενου issue σε κάθε κλάση
13. Σύνθεση Υπομοντέλων
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 13
“ Υπάρχει πιο έξυπνος τρόπος σύνθεσης των
επιμέρους σκορ σε κάθε αποθετήριο; ”
Βελτιστοποιημένη Σύνθεση των
επιμέρους Σκορ
Χρήση του εικονιζόμενου νευρωνικού δικτύου
Εύρεση του συνδυασμού βαρών που βελτιστοποιεί την
ταξινόμηση των issues
Είσοδος Νευρωνικού:
𝑋 = 𝑇𝑖𝑡𝑙𝑒𝑆𝑐𝑜𝑟𝑒, 𝐵𝑜𝑑𝑦𝑆𝑐𝑜𝑟𝑒, 𝐿𝑎𝑏𝑒𝑙𝑠𝑆𝑐𝑜𝑟𝑒, 𝐴𝑠𝑠𝑖𝑔𝑛𝑒𝑒𝑆𝑐𝑜𝑟𝑒
Έξοδος: Βαθμός συμμετοχής ([0,1]) του issue σε κάθε κλάση
15. Διαδικασία Εκπαίδευσης & Αξιολόγησης
Τελικό Σύνολο Δεδομένων
11500 issues από 26 δημοφιλή έργα στο GitHub
Εκπαίδευση Συστήματος
• Αναλογία συνόλων εκπαίδευσης αξιολόγησης 70/30
• Σετ αξιολόγησης από τα πιο πρόσφατα issues κάθε έργου
• Αυξητική Μάθηση
Συνδυασμοί που Αξιολογήθηκαν
1. Title + Body
2. Title + Body + Labels
3. Title + Body + Labels + Assignee
4. Optimized Model
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 15
16. Αποτελέσματα Δυαδικής Ταξινόμησης
Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους
16
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Binary Classification Accuracy Plot
Title + Body Title + Body + Labels Title + Body + Labels + Assignee Optimized
12%
23%
27%
38%
Best Result per Submodels
Combination
Title + Body
Title + Body + Labels
Title + Body + Labels + Assignee
Optimized
18. Αποτελέσματα Ταξινόμησης Τριών Κλάσεων
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους
18
0
0.1
0.2
0.3
0.4
0.5
0.6
3 Class Classification Accuracy
Title + Body Title + Body + Labels Title + Body + Labels + Assignee Optimized
19. Αποτελέσματα Ταξινόμησης Τριών Κλάσεων
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους
19
20. Συμπεράσματα
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους
20
1
Τα συγκεκριμένα χαρακτηριστικά που αναλύθηκαν μπορούν να
οδηγήσουν στην πρόβλεψη του χρόνου διόρθωσης σφαλμάτων
2
Η βέλτιστη σύνθεση των υπομοντέλων μπορεί να αυξήσει την
προβλεπτική ικανότητα του συστήματος
3
Το σύστημα αποδίδει πολύ καλά για δυαδική ταξινόμηση, έχοντας
παρόμοια απόδοση με άλλες βιβλιογραφικές έρευνες
4
• Αναλύοντας ξεχωριστά τα υπομοντέλα, το χαρακτηριστικό των labels είχε
τη μεγαλύτερη συσχέτιση με το εξεταζόμενο πρόβλημα
21. Μελλοντική Εργασία
Απρίλιος, 2021
Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού
Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους
21
1. Δοκιμή του συστήματος σε δεδομένα από διαφορετικές πλατφόρμες
διαδικτυακών αποθετηρίων
2. Σχεδίαση του υπομοντέλου ανάλυσης κειμένων με πιο εξειδικευμένες
τεχνικές
3. Τροποποίηση του συστήματος για προσέγγιση και υπολογισμό του χρόνου
διόρθωσης σφαλμάτων
4. Ανάπτυξη διαδικτυακής εφαρμογής ή ενός GitHub plugin για ταξινόμηση
σφαλμάτων σε πραγματικό χρόνο