Successfully reported this slideshow.
Your SlideShare is downloading. ×

Matsoukas Vasileios Thesis Presentation

More Related Content

More from ISSEL

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Matsoukas Vasileios Thesis Presentation

  1. 1. “Αυτοματοποίηση ανάθεσης εργασιών με εφαρμογή τεχνικών εξόρυξης γνώσης σε αποθετήρια ανοιχτού λογισμικού” ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ Επιβλέποντες: Ανδρέας Λ. Συμεωνίδης, Αναπληρωτής Καθηγητής Α.Π.Θ. Διαμαντόπουλος Θεμιστοκλής, Μεταδιδακτορικός Ερευνητής Παπαμιχαήλ Μιχαήλ, Υποψήφιος Διδάκτωρ Θεσσαλονίκη, 26 Μαρτίου 2020 Εκπόνηση: Ματσούκας Βασίλειος, Α.Ε.Μ. 8743 Διπλωματική εργασία
  2. 2. Διάρθρωση Παρουσίασης  Εισαγωγή  Μεθοδολογία  Αξιολόγηση & Αποτελέσματα  Συμπεράσματα  Μελλοντική Εργασία 26.3.2020 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού 2
  3. 3. Περιγραφή του Προβλήματος 26.3.2020 3  Αυξημένες απαιτήσεις έργων λογισμικού  Αποθετήρια Κώδικα: • Διάσπαρτες ομάδες • Ανάγκη για διαχείριση και συντονισμό της ομάδας Ποιότητα Λογισμικού ⇔ Σωστή διαχείριση και ανάθεση εργασιών Πρόβλημα: Χειροκίνητη αξιολόγηση και ανάθεση των εργασιών: • Μεγάλος όγκος αναφορών και ζητημάτων καθημερινά • Πρακτικά αναποτελεσματικό σε έργα μεγάλης κλίμακας!! • Ανθρωποώρες εργασίες που μπορούν να αξιοποιηθούν πιο παραγωγικά • Οικονομικές επιπτώσεις στο project, ακόμα και απώλεια στόχου παραγωγής Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  4. 4. Σκοπός της Διπλωματικής & το περιβάλλον του GitHub 26.3.2020 4 Στόχος: Αυτοματοποίηση της διαδικασίας ανάθεσης εργασιών: • Αξιοποίηση πληροφορίας από αποθετήρια κώδικα • Χαρακτηριστικά που μαρτυρούν την καταλληλότητα του μηχανικού για μια εργασία • Βελτιστοποίηση-Ενίσχυση εμπιστευτικότητας του μοντέλου Τι είναι το GitHub & γιατί το επιλέξαμε ως πηγή δεδομένων; • Πλατφόρμα φιλοξενίας συλλογής ανοιχτού κώδικα • Επιπλέον χαρακτηριστικά: Bug Tracking, Task Management, Feature Requests • Δημοφιλές: 40M+ χρήστες, 100Μ+ αποθετήρια (Ιαν. 2020) • Διαθεσιμότητα δεδομένων (Rest API v3) Καινοτομία! Δεν υπάρχει λειτουργικότητα αυτόματης ανάθεσης στο GitHub Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  5. 5. GitHub Issues 26.3.2020 5 1 2 3 6 5 4 Σημαντικά πεδία ενός Issue Report: 1. Title 2. Status 3. Body 4. Comments 5. Labels 6. Assignee Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  6. 6. Μεθοδολογία Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού 26.3.2020 6
  7. 7. Αρχιτεκτονική Συστήματος 26.3.2020 7 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  8. 8. Συλλογή και Οργάνωση Δεδομένων 26.3.2020 8  Συλλογή δεδομένων από 3000 αποθετήρια  Αρχεία σε .JSON μορφή ⇒ βολικά για NoSQL βάση δεδομένων (MongoDB)  6 Collections, τα πιο βασικά πεδία: Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  9. 9. Στάδια Προεπεξεργασίας 26.3.2020 9  Επιλογή Αποθετηρίων και Καθορισμός Developers: • Τουλάχιστον 2 developers στο αποθετήριο • Συνολικά issues στο [50, 5000] • Support 15 κλειστών issues για κάθε developer  Εύρωστη επιλογή χαρακτηριστικού κλάσης: • Πεδίο “assignee” vs “closed_by” • Ποιο πεδίο να εμπιστευτούμε; • Είναι πιθανό να έχουμε ελλειπούσες τιμές. • Σύστημα απόφασης 3 επιπέδων (διαγρ. ροής)  Προεπεξεργασία κειμένου: • Ανεπεξέργαστο κείμενο ⇒ εισαγωγή θορύβου Assigne e? Closed_b y? Dev Role? Κλάση ← assignee Κλάση ← closed_by Απόρριψη issue Απόρριψ η issue Ye s No Ye s No Ops Dev, DevOp s Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  10. 10. Χαρακτηριστικά Αξιολόγησης Συνεισφοράς (1/5) 26.3.2020 10 “Κατά πόσο συνδέεται η περιγραφή του προβλήματος με τα προβλήματα που λύνει ο developer;” Title, Body  Μετατροπή κειμένου σε μορφή που επιτρέπει σύγκριση ⇒ Διανυσματοποίηση - Vector Space Modeling  Τεχνική διανυσματοποίησης TF-IDF (Term Frequency – Inverse Document Frequency): • ΤF: συχνότητα εμφάνισης του όρου στον τίτλο* • IDF: λογάριθμος (πλήθος τίτλων/ πλήθος των τίτλων* όπου εμφανίζεται ο όρος) • Για τον όρο 𝒘, document D, και corpus C : Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού * Ομοίως και για το σώμα(body)
  11. 11. Χαρακτηριστικά Αξιολόγησης Συνεισφοράς (2/5) 26.3.2020 11 Ζητούμενο: Κατηγοριοποίηση νέου issue με βάση τίτλο/σώμα • Στην περίπτωσή μας, κατηγορία == developer ⇒ Multiclass πρόβλημα ταξινόμησης Support Vector Machines: • “One vs Rest” προσέγγιση: ανήκει ή όχι το issue στα ενδιαφέροντα του dev? • Στην πραγματικότητα μας ενδιαφέρει η πιθανότητα ανάθεσης: απόσταση από το επίπεδο διαχωρισμού Επιλογή Παραμέτρων SVM: • Κάθε αποθετήριο διαφέρει στη φύση δεδομένων του • Ορισμός ενός grid παραμέτρων για ευελιξία • Εύρεση βέλτιστου συνδυασμού με 5-fold Cross Validation Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  12. 12. Χαρακτηριστικά Αξιολόγησης Συνεισφοράς (3/5) 26.3.2020 12 Labels “Κατά πόσο ένας dev τείνει να ασχολείται με issues που φέρουν συγκεκριμένο label;” Αξιολόγηση dev με βάση τα labels: • Μέτρηση ενασχόλησης ανά label στα παρελθοντικά issues • Ο dev λαμβάνει σκορ ίσο με τη σχετική συχνότητα εμφάνισής του σε αυτό το label (αριθμός στο [0, 1]) • Σε περίπτωση που ένα issue φέρει πολλαπλά labels, τότε αθροίζουμε τις συχνότητες του dev στο κάθε label, και εφαρμόζουμε το προηγούμενο βήμα. Labels Contribution Example Label Dev A Dev B Dev C “Interface” 5 10 15 Score 5/30 10/30 15/30 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  13. 13. Χαρακτηριστικά Αξιολόγησης Συνεισφοράς (4/5) 26.3.2020 13 Comments “Πόσο συνδέονται τα παρελθοντικά issues στα οποία έχει σχολιάσει ο dev με το υπό εξέταση issue;” Αξιολόγηση dev με βάση τα comments: • Ανακτώνται τα issues που έχει σχολιάσει ο dev σε παράθυρο 365 ημερών • Υπολογίζεται η ομοιότητα συνημιτόνου των τίτλων των σχολιασθέντων issues με τον τίτλο του νέου issue • Εξάγεται η μέση τιμή ομοιότητας συνημιτόνου • Η τιμή αυτή αποτελεί σκορ του dev από τα comments (ανήκει στο [0, 1]) Μετρική ομοιότητας συνημιτόνου: Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  14. 14. Χαρακτηριστικά Αξιολόγησης Συνεισφοράς (5/5) 26.3.2020 14 Commits “Κατά πόσο μπορούν τα παρελθοντικά commits ενός developer να συνδεθούν με το υπό εξέταση issue;” Αξιολόγηση dev με βάση τα commits: • Ανακτώνται τα commits που έχει κάνει ο dev σε παράθυρο 365 ημερών • Υπολογίζεται η ομοιότητα συνημιτόνου του commit message των commits με τον τίτλο του νέου issue • Εξάγεται η μέγιστη τιμή ομοιότητας συνημιτόνου. • Η τιμή αυτή αποτελεί σκορ του dev από τα commits (ανήκει στο [0, 1]) Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  15. 15. Συνολική Συνεισφορά 26.3.2020 15 • Η τελική ανάθεση issue βασίζεται στα 5 χαρακτηριστικά: title, body, labels, comments, commits. • Στόχος να αυξήσουμε την εμπιστευτικότητα με την οποία το σύστημα αναθέτει ένα issue • Για κάθε dev υπολογίζονται ο μέσος όρος των σκορ που λαμβάνει • Επιλέγεται εκείνος-εκείνη που συγκεντρώνει το μεγαλύτερο συνολικό σκορ Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  16. 16. Βελτιστοποίηση Υπολογισμού Συνεισφοράς 26.3.2020 16 “Μήπως υπάρχει διαφορετική αντιμετώπιση, και συνεπώς διαφορετική βαρύτητα χαρακτηριστικών ανά αποθετήριο;” • Στόχος να προσαρμόσουμε κατάλληλα την βαρύτητα των 5 χαρακτηριστικών, αντί για το μέσο όρο τους • Τη δουλειά αυτή αναλαμβάνει ένα fully-connected νευρωνικό δίκτυο • Είσοδος: τα σκορ του dev • Έξοδος: η καταλληλότητα ανάθεσης στο [0,1] Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  17. 17. Generalization and Hyperparameters Selection 26.3.2020 17 • Δυσκολία: Ένα νευρωνικό που να γενικεύει όχι σε ένα, αλλά σε πολλά αποθετήρια! • Αντιμετώπιση: Reconfigurable αρχιτεκτονική νευρωνικού δικτύου  Ορισμός ενός σετ μεταβλητών παραμέτρων ⇒ Επιλογή των βέλτιστων με αναζήτηση πλέγματος και 5-fold Cross Validation  Ορισμός ενός σετ σταθερών παραμέτρων Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  18. 18. Αποτελέσματα & Αξιολόγηση 26.3.2020 18 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  19. 19. Διαδικασία Εκπαίδευσης & Αξιολόγησης 26.3.2020 19 Configurations προς Αξιολόγηση: • “Title+Body” • “Title+Body+Labels” • “Title+Body+Labels+Comments” • “Title+Body+Labels+Comments+Commits” • “Optimized Model” Αυξητική Μάθηση: • Χρονική διάταξη των issues • Τα πρώτα 70% για training και 30% testing • Διαχωρισμός του testing σε 6 ισομήκη folds • Πρόβλεψη στο επόμενο fold • Ενσωμάτωση στο training set και συνέχεια στο επόμενο fold Μετρικές Αξιολόγησης: 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑇𝑃 + 𝑇𝑁 𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁 𝐹1_𝑆𝑐𝑜𝑟𝑒 = 2 × 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∙ 𝑟𝑒𝑐𝑎𝑙𝑙 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑟𝑒𝑐𝑎𝑙𝑙 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  20. 20. Κατανομή Developers στα προς Ανάλυση Αποθετήρια 26.3.2020 20 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  21. 21. Επίδραση του πλήθους των Developers 26.3.2020 21 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  22. 22. Κατανομή Απόδοσης των Configurations - Accuracy 26.3.2020 22 Ποσοστό παρατηρήσεων πάνω από 0.6: • 27% για το ‘title+body’ • 28% για το ‘title+body+labels’ • 28% για το ‘title+body+labels+comments’ • 42% για το ‘title+body+labels+comments+commits’ • 46% για το ‘optimized model’ Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  23. 23. Κατανομή Απόδοσης των Configurations – F1-Score 26.3.2020 23 Ποσοστό παρατηρήσεων πάνω από 0.6: • 23% για το ‘title+body’ • 25% για το ‘title+body+labels’ • 29% για το ‘title+body+labels+comments’ • 40% για το ‘title+body+labels+comments+commits’ • 43% για το ‘optimized model’ Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  24. 24. Ποσοστό Καλύτερης Δυνατής Τιμής 26.3.2020 24 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  25. 25. Συμπεράσματα & Μελλοντική Εργασία 26.3.2020 25 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  26. 26. Συμπεράσματα 26.3.2020 26 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού  Η ανάλυση της δραστηριότητας ενός developer δύναται να αξιοποιηθεί στην αυτοματοποίηση ανάθεσης εργασιών  Πληροφορίες από διαφορετικές πηγές μπορούν να ενισχύσουν την εμπιστευτικότητα του συστήματος  Τα πειράματα δείχνουν ότι το σύστημα ανταποκρίνεται ικανοποιητικά σε ένα μεγάλο εύρος αποθετηρίων  Το σύστημα μπορεί να αποτελέσει χρήσιμο εργαλείο στα πλαίσια της ανάπτυξης έργων λογισμικού.
  27. 27. Μελλοντική Εργασία 26.3.2020 27  Εξαγωγή χαρακτηριστικών από αρχεία κώδικα  Fine-tuning ή επαναπροσδιορισμός του στρώματος βελτιστοποίησης  Βελτίωση διαδικασίας εκπαίδευσης (issue-προς-issue εκπαίδευση)  Επέκταση με User Interface και ανάθεση σε πραγματικό χρόνο Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
  28. 28. Ευχαριστίες 26.3.2020 28 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού Θα ήθελα να ευχαριστήσω θερμά: • Τον κ. Συμεωνίδη Ανδρέα • Τους Διαμαντόπουλο Θέμη και Παπαμιχαήλ Μιχάλη • Όλους εσάς που παρακολουθήσατε την παρουσίαση!
  29. 29. 26.3.2020 29 Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού Ευχαριστώ για την προσοχή σας  Ερωτήσεις;

×