Διανυσματικές Αναπαραστάσεις Γράφων Λογισμικού για Αναγνώριση Λειτουργιών Πηγαίου Κώδικα (Software Graph Embeddings for Discovering Source Code Functionalities)
Μια σημαντική ανάγκη που προκύπτει κατά τον κύκλο ζωής ενός έργου λογισμικού είναι η κατανόηση των λειτουργειών που μπορεί να πραγματοποιήσει. Αυτή η ανάγκη εμφανίζεται συχνά κατά τη συντήρηση, επέκταση ή επαναχρησιμοποίησή λογισμικού από άτομα τα οποία δεν ήταν απαραίτητα υπεύθυνα για την ανάπτυξή του αλλά τα οποία χρειάζεται να κατανοήσουν τη δομή του. Δυστυχώς, η κατανόηση των μεγαλύτερων ή πιο περίπλοκων έργων λογισμικού που εμφανίζονται τα τελευταία χρόνια μπορεί να αποβεί ιδιαίτερα χρονοβόρα -και κατ’ επέκταση κοστοβόρα. Για αυτό το λόγο, είναι σημαντική η ανάπτυξη αυτοματοποιημένων τεχνικών και εργαλείων που να τη διευκολύνουν.
Στόχος αυτής της διπλωματικής είναι να διερευνήσει μεθόδους που μπορούν να βελτιώσουν την κατανόηση οντοτήτων πηγαίου κώδικα (π.χ. κλάσεων ή συναρτήσεων) ομαδοποιώντας τις σε λειτουργικά παρόμοιες ομάδες. Καθώς οι οντότητες ενός έργου λογισμικού μπορούν να αναπαρασταθούν σε έναν γράφο που περιγράφει τις λειτουργικές τους συσχετίσεις (π.χ. γράφος κλήσεων συναρτήσεων), θα μελετηθούν τεχνικές παραγωγή διανυσματικών αναπαραστάσεων τέτοιων γράφων για τις οποίες παρόμοιες λειτουργικά οντότητες έχουν παρόμοιες αναπαραστάσεις.
Το σύστημα που θα αναπτυχθεί θα χρησιμοποιεί state-of-the-art τεχνικές εξαγωγής διανυσματικών αναπαραστάσεων από γράφους λογισμικού, οι οποίες μπορούν εύκολα να χρησιμοποιηθούν για τη σύγκριση οντοτήτων τέτοιων γράφων. Τέτοιες τεχνικές περιλαμβάνουν συχνοτική ανάλυση γράφων και εξαγωγή μοτίβων που εμφανίζονται κατά την πρόβλεψη συσχετίσεων από νευρωνικά δίκτυα.
Στη συνέχεια, το σύστημα θα χρησιμοποιεί γνωστές μεθόδους ομαδοποίησης των παραγόμενων αναπαραστάσεων και θα θα δημιουργεί μια οπτική εικόνα της ομαδοποίησής τους για εύκολη εποπτεία των λειτουργικοτήτων-ομάδων που ανακαλύφθηκαν στο έργο λογισμικού.
Κωδικός:Fall18-softeng-1
Προαπαιτούμενα
- Καλή γνώση προγραμματισμού
- Φαντασία και όρεξη για δουλειά
- Αν και όχι απολύτως απαραίτητο, ενθαρρύνεται καλή σχέση με γραμμική άλγεβρα
Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν
- Python
- Νευρωνικά δίκτυα για μείωση διαστάσεων
- Συχνοτική ανάλυση γράφων (spectral graph analysis)
- Οπτικοποίηση γράφων με βιβλιοθήκες javascript
Αναλόγως με τον τρόπο εξέλιξης της διπλωματικής:
- Tensorflow/υλοποιήσεις σε CUDA
Εκτιμώμενος Χρόνος Περάτωσης
6 – 9 Μήνες
Συνεργαζόμενοι Ερευνητές
Αναπληρωτής καθηγητής Ανδρέας Λ. Συμεωνίδης (asymeon [at] issel [dot] ee [dot] auth [dot] gr)
Κρασανάκης Εμμανουήλ (maniospas [at] hotmail [dot] com)