SlideShare a Scribd company logo
1 of 22
Ανάπτυξη Εφαρμογής
Προφίλ Μηχανικών Λογισμικού
από Δεδομένα Αποθετηρίων
Λογισμικού Ανοιχτού Κώδικα
Βεγήρης Νικόλαος
ΑΕΜ: 7659
Επιβλέπων:
Ανδρέας Λ. Συμεωνίδης
Καθηγητής Α.Π.Θ
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής και Υπολογιστών
Εργαστήριο Επεξεργασίας Πληροφορίας & Υπολογισμών
Κίνητρο
 Διευρυμένο τοπίο του Λογισμικού Ανοιχτού Κώδικα (OSS) παράγεται πλούτος δεδομένων.
 Η σωστή αξιοποίησή αυτών των δεδομένων μπορεί να δώσει σημαντική πληροφορία για τους μηχανικούς
λογισμικού:
 Συνεισφορά στο OSS
 Τομείς εξειδίκευσης
 Συμμετοχή σε έργα
 Πρότυπα εργασίας
 Συνεργασίες
 Τα τρέχοντα εργαλεία παρουσιάζουν αποσπασματική εικόνα συνήθως και περιορίζονται σε συγκεκριμένες
πλατφόρμες ή έργα.
Προκλήσεις
 Πως μπορούμε να δημιουργήσουμε μια ολοκληρωμένη αναπαράσταση των
δεξιοτήτων και της εμπειρίας μηχανικών στα διάφορα αποθετήρια και έργα
λογισμικού;
 Πως μπορούμε να εξάγουμε ωφέλιμη πληροφορία, πέραν των τεχνικών
δεξιοτήτων από τη δραστηριότητα των μηχανικών λογισμικού;
Στόχοι
 Δημιουργία ενός εργαλείου που με βάση το ιστορικό των commits:
 Αξιοποιεί την πλειοψηφία των αποθετηρίων λογισμικού
 Αναλύει τη συνεισφορά των μηχανικών λογισμικού στο OSS
 Παρουσιάζει τεχνικές δεξιότητες, συνεργασίες και μοτίβα εργασίας
 Το εργαλείο έχει στόχο να απευθύνεται σε ένα ευρύ κοινό:
 Υπεύθυνοι προσλήψεων για εντοπισμό συνεργατών
 Ερευνητές για ανάλυση προτύπων συνεισφοράς
 Μεμονωμένοι μηχανικοί για αυτοαξιολόγηση
Πηγή Δεδομένων
 Η εφαρμογή βασίζεται στο εκτεταμένο σύνολο δεδομένων
που παρέχει η υποδομή World of Code (WoC).
 Συγκεντρώνει, οργανώνει και διασταυρώνει δεδομένα από
σχεδόν όλα τα δημόσια συστήματα ελέγχου εκδόσεων.
 Περιλαμβάνει τεράστιο αριθμό αποθετηρίων Git και τα
κύρια στοιχεία είναι:
 Commits (αντιπροσωπεύουν αλλαγές στον πηγαίο
κώδικα)
 Trees (υποδεικνύουν τη δομή των φακέλων)
 Blobs ( αντιπροσωπεύουν εκδόσεις των source files)
 Tags ( χαρακτηρίζουν συγκεκριμένα commits ως
εκδόσεις )
 Τα 173M Repositories περιέχουν
πάνω από:
 3.1B commits
 12.6B trees
 12.5B blobs
Πηγή Δεδομένων
 Αξιοποιήθηκαν δύο βάσεις δεδομένων που παρέχει το WoC.
 Η MongoDB προσφέρει συλλογές με συνοπτικά στατιστικά στοιχεία για τους μηχανικούς και
τα έργα λογισμικού, που έχουν υπολογιστεί και αποθηκευτεί για εύκολη πραγματοποίηση
ερωτημάτων στη βάση.
 Η ClickHouseDB παρέχει πίνακες που σχετίζονται με τα συγκεκριμένα commits και blobs.
Αντιστοίχιση των commits με:
 Χρόνο
 Συγγραφέα
 Έργο Λογισμικού
 Commit Message
 Blobs
Ανάπτυξη εφαρμογής
Απόκτηση
Δεδομένων
Επεξεργασία
Δεδομένων
Δημιουργία
Προφίλ
Παρουσίαση
 Δεδομένα από MongoDB,
ClickHouseDB και GitHub API
 Επεξεργασία και ανάλυση δεδομένων
και χρήση μοντέλων μηχανικής
μάθησης.
 Δημιουργία Προφίλ μηχανικών
λογισμικού.
 Οπτικοποίηση των αποτελεσμάτων
Γλώσσες και
βιβλιοθήκες
 Πίνακας με όλα τα imports στα commits.
 Pie-chart με γλώσσες προγραμματισμού σε όλα τα commits.
Ιστορικό
Έργων
Λογισμικού
 Λίστα με τα έργα λογισμικού που έχει συμμετοχή με commit.
 Deforked Projects
 Μετρητής commit για κάθε έργο.
 Σύνδεσμος για προβολή «Περιληπτικών Στοιχείων Έργου»
Commits
ανά Ημέρα
 Κατανομή των commits ανά ημέρα της εβδομάδος
 Προσαρμοσμένο στο timezone που υλοποιήθηκε το commit
 Πληροφορία για τις εργασιακές συνήθειες του μηχανικού και
τα πρότυπα παραγωγικότητάς του
 Κατανόηση ημερών μέγιστης και ελάχιστης παραγωγικότητας
που βοηθά στον προγραμματισμό συνεργατικών
δραστηριοτήτων
Γλώσσες Προγραμματισμού
με την πάροδο του χρόνου
 Παρέχει πληροφορία σχετικά με την
εξέλιξη της προτίμησης κάποιας
γλώσσας προγραμματισμού με την
πάροδο του χρόνου
 Μπορούμε να παρακολουθήσουμε
την πορεία εκμάθησης και τη
συνέπεια στη χρήση ορισμένων
γλωσσών
 Σε ποιες γλώσσες γράφει τη δεδομένη
περίοδο;
 Κατανόηση της επάρκειας σε γλώσσες
Γράφημα
Συνεργασίας
 Απεικονίζει τις αλληλεπιδράσεις με άλλους
συμμετέχοντες σε διάφορα έργα ανοιχτού
κώδικα.
 Κάθε κόμβος είναι ένας μηχανικός.
 Οι ακμές αντιπροσωπεύουν τη συνεισφορά
με commit σε κοινό έργο.
 Τα βάρη είναι η συχνότητα κοινής
συνεισφοράς.
 Αξιολογώντας το δίκτυο, μπορούμε να
βγάλουμε συμπεράσματα για τις συνεργασίες
και τη συμμετοχή του μηχανικού στην
κοινότητα.
Ρόλος και Εργασίες
 Προβλέψεις μοντέλων μηχανικής μάθησης
 Κάρτα με πρόβλεψη ρόλου εργασίας
 Διάγραμμα ραντάρ με ταξινόμηση των
commits σε κατηγορίες εργασίών
προγραμματισμού.
Μοντέλο Ρόλου Εργασίας
 Ταξινόμηση σε έναν από 5 πιθανούς ρόλους:
 Frontend
 Backend
 Mobile
 DevOps
 Data Scientist
 Χρήση «Πληροφορίας Κειμένου» (ονόματα,
περιγραφές,tags, Readme των έργων που
συμμετέχει)
Μοντέλο Ρόλου Εργασίας
 Labeled dataset: 1337 μηχανικοί λογισμικού σε 5
ρόλους
 Προεπεξεργασία δεδομένων (lowercase, αφαίρεση
stop-words, λημματοποίηση)
 Εξαγωγή χαρακτηριστικών με TF-IDF
 Εκπαίδευση μοντέλου Logistic Regression με
υπερδειγματοληψία για μειονοτικές κλάσεις και
ρύθμιση παραμέτρων Logistic Regression και TF-
IDF.
 80-20 Stratified split και 5-fold cross validation
Metrics Frontend Backend Mobile DevOps Data
Scientist
Precision 0.73 0.51 0.63 0.44 0.76
Recall 0.73 0.63 0.45 0.62 0.81
F1-Score 0.73 0.56 0.53 0.52 0.78
Μοντέλο αναγνώρισης εργασιών
προγραμματισμού
 Χρήση των commit messages από όλα τα commits
 Απόρριψη μη αγγλικών και «μικρών» μηνυμάτων
 Ταξινόμηση του commit message σε εργασίες προγραμματισμού βάσει κανόνων που βασίζονται στο
λεξιλόγιο των κατηγοριών :
 Corrective: Διόρθωση Σφαλμάτων (bug fix, debug)
 Adaptive: Προσαρμογή λογισμικού σε αλλαγές στο περιβάλλον (build, testing, documentation)
 Perfective: Βελτίωση λειτουργικότητας (maintenance, refactoring, indentation, module remove)
 Implementation: Εφαρμογή νέων χαρακτηριστικών/λειτουργιών (feature add, initialization,
module add)
 Non-functional: Μη λειτουργικές ιδιότητες (legal, module remove, merge)
 Other (cross, branch)
Μοντέλο αναγνώρισης εργασιών προγραμματισμού
 Εξαγωγή χαρακτηριστικών με TF-IDF στα commit messages
 Χρησιμοποιήθηκε το σετ που ταξινομήθηκε σε κατηγορίες για
την εκπαίδευση ενός μοντέλου Logistic Regression.
 Η ταξινόμηση των μηνυμάτων commit με confidence
threshold 0.7 στις κατηγορίες που όρισε το σύστημα
κανόνων είχε τα εξής αποτελέσματα
 Η κλάση ‘Unknown’ χρησιμοποιείται για τα μηνύματα που δε
μπορούν να ταξινομηθούν.
Metrics Adaptive Corrective Implement. Non-func. Perfecti
ve
Other Unknown
Precision 0.99 0.98 0.99 0.98 0.98 0.77 0.81
Recall 0.85 0.83 0.91 0.97 0.86 0.48 0.98
F1-Score 0.91 0.90 0.95 0.98 0.92 0.59 0.89
Support 864 444 1185 651 346 21 1636
Video παρουσίαση της εφαρμογής
Ανοιχτά Θέματα και βελτιώσεις
 Εξάρτηση από στατικές βάσεις δεδομένων
 Ανάλυση μόνο του commit history
 Βελτίωση χρόνου δημιουργίας προφίλ και απόκρισης εφαρμογής
 Βελτίωση της προσέγγισης αναγνώρισης εργασιών προγραμματισμού από τα
μηνύματα commit
 Εκπαίδευση μοντέλου ταξινόμησης ρόλων σε μεγαλύτερο σύνολο δεδομένων
Συμπεράσματα
 Αναπτύχθηκε ένα εργαλείο ικανό:
 Να προβάλλει τη συνεισφορά μηχανικών λογισμικού στα διάφορα έργα στο OSS
 Να αναδείξει την εμπειρία τους σε γλώσσες προγραμματισμού και βιβλιοθήκες
 Να παρουσιάσει τις προγραμματιστικές τους συνήθειες
 Να χαρτογραφήσει τις συνεργασίες τους στο OSS
 Να κατηγοριοποιήσει τους ρόλους και τα καθήκοντα που αναλαμβάνουν
 Είναι δυνατή η δημιουργία προφίλ μηχανικών λογισμικού με βάση το ιστορικό των commits
 Μπορεί να παραχθεί χρήσιμη πληροφορία και να παρουσιαστεί με τρόπο κατανοητό και φιλικό προς το
χρήστη
Ευχαριστίες
 Ένα μεγάλο ευχαριστώ στον καθηγητή κ. Ανδρέα Συμεωνίδη για την ευκαιρία
που μου έδωσε να συνεργαστούμε και για τη βοήθεια κατά την εκπόνηση της
εργασίας.
 Στην οικογένειά μου για την υπομονή που και τη συνεχή στήριξη που μου
παρείχαν καθημερινά.
Ευχαριστώ για την προσοχή σας!
Ερωτήσεις;

More Related Content

Similar to Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισµικού Ανοιχτού Κώδικα

Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419ISSEL
 
Thesis.Net Framework Training
Thesis.Net Framework TrainingThesis.Net Framework Training
Thesis.Net Framework Trainingpdalianis
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλISSEL
 
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...ISSEL
 
Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...ISSEL
 
Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Nikos Dimitrakopoulos
 
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGYDATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGYGeorgeDiamandis11
 
Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168ISSEL
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
 
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...ISSEL
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...ISSEL
 
Employing Machine Learning and Intelligent Information Management Techniques ...
Employing Machine Learning and Intelligent Information Management Techniques ...Employing Machine Learning and Intelligent Information Management Techniques ...
Employing Machine Learning and Intelligent Information Management Techniques ...ISSEL
 
Ioannis Loias
Ioannis LoiasIoannis Loias
Ioannis LoiasISSEL
 
12 Multimedia Design Iii
12 Multimedia Design Iii12 Multimedia Design Iii
12 Multimedia Design Iiieretrianews
 
Development of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationISSEL
 
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούISSEL
 
Dontsios Dimitris
Dontsios DimitrisDontsios Dimitris
Dontsios DimitrisISSEL
 
Konstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationKonstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationISSEL
 

Similar to Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισµικού Ανοιχτού Κώδικα (20)

Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419
 
Thesis.Net Framework Training
Thesis.Net Framework TrainingThesis.Net Framework Training
Thesis.Net Framework Training
 
KanoutasThomasThesis
KanoutasThomasThesisKanoutasThomasThesis
KanoutasThomasThesis
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ Παπαμιχαήλ
 
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
 
Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...
 
Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]
 
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGYDATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
 
Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
 
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
 
Employing Machine Learning and Intelligent Information Management Techniques ...
Employing Machine Learning and Intelligent Information Management Techniques ...Employing Machine Learning and Intelligent Information Management Techniques ...
Employing Machine Learning and Intelligent Information Management Techniques ...
 
Παρουσίαση Smart
Παρουσίαση SmartΠαρουσίαση Smart
Παρουσίαση Smart
 
Ioannis Loias
Ioannis LoiasIoannis Loias
Ioannis Loias
 
12 Multimedia Design Iii
12 Multimedia Design Iii12 Multimedia Design Iii
12 Multimedia Design Iii
 
Development of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous Integration
 
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
 
Dontsios Dimitris
Dontsios DimitrisDontsios Dimitris
Dontsios Dimitris
 
Konstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationKonstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenation
 

More from ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...ISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ISSEL
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...ISSEL
 

More from ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
 

Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισµικού Ανοιχτού Κώδικα

  • 1. Ανάπτυξη Εφαρμογής Προφίλ Μηχανικών Λογισμικού από Δεδομένα Αποθετηρίων Λογισμικού Ανοιχτού Κώδικα Βεγήρης Νικόλαος ΑΕΜ: 7659 Επιβλέπων: Ανδρέας Λ. Συμεωνίδης Καθηγητής Α.Π.Θ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας & Υπολογισμών
  • 2. Κίνητρο  Διευρυμένο τοπίο του Λογισμικού Ανοιχτού Κώδικα (OSS) παράγεται πλούτος δεδομένων.  Η σωστή αξιοποίησή αυτών των δεδομένων μπορεί να δώσει σημαντική πληροφορία για τους μηχανικούς λογισμικού:  Συνεισφορά στο OSS  Τομείς εξειδίκευσης  Συμμετοχή σε έργα  Πρότυπα εργασίας  Συνεργασίες  Τα τρέχοντα εργαλεία παρουσιάζουν αποσπασματική εικόνα συνήθως και περιορίζονται σε συγκεκριμένες πλατφόρμες ή έργα.
  • 3. Προκλήσεις  Πως μπορούμε να δημιουργήσουμε μια ολοκληρωμένη αναπαράσταση των δεξιοτήτων και της εμπειρίας μηχανικών στα διάφορα αποθετήρια και έργα λογισμικού;  Πως μπορούμε να εξάγουμε ωφέλιμη πληροφορία, πέραν των τεχνικών δεξιοτήτων από τη δραστηριότητα των μηχανικών λογισμικού;
  • 4. Στόχοι  Δημιουργία ενός εργαλείου που με βάση το ιστορικό των commits:  Αξιοποιεί την πλειοψηφία των αποθετηρίων λογισμικού  Αναλύει τη συνεισφορά των μηχανικών λογισμικού στο OSS  Παρουσιάζει τεχνικές δεξιότητες, συνεργασίες και μοτίβα εργασίας  Το εργαλείο έχει στόχο να απευθύνεται σε ένα ευρύ κοινό:  Υπεύθυνοι προσλήψεων για εντοπισμό συνεργατών  Ερευνητές για ανάλυση προτύπων συνεισφοράς  Μεμονωμένοι μηχανικοί για αυτοαξιολόγηση
  • 5. Πηγή Δεδομένων  Η εφαρμογή βασίζεται στο εκτεταμένο σύνολο δεδομένων που παρέχει η υποδομή World of Code (WoC).  Συγκεντρώνει, οργανώνει και διασταυρώνει δεδομένα από σχεδόν όλα τα δημόσια συστήματα ελέγχου εκδόσεων.  Περιλαμβάνει τεράστιο αριθμό αποθετηρίων Git και τα κύρια στοιχεία είναι:  Commits (αντιπροσωπεύουν αλλαγές στον πηγαίο κώδικα)  Trees (υποδεικνύουν τη δομή των φακέλων)  Blobs ( αντιπροσωπεύουν εκδόσεις των source files)  Tags ( χαρακτηρίζουν συγκεκριμένα commits ως εκδόσεις )  Τα 173M Repositories περιέχουν πάνω από:  3.1B commits  12.6B trees  12.5B blobs
  • 6. Πηγή Δεδομένων  Αξιοποιήθηκαν δύο βάσεις δεδομένων που παρέχει το WoC.  Η MongoDB προσφέρει συλλογές με συνοπτικά στατιστικά στοιχεία για τους μηχανικούς και τα έργα λογισμικού, που έχουν υπολογιστεί και αποθηκευτεί για εύκολη πραγματοποίηση ερωτημάτων στη βάση.  Η ClickHouseDB παρέχει πίνακες που σχετίζονται με τα συγκεκριμένα commits και blobs. Αντιστοίχιση των commits με:  Χρόνο  Συγγραφέα  Έργο Λογισμικού  Commit Message  Blobs
  • 7. Ανάπτυξη εφαρμογής Απόκτηση Δεδομένων Επεξεργασία Δεδομένων Δημιουργία Προφίλ Παρουσίαση  Δεδομένα από MongoDB, ClickHouseDB και GitHub API  Επεξεργασία και ανάλυση δεδομένων και χρήση μοντέλων μηχανικής μάθησης.  Δημιουργία Προφίλ μηχανικών λογισμικού.  Οπτικοποίηση των αποτελεσμάτων
  • 8. Γλώσσες και βιβλιοθήκες  Πίνακας με όλα τα imports στα commits.  Pie-chart με γλώσσες προγραμματισμού σε όλα τα commits.
  • 9. Ιστορικό Έργων Λογισμικού  Λίστα με τα έργα λογισμικού που έχει συμμετοχή με commit.  Deforked Projects  Μετρητής commit για κάθε έργο.  Σύνδεσμος για προβολή «Περιληπτικών Στοιχείων Έργου»
  • 10. Commits ανά Ημέρα  Κατανομή των commits ανά ημέρα της εβδομάδος  Προσαρμοσμένο στο timezone που υλοποιήθηκε το commit  Πληροφορία για τις εργασιακές συνήθειες του μηχανικού και τα πρότυπα παραγωγικότητάς του  Κατανόηση ημερών μέγιστης και ελάχιστης παραγωγικότητας που βοηθά στον προγραμματισμό συνεργατικών δραστηριοτήτων
  • 11. Γλώσσες Προγραμματισμού με την πάροδο του χρόνου  Παρέχει πληροφορία σχετικά με την εξέλιξη της προτίμησης κάποιας γλώσσας προγραμματισμού με την πάροδο του χρόνου  Μπορούμε να παρακολουθήσουμε την πορεία εκμάθησης και τη συνέπεια στη χρήση ορισμένων γλωσσών  Σε ποιες γλώσσες γράφει τη δεδομένη περίοδο;  Κατανόηση της επάρκειας σε γλώσσες
  • 12. Γράφημα Συνεργασίας  Απεικονίζει τις αλληλεπιδράσεις με άλλους συμμετέχοντες σε διάφορα έργα ανοιχτού κώδικα.  Κάθε κόμβος είναι ένας μηχανικός.  Οι ακμές αντιπροσωπεύουν τη συνεισφορά με commit σε κοινό έργο.  Τα βάρη είναι η συχνότητα κοινής συνεισφοράς.  Αξιολογώντας το δίκτυο, μπορούμε να βγάλουμε συμπεράσματα για τις συνεργασίες και τη συμμετοχή του μηχανικού στην κοινότητα.
  • 13. Ρόλος και Εργασίες  Προβλέψεις μοντέλων μηχανικής μάθησης  Κάρτα με πρόβλεψη ρόλου εργασίας  Διάγραμμα ραντάρ με ταξινόμηση των commits σε κατηγορίες εργασίών προγραμματισμού.
  • 14. Μοντέλο Ρόλου Εργασίας  Ταξινόμηση σε έναν από 5 πιθανούς ρόλους:  Frontend  Backend  Mobile  DevOps  Data Scientist  Χρήση «Πληροφορίας Κειμένου» (ονόματα, περιγραφές,tags, Readme των έργων που συμμετέχει)
  • 15. Μοντέλο Ρόλου Εργασίας  Labeled dataset: 1337 μηχανικοί λογισμικού σε 5 ρόλους  Προεπεξεργασία δεδομένων (lowercase, αφαίρεση stop-words, λημματοποίηση)  Εξαγωγή χαρακτηριστικών με TF-IDF  Εκπαίδευση μοντέλου Logistic Regression με υπερδειγματοληψία για μειονοτικές κλάσεις και ρύθμιση παραμέτρων Logistic Regression και TF- IDF.  80-20 Stratified split και 5-fold cross validation Metrics Frontend Backend Mobile DevOps Data Scientist Precision 0.73 0.51 0.63 0.44 0.76 Recall 0.73 0.63 0.45 0.62 0.81 F1-Score 0.73 0.56 0.53 0.52 0.78
  • 16. Μοντέλο αναγνώρισης εργασιών προγραμματισμού  Χρήση των commit messages από όλα τα commits  Απόρριψη μη αγγλικών και «μικρών» μηνυμάτων  Ταξινόμηση του commit message σε εργασίες προγραμματισμού βάσει κανόνων που βασίζονται στο λεξιλόγιο των κατηγοριών :  Corrective: Διόρθωση Σφαλμάτων (bug fix, debug)  Adaptive: Προσαρμογή λογισμικού σε αλλαγές στο περιβάλλον (build, testing, documentation)  Perfective: Βελτίωση λειτουργικότητας (maintenance, refactoring, indentation, module remove)  Implementation: Εφαρμογή νέων χαρακτηριστικών/λειτουργιών (feature add, initialization, module add)  Non-functional: Μη λειτουργικές ιδιότητες (legal, module remove, merge)  Other (cross, branch)
  • 17. Μοντέλο αναγνώρισης εργασιών προγραμματισμού  Εξαγωγή χαρακτηριστικών με TF-IDF στα commit messages  Χρησιμοποιήθηκε το σετ που ταξινομήθηκε σε κατηγορίες για την εκπαίδευση ενός μοντέλου Logistic Regression.  Η ταξινόμηση των μηνυμάτων commit με confidence threshold 0.7 στις κατηγορίες που όρισε το σύστημα κανόνων είχε τα εξής αποτελέσματα  Η κλάση ‘Unknown’ χρησιμοποιείται για τα μηνύματα που δε μπορούν να ταξινομηθούν. Metrics Adaptive Corrective Implement. Non-func. Perfecti ve Other Unknown Precision 0.99 0.98 0.99 0.98 0.98 0.77 0.81 Recall 0.85 0.83 0.91 0.97 0.86 0.48 0.98 F1-Score 0.91 0.90 0.95 0.98 0.92 0.59 0.89 Support 864 444 1185 651 346 21 1636
  • 18. Video παρουσίαση της εφαρμογής
  • 19. Ανοιχτά Θέματα και βελτιώσεις  Εξάρτηση από στατικές βάσεις δεδομένων  Ανάλυση μόνο του commit history  Βελτίωση χρόνου δημιουργίας προφίλ και απόκρισης εφαρμογής  Βελτίωση της προσέγγισης αναγνώρισης εργασιών προγραμματισμού από τα μηνύματα commit  Εκπαίδευση μοντέλου ταξινόμησης ρόλων σε μεγαλύτερο σύνολο δεδομένων
  • 20. Συμπεράσματα  Αναπτύχθηκε ένα εργαλείο ικανό:  Να προβάλλει τη συνεισφορά μηχανικών λογισμικού στα διάφορα έργα στο OSS  Να αναδείξει την εμπειρία τους σε γλώσσες προγραμματισμού και βιβλιοθήκες  Να παρουσιάσει τις προγραμματιστικές τους συνήθειες  Να χαρτογραφήσει τις συνεργασίες τους στο OSS  Να κατηγοριοποιήσει τους ρόλους και τα καθήκοντα που αναλαμβάνουν  Είναι δυνατή η δημιουργία προφίλ μηχανικών λογισμικού με βάση το ιστορικό των commits  Μπορεί να παραχθεί χρήσιμη πληροφορία και να παρουσιαστεί με τρόπο κατανοητό και φιλικό προς το χρήστη
  • 21. Ευχαριστίες  Ένα μεγάλο ευχαριστώ στον καθηγητή κ. Ανδρέα Συμεωνίδη για την ευκαιρία που μου έδωσε να συνεργαστούμε και για τη βοήθεια κατά την εκπόνηση της εργασίας.  Στην οικογένειά μου για την υπομονή που και τη συνεχή στήριξη που μου παρείχαν καθημερινά.
  • 22. Ευχαριστώ για την προσοχή σας! Ερωτήσεις;