Upload
issel
View
54
Download
0
Embed Size (px)
Citation preview
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
1
Aνάπτυξη Συστήματος Οπτικοποίησης Πηγαίου Κώδικα με χρήση τεχνικών
Ανάκτησης Πληροφοριών
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ
ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Εκπόνηση:Ψάρρας ΧρήστοςΑΕΜ: 7803
Επίβλεψη:Αν. Καθ. Συμεωνίδης Ανδρέας
Υπ. Δρ. Θεμιστοκλής ΔιαμαντόπουλοςΘεσσαλονίκη, Μάρτιος 2017
Oμάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
2
Περιεχόμενα Εισαγωγή Ορισμός Προβλήματος State of the art Σκοπός διπλωματικής Ανάλυση του συστήματος Πειράματα Συμπεράσματα - Μελλοντική εργασία
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
3
Εισαγωγή Ψηφιακή εποχή (εποχή της πληροφορίας)
Free και Open Source Software Πολυπλοκότητα των σύγχρονων προγραμμάτων απαιτεί την ανάπτυξη κώδικα με χρήση βιβλιοθηκών
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
4
Ορισμός του προβλήματος Αριθμός βιβλιοθηκών τεράστιος και συνεχώς αυξανόμενος
Εξοικείωση και επέκταση δύσκολη Τεκμηρίωση συχνά ανεπαρκής ή ανύπαρκτη
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
5
State of the art Παρόμοια Συστήματα
Ομαδοποίηση κώδικα με χρήση LSI Ομαδοποίηση κώδικα με χρήση LDA
Μειονεκτήματα Οι παράμετροι των συστημάτων δεν είναι αυτοματοποιημένοι
Τα θέματα δεν ονοματίζονται, δεν γνωρίζουμε τη λειτουργικότητά τους
Δεν έχουμε κάποιο αντικειμενικό κριτήριο "καλής" ομαδοποίησης
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
6
Σκοπός διπλωματικήςΑνάπτυξη του δικού μας RSSE, που χρησιμοποιεί τεχνικές ομαδοποίησης για την ανάλυση της δομής βιβλιοθηκών
Το σύστημά μας προσφέρει:◦ Οπτικοποίηση χωρισμού των πακέτων σε
νοηματικές κατηγορίες (θέματα)◦ Δημιουργία αντικειμενικού κριτηρίου "καλής"
ομαδοποίησης◦ Σύγκριση μεθόδων ομαδοποίησης μεταξύ τους◦ Μείωση του συνολικού αριθμού θεμάτων◦ Αυτοματοποιημένη ονομασία θεμάτων
Θεσσαλονίκη, Μάρτιος 2017
Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ
ΠΛΗΡΟΦΟΡΙΩΝ 7
Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ
ΠΛΗΡΟΦΟΡΙΩΝ 8
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
9
Εξαγωγέας
Θεσσαλονίκη, Μάρτιος 2017
Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ
ΠΛΗΡΟΦΟΡΙΩΝ 10
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
11
Προεπεξεργαστής
Θεσσαλονίκη, Μάρτιος 2017
Κάθε έγγραφο είναι μια συλλογή από λέξεις για κάθε κλάση που περιλαμβάνει:• Ονόματα και τύπους μεταβλητών και
μεθόδων• Javadocs και λοιπούς σχολιασμούς
Η προεπεξεργασία περιλαμβάνει:• Μετατροπή σε πεζά• Καθαρισμό Javadoc και σχολίων• Διαχωρισμό CamelCase • Tokenization• Αφαίρεση stopwords• lemmatization
Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ
ΠΛΗΡΟΦΟΡΙΩΝ 12
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
13
Διανυσματοποιητής & Ομαδοποιητής
Θεσσαλονίκη, Μάρτιος 2017
Τεχνικές διανυσματοποίησης:• Count vectorization• Tf-idf vectorization
Τεχνικές Ομαδοποίησης:• K-means• LDA
Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ
ΠΛΗΡΟΦΟΡΙΩΝ 14
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
15
Βελτιστοποιητής
Θεσσαλονίκη, Μάρτιος 2017
Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ
ΠΛΗΡΟΦΟΡΙΩΝ 16
Κριτήριο βέλτιστης ομαδοποίησηςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ
ΠΛΗΡΟΦΟΡΙΩΝ 17
Count + k-means
Tf-idf + k-means
Κριτήριο βέλτιστης ομαδοποίησηςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ
ΠΛΗΡΟΦΟΡΙΩΝ 18
Count + LDA Tf-idf + LDA
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
19
Κατανομή πακέτων σε θέματα
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
20
Θέματα και αυτόματη ονομασία
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
21
Απόδοση σε άλλα συστήματα
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
22Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
23Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
24Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
25
Συμπεράσματα Πετύχαμε χωρισμό μιας βιβλιοθήκης στις νοηματικές κατηγορίες (θέματα) από τις οποίες αποτελείται.
Ο αριθμός των ομάδων βελτιστοποιείται με μέθοδο που είναι ανεξάρτητη του αλγορίθμου ομαδοποίησης που χρησιμοποιείται.
Επιπλέον, εφαρμόζεται μεταεπεξεργασία στα θέματα, με σκοπό τη μείωση του αριθμού τους, βρίσκοντας τα όμοια.
Παρουσιάζεται η κατανομή των πακέτων στα επιμέρους θέματα. H αυτόματη ονομασία των θεμάτων με την χρήση ετικετών από το Stack Overflow, περιγράφει αρκετά καλά την λειτουργικότητά που εκφράζουν.
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
26
Μελλοντική Εργασία Η μέθοδος αξιολόγησης που έχουμε επιλέξει βασίζεται στην δομή των πακέτων που έχει ορίσει ο δημιουργός της εφαρμογής που αναλύουμε.
Δοκιμή επιπλέον μεθόδων ομαδοποίησης (π.χ. autoencoders) και σύγκριση των αποτελεσμάτων.
Διερεύνηση της επίδρασης των παραμέτρων του LDA στην απόδοση του αλγορίθμου, με βάση τα κριτήρια αξιολόγησης που έχουμε ορίσει (purity).
Πρόταση αλλαγών στη δομή των πακέτων με διάσπαση ή συγχώνευση.
Θεσσαλονίκη, Μάρτιος 2017
ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ
27
Ευχαριστώ για την προσοχή σας
Θεσσαλονίκη, Μάρτιος 2017