SlideShare a Scribd company logo
1 of 25
Ευθύμιος Γρηγοράκης
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την
Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση
Αναγνωσιμότητας
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Κύκλος Σπουδών Ηλεκτρονικής και Υπολογιστών
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Πολυτεχνική Σχολή
Ομάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού
Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογιστών
Διπλωματική Εργασία
Εκπόνηση:
Ευθύμιος Γρηγοράκης
ΑΕΜ:
9694
Επιβλέποντες:
Ανδρέας Λ. Συμεωνίδης
Καθηγητής ΑΠΘ
Διαμαντόπουλος Θεμιστοκλής
Μεταδιδακτορικός Ερευνητής
24/1/2024 1
Ευθύμιος Γρηγοράκης
Περιεχόμενα
1. Εισαγωγή - Στόχοι
2. Μεθοδολογία
3. Αποτελέσματα - Αξιολόγηση
4. Συμπεράσματα
5. Μελλοντική Εργασία
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 2
Ευθύμιος Γρηγοράκης
Εισαγωγή-Στόχος
24/1/2024 3
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
Ευθύμιος Γρηγοράκης
Εισαγωγή
• Η συντήρηση ενός έργου λογισμικού αποτελεί το 66-99% του κόστους του
• Τα μισά από αυτά τα κόστη αναλώνονται στην κατανόηση του κώδικα
• Η αναγνωσιμότητα του κώδικα είναι συνδεδεμένη με το κόστος
συντήρησης
• Ένας ευανάγνωστος κώδικας χρειάζεται λιγότερο χρόνο για κατανόηση
• Η αναγνωσιμότητα του κώδικα είναι σημαντική για την ανάπτυξη και
συντήρηση
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 4
Ευθύμιος Γρηγοράκης
Στόχοι
1. Διερεύνηση αν τα commits που στοχεύουν σε βελτίωση
αναγνωσιμότητας πράγματι τη βελτιώνουν με βάση τα μοντέλα
της βιβλιογραφίας
2. Ανάπτυξη μοντέλου για την κατηγοριοποίηση commits που
στοχεύουν σε βελτίωση αναγνωσιμότητας με βάση τις αλλαγές
του κώδικα
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 5
Ευθύμιος Γρηγοράκης
Μεθοδολογία
24/1/2024 6
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
Ευθύμιος Γρηγοράκης
Διάγραμμα Ροής Μεθοδολογίας
24/1/2024 7
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
Ευθύμιος Γρηγοράκης
Συλλογή Δεδομένων
• Λήψη commits μέσω GitHub API
• Αναζήτηση βάσει commit message
(π.χ. “more readable”)
• Java files
• Single-file changes
• Patch file εώς 25 γραμμές
• Λήψη των αρχείων πριν και μετά τις αλλαγές
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 8
Παράδειγμα commit
Ευθύμιος Γρηγοράκης
Ανάλυση Δεδομένων(1/3)
• Μετρικές Στατικής Ανάλυσης
• Χρήση εργαλείου στατικής ανάλυσης SourceMeter Analyzer
• Εφαρμογή σε before και after files
• Εξαγωγή 11 μετρικών, όπως π.χ. cyclomatic complexity
• Μετρικές Αναγνωσιμότητας
• Χρήση εργαλείου Scalabrino
• Yπολογισμός 47 μετρικών σχετικών με αναγνωσιμότητα
• Π.χ. number of Identifiers, number of comment lines
• Υπολογισμός Readability Score για μοντέλα Scalabrino, Buse-Weimer,
Posnett, Karanikiotis
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 9
Ευθύμιος Γρηγοράκης
Ανάλυση Δεδομένων(2/3)
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 10
• Data Annotation
• Με βάση τα Patch files και τις αλλαγές που πραγματοποιούνται
• 17 κατηγορίες αλλαγών
Ευθύμιος Γρηγοράκης
Ανάλυση Δεδομένων(3/3)
• Παραδείγματα αλλαγών
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 11
Blank lines addition
Intermediate variable
Ευθύμιος Γρηγοράκης
Εφαρμογή Αλγορίθμων Μηχανικής Μάθησης
• Classification:
• Decision Tree Classifier
• Random Forest Classifier
• Linear SVM
• Stacking Generalization Model
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 12
Ταξινόμηση Δεδομένων
Ευθύμιος Γρηγοράκης
Αποτελέσματα - Αξιολόγηση
24/1/2024 13
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
Ευθύμιος Γρηγοράκης
Διαδικασία Πειράματος 1
24/1/2024 14
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
• Υπολογισμός διαφορών μεταξύ των
τιμών των μετρικών πριν και μετά το
commit
• Εκτέλεση μοντέλου με είσοδο τις
διαφορές
• Έξοδος: πρόβλεψη σε ποια κατηγορία
αλλαγών ανήκει το commit βελτίωσης
αναγνωσιμότητας
Ευθύμιος Γρηγοράκης
Αποτελέσματα εύρεσης κατηγορίας αλλαγών
• Στο stacking model
χρησιμοποιήθηκαν ως
base models τα μοντέλα
readability
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 15
Ευθύμιος Γρηγοράκης
Διαδικασία Πειράματος 2
24/1/2024 16
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
• Υπολογισμός διαφορών
μεταξύ τιμών των μετρικών
πριν και μετά το commit
• Εκτέλεση μοντέλου με
είσοδο τις διαφορές
• Έξοδος: πρόβλεψη αν η
αναγνωσιμότητα πράγματι βελτιώθηκε
• Το ground truth καθορίζεται από τα ίδια τα μοντέλα
(αν ένα αρχείο βελτιώθηκε τότε το εκάστοτε μοντέλο
θα θεωρήσει αυξημένη αναγνωσιμότητα)
Ευθύμιος Γρηγοράκης
Class Imbalances
24/1/2024 17
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
Ευθύμιος Γρηγοράκης
Αποτελέσματα εύρεσης commits που βελτιώνουν
την αναγνωσιμότητα
• Το κάθε Δέντρο
Απόφασης εκπαιδεύτηκε
με τις διαφορές
χαρακτηριστικών και το
readability score του
αναλογου μοντέλου
• Στο μοντέλο με Voting
Score χρησιμοποιήθηκαν
όλα τα χαρακτηριστικά
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 18
Ευθύμιος Γρηγοράκης
Παραδείγματα Μονοπατιών
24/1/2024 19
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
Comment Density
>= 0
McCabe Complexity
<= -0.04
Nesting Level
> -0.19
Comment Density
> 0
Comment Lines of Code
< 0.01
Halstead Vocabulary
<= 0.04
Periods Average
>= 0
Spaces Average
> -0.06
Avg Identifiers Length
<= -0,04
Model: Karanikiotis Model: Karanikiotis Model: Buse & Weimer
Result:
Reduced Readability
Result:
Reduced Readability
Result:
Increased Readability
Ευθύμιος Γρηγοράκης
Συμπεράσματα
24/1/2024 20
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
Ευθύμιος Γρηγοράκης
Συμπεράσματα
• Για την εύρεση commits που βελτιώνουν την αναγνωσιμότητα το
μοντέλο Posnett έχει τα καλύτερα αποτελέσματα.
• Το παραπάνω αποτελέι ένδειξη ότι οι αλλαγές των προγραμματιστών
συμβαδίζουν με την κατεύθυνσή των μετρικών του μοντέλου Posnett
• Για την εύρεση της κατηγορίας αλλαγών το Stacking Model έχει
καλύτερα αποτελέσματα
• Μια εφαρμογή του μοντέλου θα ήταν η αυτόματη συγγραφή σχολίων
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 21
Ευθύμιος Γρηγοράκης
Μελλοντική Εργασία
24/1/2024 22
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
Ευθύμιος Γρηγοράκης
Μελλοντική Εργασία
• Χρήση του Stacking Generalisation Model για την αυτόματη και την
σαφέστερη συγγραφή commit messages
• Π.χ. αντί για "Improves readability" θα γράφαμε "Improves readability by
adding comments" ή "Improves readability by removing redundant lines", κτλ.
• ∆ημιουργία συστήματος για την πρόταση αλλαγών για την βελτίωση
της αναγνωσιμότητας του κώδικα
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 23
Ευθύμιος Γρηγοράκης
Ευχαριστίες
• Θα ήθελα να ευχαριστήσω:
• Τον Καθηγητή Ανδρέα Λ. Συμεωνίδη
• Τον Μεταδιδακτορικό Ερευνητή Θεμιστοκλή Διαμαντόπουλο
• Όλους όσους παρακολουθήσατε την παρουσίαση μου
24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 24
Ευθύμιος Γρηγοράκης
Ερωτήσεις;
24/1/2024 25
Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας

More Related Content

Similar to Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τη Βελτίωση Αναγνωσιµότητας

Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
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
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
ISSEL
 
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...
Applying Data Mining Techniques on Software Repositories to Extract Design an...
ISSEL
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
ISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
ISSEL
 
System Development for Prediction of Static Analysis Metrics of Source Code
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
ISSEL
 
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
ISSEL
 
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
ISSEL
 
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
ISSEL
 
Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
ISSEL
 

Similar to Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τη Βελτίωση Αναγνωσιµότητας (20)

Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
 
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...
 
Kagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis Presentation
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
 
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...
Applying Data Mining Techniques on Software Repositories to Extract Design an...
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
 
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 ...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
System Development for Prediction of Static Analysis Metrics of Source Code
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
 
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
 
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
 
VET4SBO Level 2 module 2 - unit 1 - v0.9 gr
VET4SBO Level 2   module 2 - unit 1 - v0.9 grVET4SBO Level 2   module 2 - unit 1 - v0.9 gr
VET4SBO Level 2 module 2 - unit 1 - v0.9 gr
 
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
 
Κλέαρχος Θωμόπουλος 7435
Κλέαρχος Θωμόπουλος 7435Κλέαρχος Θωμόπουλος 7435
Κλέαρχος Θωμόπουλος 7435
 
Ιωάννη Α. Ζαφειρίου
Ιωάννη Α. ΖαφειρίουΙωάννη Α. Ζαφειρίου
Ιωάννη Α. Ζαφειρίου
 
Ελένη Νησιώτη
Ελένη ΝησιώτηΕλένη Νησιώτη
Ελένη Νησιώτη
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
 
Οικονόμου Ναπολέων – Χρήστος
Οικονόμου Ναπολέων – ΧρήστοςΟικονόμου Ναπολέων – Χρήστος
Οικονόμου Ναπολέων – Χρήστος
 

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
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
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 environments
ISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
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
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
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...
Static Analysis of Python code and Identification of Potential Security Vulne...
ISSEL
 
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
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...
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
 
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...
Static Analysis of Python code and Identification of Potential Security Vulne...
 
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
 

Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τη Βελτίωση Αναγνωσιµότητας

  • 1. Ευθύμιος Γρηγοράκης Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κύκλος Σπουδών Ηλεκτρονικής και Υπολογιστών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Πολυτεχνική Σχολή Ομάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογιστών Διπλωματική Εργασία Εκπόνηση: Ευθύμιος Γρηγοράκης ΑΕΜ: 9694 Επιβλέποντες: Ανδρέας Λ. Συμεωνίδης Καθηγητής ΑΠΘ Διαμαντόπουλος Θεμιστοκλής Μεταδιδακτορικός Ερευνητής 24/1/2024 1
  • 2. Ευθύμιος Γρηγοράκης Περιεχόμενα 1. Εισαγωγή - Στόχοι 2. Μεθοδολογία 3. Αποτελέσματα - Αξιολόγηση 4. Συμπεράσματα 5. Μελλοντική Εργασία 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 2
  • 3. Ευθύμιος Γρηγοράκης Εισαγωγή-Στόχος 24/1/2024 3 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
  • 4. Ευθύμιος Γρηγοράκης Εισαγωγή • Η συντήρηση ενός έργου λογισμικού αποτελεί το 66-99% του κόστους του • Τα μισά από αυτά τα κόστη αναλώνονται στην κατανόηση του κώδικα • Η αναγνωσιμότητα του κώδικα είναι συνδεδεμένη με το κόστος συντήρησης • Ένας ευανάγνωστος κώδικας χρειάζεται λιγότερο χρόνο για κατανόηση • Η αναγνωσιμότητα του κώδικα είναι σημαντική για την ανάπτυξη και συντήρηση 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 4
  • 5. Ευθύμιος Γρηγοράκης Στόχοι 1. Διερεύνηση αν τα commits που στοχεύουν σε βελτίωση αναγνωσιμότητας πράγματι τη βελτιώνουν με βάση τα μοντέλα της βιβλιογραφίας 2. Ανάπτυξη μοντέλου για την κατηγοριοποίηση commits που στοχεύουν σε βελτίωση αναγνωσιμότητας με βάση τις αλλαγές του κώδικα 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 5
  • 6. Ευθύμιος Γρηγοράκης Μεθοδολογία 24/1/2024 6 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
  • 7. Ευθύμιος Γρηγοράκης Διάγραμμα Ροής Μεθοδολογίας 24/1/2024 7 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
  • 8. Ευθύμιος Γρηγοράκης Συλλογή Δεδομένων • Λήψη commits μέσω GitHub API • Αναζήτηση βάσει commit message (π.χ. “more readable”) • Java files • Single-file changes • Patch file εώς 25 γραμμές • Λήψη των αρχείων πριν και μετά τις αλλαγές 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 8 Παράδειγμα commit
  • 9. Ευθύμιος Γρηγοράκης Ανάλυση Δεδομένων(1/3) • Μετρικές Στατικής Ανάλυσης • Χρήση εργαλείου στατικής ανάλυσης SourceMeter Analyzer • Εφαρμογή σε before και after files • Εξαγωγή 11 μετρικών, όπως π.χ. cyclomatic complexity • Μετρικές Αναγνωσιμότητας • Χρήση εργαλείου Scalabrino • Yπολογισμός 47 μετρικών σχετικών με αναγνωσιμότητα • Π.χ. number of Identifiers, number of comment lines • Υπολογισμός Readability Score για μοντέλα Scalabrino, Buse-Weimer, Posnett, Karanikiotis 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 9
  • 10. Ευθύμιος Γρηγοράκης Ανάλυση Δεδομένων(2/3) 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 10 • Data Annotation • Με βάση τα Patch files και τις αλλαγές που πραγματοποιούνται • 17 κατηγορίες αλλαγών
  • 11. Ευθύμιος Γρηγοράκης Ανάλυση Δεδομένων(3/3) • Παραδείγματα αλλαγών 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 11 Blank lines addition Intermediate variable
  • 12. Ευθύμιος Γρηγοράκης Εφαρμογή Αλγορίθμων Μηχανικής Μάθησης • Classification: • Decision Tree Classifier • Random Forest Classifier • Linear SVM • Stacking Generalization Model 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 12 Ταξινόμηση Δεδομένων
  • 13. Ευθύμιος Γρηγοράκης Αποτελέσματα - Αξιολόγηση 24/1/2024 13 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
  • 14. Ευθύμιος Γρηγοράκης Διαδικασία Πειράματος 1 24/1/2024 14 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας • Υπολογισμός διαφορών μεταξύ των τιμών των μετρικών πριν και μετά το commit • Εκτέλεση μοντέλου με είσοδο τις διαφορές • Έξοδος: πρόβλεψη σε ποια κατηγορία αλλαγών ανήκει το commit βελτίωσης αναγνωσιμότητας
  • 15. Ευθύμιος Γρηγοράκης Αποτελέσματα εύρεσης κατηγορίας αλλαγών • Στο stacking model χρησιμοποιήθηκαν ως base models τα μοντέλα readability 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 15
  • 16. Ευθύμιος Γρηγοράκης Διαδικασία Πειράματος 2 24/1/2024 16 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας • Υπολογισμός διαφορών μεταξύ τιμών των μετρικών πριν και μετά το commit • Εκτέλεση μοντέλου με είσοδο τις διαφορές • Έξοδος: πρόβλεψη αν η αναγνωσιμότητα πράγματι βελτιώθηκε • Το ground truth καθορίζεται από τα ίδια τα μοντέλα (αν ένα αρχείο βελτιώθηκε τότε το εκάστοτε μοντέλο θα θεωρήσει αυξημένη αναγνωσιμότητα)
  • 17. Ευθύμιος Γρηγοράκης Class Imbalances 24/1/2024 17 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
  • 18. Ευθύμιος Γρηγοράκης Αποτελέσματα εύρεσης commits που βελτιώνουν την αναγνωσιμότητα • Το κάθε Δέντρο Απόφασης εκπαιδεύτηκε με τις διαφορές χαρακτηριστικών και το readability score του αναλογου μοντέλου • Στο μοντέλο με Voting Score χρησιμοποιήθηκαν όλα τα χαρακτηριστικά 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 18
  • 19. Ευθύμιος Γρηγοράκης Παραδείγματα Μονοπατιών 24/1/2024 19 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας Comment Density >= 0 McCabe Complexity <= -0.04 Nesting Level > -0.19 Comment Density > 0 Comment Lines of Code < 0.01 Halstead Vocabulary <= 0.04 Periods Average >= 0 Spaces Average > -0.06 Avg Identifiers Length <= -0,04 Model: Karanikiotis Model: Karanikiotis Model: Buse & Weimer Result: Reduced Readability Result: Reduced Readability Result: Increased Readability
  • 20. Ευθύμιος Γρηγοράκης Συμπεράσματα 24/1/2024 20 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
  • 21. Ευθύμιος Γρηγοράκης Συμπεράσματα • Για την εύρεση commits που βελτιώνουν την αναγνωσιμότητα το μοντέλο Posnett έχει τα καλύτερα αποτελέσματα. • Το παραπάνω αποτελέι ένδειξη ότι οι αλλαγές των προγραμματιστών συμβαδίζουν με την κατεύθυνσή των μετρικών του μοντέλου Posnett • Για την εύρεση της κατηγορίας αλλαγών το Stacking Model έχει καλύτερα αποτελέσματα • Μια εφαρμογή του μοντέλου θα ήταν η αυτόματη συγγραφή σχολίων 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 21
  • 22. Ευθύμιος Γρηγοράκης Μελλοντική Εργασία 24/1/2024 22 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας
  • 23. Ευθύμιος Γρηγοράκης Μελλοντική Εργασία • Χρήση του Stacking Generalisation Model για την αυτόματη και την σαφέστερη συγγραφή commit messages • Π.χ. αντί για "Improves readability" θα γράφαμε "Improves readability by adding comments" ή "Improves readability by removing redundant lines", κτλ. • ∆ημιουργία συστήματος για την πρόταση αλλαγών για την βελτίωση της αναγνωσιμότητας του κώδικα 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 23
  • 24. Ευθύμιος Γρηγοράκης Ευχαριστίες • Θα ήθελα να ευχαριστήσω: • Τον Καθηγητή Ανδρέα Λ. Συμεωνίδη • Τον Μεταδιδακτορικό Ερευνητή Θεμιστοκλή Διαμαντόπουλο • Όλους όσους παρακολουθήσατε την παρουσίαση μου 24/1/2024 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας 24
  • 25. Ευθύμιος Γρηγοράκης Ερωτήσεις; 24/1/2024 25 Εφαρμογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα με στόχο τη Βελτίωση Αναγνωσιμότητας