Δομική και Σημασιολογική Ανάλυση Κώδικα από Αποθήκες Λογισμικού με σκοπό την Επαναχρησιμοποίηση Κώδικα
Η ταχεία εξάπλωση των αποθηκών ανοικτού λογισμικού (π.χ. Sourceforge, GitHub) έχουν αλλάξει ριζικά τον τρόπο συγγραφής κώδικα τα τελευταία χρόνια. Οι αποθήκες αυτές περιέχουν πλήθος τμημάτων κώδικα τα οποία με κατάλληλη αξιοποίηση θα μπορούσαν να μειώσουν σημαντικά το χρόνο που απαιτείται για την ανάπτυξη λογισμικού, ενισχύοντας ταυτόχρονα την ποιότητα του παραγόμενου κώδικα.
Ωστόσο, η κατανόηση των τμημάτων αυτών και της λειτουργικότητάς τους είναι συνήθως μια δύσκολη διαδικασία που απαιτεί πολύ χρόνο. Για το σκοπό αυτό, έχουν αναπτυχθεί τεχνικές σημασιολογικής ανάλυσης (lda, deep learning embeddings) που μπορούν να εξάγουν χρήσιμες πληροφορίες για τη λειτουργικότητα του κώδικα που αναλύεται. Οι πληροφορίες αυτές μπορεί να εξάγονται τόσο από τον κώδικα, όσο και από συναφείς πηγές, όπως π.χ. σχόλια, τεκμηρίωση (documentation), συνοδευτικά αρχεία readme, κτλ.
Σκοπός της διπλωματικής είναι η αξιοποίηση αυτής της πληροφορίας για την κατανόηση κώδικα και/ή τη δημιουργία προτάσεων τμημάτων κώδικα για συχνά προγραμματιστικά ερωτήματα. Ως παράδειγμα, χρησιμοποιώντας σημασιολογική πληροφορία, ένα σύστημα μπορεί να επιτρέπει στον προγραμματιστή τη δημιουργία ερωτημάτων σημασιολογικού χαρακτήρα (π.χ. write to file), και θα επιστρέφει χρήσιμα τμήματα κώδικα (π.χ. component που γράφει σε αρχείο) με βάση τεχνικές Επεξεργασίας Φυσικής Γλώσσας και Σημασιολογικής Ανάλυσης πάνω στο ερώτημα που δέχτηκε. Στη συνέχεια τα τμήματα κώδικα θα βαθμολογούνται ως προς τη σχετικότητά τους με το αρχικό ερώτημα χρησιμοποιώντας τεχνικές Εξόρυξης Δεδομένων και Ανάκτησης Πληροφοριών, ενώ τελικά το επιλεγμένο τμήμα κώδικα θα ενσωματώνεται στον κώδικα του προγραμματιστή.
Κωδικός: Autumn19-Softeng-5
Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν
- Ανάλυση δεδομένων/Μηχανική Μάθηση/Τεχνικές εξόρυξης κειμένου
- Τεχνολογία Λογισμικού/Μηχανική απαιτήσεων λογισμικού
- Σημασιολογική ανάλυση δεδομένων
- Τεχνολογίες/Γλώσσες προγραμματισμού: scikit-learn ή αντίστοιχη βιβλιοθήκη εξόρυξης κειμένου/Python ή Java)
Εκτιμώμενος Χρόνος Περάτωσης
6 – 9 Μήνες
Συνεργαζόμενοι Ερευνητές
Μεταδιδακτορικός Ερευνητής: Θεμιστοκλής Διαμαντόπουλος (thdiaman [at] issel [dot] ee [dot] auth [dot] gr)