Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Georgia Pantalona

46 views

Published on

Identifying software engineer profiles using data extracted from version control systems

Published in: Education
  • Be the first to comment

  • Be the first to like this

Georgia Pantalona

  1. 1. Αναγνώριση Προφίλ Μηχανικών Λογισμικού από Δεδομένα Συστημάτων Ελέγχου Εκδόσεων issel ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΥΠΟΛΟΓΙΣΜΩΝ Γεωργία Πανταλώνα - 8537 Αναπληρωτής Καθηγητής Ανδρέας Συμεωνίδης Μεταδιδακτορικός Ερευνητής Θεμιστοκλής Διαμαντόπουλος Υποψήφιος διδάκτορας Μιχάλης Παπαμιχαήλ
  2. 2. Εισαγωγή – ο ορισμός του προβλήματος • Ανάγκη διαφορετικών δεξιοτήτων για διαφορετικούς ρόλους • Ανάγκη αναγνώρισης αυτών των δεξιοτήτων • Κλασικές μέθοδοι δεν είναι αρκετές • Αυξημένη χρήση συστημάτων ελέγχου εκδόσεων 19-Jul-19 Πανταλώνα Γεωργία 2
  3. 3. Εισαγωγή – σκοπός της εργασίας • Δημιουργία μοντέλου για την αντικειμενική αναγνώριση δεξιοτήτων των μηχανικών • Συγκριτική αξιολόγηση των δεξιοτήτων σε ένα σύνολο μηχανικών • Δημιουργία εφαρμογής που θα παρουσιάζονται τα αποτελέσματα 19-Jul-19 Πανταλώνα Γεωργία 3
  4. 4. Θεωρητικό Υπόβαθρο 19-Jul-19 Πανταλώνα Γεωργία 4
  5. 5. Μοντέλα ανάπτυξης λογισμικού 19-Jul-19 Πανταλώνα Γεωργία 5 • Κλασικές μέθοδοι πχ.Μοντέλοκαταρράκτη,Επαναληπτικήμέθοδος • Ευέλικτες μέθοδοι πχ.SCRUM,ExtremeProgrammingκλπ. • DevOps προσέγγιση • Για κάθε διαφορετική προσέγγιση χρειάζονται άτομα με διαφορετικές δεξιότητες για διαφορετικούς ρόλους Πχ.Developer,Operationsmanager,Projectmanager,Analyst,Qualitymanager,tester
  6. 6. Πλατφόρμα GitHub • Πλατφόρμα διατήρησης και ανάπτυξης λογισμικού • Διατήρηση αρχείου αλλαγών • Υποστήριξη συνεργασίας στο ίδιο project από απόσταση • Υποστήριξη σχολίων και δημιουργία issue 19-Jul-19 Πανταλώνα Γεωργία 7
  7. 7. Παρόμοιες έρευνες • Πολλές έρευνες για την αναγνώριση δεξιοτήτων • Οπτικοποίηση τεχνικών δεξιοτήτων σε tag cloud • Οπτικό βιογραφικό με δεδομένα από πλατφόρμες διατήρησης και ανάπτυξης λογισμικού και πλατφόρμες με τεχνικές ερωτήσεις και απαντήσεις !!Κανένα με συγκριτική αξιολόγηση 19-Jul-19 Πανταλώνα Γεωργία 8
  8. 8. Υλοποίηση 19-Jul-19 Πανταλώνα Γεωργία 9
  9. 9. Επισκόπηση υλοποίησης 19-Jul-19 Πανταλώνα Γεωργία 10
  10. 10. Συλλογή και οργάνωση δεδομένων 19-Jul-19 Πανταλώνα Γεωργία 11 • Συλλογή δεδομένων από το API του GitHub • Δεδομένα από • Commit • Issue • Comments • Userinformation Οργάνωση δεδομένων User_name commits committed Sha.json Commits authored Sha.json Issues Commented id.json Issues authored id.json Issues assigned id.json issues mentions id.json Comments on issues id.json Comments on commits id.json Repositories owned id.json user info.json user stats.json
  11. 11. Ανάλυση δεδομένων συνεισφοράς • Αναγνώριση πέντε κατηγοριών δεξιοτήτων • Γενική Παραγωγικότητα • Παραγωγικότητα σε θέματαdevelopment • Παραγωγικότητα σε θέματαoperations • Δεξιότητεςσε θέματαprojectmanagement • Δεξιότητεςσε θέματαquality και testing • Δημιουργία μετρικών που μπορούν να αντικατοπτρίσουν τις παραπάνω δεξιότητες 19-Jul-19 Πανταλώνα Γεωργία 12
  12. 12. Ανάλυση δεδομένων συνεισφοράς Παραδείγματα μετρικών 19-Jul-19 Πανταλώνα Γεωργία 13 Γενική Παραγωγικότητα: Μέση συχνότητα δραστηριοτήτων τον μήνα, Μέσος αριθμός project τον μήνα Dev Παραγωγικότητα: % των pull request του χρήστη που έγιναν merge, Μέσος όρος αρχείων που άλλαξαν σε ένα commit Ops Παραγωγικότητα: % σχολίων με λέξη σχετική́ με το documentation, Μέσος χρόνος απάντησης σε @αναφορά́ Project management: % σχολίων με λέξεις σχετική́ με project management, % issues με label Quality & Testing: % σχολίων που περιέχουν αναφορά́ σε issue, % αρχείων σχετικών με testing που έκανε commit ο χρήστης
  13. 13. Μοντέλο συγκριτικής αξιολόγησης • Συγκριτική αξιολόγηση μετρικών • Κατηγοριοποίηση μετρήσεων των μηχανικών ανάλογα με το σύνολο των δεδομένων 19-Jul-19 Πανταλώνα Γεωργία 14 Outlier elimination Normalisa- tion Profile assignment Metric limit assignment Διαδικασία που ακολουθήθηκε για κάθε μετρική
  14. 14. Πειραματικά αποτελέσματα • Για την δημιουργία του συστήματος χρησιμοποιήθηκαν 99 χρήστες. Αυτοί οι χρήστες έπρεπε να έχουν 10 repositories, 20 ακόλουθους και πάνω από 100 commits. • Το τελικό αποτέλεσμα των πειραμάτων είναι ένα json αρχείο με όλες τις μετρικές, για κάθε μετρική περιέχεται: • Όνομα μετρικής • Κατηγορία δεξιοτήτων • Προφίλ (ascending/descending/middle) 19-Jul-19 Πανταλώνα Γεωργία 15 • Score(good/average/bad) • Πραγματικήτιμή • Κανονικοποιημένη τιμή
  15. 15. Οπτικοποίηση αποτελεσμάτων - mockup 19-Jul-19 Πανταλώνα Γεωργία 16
  16. 16. Οπτικοποίηση αποτελεσμάτων - mockup 19-Jul-19 Πανταλώνα Γεωργία 17
  17. 17. Επίδειξη χρήσης προφίλ με GUI 19-Jul-19 Πανταλώνα Γεωργία 18
  18. 18. Αξιολόγηση & Συμπεράσματα 19-Jul-19 Πανταλώνα Γεωργία 19
  19. 19. Αξιολόγηση I. Αναγνώριση δεξιοτήτων μηχανικών από το προφίλ τους II. Κατηγοριοποίηση των μηχανικών σε προφίλ Dev Ops DevOps Ανάλογα με τις δεξιότητες τους 19-Jul-19 Πανταλώνα Γεωργία 20
  20. 20. Συμπεράσματα 19-Jul-19 Πανταλώνα Γεωργία 21 • Η αναγνώριση δεξιοτήτων από τη συνεισφορά των μηχανικών σε project είναι δυνατόν να γίνει • Η αναγνώριση και κατηγοριοποίηση των μηχανικών σε προφίλ με βάση τις δεξιότητες είναι εφικτή • Διάφορες παράμετροι επηρεάζουν το επίπεδο δεξιοτήτων των μηχανικών  τα αποτελέσματα που φαίνονται στο προφίλ δεν είναι απόλυτα
  21. 21. Μελλοντική εργασία • Βελτίωση μετρικών • Βελτίωσηανάλυσηςσχολίωνκαι μνημάτων • Αξιολόγησηποιότηταςκώδικα που παράγει ο μηχανικός • Μετρικές που αντικατοπτρίζουν δεξιότητες για άλλους ρόλους (πχ database administrator, analyst) 19-Jul-19 Πανταλώνα Γεωργία 22 • Βελτίωση σετ δεδομένων • περισσότεροι χρήστες, • δεδομένα από περισσότερες πλατφόρμες • Βελτίωση εφαρμογής • Ταχύτερααποτελέσματα • Γρηγορότερη προσπέλαση αυτών
  22. 22. Ευχαριστίες Θα ήθελα να ευχαριστήσω τους επιβλέποντες της διπλωματικής μου εργασίας, τον Αναπληρωτή Καθηγητή κ. Συμεωνίδη Ανδρέα καθώς και τον μεταδιδακτορικού ερευνητή Θεμιστοκλή Διαμαντόπουλο και τον υποψήφιου διδάκτορα Μιχάλη Παπαμιχαήλ για την εμπιστοσύνη που μου έδειξαν, τη βοήθειά τους και την καθοδήγηση που μου παρείχαν. 19-Jul-19 Πανταλώνα Γεωργία 23
  23. 23. Ευχαριστώ για την προσοχή σας 19-Jul-19 Πανταλώνα Γεωργία 24
  24. 24. Παραδείγματα πιθανών συμπερασμάτων από μετρικές 19-Jul-19 Πανταλώνα Γεωργία 25 Μετρική Συμπέρασμα % issue που έκλεισε ο χρήστης με ταμπέλα σχετική με bugs Ασχολείται ενεργά με την επίλυση προβλημάτων που πολλές φορές υπάρχουν και ως ανοιχτά issue % issues με label Προσπαθεί να έχει οργανωμένο το project του και κατηγοριοποιημένα τα προβλήματα που συναντάει. Μέσος χρόνος απάντησης σε @αναφορά Απαντάει γρήγορα ή όχι σε σχόλια που έχουν αναφέρει το user name του. Αξιολογήσουμε τις επικοινωνιακές του δεξιότητες % των pull request του χρήστη που έγιναν merge Βλέπουμε κατά πόσο οι προτάσεις και ο κώδικας του χρήστη είναι αποδεκτός από τον ιδιοκτήτη του εκάστοτε project.
  25. 25. Διαγραφή εξωκείμενων τιμών • Διαγραφή τιμών που είναι εκτός του 98ου εκατοστημορίου • Πχ. Η τιμή 70 στα παρακάτω δεδομένα 19-Jul-19 Πανταλώνα Γεωργία 26
  26. 26. Κανονικοποίηση των μετρικών • Ελάχιστη και μέγιστη τιμή διαφορετική του 0 και 100 αντίστοιχα • Ανάγκη κανονικοποίησης για δυνατότητα σύγκρισης 19-Jul-19 Πανταλώνα Γεωργία 27 𝜅𝛼𝜈𝜊𝜈𝜄𝜅𝜊𝜋𝜊𝜄𝜂𝜇έ𝜈𝜂 𝜏𝜄𝜇ή = 𝛼𝜌𝜒𝜄𝜅ή 𝜏𝜄𝜇ή−𝜀𝜆ά𝜒𝜄𝜎𝜏𝜂 𝜏𝜄𝜇ή 𝜎𝜐𝜈ό𝜆𝜊𝜐 𝜇έ𝛾𝜄𝜎𝜏𝜂 𝜏𝜄𝜇ή 𝜎𝜐𝜈ό𝜆𝜊𝜐−𝜀𝜆ά𝜒𝜄𝜎𝜏𝜂 𝜏𝜄𝜇ή 𝜎𝜐𝜈ό𝜆𝜊𝜐
  27. 27. Παραδείγματα αιτιολόγησης επιλογής προφίλ 19-Jul-19 Πανταλώνα Γεωργία 28 Μετρική Προφίλ Αιτιολόγηση % των pull request του χρήστη που έγιναν merge Ascending Όσο περισσότερα pull request έγιναν merge τόσο ποιοτικότερος κώδικας Μέση χρονική διαφορά μεταξύ την ανάθεση και το κλείσιμο ενός issue από το χρήστη Descending Όσο περισσότερο χρόνο κάνει τόσο λιγότερο αποδοτικός είναι Μέσος αριθμός απαντήσεων σε σχόλια Middle Αν είναι πολλά τότε πιθανόν να μην εξηγεί ότι χρειάζεται καλά, ενώ αν είναι λίγα τότε δεν υπάρχει αρκετό υλικό για να κατανοήσουμε τις επικοινωνιακές του δεξιότητες
  28. 28. Δημιουργία τελικών σκορ • Ascending: 𝑣𝑎𝑙𝑢𝑒 = 𝑣𝑎𝑙𝑢𝑒 • Descending: 𝑣𝑎𝑙𝑢𝑒 = 100 − 𝑣𝑎𝑙𝑢𝑒_𝑖𝑛𝑖𝑡𝑖𝑎𝑙 • Middle: 𝑣𝑎𝑙𝑢𝑒 = 100 −2 ∗ |50 − 𝑣𝑎𝑙𝑢𝑒_𝑖𝑛𝑖𝑡𝑖𝑎𝑙 | 19-Jul-19 Πανταλώνα Γεωργία 29
  29. 29. Παραδείγματα ιστογραμμάτων μετρικών 19-Jul-19 Πανταλώνα Γεωργία 30 • Μέσω αυτών έγινε • η αναγνώριση δυνατότητας συγκριτικής αξιολόγησης • η αναγνώριση διαχωρισμού των χρηστών σε 2ή 3κατηγορίες
  30. 30. Παράδειγμα τελικού json αρχείου 19-Jul-19 Πανταλώνα Γεωργία 31
  31. 31. Παραδείγματα αιτιολόγησης επιλογής τύπου γραφήματος 19-Jul-19 Πανταλώνα Γεωργία 32 Μετρική Γράφημα Αιτιολόγηση μέσος αριθμός δραστηριοτήτων (comments, commits. Issues) stacked area chart 1. Ποιες χρονικές περίοδοι ήταν πιο παραγωγικές 2. Τι είδους δραστηριότητες απασχολείται περισσότερο % σχολίων που περιέχουν λέξεις σχετικές με testing Bar chart Εύκολη αξιολόγηση αν είναι αποδοτικός στη συγκεκριμένη μετρική Ποσοστά παραγωγής λογισμικού σε κάθε γλώσσα προγραμματισμού Stacked bar chart Αναγνώριση σε ποιες γλώσσες υπάρχει εμπειρία
  32. 32. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού -1 19-Jul-19 Πανταλώνα Γεωργία 33 • Προφίλ devOps • Χαρακτηριστικά • Καλέςεπικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού και ελέγχου • Καλέςδεξιότητες σε project management
  33. 33. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού - 2 19-Jul-19 Πανταλώνα Γεωργία 34 • Προφίλ devOps • Χαρακτηριστικά • Καλές επικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού • Καλέςδεξιότητες ελέγχου • Καλέςδεξιότητες σε project management
  34. 34. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού - 3 19-Jul-19 Πανταλώνα Γεωργία 35 • Προφίλ devOps • Χαρακτηριστικά • Καλέςεπικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού • Καλέςδεξιότητες ελέγχου • Καλέςδεξιότητες σε project management
  35. 35. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού - 4 19-Jul-19 Πανταλώνα Γεωργία 36 • Προφίλ devOps • Χαρακτηριστικά • Καλέςεπικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού • Καλές δεξιότητες ελέγχου • Καλέςδεξιότητες σε project management
  36. 36. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού - 5 19-Jul-19 Πανταλώνα Γεωργία 37 • Προφίλ devOps • Χαρακτηριστικά • Καλέςεπικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού • Καλέςδεξιότητες ελέγχου • Καλές δεξιότητες σε project management

×