Theofilos Georgiadis: Library recommendation system for the reuse of software parts

Σύστημα υπόδειξης βιβλιοθηκών
με σκοπό την επανάχρηση
τμημάτων λογισμικού
Θεόφιλος Γεωργιάδης,
ΑΕΜ 8124
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης,
Τμήμα Ηλεκτρολόγων Μηχανικων
Eπιβλέποντας:
Ανδρέας Συμεωνίδης
Συνεπιβλέποντας:
Εμμανουήλ Κρασανάκης
07-10-2020
Σκοπός της διπλωματικής εργασίας
 Ανάπτυξη ενός συστήματος το οποίο θα προτείνει έτοιμες βιβλιοθήκες για τη γλώσσα python
χρησιμοποιώντας ερωτήματα σε φυσική γλώσσα.
 Ένα σύστημα που θα προτείνει όχι μόνο σωστές βιβλιοθήκες αλλά θα προτείνει και πολλές
διαφορετικές. Για αυτό θα αξιολογήσουμε το σύστημα με βάση το γινόμενο δυο μετρικών. Το
HR@10 (πόσες σωστές βιβλιοθήκες προβλέπονται) και Coverage (πόση διασπορά υπάρχει σε
αυτές)
 Να γλυτώσουμε το προγραμματιστή από πολύτιμο χρόνο που θα έπρεπε να αφιερώσει για να
συγκρίνει αποτελέσματα σε μηχανές αναζήτησης ώστε βρει τη βιβλιοθήκη που τον ενδιαφέρει.
 Ανάλυση των παρόμοιων συστημάτων που υπάρχουν στη βιβλιογραφία με σκοπό την ανάδειξη
των πλεονεκτημάτων του δικού μας συστήματος.
Ιούνιος 2020 Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
2
Γνώσεις που αποκτήθηκαν
 Εξοικίωση με τη γλώσσα python
 Γνώσεις για την λειτουργία των συστημάτων προτάσεων
 Γράφοι και τεχνικές εξαγωγής συμπερασμάτων
 Τεχνικές που χρησιμοποιούνται στην επεξεργασία φυσικής γλώσσας
και στον τομέα της μηχανικής μάθησης
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
3
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
4
Λειτουργία συστήματος
How to get current time
Λέξεις κλειδιά: current, time
Τιμές ομοιότητας για κάθε
βιβλιοθήκη με τις λέξεις
current, time
10 βιβλιοθήκες με τη
μεγαλύτερη τιμή ομοιότητας
Παράδειγμα χρήσης
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
5
Εισαγωγή
Δεδομένων
Εισαγωγή στο
γράφο
Εξαγωγή λέξεων
κλειδιών και
βιβλιοθηκών
Αρχεία κώδικα
Εξαγωγή
αναπαράστασης
Γράφος
Βιβλιοθήκες/ λέξεις
κλειδιά αρχείου
Υπολογισμός
ομοιότητας με
κάθε βιβλιοθήκη
Λέξεις κλειδιά
Πίνακας 16
διαστάσεων για
κάθε κόμβο
10 προτεινόμενες
βιβλιοθήκες
Αρχιτεκτονική μοντέλου πρόβλεψης
Παράδειγμα γράφου
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
6
Ακμές μόνο μεταξύ βιβλιοθηκών-λέξεων κλειδιών.
Δεν υπάρχουν ακμές μεταξύ βιβλιοθηκών ή λέξεων κλειδιών.
Για κάθε λέξη-κλειδί που συνεμφανίζεται μαζί με μια βιβλιοθήκη σε ένα αρχείο κώδικα
η μέθοδο ενός έργου λογισμικού, υπάρχει ακμή.
Ως βάρος της ακμής ορίζεται ο αριθμός των αρχείων στα οποία συνεμφανίζονται.
Μεθοδολογία
Ιούνιος 2020
Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
7 Αναπαράσταση Γράφου
Χρησιμοποιείται η μέθοδος line που χρησιμοποιεί δυο εγγύτητες (1ου , 2ου ) και
συνδυασμός αυτών, για την εξαγωγή τους.
Μέθοδοι Υπολογισμού Ομοιότητας
3 διαφορετικού μέθοδοι (cosine, dot, learned). Το learned είναι ένα
μοντέλο πρόβλεψης που εκπαιδεύσαμε.
Χρησιμοποιήθηκε η συχνότητα IDF για τις βιβλιοθήκες και τις λέξεις κλειδιά όπως
και λημματοποίηση των λέξεων κλειδιών.
Βελτίωση αποτελεσμάτων
Ιούνιος 2020
Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
8
Εκπαίδευση
Για κάθε μέθοδο εξήγαμε τις λέξεις κλειδιά και τις βιβλιοθήκες. Για τις λέξεις κλειδιά
χρησιμοποιήσαμε την περιγραφή της μεθόδου και για τις βιβλιοθήκες τον σώμα της.
Έπειτα, ενώσαμε τις λέξεις κλειδιά με τις βιβλιοθήκες στο γράφο.
Έλεγχος
Για κάθε έργο εξήγαμε όλες τις λέξεις κλειδιά και τις βιβλιοθήκες του με την ίδια
διαδικασία. Έπειτα, χρησιμοποιώντας τις λέξεις κλειδιά του κάθε έργου
επιχειρήσαμε να προβλέψουμε τις βιβλιοθήκες.
Σετ έργων λογισμικού: 584 έργα λογισμικού τα οποία αποτελούνται από
100000 μεθόδους (80% για εκπαίδευση και 20% για έλεγχο).
Πείραμα στα διάφορα έργα λογισμικού
Χρήση IDF
Χαρακτηριστικά μεθόδου πρόβλεψης Μετρικές Αξιολόγησης
Εγγ.1 Εγγ. 2 IDF Ομοιότητα HR@10 AUC NDCG Coverage HR@10*Coverage
   cosine .25 .57 .57 .77 .19
   dot .25 .57 .57 .77 .19
   learned .45 .75 .70 .08 .03
  × cosine .22 .58 .55 .80 .18
  × dot .22 .58 .55 .80 .18
  × learned .21 .66 .52 .38 .10
Χρήση bag of words .32 .78 .71 .005 .002
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
9
Πείραμα στα διάφορα έργα λογισμικού
Διαφορετικές εγγύτητες και ομοιότητες
Χρήση IDF: +46% στη μετρική HR@10
Καλύτερη μέθοδος με βάση το HR@10*Coverage: Χρήση IDF, Συνδυασμός
εγγυητών (1ου και 2ου), Ομοιότητα dot
Χαρακτηριστικά μεθόδου πρόβλεψης Μετρικές Αξιολόγησης
Εγγ.1 Εγγ. 2 IDF Ομοιότητα HR@10 AUC NDCG Coverage HR@10*Coverage
 ×  cosine .22 .56 .55 .76 .17
 ×  dot .22 .56 .55 .76 .17
 ×  learned .30 .63 .60 .57 .17
×   cosine .07 .28 .41 .33 .02
×   dot .07 .28 .41 .33 .02
×   learned .44 .73 .70 .11 .05
   cosine .25 .57 .57 .77 .19
   dot .25 .57 .57 .77 .19
   learned .45 .75 .70 .08 .03
Χρήση bag of words .32 .78 .71 .005 .002
Πείραμα keras
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
10 Σετ έργου λογισμικού keras: 64 αρχεία κώδικα (80% για εκπαίδευση και 20%
για έλεγχο)
Εκπαίδευση-έλεγχος: Ίδια διαδικασία με πριν χωρίς ύπαρξη μεθόδων και έργων
Πείραματα Χρήση IDF, 3 μέθοδοι υπολογισμού εγγύτητας και ομοιότητας
Χρήση IDF
Χαρακτηριστικά μεθόδου πρόβλεψης Μετρικές Αξιολόγησης
Εγγ.1 Εγγ. 2 IDF Ομοιότητα HR@10 AUC NDCG Coverage HR@10*Coverage
   cosine .30 .47 .62 .39 .12
   dot .29 .46 .59 .44 .13
   learned .61 .92 .93 .20 .12
  × cosine .10 .29 .43 .41 .04
  × dot .12 .30 .44 .37 .04
  × learned .46 .81 .77 .21 .10
Χρήση bag of words .67 .95 .95 .12 .08
Πείραμα keras
Ιούνιος
2020
Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
11
Διαφορετικές εγγύτητες και ομοιότητες
Με χρήση IDF +77% στη μετρική HR@10
Καλύτερη μέθοδος με βάση το HR@10*Coverage: Χρήση IDF,
Εγγύτητα 1ου βαθμού, Ομοιότητα cosine
Χαρακτηριστικά μεθόδου πρόβλεψης Μετρικές Αξιολόγησης
Εγγ.1 Εγγ. 2 IDF Ομοιότητα HR@10 AUC NDCG Coverage HR@10*Coverage
 ×  cosine .42 .68 .74 .54 .23
 ×  dot .43 .69 .74 .40 .17
 ×  learned .53 .88 .81 .25 .13
×   cosine .01 .04 .32 .38 .00
×   dot .01 .04 .32 .32 .00
×   learned .62 .95 .92 .22 .14
   cosine .30 .47 .62 .39 .12
   dot .29 .46 .59 .44 .13
   learned .61 .92 .93 .20 .12
Χρήση bag of words .67 .95 .95 .12 .08
Ιούνιος
2020
Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
12
Πείραμα σε δημοφιλή ερωτήματα
Σύγκριση απόδοσης συστήματος σε 14 δημοφιλή ερωτήματα του Stack
Overflow
Στα 10 από τα 14 ερωτήματα το σύστημα προέβλεψε σωστές βιβλιοθήκες και
σε κάποιες περιπτώσεις, άλλες χρήσιμες βιβλιοθήκες. (αναλυτικά αποτελέσματα
στο τέλος)
Αρ. Ερώτημα
1 How to call an external command
2 How to sort a dictionary by value
3 Convert string representation of a list to a list
4 How do I merge two dictionaries into a single expression
5 How to convert string into datetime
6 How to import a module given the full path
7 How to get current time
8 How do I concatenate two lists
9 How to count occurrences of a list item
10 How do I download a file over HTTP
11 How to use threading
12 How to connect to MySQL database
13 How to write JSON data to a file
14 How to get posted JSON in Flask
Συμπεράσματα
 Τα καλύτερα αποτελέσματα εμφανίζει η μέθοδος line για υπολογισμό των
embeddings, με χρήση του dot similarity ή cosine και του tf-idf.
 Το μοντέλο δεν μπορεί να εξάγει ποιοτικά αποτελέσματα μόνο με τη χρήση του
γράφου (bag of words) γιατί προβλέπει συνέχεια τις ίδιες βιβλιοθήκες.
 Η επιλογή του να μάθουμε την ομοιότητα δεν προσφέρει βελτίωση
αποτελεσμάτων στο σύστημα. Θα μπορούσαμε να τη χρησιμοποιήσουμε αν
ενδιαφερόμασταν για ένα σύστημα που προβλέπει πολλές σωστές βιβλιοθήκες
αλλά έχει μικρή διασπορά.
 Ο αλγόριθμος line για τα embeddings δίνει τα καλύτερα αποτελέσματα,
δοκιμάστηκε και ο node2vec που έδινε πολύ χαμηλά αποτελέσματα.
 Σε dataset με λιγότερες βιβλιοθήκες όπως το keras, το σύστημα δίνει καλύτερα
αποτελέσματα.
 Οπως έγινε εμφανές στο πείραμα με τα ερωτήματα, το σύστημα συμπεριφέρεται
καλά σε πρακτικά προβλήματα που συναντιούνται συχνά.
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
13
Μελλοντική εργασία
 Βελτίωση της αναπαράστασης του γράφου
 Συνδυασμός διαφορετικών μεθόδων πρόβλεψης
 Επέκταση σε άλλες γλώσσες
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
14
Ευχαριστίες
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
15
Θα ήθελα να ευχαριστήσω τον Κ. Συμεωνίδη που με επέλεξε για τη
διπλωματική και τον διπλωματικό φοιτητή Μανώλη για την πολύτιμη
βοήθεια και την καθοδήγηση του κ άθολη τη διάρκεια της διπλωματικής
Ερωτήσεις
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
16
?
Πείραμα σε δημοφιλή ερωτήματα
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
17
Αποτελέσματα
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
18
Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
19
Ιούνιος
2020
Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
20
1 of 20

Recommended

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
Kagiafas Nikolaos Thesis Presentation by
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationISSEL
88 views25 slides
Evangelos papathomas diploma thesis presentation by
Evangelos papathomas diploma thesis presentationEvangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationISSEL
190 views32 slides
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο... by
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...ISSEL
140 views17 slides
Stelios poulakakis daktylidis diploma thesis presentation by
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationISSEL
237 views30 slides
Konstantinos Papadopoulos Diploma Thesis presenation by
Konstantinos Papadopoulos Diploma Thesis presenationKonstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationISSEL
219 views16 slides

More Related Content

What's hot

Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ... by
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...ISSEL
68 views31 slides
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα... by
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...ISSEL
48 views25 slides
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτι... by
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτι...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτι...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτι...ISSEL
68 views21 slides
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού by
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούISSEL
79 views38 slides
Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς ... by
Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή  διαδικασίας αρχικής προσφοράς ...Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή  διαδικασίας αρχικής προσφοράς ...
Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς ...ISSEL
39 views25 slides
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ... by
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...ISSEL
53 views25 slides

What's hot(16)

Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ... by ISSEL
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
ISSEL68 views
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα... by ISSEL
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
ISSEL48 views
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτι... by ISSEL
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτι...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτι...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτι...
ISSEL68 views
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού by ISSEL
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
ISSEL79 views
Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς ... by ISSEL
Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή  διαδικασίας αρχικής προσφοράς ...Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή  διαδικασίας αρχικής προσφοράς ...
Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς ...
ISSEL39 views
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ... by ISSEL
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ISSEL53 views
Νικόλαος Κατιρτζής 7185 by ISSEL
Νικόλαος Κατιρτζής 7185Νικόλαος Κατιρτζής 7185
Νικόλαος Κατιρτζής 7185
ISSEL134 views
Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυα... by ISSEL
Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυα...Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυα...
Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυα...
ISSEL90 views
Θεμιστοκλής Παπαβασιλείου by ISSEL
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής Παπαβασιλείου
ISSEL152 views
Dontsios Dimitris by ISSEL
Dontsios DimitrisDontsios Dimitris
Dontsios Dimitris
ISSEL280 views
Μεθοδολογία ανάπτυξης γραφικών εφαρμογών για απομακρυσμένα ρομπότ, στο πλαίσ... by ISSEL
Μεθοδολογία ανάπτυξης γραφικών εφαρμογών  για απομακρυσμένα ρομπότ, στο πλαίσ...Μεθοδολογία ανάπτυξης γραφικών εφαρμογών  για απομακρυσμένα ρομπότ, στο πλαίσ...
Μεθοδολογία ανάπτυξης γραφικών εφαρμογών για απομακρυσμένα ρομπότ, στο πλαίσ...
ISSEL52 views
Maria Ioanna Sifaki by ISSEL
Maria Ioanna SifakiMaria Ioanna Sifaki
Maria Ioanna Sifaki
ISSEL329 views
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου... by ISSEL
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
ISSEL73 views
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης by ISSEL
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής MάθησηςΈγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης
ISSEL77 views
Μαρία Κουιρουκίδου by ISSEL
Μαρία ΚουιρουκίδουΜαρία Κουιρουκίδου
Μαρία Κουιρουκίδου
ISSEL146 views
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης by ISSEL
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής ΝοημοσύνηςΕντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης
ISSEL76 views

Similar to Theofilos Georgiadis: Library recommendation system for the reuse of software parts

Γκιλίρης Ιωάννης 7419 by
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419ISSEL
209 views27 slides
KanoutasThomasThesis by
KanoutasThomasThesisKanoutasThomasThesis
KanoutasThomasThesisThomasKanoutas
18 views106 slides
Konstantinos Koukoutegos Diploma Thesis Presentation by
Konstantinos Koukoutegos Diploma Thesis PresentationKonstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis PresentationISSEL
95 views26 slides
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ... by
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
53 views32 slides
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V... by
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...ISSEL
93 views32 slides
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

Similar to Theofilos Georgiadis: Library recommendation system for the reuse of software parts(20)

Γκιλίρης Ιωάννης 7419 by ISSEL
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419
ISSEL209 views
Konstantinos Koukoutegos Diploma Thesis Presentation by ISSEL
Konstantinos Koukoutegos Diploma Thesis PresentationKonstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis Presentation
ISSEL95 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
Applying Data Mining Techniques on Software Repositories to Extract Design an... by 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...
ISSEL29 views
Μαρίνα Γέραλη by ISSEL
Μαρίνα Γέραλη Μαρίνα Γέραλη
Μαρίνα Γέραλη
ISSEL143 views
Παρουσίαση θεμάτων διπλωματικών 2010 by ISSEL
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
ISSEL530 views
Maria - Christina Maniou Diploma Thesis Presentation by ISSEL
Maria - Christina Maniou Diploma Thesis PresentationMaria - Christina Maniou Diploma Thesis Presentation
Maria - Christina Maniou Diploma Thesis Presentation
ISSEL101 views
A rule-based approach for the real-time semantic annotation in context-aware ... by Nikolaos Konstantinou
A rule-based approach for the real-time semantic annotation in context-aware ...A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α... by ISSEL
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
ISSEL13 views
Keyword-based software library recommendation in order to bootstrap software ... by ISSEL
Keyword-based software library recommendation in order to bootstrap software ...Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...
ISSEL10 views
Design and Implementation of a Mechanism that automates the generation of Sof... by 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...
ISSEL132 views
Ιωάννη Α. Ζαφειρίου by ISSEL
Ιωάννη Α. ΖαφειρίουΙωάννη Α. Ζαφειρίου
Ιωάννη Α. Ζαφειρίου
ISSEL115 views
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ... by ISSEL
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
ISSEL70 views
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup by Ioannis Konstantinou
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupΠαρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ... by WROHellas
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
WROHellas11K views
σημειώσεις συνάντηση 6 by natasa08
σημειώσεις συνάντηση 6σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6
natasa08119 views

More from Manos Tsardoulias

Ευρωστία νευρωνικών δικτύων βαθειάς μάθησης - Ακανθόπουλος Ηλίας by
Ευρωστία νευρωνικών δικτύων βαθειάς μάθησης - Ακανθόπουλος ΗλίαςΕυρωστία νευρωνικών δικτύων βαθειάς μάθησης - Ακανθόπουλος Ηλίας
Ευρωστία νευρωνικών δικτύων βαθειάς μάθησης - Ακανθόπουλος ΗλίαςManos Tsardoulias
41 views14 slides
Alexandros Delitzas: Understanding website aesthetics using deep learning by
Alexandros Delitzas: Understanding website aesthetics using deep learningAlexandros Delitzas: Understanding website aesthetics using deep learning
Alexandros Delitzas: Understanding website aesthetics using deep learningManos Tsardoulias
44 views34 slides
Giannopoulos Nikolaos: Ανάπτυξη Τεχνικών Εξατομίκευσης Διαφημιστικών Προβολών... by
Giannopoulos Nikolaos: Ανάπτυξη Τεχνικών Εξατομίκευσης Διαφημιστικών Προβολών...Giannopoulos Nikolaos: Ανάπτυξη Τεχνικών Εξατομίκευσης Διαφημιστικών Προβολών...
Giannopoulos Nikolaos: Ανάπτυξη Τεχνικών Εξατομίκευσης Διαφημιστικών Προβολών...Manos Tsardoulias
87 views31 slides
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu... by
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Manos Tsardoulias
37 views32 slides
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ... by
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...Manos Tsardoulias
74 views22 slides
Pavlos Avgoustinakis: Video retrieval based on audio content from large scale... by
Pavlos Avgoustinakis: Video retrieval based on audio content from large scale...Pavlos Avgoustinakis: Video retrieval based on audio content from large scale...
Pavlos Avgoustinakis: Video retrieval based on audio content from large scale...Manos Tsardoulias
32 views24 slides

More from Manos Tsardoulias(13)

Ευρωστία νευρωνικών δικτύων βαθειάς μάθησης - Ακανθόπουλος Ηλίας by Manos Tsardoulias
Ευρωστία νευρωνικών δικτύων βαθειάς μάθησης - Ακανθόπουλος ΗλίαςΕυρωστία νευρωνικών δικτύων βαθειάς μάθησης - Ακανθόπουλος Ηλίας
Ευρωστία νευρωνικών δικτύων βαθειάς μάθησης - Ακανθόπουλος Ηλίας
Alexandros Delitzas: Understanding website aesthetics using deep learning by Manos Tsardoulias
Alexandros Delitzas: Understanding website aesthetics using deep learningAlexandros Delitzas: Understanding website aesthetics using deep learning
Alexandros Delitzas: Understanding website aesthetics using deep learning
Giannopoulos Nikolaos: Ανάπτυξη Τεχνικών Εξατομίκευσης Διαφημιστικών Προβολών... by Manos Tsardoulias
Giannopoulos Nikolaos: Ανάπτυξη Τεχνικών Εξατομίκευσης Διαφημιστικών Προβολών...Giannopoulos Nikolaos: Ανάπτυξη Τεχνικών Εξατομίκευσης Διαφημιστικών Προβολών...
Giannopoulos Nikolaos: Ανάπτυξη Τεχνικών Εξατομίκευσης Διαφημιστικών Προβολών...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu... by Manos Tsardoulias
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ... by Manos Tsardoulias
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...
Pavlos Avgoustinakis: Video retrieval based on audio content from large scale... by Manos Tsardoulias
Pavlos Avgoustinakis: Video retrieval based on audio content from large scale...Pavlos Avgoustinakis: Video retrieval based on audio content from large scale...
Pavlos Avgoustinakis: Video retrieval based on audio content from large scale...
Gougousis Dimitris: Development of an automated machine learning system for p... by Manos Tsardoulias
Gougousis Dimitris: Development of an automated machine learning system for p...Gougousis Dimitris: Development of an automated machine learning system for p...
Gougousis Dimitris: Development of an automated machine learning system for p...
Despoina Touska: Video Forgery Detection using Autoencoder and Recurrent Neur... by Manos Tsardoulias
Despoina Touska: Video Forgery Detection using Autoencoder and Recurrent Neur...Despoina Touska: Video Forgery Detection using Autoencoder and Recurrent Neur...
Despoina Touska: Video Forgery Detection using Autoencoder and Recurrent Neur...
Kelesakis Dimitrios thesis: Enhancing the conversion rate of e-shops with dyn... by Manos Tsardoulias
Kelesakis Dimitrios thesis: Enhancing the conversion rate of e-shops with dyn...Kelesakis Dimitrios thesis: Enhancing the conversion rate of e-shops with dyn...
Kelesakis Dimitrios thesis: Enhancing the conversion rate of e-shops with dyn...
Pandora Robotics Team - 2007 to 2015 - ECE, AUTH by Manos Tsardoulias
Pandora Robotics Team - 2007 to 2015 - ECE, AUTHPandora Robotics Team - 2007 to 2015 - ECE, AUTH
Pandora Robotics Team - 2007 to 2015 - ECE, AUTH
Manos Tsardoulias1.3K views
Full coverage of a priori known map from multiple robotic agents by Manos Tsardoulias
Full coverage of a priori known map from multiple robotic agentsFull coverage of a priori known map from multiple robotic agents
Full coverage of a priori known map from multiple robotic agents

Theofilos Georgiadis: Library recommendation system for the reuse of software parts

  • 1. Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού Θεόφιλος Γεωργιάδης, ΑΕΜ 8124 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Τμήμα Ηλεκτρολόγων Μηχανικων Eπιβλέποντας: Ανδρέας Συμεωνίδης Συνεπιβλέποντας: Εμμανουήλ Κρασανάκης 07-10-2020
  • 2. Σκοπός της διπλωματικής εργασίας  Ανάπτυξη ενός συστήματος το οποίο θα προτείνει έτοιμες βιβλιοθήκες για τη γλώσσα python χρησιμοποιώντας ερωτήματα σε φυσική γλώσσα.  Ένα σύστημα που θα προτείνει όχι μόνο σωστές βιβλιοθήκες αλλά θα προτείνει και πολλές διαφορετικές. Για αυτό θα αξιολογήσουμε το σύστημα με βάση το γινόμενο δυο μετρικών. Το HR@10 (πόσες σωστές βιβλιοθήκες προβλέπονται) και Coverage (πόση διασπορά υπάρχει σε αυτές)  Να γλυτώσουμε το προγραμματιστή από πολύτιμο χρόνο που θα έπρεπε να αφιερώσει για να συγκρίνει αποτελέσματα σε μηχανές αναζήτησης ώστε βρει τη βιβλιοθήκη που τον ενδιαφέρει.  Ανάλυση των παρόμοιων συστημάτων που υπάρχουν στη βιβλιογραφία με σκοπό την ανάδειξη των πλεονεκτημάτων του δικού μας συστήματος. Ιούνιος 2020 Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 2
  • 3. Γνώσεις που αποκτήθηκαν  Εξοικίωση με τη γλώσσα python  Γνώσεις για την λειτουργία των συστημάτων προτάσεων  Γράφοι και τεχνικές εξαγωγής συμπερασμάτων  Τεχνικές που χρησιμοποιούνται στην επεξεργασία φυσικής γλώσσας και στον τομέα της μηχανικής μάθησης Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 3
  • 4. Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 4 Λειτουργία συστήματος How to get current time Λέξεις κλειδιά: current, time Τιμές ομοιότητας για κάθε βιβλιοθήκη με τις λέξεις current, time 10 βιβλιοθήκες με τη μεγαλύτερη τιμή ομοιότητας Παράδειγμα χρήσης
  • 5. Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 5 Εισαγωγή Δεδομένων Εισαγωγή στο γράφο Εξαγωγή λέξεων κλειδιών και βιβλιοθηκών Αρχεία κώδικα Εξαγωγή αναπαράστασης Γράφος Βιβλιοθήκες/ λέξεις κλειδιά αρχείου Υπολογισμός ομοιότητας με κάθε βιβλιοθήκη Λέξεις κλειδιά Πίνακας 16 διαστάσεων για κάθε κόμβο 10 προτεινόμενες βιβλιοθήκες Αρχιτεκτονική μοντέλου πρόβλεψης
  • 6. Παράδειγμα γράφου Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 6 Ακμές μόνο μεταξύ βιβλιοθηκών-λέξεων κλειδιών. Δεν υπάρχουν ακμές μεταξύ βιβλιοθηκών ή λέξεων κλειδιών. Για κάθε λέξη-κλειδί που συνεμφανίζεται μαζί με μια βιβλιοθήκη σε ένα αρχείο κώδικα η μέθοδο ενός έργου λογισμικού, υπάρχει ακμή. Ως βάρος της ακμής ορίζεται ο αριθμός των αρχείων στα οποία συνεμφανίζονται.
  • 7. Μεθοδολογία Ιούνιος 2020 Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 7 Αναπαράσταση Γράφου Χρησιμοποιείται η μέθοδος line που χρησιμοποιεί δυο εγγύτητες (1ου , 2ου ) και συνδυασμός αυτών, για την εξαγωγή τους. Μέθοδοι Υπολογισμού Ομοιότητας 3 διαφορετικού μέθοδοι (cosine, dot, learned). Το learned είναι ένα μοντέλο πρόβλεψης που εκπαιδεύσαμε. Χρησιμοποιήθηκε η συχνότητα IDF για τις βιβλιοθήκες και τις λέξεις κλειδιά όπως και λημματοποίηση των λέξεων κλειδιών. Βελτίωση αποτελεσμάτων
  • 8. Ιούνιος 2020 Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 8 Εκπαίδευση Για κάθε μέθοδο εξήγαμε τις λέξεις κλειδιά και τις βιβλιοθήκες. Για τις λέξεις κλειδιά χρησιμοποιήσαμε την περιγραφή της μεθόδου και για τις βιβλιοθήκες τον σώμα της. Έπειτα, ενώσαμε τις λέξεις κλειδιά με τις βιβλιοθήκες στο γράφο. Έλεγχος Για κάθε έργο εξήγαμε όλες τις λέξεις κλειδιά και τις βιβλιοθήκες του με την ίδια διαδικασία. Έπειτα, χρησιμοποιώντας τις λέξεις κλειδιά του κάθε έργου επιχειρήσαμε να προβλέψουμε τις βιβλιοθήκες. Σετ έργων λογισμικού: 584 έργα λογισμικού τα οποία αποτελούνται από 100000 μεθόδους (80% για εκπαίδευση και 20% για έλεγχο). Πείραμα στα διάφορα έργα λογισμικού Χρήση IDF Χαρακτηριστικά μεθόδου πρόβλεψης Μετρικές Αξιολόγησης Εγγ.1 Εγγ. 2 IDF Ομοιότητα HR@10 AUC NDCG Coverage HR@10*Coverage    cosine .25 .57 .57 .77 .19    dot .25 .57 .57 .77 .19    learned .45 .75 .70 .08 .03   × cosine .22 .58 .55 .80 .18   × dot .22 .58 .55 .80 .18   × learned .21 .66 .52 .38 .10 Χρήση bag of words .32 .78 .71 .005 .002
  • 9. Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 9 Πείραμα στα διάφορα έργα λογισμικού Διαφορετικές εγγύτητες και ομοιότητες Χρήση IDF: +46% στη μετρική HR@10 Καλύτερη μέθοδος με βάση το HR@10*Coverage: Χρήση IDF, Συνδυασμός εγγυητών (1ου και 2ου), Ομοιότητα dot Χαρακτηριστικά μεθόδου πρόβλεψης Μετρικές Αξιολόγησης Εγγ.1 Εγγ. 2 IDF Ομοιότητα HR@10 AUC NDCG Coverage HR@10*Coverage  ×  cosine .22 .56 .55 .76 .17  ×  dot .22 .56 .55 .76 .17  ×  learned .30 .63 .60 .57 .17 ×   cosine .07 .28 .41 .33 .02 ×   dot .07 .28 .41 .33 .02 ×   learned .44 .73 .70 .11 .05    cosine .25 .57 .57 .77 .19    dot .25 .57 .57 .77 .19    learned .45 .75 .70 .08 .03 Χρήση bag of words .32 .78 .71 .005 .002
  • 10. Πείραμα keras Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 10 Σετ έργου λογισμικού keras: 64 αρχεία κώδικα (80% για εκπαίδευση και 20% για έλεγχο) Εκπαίδευση-έλεγχος: Ίδια διαδικασία με πριν χωρίς ύπαρξη μεθόδων και έργων Πείραματα Χρήση IDF, 3 μέθοδοι υπολογισμού εγγύτητας και ομοιότητας Χρήση IDF Χαρακτηριστικά μεθόδου πρόβλεψης Μετρικές Αξιολόγησης Εγγ.1 Εγγ. 2 IDF Ομοιότητα HR@10 AUC NDCG Coverage HR@10*Coverage    cosine .30 .47 .62 .39 .12    dot .29 .46 .59 .44 .13    learned .61 .92 .93 .20 .12   × cosine .10 .29 .43 .41 .04   × dot .12 .30 .44 .37 .04   × learned .46 .81 .77 .21 .10 Χρήση bag of words .67 .95 .95 .12 .08
  • 11. Πείραμα keras Ιούνιος 2020 Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 11 Διαφορετικές εγγύτητες και ομοιότητες Με χρήση IDF +77% στη μετρική HR@10 Καλύτερη μέθοδος με βάση το HR@10*Coverage: Χρήση IDF, Εγγύτητα 1ου βαθμού, Ομοιότητα cosine Χαρακτηριστικά μεθόδου πρόβλεψης Μετρικές Αξιολόγησης Εγγ.1 Εγγ. 2 IDF Ομοιότητα HR@10 AUC NDCG Coverage HR@10*Coverage  ×  cosine .42 .68 .74 .54 .23  ×  dot .43 .69 .74 .40 .17  ×  learned .53 .88 .81 .25 .13 ×   cosine .01 .04 .32 .38 .00 ×   dot .01 .04 .32 .32 .00 ×   learned .62 .95 .92 .22 .14    cosine .30 .47 .62 .39 .12    dot .29 .46 .59 .44 .13    learned .61 .92 .93 .20 .12 Χρήση bag of words .67 .95 .95 .12 .08
  • 12. Ιούνιος 2020 Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 12 Πείραμα σε δημοφιλή ερωτήματα Σύγκριση απόδοσης συστήματος σε 14 δημοφιλή ερωτήματα του Stack Overflow Στα 10 από τα 14 ερωτήματα το σύστημα προέβλεψε σωστές βιβλιοθήκες και σε κάποιες περιπτώσεις, άλλες χρήσιμες βιβλιοθήκες. (αναλυτικά αποτελέσματα στο τέλος) Αρ. Ερώτημα 1 How to call an external command 2 How to sort a dictionary by value 3 Convert string representation of a list to a list 4 How do I merge two dictionaries into a single expression 5 How to convert string into datetime 6 How to import a module given the full path 7 How to get current time 8 How do I concatenate two lists 9 How to count occurrences of a list item 10 How do I download a file over HTTP 11 How to use threading 12 How to connect to MySQL database 13 How to write JSON data to a file 14 How to get posted JSON in Flask
  • 13. Συμπεράσματα  Τα καλύτερα αποτελέσματα εμφανίζει η μέθοδος line για υπολογισμό των embeddings, με χρήση του dot similarity ή cosine και του tf-idf.  Το μοντέλο δεν μπορεί να εξάγει ποιοτικά αποτελέσματα μόνο με τη χρήση του γράφου (bag of words) γιατί προβλέπει συνέχεια τις ίδιες βιβλιοθήκες.  Η επιλογή του να μάθουμε την ομοιότητα δεν προσφέρει βελτίωση αποτελεσμάτων στο σύστημα. Θα μπορούσαμε να τη χρησιμοποιήσουμε αν ενδιαφερόμασταν για ένα σύστημα που προβλέπει πολλές σωστές βιβλιοθήκες αλλά έχει μικρή διασπορά.  Ο αλγόριθμος line για τα embeddings δίνει τα καλύτερα αποτελέσματα, δοκιμάστηκε και ο node2vec που έδινε πολύ χαμηλά αποτελέσματα.  Σε dataset με λιγότερες βιβλιοθήκες όπως το keras, το σύστημα δίνει καλύτερα αποτελέσματα.  Οπως έγινε εμφανές στο πείραμα με τα ερωτήματα, το σύστημα συμπεριφέρεται καλά σε πρακτικά προβλήματα που συναντιούνται συχνά. Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 13
  • 14. Μελλοντική εργασία  Βελτίωση της αναπαράστασης του γράφου  Συνδυασμός διαφορετικών μεθόδων πρόβλεψης  Επέκταση σε άλλες γλώσσες Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 14
  • 15. Ευχαριστίες Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 15 Θα ήθελα να ευχαριστήσω τον Κ. Συμεωνίδη που με επέλεξε για τη διπλωματική και τον διπλωματικό φοιτητή Μανώλη για την πολύτιμη βοήθεια και την καθοδήγηση του κ άθολη τη διάρκεια της διπλωματικής
  • 16. Ερωτήσεις Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 16 ?
  • 17. Πείραμα σε δημοφιλή ερωτήματα Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 17 Αποτελέσματα
  • 18. Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 18
  • 19. Ιούνιος 2020Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 19
  • 20. Ιούνιος 2020 Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού 20