Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Christos Psarras

169 views

Published on

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

Published in: Education
  • Be the first to comment

  • Be the first to like this

Christos Psarras

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

×