Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώσης από αποθετήρια ανοιχτού λογισμικού

ISSEL
ISSELISSEL
Ανάλυση και μοντελοποίηση προφίλ
προγραμματιστών μέσω τεχνικών εξόρυξης
γνώσης από αποθετήρια ανοιχτού λογισμικού
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΥΠΟΛΟΓΙΣΜΩΝ
Στέργιος Νάνος
ΑΕΜ: 8701
Επιβλέποντες:
Ανδρέας Λ. Συμεωνίδης
Μιχάλης Παπαμιχαήλ
Δυσκολίες Έργων Λογισμικού
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 2
Αλλαγή απαιτήσεων
λογισμικού
Εκτόξευση κλίμακας και
πολυπλοκότητας έργου
Μη αποτελεσματική
επικοινωνία
Υπέρβαση αρχικού
οικονομικού
προϋπολογισμού
1.Μη ολοκλήρωση
Μέθοδοι Παραγωγής Λογισμικού
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 3
WATERFALL ITERATIVE AGILE DEVOPS
Ρόλοι-Αρμοδιότητες Προγραμματιστών
• Developer
• Operator
• DevOps
• Project Manager / Product Owner
• Reviewer
• Quality Assurance
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 4
GitHub to the Rescue
• Πραγματικές τεχνικές δεξιότητες των μηχανικών
• Γλώσσες προγραμματισμού
• Εργαλεία
• Δεξιότητες επικοινωνίας
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 5
Σκοπός Διπλωματικής
 Αξιοποίηση των συνεισφορών των
προγραμματιστών σε αποθετήρια
ανοιχτού κώδικα
 Δημιουργία συστήματος άντλησης
συνεισφορών και παραγωγής μετρικών
 Κατασκευή μοντέλου
κατηγοριοποίησης προγραμματιστών
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 6
Γνώσεις που αποκτήθηκαν
• Κατασκευή διακομιστή
• Γνώσεις προγραμματισμού σε
JavaScript/TypeScript
• Χρήση web εργαλείων και framework
(Node.js, Express) και API (REST,
GraphQL)
• Χρήση ΣΔΒΔ MongoDB
• Αλγόριθμοι και μοντέλα ομαδοποίησης
• Τεχνικές προεπεξεργασίας δεδομένων
• Γνώσεις προγραμματισμού σε Python
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 7
Αρχιτεκτονική του
Συστήματος
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 8
Δεδομένα
Στατιστικά dataset
Μετρική Τιμή
Αριθμός Χρηστών 10.213
Αριθμός Αποθετηρίων 147.176
Αριθμός Commit 2.115.880
Αριθμός Issue 113.520
Αριθμός Pull Request 258.517
Αριθμός Pull Request
Review
317.449
Αριθμός Σχολίων σε
Commit
6.898
Αριθμός Σχολίων σε Issue 1.089.506
Συνολικό Μέγεθος
Δεδομένων
5.38GB (1.56GB
Συμπιεσμένα)
Μετρικές που χρησιμοποιήθηκαν για την
εκπαίδευση του μοντέλου
Όνομα Περιγραφή
Commits.daily_count__sum Συνολικός αριθμός commit
Issues.daily_count__sum Συνολικός αριθμός issue
PullRequests.daily_count__sum Συνολικός αριθμός pull request
PullRequestReviews.daily_count
__sum
Συνολικός αριθμός pull request
review
UserIssueComments.
PullRequests_daily_count__sum
Συνολικός αριθμός σχολίων σε
pull request
UserIssueComments.
Issues_daily_count__sum
Συνολικός αριθμός σχολίων σε
issue
Commits.code_ratio Ποσοστό αρχείων σχετικά με
συγγραφή κώδικα
Commits.doc_ratio Ποσοστό αρχείων σχετικά με
τεκμηρίωση
Commits.CICD_ratio Ποσοστό αρχείων σχετικά με
εργαλεία CI/CD
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 9
Προεπεξεργασία
Αρχικός αριθμός δεδομένων: 180.028
Τελικός αριθμός δεδομένων: 11.488
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 10
Οργάνωση δεδομένων ανά
χρήστη και αποθετήριο
Αφαίρεση bot λογαριασμών
Επιλογή αριθμού ελάχιστων
συνεισφορών
Αφαίρεση εξωκείμενων
τιμών
Κανονικοποίηση στο εύρος
[0, 1]
Μετρικές εσωτερικής αξιολόγησης
• Silhouette score,
• Davies-Bouldin index,
• Calinski-Harabasz index,
• DBCV
Ομαδοποίηση
Αλγόριθμοι
• KMeans,
• DBSCAN,
• Agglomerative
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 11
Agglomerative Model
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 12
Agglomerative Model
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 13
Agglomerative Model
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 14
Ρόλοι Προγραμματιστών
Agile Developer
•Κύριο μέλημα την
συγγραφή κώδικα
•Μικρό μέγεθος
commit
•Αυξημένη χρήση
εργαλείων CI/CD
Developer
(commits)
•Κύρια μέριμνα
είναι η εγγραφή
πηγαίου κώδικα
για την ανάπτυξη
του προϊόντος
•Συμμετοχή σε
προσωπικά έργα
•Μη-προσωπικά
έργα στα οποία
είναι
συνδημιουργοί
Project
Management Team
•Συνεισφορά κατά
κύριο λόγο με
σχόλια σε Pull
Requests και Issues
•Παλαιότερος ρόλος
των μελών μπορεί
να ήταν η
συγγραφή κώδικα
•Πλέον έχει
μετατοπιστεί σε
έναν περισσότερο
διοικητικό ρόλο
DevOps
•Συμμετοχή σε
ολόκληρη τη
διαδικασία
ανάπτυξης του
έργου λογισμικού
Developer (pull
Requests)
•Τα μέλη της
ομάδας αυτής
ενδιαφέρονται
κατά κύριο λόγο
για την συγγραφή
πηγαίου κώδικα
•Δεν συμμετέχουν
σε άλλες
δραστηριότητες,
όπως το άνοιγμα
issue
•Συνεισφορές σε
αποθετήρια που
δεν είναι δικά τους
•Είναι συχνά core
members των
αποθετηρίων
Operations
(documentation)
•Συνεισφορές σε
commit τα οποία
είναι σχετικά με
την τεκμηρίωση
πηγαίου κώδικα ή
την τεκμηρίωση
του έργου
λογισμικού.
•Συχνά, τα
αποθετήρια που
συμμετέχουν είναι
εξειδικευμένα για
την συγγραφή
τεκμηρίωσης
Reviewer
•Πραγματοποίηση
Pull Request
Reviews
•Αποθετήρια στα
οποία, είναι
συνιδρυτές,
•Αποθετήρια στα
οποία κατέχουν
εξέχουσα θέση
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 15
Μοντέλο στην Παραγωγή
• Αδυναμία χρήσης Agglomerative
μοντέλου
• Εκπαίδευση μοντέλου ταξινόμησης
RandomForest
• Ακρίβεια (accuracy) 93,8%
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 16
Ανακεφαλαίωση
 Αξιοποίηση συνεισφορών για μοντελοποίηση προφίλ προγραμματιστών
 Κατασκευή ενιαίου συστήματος συλλογής δεδομένων και παραγωγής μετρικών
 Κατασκευή μοντέλου ομαδοποίησης για την αντιστοίχιση προγραμματιστών με
ρόλους
 Επιτυχή αντιστοίχιση προγραμματιστών σε ρόλους
 Εκπαίδευση μοντέλου ταξινόμησης για χρήση στη παραγωγή
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 17
Μελλοντική Εργασία
• Δημιουργία γραφικής διεπαφής
• Επέκταση Dataset
• Χρήση καθημερινών συνεισφορών προγραμματιστών
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 18
Ευχαριστίες
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 19
Θα ήθελα να ευχαριστήσω τους επιβλέποντες της διπλωματικής μου
εργασίας, τον καθηγητή μου κ. Συμεωνίδη Ανδρέα και τον Δρ. Παπαμιχαήλ
Μιχάλη για την βοήθεια και καθοδήγηση που μου προσέφεραν.
Ερωτήσεις
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 20
1 of 20

Recommended

Applying Data Mining Techniques on Software Repositories to Extract Design an... by
Applying Data Mining Techniques on Software Repositories to Extract Design an...Applying Data Mining Techniques on Software Repositories to Extract Design an...
Applying Data Mining Techniques on Software Repositories to Extract Design an...ISSEL
29 views25 slides
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα... by
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...ISSEL
48 views25 slides
Kagiafas Nikolaos Thesis Presentation by
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationISSEL
88 views25 slides
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ... by
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...ISSEL
168 views27 slides
Employing Machine Learning and Intelligent Information Management Techniques ... by
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
534 views27 slides
Μιχαήλ Παπαμιχαήλ by
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλISSEL
160 views28 slides

More Related Content

Similar to Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώσης από αποθετήρια ανοιχτού λογισμικού

Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ... by
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...ISSEL
30 views38 slides
Software requirements by
Software requirementsSoftware requirements
Software requirementsGeorge Kara
39 views57 slides
KanoutasThomasThesis by
KanoutasThomasThesisKanoutasThomasThesis
KanoutasThomasThesisThomasKanoutas
18 views106 slides
Software process improvement by
Software process improvementSoftware process improvement
Software process improvementGeorge Kara
15 views63 slides
Pantelidou Eirini: Design and development of a system for incremental static ... by
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Manos Tsardoulias
70 views26 slides
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ... by
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...ISSEL
84 views26 slides

Similar to Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώσης από αποθετήρια ανοιχτού λογισμικού(20)

Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ... by ISSEL
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
ISSEL30 views
Software requirements by George Kara
Software requirementsSoftware requirements
Software requirements
George Kara39 views
Software process improvement by George Kara
Software process improvementSoftware process improvement
Software process improvement
George Kara15 views
Pantelidou Eirini: Design and development of a system for incremental static ... by Manos Tsardoulias
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ... by ISSEL
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
ISSEL84 views
Thesis.Net Applications by pdalianis
Thesis.Net ApplicationsThesis.Net Applications
Thesis.Net Applications
pdalianis315 views
Παρουσίαση προιόντων Τhesis.Net - Πέτρος Νταλιάνης by Anna Tsolakou
Παρουσίαση προιόντων Τhesis.Net - Πέτρος ΝταλιάνηςΠαρουσίαση προιόντων Τhesis.Net - Πέτρος Νταλιάνης
Παρουσίαση προιόντων Τhesis.Net - Πέτρος Νταλιάνης
Anna Tsolakou302 views
Development of an automatic procedure for Continuous Integration by ISSEL
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous Integration
ISSEL44 views
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού by ISSEL
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
ISSEL79 views
Γκιλίρης Ιωάννης 7419 by ISSEL
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419
ISSEL209 views
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ... by ISSEL
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
ISSEL53 views
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V... by 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...
ISSEL93 views
12 Multimedia Design Iii by eretrianews
12 Multimedia Design Iii12 Multimedia Design Iii
12 Multimedia Design Iii
eretrianews 832 views
Παρουσίαση θεμάτων διπλωματικών 2010 by ISSEL
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
ISSEL530 views
Ιωάννη Α. Ζαφειρίου by ISSEL
Ιωάννη Α. ΖαφειρίουΙωάννη Α. Ζαφειρίου
Ιωάννη Α. Ζαφειρίου
ISSEL115 views
Presentation 6 by Annaa77
Presentation 6Presentation 6
Presentation 6
Annaa77325 views

More from ISSEL

Camera-based localization of annotated objects in indoor environments by
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
12 views38 slides
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ... by
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
6 views38 slides
Design and implementation of an automation mechanism to automatically develop... by
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
4 views17 slides
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ... by
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ISSEL
6 views17 slides
Static Analysis of Python code and Identification of Potential Security Vulne... by
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...ISSEL
8 views16 slides
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ... by
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...ISSEL
26 views27 slides

More from ISSEL(20)

Camera-based localization of annotated objects in indoor environments by ISSEL
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
ISSEL12 views
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ... by ISSEL
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
ISSEL6 views
Design and implementation of an automation mechanism to automatically develop... by 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...
ISSEL4 views
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ... by ISSEL
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ISSEL6 views
Static Analysis of Python code and Identification of Potential Security Vulne... by ISSEL
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...
ISSEL8 views
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ... by ISSEL
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
ISSEL26 views
Design and Development of an Authorization and Access Control Mechanism for C... by ISSEL
Design and Development of an Authorization and Access Control Mechanism for C...Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...
ISSEL13 views
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο... by ISSEL
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...
ISSEL19 views
Analysis and profiling of developer profiles using data mining techniques fro... by ISSEL
Analysis and profiling of developer profiles using data mining techniques fro...Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...
ISSEL3 views
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM by ISSEL
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEMTOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM
ISSEL3 views
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ... by ISSEL
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...
ISSEL11 views
System Development for Prediction of Static Analysis Metrics of Source Code by ISSEL
System Development for Prediction of Static Analysis Metrics of Source CodeSystem Development for Prediction of Static Analysis Metrics of Source Code
System Development for Prediction of Static Analysis Metrics of Source Code
ISSEL6 views
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ... by ISSEL
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
ISSEL11 views
Micro Front-ends and Microservices Architecture in Web Application Development by ISSEL
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application Development
ISSEL8 views
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ... by ISSEL
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
ISSEL19 views
Indoor localization using wireless networks by ISSEL
Indoor localization using wireless networksIndoor localization using wireless networks
Indoor localization using wireless networks
ISSEL5 views
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων by ISSEL
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύωνΕντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων
ISSEL10 views
Design and implementation of a big data architecture for storage, real-time p... by ISSEL
Design and implementation of a big data architecture for storage, real-time p...Design and implementation of a big data architecture for storage, real-time p...
Design and implementation of a big data architecture for storage, real-time p...
ISSEL9 views
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ... by ISSEL
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...
ISSEL16 views
Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μ... by ISSEL
Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μ...Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μ...
Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μ...
ISSEL16 views

Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώσης από αποθετήρια ανοιχτού λογισμικού

  • 1. Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώσης από αποθετήρια ανοιχτού λογισμικού ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΥΠΟΛΟΓΙΣΜΩΝ Στέργιος Νάνος ΑΕΜ: 8701 Επιβλέποντες: Ανδρέας Λ. Συμεωνίδης Μιχάλης Παπαμιχαήλ
  • 2. Δυσκολίες Έργων Λογισμικού Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 2 Αλλαγή απαιτήσεων λογισμικού Εκτόξευση κλίμακας και πολυπλοκότητας έργου Μη αποτελεσματική επικοινωνία Υπέρβαση αρχικού οικονομικού προϋπολογισμού 1.Μη ολοκλήρωση
  • 3. Μέθοδοι Παραγωγής Λογισμικού Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 3 WATERFALL ITERATIVE AGILE DEVOPS
  • 4. Ρόλοι-Αρμοδιότητες Προγραμματιστών • Developer • Operator • DevOps • Project Manager / Product Owner • Reviewer • Quality Assurance Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 4
  • 5. GitHub to the Rescue • Πραγματικές τεχνικές δεξιότητες των μηχανικών • Γλώσσες προγραμματισμού • Εργαλεία • Δεξιότητες επικοινωνίας Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 5
  • 6. Σκοπός Διπλωματικής  Αξιοποίηση των συνεισφορών των προγραμματιστών σε αποθετήρια ανοιχτού κώδικα  Δημιουργία συστήματος άντλησης συνεισφορών και παραγωγής μετρικών  Κατασκευή μοντέλου κατηγοριοποίησης προγραμματιστών ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 6
  • 7. Γνώσεις που αποκτήθηκαν • Κατασκευή διακομιστή • Γνώσεις προγραμματισμού σε JavaScript/TypeScript • Χρήση web εργαλείων και framework (Node.js, Express) και API (REST, GraphQL) • Χρήση ΣΔΒΔ MongoDB • Αλγόριθμοι και μοντέλα ομαδοποίησης • Τεχνικές προεπεξεργασίας δεδομένων • Γνώσεις προγραμματισμού σε Python ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 7
  • 8. Αρχιτεκτονική του Συστήματος ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 8
  • 9. Δεδομένα Στατιστικά dataset Μετρική Τιμή Αριθμός Χρηστών 10.213 Αριθμός Αποθετηρίων 147.176 Αριθμός Commit 2.115.880 Αριθμός Issue 113.520 Αριθμός Pull Request 258.517 Αριθμός Pull Request Review 317.449 Αριθμός Σχολίων σε Commit 6.898 Αριθμός Σχολίων σε Issue 1.089.506 Συνολικό Μέγεθος Δεδομένων 5.38GB (1.56GB Συμπιεσμένα) Μετρικές που χρησιμοποιήθηκαν για την εκπαίδευση του μοντέλου Όνομα Περιγραφή Commits.daily_count__sum Συνολικός αριθμός commit Issues.daily_count__sum Συνολικός αριθμός issue PullRequests.daily_count__sum Συνολικός αριθμός pull request PullRequestReviews.daily_count __sum Συνολικός αριθμός pull request review UserIssueComments. PullRequests_daily_count__sum Συνολικός αριθμός σχολίων σε pull request UserIssueComments. Issues_daily_count__sum Συνολικός αριθμός σχολίων σε issue Commits.code_ratio Ποσοστό αρχείων σχετικά με συγγραφή κώδικα Commits.doc_ratio Ποσοστό αρχείων σχετικά με τεκμηρίωση Commits.CICD_ratio Ποσοστό αρχείων σχετικά με εργαλεία CI/CD ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 9
  • 10. Προεπεξεργασία Αρχικός αριθμός δεδομένων: 180.028 Τελικός αριθμός δεδομένων: 11.488 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 10 Οργάνωση δεδομένων ανά χρήστη και αποθετήριο Αφαίρεση bot λογαριασμών Επιλογή αριθμού ελάχιστων συνεισφορών Αφαίρεση εξωκείμενων τιμών Κανονικοποίηση στο εύρος [0, 1]
  • 11. Μετρικές εσωτερικής αξιολόγησης • Silhouette score, • Davies-Bouldin index, • Calinski-Harabasz index, • DBCV Ομαδοποίηση Αλγόριθμοι • KMeans, • DBSCAN, • Agglomerative Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 11
  • 12. Agglomerative Model Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 12
  • 13. Agglomerative Model ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 13
  • 14. Agglomerative Model ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 14
  • 15. Ρόλοι Προγραμματιστών Agile Developer •Κύριο μέλημα την συγγραφή κώδικα •Μικρό μέγεθος commit •Αυξημένη χρήση εργαλείων CI/CD Developer (commits) •Κύρια μέριμνα είναι η εγγραφή πηγαίου κώδικα για την ανάπτυξη του προϊόντος •Συμμετοχή σε προσωπικά έργα •Μη-προσωπικά έργα στα οποία είναι συνδημιουργοί Project Management Team •Συνεισφορά κατά κύριο λόγο με σχόλια σε Pull Requests και Issues •Παλαιότερος ρόλος των μελών μπορεί να ήταν η συγγραφή κώδικα •Πλέον έχει μετατοπιστεί σε έναν περισσότερο διοικητικό ρόλο DevOps •Συμμετοχή σε ολόκληρη τη διαδικασία ανάπτυξης του έργου λογισμικού Developer (pull Requests) •Τα μέλη της ομάδας αυτής ενδιαφέρονται κατά κύριο λόγο για την συγγραφή πηγαίου κώδικα •Δεν συμμετέχουν σε άλλες δραστηριότητες, όπως το άνοιγμα issue •Συνεισφορές σε αποθετήρια που δεν είναι δικά τους •Είναι συχνά core members των αποθετηρίων Operations (documentation) •Συνεισφορές σε commit τα οποία είναι σχετικά με την τεκμηρίωση πηγαίου κώδικα ή την τεκμηρίωση του έργου λογισμικού. •Συχνά, τα αποθετήρια που συμμετέχουν είναι εξειδικευμένα για την συγγραφή τεκμηρίωσης Reviewer •Πραγματοποίηση Pull Request Reviews •Αποθετήρια στα οποία, είναι συνιδρυτές, •Αποθετήρια στα οποία κατέχουν εξέχουσα θέση Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 15
  • 16. Μοντέλο στην Παραγωγή • Αδυναμία χρήσης Agglomerative μοντέλου • Εκπαίδευση μοντέλου ταξινόμησης RandomForest • Ακρίβεια (accuracy) 93,8% ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 16
  • 17. Ανακεφαλαίωση  Αξιοποίηση συνεισφορών για μοντελοποίηση προφίλ προγραμματιστών  Κατασκευή ενιαίου συστήματος συλλογής δεδομένων και παραγωγής μετρικών  Κατασκευή μοντέλου ομαδοποίησης για την αντιστοίχιση προγραμματιστών με ρόλους  Επιτυχή αντιστοίχιση προγραμματιστών σε ρόλους  Εκπαίδευση μοντέλου ταξινόμησης για χρήση στη παραγωγή Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 17
  • 18. Μελλοντική Εργασία • Δημιουργία γραφικής διεπαφής • Επέκταση Dataset • Χρήση καθημερινών συνεισφορών προγραμματιστών Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 18
  • 19. Ευχαριστίες Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 19 Θα ήθελα να ευχαριστήσω τους επιβλέποντες της διπλωματικής μου εργασίας, τον καθηγητή μου κ. Συμεωνίδη Ανδρέα και τον Δρ. Παπαμιχαήλ Μιχάλη για την βοήθεια και καθοδήγηση που μου προσέφεραν.
  • 20. Ερωτήσεις ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ιούλιος 2023 20

Editor's Notes

  1. Η ανάπτυξη λογισμικού είναι μια πολύπλοκη και χρονοβόρα διαδικασία, με τη βιωσιμότητα των έργων λογισμικού να μην είναι πάντοτε εγγυημένη. Οι απαιτήσεις του λογισμικού μπορεί να αλλάξουν σε οποιοδήποτε σημείο του κύκλου ζωής του, η κλίμακα και η πολυπλοκότητα του έργου μπορεί να ξεπεράσουν τους αρχικούς στόχους του έργου, ενώ η κακή επικοινωνία μεταξύ των μελών της ομάδας ή η παρερμηνεία των απαιτήσεων μπορεί να οδηγήσει σε λανθασμένη υλοποίηση. Τα προβλήματα αυτά μπορεί να οδηγήσουν το έργο να υπερβεί τον αρχικό οικονομικό προϋπολογισμό, ακόμα και στον τερματισμό του και τη μη ολοκλήρωσή του.
  2. Για την αποτροπή των δυσκολιών αυτών οι εταιρίες έχουν εφαρμόσει κατά καιρούς διαφορετικές διαδικασίες και μεθόδους παραγωγής και οργάνωσης. Όπως το Μοντέλο του Καταρράκτη, την Επαναληπτική μέθοδο, διάφορες Ευέλικτες μεθόδους και την DevOps προσέγγιση.
  3. Ως αποτέλεσμα της εφαρμογής των μεθόδων λογισμικού, είναι η εμφάνιση συγκεκριμένων ρόλων και αρμοδιοτήτων των προγραμματιστών. Developer: από τους παλαιότερους ρόλους, Είναι αυτός που θα μελετήσει τις απαιτήσεις και στη συνέχεια θα πρέπει να σχεδιάσει το σύστημα υπεύθυνος υλοποίησης όλων των χαρακτηριστικών και λειτουργιών του λογισμικού μπορεί, επίσης, να επεκτείνεται στην δοκιμή του συστήματος για την εύρεση σφαλμάτων, προτού φτάσει στην παραγωγή Operator υπεύθυνος για την παράδοση του λογισμικού σωστή και αδιάκοπη λειτουργία του στη παραγωγή Σωστή τεκμηρίωση κώδικα και υπηρεσιών Συγγραφή αναφορών σφαλμάτων και προβλήματα που πρέπει να διορθωθούν κλιμάκωση των υπηρεσιών ανάλογα με την κατανάλωση πόρων DevOps συνδυάζει τις αρμοδιότητες των developers και operators υπεύθυνοι για ολόκληρο τον κύκλο ζωής της ανάπτυξης λογισμικού σχεδιασμό και την κωδικοποίηση έως την ανάπτυξη και τη συντήρηση Το λογισμικό κατασκευάζεται και αναπτύσσεται αποτελεσματικά και αποδοτικά έμφαση στην αυτοματοποίηση και τη συνεχή βελτίωση Σημαντική η επικοινωνία μεταξύ των μελών της ομάδας Product Owner/ Project Manager PM προέρχεται από την Waterfall μεθοδολογία υπεύθυνος για την διαχείριση του πρότζεκτ στόχος η παράδοσή του εντός χρόνου Χωρίς να υπερβεί τον προϋπολογισμό διατηρώντας το απαιτούμενο επίπεδο ποιότητας σωστή διαχείριση του ανθρώπινου δυναμικού διαθέτοντας τους πόρους και την υποστήριξη που χρειάζεται για την ολοκλήρωση των καθηκόντων PO η εξέλιξη του Project Manager μέσα στο Agile περιβάλλον υπεύθυνος για την διαχείριση της ομάδας του Μεγιστοποίηση της αξίας του προϊόντος με την υλοποίηση των κατάλληλων λειτουργιών από αυτές που εκκρεμούν PO αναπτύσσει τον δίαυλο επικοινωνίας με τον πελάτη, για τη συνεχή συνεννόηση και ικανοποίηση των αναγκών και προσδοκιών του Reviewer επανεξετάζει τις αλλαγές στον κώδικα για την διασφάλιση ποιότητας και απαιτήσεων Μπορεί να ελέγξει για τρωτά σημεία ασφαλείας κάλυψη του κώδικα από tests δίνει σχόλια για τις θετικές και για τις αρνητικές αλλαγές που πραγματοποιήθηκαν Quality Assurance υπεύθυνοι για την ορθή και αδιάκοπη λειτουργία του λογισμικού δημιουργία των προτύπων ποιότητας και πολιτικών σχεδιάζουν και εφαρμόζουν tests και διερευνητικές δοκιμές, με σκοπό την εύρεση αδυναμιών και σφαλμάτων λογισμικού πριν φτάσουν στην παραγωγή
  4. Παρατηρώντας τις δυσκολίες της διαδικασίας ανάπτυξής λογισμικού και Τις ανάγκες των εταιριών Ανάγκη εταιριών να βρουν τα κατάλληλα άτομα για τις θέσεις που χρειάζονται. Για να μπορούν να ικανοποιούν στους ρόλους των ομάδων λογισμικού Παλαιότερα, οι εταιρίες είχαν ως μόνα τους εργαλεία το βιογραφικό του μηχανικού λογισμικού και την συνέντευξή του για την πραγματοποίηση της αξιολόγησής του. διαδεδομένη χρήση συστημάτων ελέγχου έκδοσης (git) + ανάπτυξη πλατφορμών όπως το GitHub => Προσφέρουν νέες προοτικές άντληση πληροφορίας για τις πραγματικές τεχνικές δεξιότητες των μηχανικών, τις ικανότητές τους και τις γλώσσες προγραμματισμού Καθώς, και τα εργαλεία που χρησιμοποιούν Με τα PR, Issues και τα σχόλια σε αυτά, μπορούν να αξιολογηθούν οι δεξιότητες επικοινωνίας του μηχανικού
  5. Αξιοποίηση των συνεισφορών των προγραμματιστών σε αποθετήρια ανοιχτού κώδικα, Για την παραγωγή έγκυρης αξιολόγηση των τεχνικών και επικοινωνιακών δεξιοτήτων των μηχανικών Για τον σκοπό αυτό δημιουργήθηκε σύστημα άντλησης συνεισφορών και παραγωγής μετρικών μοντέλο μη-εποπτευόμενης μάθησης, το οποίο είναι ικανό να κατηγοριοποιεί τους προγραμματιστές σε ρόλους βάσει των δεξιοτήτων τους
  6. Με/Κατά την εκπόνηση της διπλωματικής
  7. Αποτελείται από τρία διακριτά υποσυστήματα, τον διακομιστή, το σύστημα διαχείρισης βάσης δεδομένων (ΣΔΒΔ) (DataBase Management System, DBMS), και το μοντέλο μηχανικής μάθησης Διακομιστής: Ως απλός web server με χρήση API Ως GitHub App Άντληση πληροφοριών συνεισφορών, επεξεργασία, παραγωγή μετρικών και αποθήκευση Παραγωγή μετρικών DBMS: Αποθήκευση πληροφοριών σε συλλογές ML model: Κατηγοριοποίηση των προγραμματιστών σε ρόλους
  8. Για την εύρεση των ρόλων των προγραμματιστών χρησιμοποιήθηκε η διαδικασία της ομαδοποίησης Αφου δεν ήταν εκ τον προτέρων γνωστοί οι ρόλοι για να μπορέσουν να εφαρμοστούν αλγόριθμοι ταξινόμισης
  9. Καλύτερη ομαδοποίηση για cosine average 6 και Cosine complete(ολικού) 8 Επιλέχτηκε Cosine complete 8 διότι παρήγαγε πιο ισορροπημένες ομάδες
  10. Επιλέχτηκε τελικώς το Agglomerative μοντέλο με metric=‘cosine’, linkage=‘complete’ και 8 ομάδες. Σε σχέση με linkage=‘average’ οι ομάδες ήταν καλύτερα κατανεμημένες Τελικά, βρέθηκαν 7 ρόλοι προγραμματιστών: δυο ομάδες συγχωνευτήκαν σε μία (PM Team) Agile Developer: Κύριο μέλημα την συγγραφή κώδικα Μικρό μέγεθος commit Αυξημένη χρήση εργαλείων CI/CD Developer (commits): Κύρια μέριμνα είναι η εγγραφή πηγαίου κώδικα για την ανάπτυξη του προϊόντος Συμμετοχή σε προσωπικά έργα Μη-προσωπικά έργα στα οποία είναι συνδημιουργοί PM Team: Συνεισφορά κατά κύριο λόγο με σχόλια σε Pull Requests και Issues Παλαιότερος ρόλος των μελών μπορεί να ήταν η συγγραφή κώδικα Πλέον έχει μετατοπιστεί σε έναν περισσότερο διοικητικό ρόλο DevOps: Συμμετοχή σε ολόκληρη τη διαδικασία ανάπτυξης του έργου λογισμικού Developer (pull Requests) Τα μέλη της ομάδας αυτής ενδιαφέρονται κατά κύριο λόγο για την συγγραφή πηγαίου κώδικα Δεν συμμετέχουν σε άλλες δραστηριότητες, όπως το άνοιγμα issue Συνεισφορές σε αποθετήρια που δεν είναι δικά τους, αποθετήρια open source κοινότητας Μεγάλα αποθετήρια με πολλούς χρήστες Είναι συχνά core members των αποθετηρίων Operations (documentation): Συνεισφορές σε commit τα οποία είναι σχετικά με την τεκμηρίωση πηγαίου κώδικα ή την τεκμηρίωση του έργου λογισμικού. Συχνά, τα αποθετήρια που συμμετέχουν είναι εξειδικευμένα για την συγγραφή τεκμηρίωσης Reviewer Πραγματοποίηση Pull Request Reviews Αποθετήρια στα οποία, είναι συνιδρυτές, Αποθετήρια στα οποία κατέχουν εξέχουσα θέση
  11. Εφαρμόζοντας δεκαπλή αντεπικύρωση (stratified 10 fold cross validation) για 5 επαναλήψει δηλώνει ότι το μοντέλο ταξινόμησης Random Forest μπορεί να ταξινομεί με επιτυχία νέους προγραμματιστές.
  12. Δυσκολίες: μικρός αριθμός προγραμματιστών χρησιμοποιεί το GitHub επαγγελματικά ή σε Open-Source Repos => μικρός αριθμός συνεισφορών Sparce Contributions
  13. Γραφική διεπαφή == website, mobile app Επέκταση Dataset, με επιπλέον δεδομένα χρηστών από Open Source Repos ή ιδιωτικά αποθετήρια εταιριών, για την πραγματοποίηση σύγκρισης δεδομένων Χρήση καθημερινών συνεισφορών προγραμματιστών: Dynamic Time Warping για πρόβλεψη παραγωγικότητας