Σημασιολογική Ομαδοποίηση Πηγαίου Κώδικα (Source Code Semantic Clustering)
Η αυτοματοποιημένη αναγνώριση ιδιοτήτων σε ένα σύνολο κειμένων περιλαμβάνει διάφορες τεχνικές εξαγωγής κοινών σημασιολογικών χαρακτηριστικών. Τέτοιες τεχνικές βρίσκουν εφαρμογή σε τομείς όπως η εξαγωγή σημαντικών θεμάτων, η αυτόματη σύνοψη, η σύγκριση και η ομαδοποίηση κειμένων με βάση το περιεχόμενό τους.
Από την άλλη, ένα σημαντικό πρόβλημα για την εύκολη κατανόηση ενός έργου λογισμικού είναι η αναγνώριση και ο διαχωρισμός σε ομάδες νοηματικά σχετιζόμενων οντοτήτων (π.χ. κλάσεων, συναρτήσεων, βιβλιοθηκών).
Στόχος αυτής της διπλωματικής είναι η εξαγωγή σημασιολογικής πληροφορίας από πηγαίο κώδικα (π.χ. με βάση ονόματα μεταβλητών) η οποία επιτρέπει την εφαρμογή μεθόδων ομαδοποίησης για το διαχωρισμό του κώδικα σε ομάδες παρόμοιων οντοτήτων.
Το σύστημα που θα αναπτυχθεί θα αντιμετωπίζει δοσμένο πηγαίο κώδικα ως κείμενο, θα δοκιμάζει διάφορες τεχνικές σημασιολογικής ανάλυσης για εξαγωγή χαρακτηριστικών από αυτό και τέλος θα πραγματοποιεί ομαδοποίηση, την οποία θα οπτικοποιεί.
Προαπαιτούμενα
- Καλή γνώση προγραμματισμού
- Φαντασία και όρεξη για δουλειά
Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα Αποκτηθούν
- Τεχνικές εξαγωγής σημασιολογικών χαρακτηριστικών από κείμενο/πηγαίο κώδικα
- Μέθοδοι ομαδοποίησης
- Προβολή αραιών δεδομένων σε μικρότερες διαστάσεις
Tags
Reverse engineering; Clustering; Semantic Indexing; Code Similarity
Εκτιμώμενος Χρόνος Περάτωσης
6-9 μήνες
Επιβλέποντες
Επίκουρος καθηγητής: Ανδρέας Λ. Συμεωνίδης
Υποψήφιος διδάκτωρ: Κρασανάκης Εμμανουήλ (manios [dot] krasanakis [at] issel [dot] ee [dot] auth [dot] gr)