Σημασιολογική Ανάλυση για Αναγνώριση Λειτουργικότητας Κώδικα με σκοπό την Επαναχρησιμοποίηση

Ο τρόπος συγγραφής κώδικα έχει αλλάξει ριζικά την τελευταία δεκαετία λόγω της ταχείας εξάπλωσης του διαδικτύου και της δημιουργίας αποθηκών ανοικτού λογισμικού (π.χ. Sourceforge, GitHub). Οι προγραμματιστές σήμερα αναζητούν έτοιμο κώδικα στο διαδίκτυο είτε μεμονωμένα είτε εντός βιβλιοθηκών με σκοπό να τον ενσωματώσουν στον κώδικά τους ή να βελτιώσουν τον υπάρχοντα κώδικά τους.
Ωστόσο, η κατανόηση των τμημάτων αυτών και κυρίως των αντίστοιχων βιβλιοθηκών είναι συνήθως μια δύσκολη διαδικασία που απαιτεί πολύ χρόνο. Για το σκοπό αυτό, έχουν αναπτυχθεί τεχνικές σημασιολογικής ανάλυσης που μπορούν να εξάγουν χρήσιμες πληροφορίες για τη λειτουργικότητα της βιβλιοθήκης που αναλύεται. Οι πληροφορίες αυτές μπορεί να εξάγονται τόσο από τον κώδικα, όσο και από συναφείς πηγές, όπως π.χ. σχόλια, τεκμηρίωση (documentation), συνοδευτικά αρχεία readme, κτλ.
Σκοπός της διπλωματικής είναι η δημιουργία ενός συστήματος σημασιολογικής ανάλυσης κώδικα που θα δέχεται ως είσοδο τα στοιχεία μιας βιβλιοθήκης (κώδικα, κ.α.) και θα παρέχει μια ολοκληρωμένη ανάλυση για τη λειτουργικότητά της. Η ανάλυση αυτή στη συνέχεια μπορεί να αξιοποιηθεί για την καλύτερη κατανόηση της βιβλιοθήκης (π.χ. μέσω οπτικοποίησης του κώδικα της), για την αυτοματοποιημένη τεκμηρίωση παραδειγμάτων και/ή του API της, για τον έλεγχο κατά πόσο τα πακέτα έχουν καλή συνοχή κ.α.

Εμπλεκόμενες Τεχνολογίες

  • Εξόρυξη Δεδομένων
  • Τεχνολογία Λογισμικού
  • Αλγόριθμοι και Πολυπλοκότητα
  • Σημασιολογική Ανάλυση

Γνώσεις που θα αποκτηθούν

  • Σχεδίαση και ανάπτυξη λογισμικού
  • Δημιουργία εφαρμογής σε Python ή Java
  • Εμπειρία στη Σημασιολογική Ανάλυση και την Ανάκτηση Πληροφοριών

Εκτιμώμενος Χρόνος Περάτωσης

6 – 9 Μήνες

Επιβλέποντες

Επίκουρος καθηγητής: Ανδρέας Λ. Συμεωνίδης
Υποψήφιος διδάκτωρ: Θεμιστοκλής Διαμαντόπουλος