christos psarras

27
Aνάπτυξη Συστήματος Οπτικοποίησης Πηγαίου Κώδικα με χρήση τεχνικών Ανάκτησης Πληροφοριών ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Εκπόνηση: Ψάρρας Χρήστος ΑΕΜ: 7803 Επίβλεψη: Αν. Καθ. Συμεωνίδης Ανδρέας Υπ. Δρ. Θεμιστοκλής Διαμαντόπουλος Θεσσαλονίκη, Μάρτιος 2017 Oμάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού Θεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ 1

Upload: issel

Post on 05-Apr-2017

54 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

1

Aνάπτυξη Συστήματος Οπτικοποίησης Πηγαίου Κώδικα με χρήση τεχνικών

Ανάκτησης Πληροφοριών

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ

ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Εκπόνηση:Ψάρρας ΧρήστοςΑΕΜ: 7803

Επίβλεψη:Αν. Καθ. Συμεωνίδης Ανδρέας

Υπ. Δρ. Θεμιστοκλής ΔιαμαντόπουλοςΘεσσαλονίκη, Μάρτιος 2017

Oμάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού

Θεσσαλονίκη, Μάρτιος 2017

Page 2: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

2

Περιεχόμενα Εισαγωγή Ορισμός Προβλήματος State of the art Σκοπός διπλωματικής Ανάλυση του συστήματος Πειράματα Συμπεράσματα - Μελλοντική εργασία

Θεσσαλονίκη, Μάρτιος 2017

Page 3: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

3

Εισαγωγή Ψηφιακή εποχή (εποχή της πληροφορίας)

Free και Open Source Software Πολυπλοκότητα των σύγχρονων προγραμμάτων απαιτεί την ανάπτυξη κώδικα με χρήση βιβλιοθηκών

Θεσσαλονίκη, Μάρτιος 2017

Page 4: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

4

Ορισμός του προβλήματος Αριθμός βιβλιοθηκών τεράστιος και συνεχώς αυξανόμενος

Εξοικείωση και επέκταση δύσκολη Τεκμηρίωση συχνά ανεπαρκής ή ανύπαρκτη

Θεσσαλονίκη, Μάρτιος 2017

Page 5: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

5

State of the art Παρόμοια Συστήματα

Ομαδοποίηση κώδικα με χρήση LSI Ομαδοποίηση κώδικα με χρήση LDA

Μειονεκτήματα Οι παράμετροι των συστημάτων δεν είναι αυτοματοποιημένοι 

Τα θέματα δεν ονοματίζονται, δεν γνωρίζουμε τη λειτουργικότητά τους 

Δεν έχουμε κάποιο αντικειμενικό κριτήριο "καλής" ομαδοποίησης

Θεσσαλονίκη, Μάρτιος 2017

Page 6: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

6

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

Το σύστημά μας προσφέρει:◦ Οπτικοποίηση χωρισμού των πακέτων σε

νοηματικές κατηγορίες (θέματα)◦ Δημιουργία αντικειμενικού κριτηρίου "καλής"

ομαδοποίησης◦ Σύγκριση μεθόδων ομαδοποίησης μεταξύ τους◦ Μείωση του συνολικού αριθμού θεμάτων◦ Αυτοματοποιημένη ονομασία θεμάτων

Θεσσαλονίκη, Μάρτιος 2017

Page 7: Christos Psarras

Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ 7

Page 8: Christos Psarras

Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ 8

Page 9: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

9

Εξαγωγέας

Θεσσαλονίκη, Μάρτιος 2017

Page 10: Christos Psarras

Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ 10

Page 11: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

11

Προεπεξεργαστής

Θεσσαλονίκη, Μάρτιος 2017

Κάθε έγγραφο είναι μια συλλογή από λέξεις για κάθε κλάση που περιλαμβάνει:• Ονόματα και τύπους μεταβλητών και

μεθόδων• Javadocs και λοιπούς σχολιασμούς

Η προεπεξεργασία περιλαμβάνει:• Μετατροπή σε πεζά• Καθαρισμό Javadoc και σχολίων• Διαχωρισμό CamelCase • Tokenization• Αφαίρεση stopwords• lemmatization

Page 12: Christos Psarras

Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ 12

Page 13: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

13

Διανυσματοποιητής & Ομαδοποιητής

Θεσσαλονίκη, Μάρτιος 2017

Τεχνικές διανυσματοποίησης:• Count vectorization• Tf-idf vectorization

Τεχνικές Ομαδοποίησης:• K-means• LDA

Page 14: Christos Psarras

Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ 14

Page 15: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

15

Βελτιστοποιητής

Θεσσαλονίκη, Μάρτιος 2017

Page 16: Christos Psarras

Ανάλυση ΣυστήματοςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ 16

Page 17: Christos Psarras

Κριτήριο βέλτιστης ομαδοποίησηςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ 17

Count + k-means

Tf-idf + k-means

Page 18: Christos Psarras

Κριτήριο βέλτιστης ομαδοποίησηςΘεσσαλονίκη, Μάρτιος 2017 ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ 18

Count + LDA Tf-idf + LDA

Page 19: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

19

Κατανομή πακέτων σε θέματα

Θεσσαλονίκη, Μάρτιος 2017

Page 20: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

20

Θέματα και αυτόματη ονομασία

Θεσσαλονίκη, Μάρτιος 2017

Page 21: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

21

Απόδοση σε άλλα συστήματα

Θεσσαλονίκη, Μάρτιος 2017

Page 22: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

22Θεσσαλονίκη, Μάρτιος 2017

Page 23: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

23Θεσσαλονίκη, Μάρτιος 2017

Page 24: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

24Θεσσαλονίκη, Μάρτιος 2017

Page 25: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

25

Συμπεράσματα Πετύχαμε χωρισμό μιας βιβλιοθήκης στις νοηματικές κατηγορίες (θέματα) από τις οποίες αποτελείται.

Ο αριθμός των ομάδων βελτιστοποιείται με μέθοδο που είναι ανεξάρτητη του αλγορίθμου ομαδοποίησης που χρησιμοποιείται.

Επιπλέον, εφαρμόζεται μεταεπεξεργασία στα θέματα, με σκοπό τη μείωση του αριθμού τους, βρίσκοντας τα όμοια.

Παρουσιάζεται η κατανομή των πακέτων στα επιμέρους θέματα.  H αυτόματη ονομασία των θεμάτων με την χρήση ετικετών από το Stack Overflow, περιγράφει αρκετά καλά την λειτουργικότητά που εκφράζουν.

Θεσσαλονίκη, Μάρτιος 2017

Page 26: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

26

Μελλοντική Εργασία Η μέθοδος αξιολόγησης που έχουμε επιλέξει βασίζεται στην δομή των πακέτων που έχει ορίσει ο δημιουργός της εφαρμογής που αναλύουμε.

Δοκιμή επιπλέον μεθόδων ομαδοποίησης (π.χ. autoencoders) και σύγκριση των αποτελεσμάτων. 

Διερεύνηση της επίδρασης των παραμέτρων του LDA στην απόδοση του αλγορίθμου, με βάση τα κριτήρια αξιολόγησης που έχουμε ορίσει (purity).

Πρόταση αλλαγών στη δομή των πακέτων με διάσπαση ή συγχώνευση.

Θεσσαλονίκη, Μάρτιος 2017

Page 27: Christos Psarras

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΑΝΑΚΤΗΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

27

Ευχαριστώ για την προσοχή σας

Θεσσαλονίκη, Μάρτιος 2017