1. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Βελτίωση Ανάθεσης Εργασιών Μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
Φαλάρα Ελπίδα ΑΕΜ: 8305
Επιβλέποντες: Ανδρέας Λ. Συμεωνίδης, Αναπληρωτής Καθηγητής
Θεμιστοκλής Διαμαντόπουλος, Μεταδιδακτορικός Ερευνητής
Μιχάλης Παπαμιχαήλ, Υποψήφιος Διδάκτορας
Θεσσαλονίκη, 25 Φεβρουαρίου 2019 1
2. Σκοπός της διπλωματικής εργασίας
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
2
Πρόβλημα
Μεγάλα έργα λογισμικού σε αποθετήρια ανοιχτού λογισμικού
Πολλές καταγραφές σφαλμάτων και βελτιώσεων
Εξέταση των ζητημάτων σφαλμάτων από ένα συνήθως άτομο
Χρονοβόρα διαδικασία ανάθεσης εργασιών στην ομάδα
Σύγχυση μεταξύ των μελών της ομάδας
Υλοποίηση
Σύστημα που προτείνει τον κατάλληλο μηχανικό λογισμικού από την ομάδα για να
του ανατεθεί μια εργασία (χαρακτηριστικό/feature ή σφάλμα/bug)
4. Προεπεξεργασία (1/3)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
4
Πλήθος αποθετηρίων σε σχέση με τους συνεισφορείς
5. Προεπεξεργασία (2/3)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
5
Αριθμός των contributors σε σχέση με τον αριθμό των commits και των κλειστών issues
6. Προεπεξεργασία (3/3)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
6
Συσχέτιση πλήθους commits και κλειστών issues
7. Βάση Δεδομένων
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
7
Περιέχει δεδομένα για κάθε αποθετήριο και για κάθε κλειστό Issue τα εξής:
• ID, π.χ. #1@gonzalez
• Issue Number (π.χ. 1)
• Title/Body (π.χ. “bug fix for releas 1” (Μετά από stemming))
• Developer (π.χ. gonzalez)
• Similarity Score (Για όλα θεωρείται 0 σε αυτό το στάδιο)
• Closed at (π.χ. 25/02/2018)
• Commits (π.χ. 100)
• Lines Added, (π.χ. 1000)
• Lines Deleted (π.χ. 520)
• Issues Opened (π.χ. 10)
• Issues Closed (π.χ. 20)
8. Υποσύστημα Εκπαίδευσης (1/3)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
8
1. Μετατροπή των τίτλων του κάθε issue σε
διάνυσμα
Αλγόριθμος TFIDF (term frequency – inverse
term frequency)
• Βρίσκει το βάρος σημασίας κάθε λέξης από ένα
σύνολο κειμένων
• Κατακερματίζει κάθε πρόταση (τίτλο issue) σε λέξεις
• Κάθε πρόταση μετατρέπεται σε διάνυσμα με διαστάσεις τα βάρη των λέξεων
9. Υποσύστημα Εκπαίδευσης (2/3)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
9
2. Υπολογισμός Ομοιότητας
Αλγόριθμος Cosine Similarity
• Σχετική γωνία μεταξύ του διανύσματος του ανοιχτού issue και των διανυσμάτων κάθε
Developer
• Σκορ Cosine Similarity του Developer για το issue
Αλγόριθμος LinearSVC
• Εκπαίδευση των διανυσμάτων με labels τα ονόματα των Developers
• Πιθανότητα να ανήκει το διάνυσμα του ανοιχτού issue στο χώρο των διανυσμάτων του
Developer
• Σκορ Similarity Score του Developer για το issue
10. Υποσύστημα Εκπαίδευσης (3/3)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
10
3. Υπολογισμός Συνεισφοράς
Αλγόριθμος One Class SVM
• Χαρακτηριστικά εκπαίδευσης: Commits, Lines Added, Lines Deleted, Issues Opened,
Issues Closed
• Ορισμός του συνόλου συμπεριφοράς που προκύπτει από την εκπαίδευση
• Μετασχηματισμός του +1, -1 σε σκορ μεταξύ [0,1]
• Σκορ One Class Score του Developer για το Issue
11. Πρόβλεψη
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
11
A. Σκορ Ομοιότητας
Επιλέγεται για κάθε περίπτωση ο Developer
με το μεγαλύτερο:
Cosine Similarity Score
Similarity Score
B. Σκορ Συνεισφοράς
Προβλέπει τον Developer με το μεγαλύτερο
One Class Score
C. Συνδυασμός Σκορ Ομοιότητας και
Συνεισφοράς
Προτείνει τον Developer με το μεγαλύτερο:
Average (Cosine Similarity Score, One
Class Score)
Average(Similarity Score, One Class Score)
Max (Cosine Similarity Score, One Class
Score)
Max (Similarity Score, One Class Score)
12. Αποτελέσματα (1/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
12
29%
54%
50%
36% 41%
34%
42%
Κατανομή των
Αποθετηρίων σε
σχέση με τις τιμές
Precision
που εμφάνισαν
13. Αποτελέσματα (2/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
13
38%
14%
21% 14%
14%
31%
51%
Κατανομή των
Αποθετηρίων σε
σχέση με τις τιμές
Recall
που εμφάνισαν
14. Αποτελέσματα (3/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
14
19%
22%
34%
21%
22%
32%
50%
Κατανομή των
Αποθετηρίων σε
σχέση με τις τιμές
F1Score
που εμφάνισαν
16. Αποτελέσματα (5/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
16
Τιμές Precision
σε σχέση με το
πλήθος των μελών
της ομάδας
ανά αποθετήριο
17. Αποτελέσματα (6/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
17
Τιμές Recall
σε σχέση με το
πλήθος των μελών
της ομάδας
ανά αποθετήριο
18. Αποτελέσματα (7/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
18
Τιμές F1Score
σε σχέση με το
πλήθος των μελών
της ομάδας
ανά αποθετήριο
19. Αποτελέσματα (8/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
19
Μέση Τιμή Precision
σε σχέση με το
πλήθος των μελών
της ομάδας
ανά αποθετήριο
20. Αποτελέσματα (9/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
20
Μέση Tιμή Recall
σε σχέση με το
πλήθος των μελών
της ομάδας
ανά αποθετήριο
21. Αποτελέσματα (10/10)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
21
Μέση Τιμή F1Score
σε σχέση με το
πλήθος των μελών
της ομάδας
ανά αποθετήριο
22. Συμπεράσματα (1/2)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
22
LinearSVC
• Καλύτερες τιμές Precision, Recall, F1Score
• Δεν επηρεάζεται ιδιαίτερα από την αύξηση των Contributors
• Διαχειρίζεται ικανοποιητικά τα μεγάλης διάστασης διανύσματα
Cosine Similarity
• Κακή απόδοση λόγω της μεγάλης διάστασης των διανυσμάτων
• Μεγάλη εξάρτηση από το πλήθος των Contributors
One Class SVM
• Φθίνουσα πορεία των μετρικών αξιολόγησης με την αύξηση των contributors
• Δε βοήθησε η επιλογή των χαρακτηριστικών εκπαίδευσης
23. Συμπεράσματα (2/2)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
23
Avg Cosine Similarity One Class SVM
• Μη ικανοποιητικές τιμές μετρικών
αξιολόγησης μετά από τους 2 contributors
Max Cosine Similarity One Class SVM
• Λίγο καλύτερα αποτελέσματα από το Avg
Cosine Similarity One Class SVM
• Αντιμετωπίζει τα θέματα του Cosine
Similarity και One Class SVM
Avg LinearSVC One Class SVM
• Προσπαθεί να ακολουθήσει την πορεία του
LinearSVC στις μετρικές αξιολόγησης
• Επηρεάζεται από τη φθίνουσα πορεία του
One Class SVM
Max LinearSVC One Class SVM
• Λίγο καλύτερο Precision από το Avg
LinearSVC One Class SVM
• Χειρότερο Recall, F1Score εξαιτίας του One
Class SVM
24. Μελλοντική Εργασία (1/2)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
24
Βελτίωση της μεθόδου Υπολογισμού Συνεισφοράς
Μελέτη προσθήκης χαρακτηριστικών εκπαίδευσης για κάθε Developer
• Το πλήθος των issues που του ανατέθηκαν και τα έκλεισε με επιτυχία
• Το πλήθος των issues του που έκλεισαν και ξανάνοιξαν
• Οι ώρες που δούλεψε στο έργο
• Η συμμετοχή του στη συζήτηση των issues
• Ο μέσος χρόνος που έκανε να κλείσει τα issues
25. Μελλοντική Εργασία (2/2)
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
25
Βελτίωση της μεθόδου Υπολογισμού Ομοιότητας
Μελέτη προσθήκη χαρακτηριστικών εκπαίδευσης στον LinearSVC
• Τους τίτλους των Commits
• Των σχολίων από τα Issues
• Των σχολίων από Commits
• Τα labels των Issues
Προσθήκη της παραμέτρου Κώδικας
• Μελέτη της θέσης που προκύπτει το bug αν σχετίζεται με κάποιο προηγούμενο Commit
26. Ευχαριστίες
Θεσσαλονίκη, Φεβρουάριος 2019
Βελτίωση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών
από Αποθετήρια Ανοιχτού Λογισμικού
26
Ευχαριστώ θερμά
• Τον κ. Συμεωνίδη Ανδρέα
• Τους Διαμαντόπουλο Θέμη και Παπαμιχαήλ Μιχάλη
• Και εσάς για την προσοχή σας