Παρακάτω μπορείτε να βρείτε τα νέα θέματα διπλωματικών (Μάρτιος 2020) της Ομάδας Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού. Οι φοιτητές που ενδιαφέρονται για διπλωματική εργασία παρακαλούνται να συμπληρώσουν τη φόρμα έκφρασης ενδιαφέροντος έως και ημερομηνία που θα ανακοινωθεί στην επόμενο χρόνο. Επίσης, μπορείτε να βρείτε σχετικές ερωτήσεις σχετικά με τη διαδικασία επιλογής και τις απαιτήσεις στον παρακάτω σύνδεσμο: Link.
Την εβδομάδα 30/3-3/4 θα διοργανωθεί διαδικτυακή παρουσίαση των θεμάτων (θα ακολουθήσει σχετική ανακοίνωση). Κατά τη διάρκεια της παρουσίασης θα συζητηθούν λεπτομέρειες πάνω στα θέματα, καθώς και οι διαδικασίες εκπόνησης των διπλωματικών. Παρακαλώ ενημερώστε όποιους άλλους μπορεί να ενδιαφέρονται.
Περιεχόμενα:
- SoftEg-Spring20-1: Βελτιστοποίηση Εκτίμησης Εργασιών Λογισμικού από Δεδομένα Συστημάτων Ελέγχου Εκδόσεων
- SoftEng-Spring20-2: Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό τη μελέτη της εξέλιξης τμημάτων κώδικα
- SoftEng-Spring20-3: Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της ανάπτυξης γραφικών εντολών για γραφικές γλώσσες προγραμματισμού στο διαδίκτυο
- SoftEng-Spring20-4: Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της ανάπτυξης λογικού επιθεωρητή εγκυρότητας των μεταβάσεων Μηχανών Πεπερασμένων Καταστάσεων
- SoftEng-Spring20-5: Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυακό λογισμικό με τη χρήση τεχνικών Μηχανικής Μάθησης
- SoftEng-Spring20-6: Εξέλιξη συστήματος κατανόησης της αισθητικής ιστοσελίδων
Βελτιστοποίηση Εκτίμησης Εργασιών Λογισμικού από Δεδομένα Συστημάτων Ελέγχου Εκδόσεων
Τα τελευταία χρόνια, ο τρόπος ανάπτυξης λογισμικού μετασχηματίζεται από τις παραδοσιακές τεχνικές ανάπτυξης λογισμικού (π.χ. μοντέλο καταρράκτη – waterfall) προς νέες μεθοδολογίες και προσεγγίσεις, όπως η agile προσέγγιση. Η agile προσέγγιση διέπεται από ένα σύνολο αρχών για την ανάπτυξη λογισμικού του οποίου οι απαιτήσεις αλλάζουν συχνά και βασίζεται στη στενή συνεργασία μεταξύ των ατόμων που απαρτίζουν την ομάδα ανάπτυξης λογισμικού. Σε αυτό το πλαίσιο, οι μηχανικοί της ομάδας ανάπτυξης αναλαμβάνουν πολλές φορές διαφορετικούς ρόλους και καθήκοντα για την αποτελεσματική ανάπτυξη λογισμικού. Σε αυτό το πλαίσιο, κάθε νέο χαρακτηριστικό του προϊόντος και/ή κάθε νέο bug report πρέπει να ανατεθεί στον κατάλληλο μηχανικό λογισμικού ο οποίος θα είναι σε θέση να το φέρει εις πέρας (π.χ. να διορθώσει ένα bug). Επιπλέον, είναι σημαντικό να μπορεί για κάθε νέο χαρακτηριστικό να εκτιμηθεί ο χρόνος υλοποίησής του ώστε να είναι εφικτή η σωστή ιεράρχηση προτεραιοτήτων και κατ’ επέκταση η σωστή διαχείριση του έργου και της ομάδας λογισμικού. Σκοπός της διπλωματικής είναι η σχεδίαση ενός συστήματος που θα αυτοματοποιεί τη διαδικασία ανάθεσης και εκτίμησης εργασιών και συνολικά τη σωστή διαχείριση εργασιών με βάση δεδομένα από συστήματα ελέγχου εκδόσεων (version control). Τα συστήματα ελέγχου εκδόσεων, όπως π.χ. το GitHub, περιέχουν πλήθος χρήσιμων πληροφοριών που αφορούν τα commits και τα issues (bugs κ.α.) ενός έργου λογισμικού. Έτσι με βάση τις εργασίες σε κάθε αποθετήριο λογισμικού, καθώς και τη δραστηριότητα του κάθε χρήστη, είναι εφικτό να αναγνωρίσει κανείς τις σωστές πρακτικές για την καλύτερη διαχείριση της ανάπτυξης λογισμικού.
Γνώσεις που θα αποκτηθούν: Εξόρυξη Δεδομένων, Τεχνολογία Λογισμικού, Αναγνώριση Προτύπων, DevOps
Εκτιμώμενος χρόνος περάτωσης: 6-9 μήνες
Συνεργαζόμενοι ερευνητές: Δρ. Θεμιστοκλής Διαμαντόπουλος
Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό τη μελέτη της εξέλιξης τμημάτων κώδικα
Η ταχεία εξάπλωση του διαδικτύου καθώς και η δημιουργία αποθηκών ανοικτού λογισμικού (π.χ. Sourceforge, GitHub) έχουν αλλάξει ριζικά τον τρόπο συγγραφής κώδικα τα τελευταία χρόνια. Τα έργα λογισμικού σήμερα αναπτύσσονται και εξελίσσονται σε πλατφόρμες που επιτρέπουν την καταγραφή διαδοχικών αλλαγών (revisions) στον κώδικα. Συγκεκριμένα, πλατφόρμες όπως το GitHub περιέχουν πληροφορία όχι μόνο για το περιεχόμενο του κώδικα κάθε έργου λογισμικού, αλλά και για το ιστορικό του (commits), τα σχετικά releases (εκδόσεις) του λογισμικού κ.α. Τα δεδομένα αυτά μπορούν να χρησιμοποιηθούν για την απάντηση πληθώρας ερωτημάτων όπως ποια τμήματα κώδικα προτιμώνται από τους χρήστες, τι χαρακτηριστικά έχουν αυτά τα τμήματα, πως εξελίσσονται οι λύσεις που προτιμώνται από την κοινότητα, κ.α. Επιπλέον, η πληροφορία που προκύπτει μπορεί να αξιοποιηθεί πρακτικά για την πρόταση αλλαγών στον κώδικα του προγραμματιστή, για τη σύνδεση των αλλαγών με πιθανά γνωστά bugs, κ.α., αλλά και σε επίπεδο αρχιτεκτονικής για την αναγνώριση και εξέλιξη σχεδιαστικών προτύπων. Στόχος της διπλωματικής είναι να αναζητήσει σε ερευνητικό επίπεδο τα ερωτήματα που ενδιαφέρουν τόσο θεωρητικά όσο και πρακτικά την κοινότητα των προγραμματιστών και να προσδιορίσει τις απαντήσεις σε αυτά με βάση δεδομένα από αποθήκες ανοικτού λογισμικού.
Γνώσεις που θα αποκτηθούν: Εξόρυξη Δεδομένων, Εξέλιξη Λογισμικού, Βάσεις Δεδομένων
Εκτιμώμενος χρόνος περάτωσης: 6-9 μήνες
Συνεργαζόμενοι ερευνητές: Δρ. Θεμιστοκλής Διαμαντόπουλος
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της ανάπτυξης γραφικών εντολών για γραφικές γλώσσες προγραμματισμού στο διαδίκτυο
Με την εμφάνιση Μηχανισμών Αυτοματοποίησης παραγωγής κώδικα για συγκεκριμένα προβλήματα, κατέστη σαφές πως η συγκεκριμένη διαδικασία αποφέρει σημαντικά κέρδη παραγωγικότητας και ποιότητας του τελικού αποτελέσματος. Η ανάπτυξη ωστόσο των Μηχανισμών Αυτοματοποίησης καθεαυτών ακολουθεί ως επί το πλείστον τον «παραδοσιακό» τρόπο ανάπτυξης και συνεπώς παρουσιάζει τα μειονεκτήματα αυτού, όπως αυξημένη προσπάθεια εκσφαλμάτωσης και μεγαλύτερη ανθρωποπροσπάθεια ενώ αυτοχρόνως απαιτεί σηματικές τεχνικές γνώσεις.
Στόχος της παρούσας διπλωματικής είναι η ανάπτυξη ενός Μηχανισμού Αυτοματοποίησης ο οποίος μέσω της γραφικής διεπαφής (UI) του, θα δίνει τη δυνατότητα σε χρήστες που δε γνωρίζουν διαδικτυακό προγραμματισμό, να παράγουν διαδικτυακά τμήματα-εντολές με αυτοματοποιημένο τρόπο. Επιπλέον, τα αυτομάτως παραγόμενα τμήματα θα πρέπει να ακολουθούν αρχιτεκτονική Client-Server ούτως ώστε να είναι εύκολη η ενσωμάτωσή τους που σε υπάρχοντες διαδικτυακούς Αυτόματους Μηχανισμούς προς επέκταση των δυνατοτήτων τους.
Επιθυμητές γνώσεις/δεξιότητες: Reactjs, Java, Αντικειμενοστρεφής Προγραμματισμός
Δεξιότητες που θα αποκτηθούν: Αυτοματοποίηση Μηχανικής Λογισμικού
Εκτιμώμενος χρόνος περάτωσης: 9 μήνες
Συνεργαζόμενοι ερευνητές: Δρ. Χριστόφορος Ζολώτας
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της ανάπτυξης λογικού επιθεωρητή εγκυρότητας των μεταβάσεων Μηχανών Πεπερασμένων Καταστάσεων.
Στον κόσμο του λογισμικού μία πληθώρα συστημάτων λογισμικού είναι κάποιας μορφής Μηχανή Πεπερασμένων Καταστάσεων. Ένα κρίσιμο στοιχείο κατά τη σχεδίαση μιας τέτοια μηχανής είναι η λογική ορθότητα των συνθηκών πραγματοποίησης των μεταβάσεων από τη μία κατάσταση της σε μία άλλη, καθώς λάθη στον ορισμό των συνθηκών αυτών πιθανότατα οδηγούν σε εσφαλμένη λειτουργία του συστήματος, οι επιπτώσεις της οποίας αναλόγως την εφαρμογή μπορεί να είναι καταστροφικές. Στόχος της παρούσας διπλωματικής είναι η ανάπτυξη ενός Μηχανισμού Αυτοματοποίησης ο οποίος μέσω της γραφικής διεπαφής (UI) του, θα δίνει τη δυνατότητα σε χρήστες που δε γνωρίζουν Λογισμό (προτασιακό, κατηγοριματικό κτλ.) και δεν έχουν τεχνικές γνώσεις, να παράγουν ένα λογικό επιθεωρητή εγκυρότητας παραμετροποιημένο με βάση το εκάστοτε πρόβλημα που καλείται να λύσει η Μηχανή Πεπερασμένων Καταστάσεων.
Επιθυμητές γνώσεις/δεξιότητες: Java, Αντικειμενοστρεφής Προγραμματισμός. Προσμετράται θετικά γνώση Λογικής.
Δεξιότητες που θα αποκτηθούν: Αυτοματοποίηση Μηχανικής Λογισμικού, Λογική.
Εκτιμώμενος χρόνος περάτωσης: 9 μήνες
Συνεργαζόμενοι ερευνητές: Δρ. Χριστόφορος Ζολώτας
Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυακό λογισμικό με τη χρήση τεχνικών Μηχανικής Μάθησης.
Η αυξανόμενη χρήση του διαδικτυακού λογισμικού και η δημοφιλία του λογισμικού-ως-υπηρεσία έχει δημιουργήσει ένα μεγάλο κενό ασφαλείας στα συστήματα που μέχρι πριν λίγα χρόνια "έτρεχαν" σε κλειστά δίκτυα: η πληροφορία (ευαίσθητη και μη) είναι πλέον διαθέσιμη στο διαδίκτυο. Κατά συνέπεια, η εφαρμογή κατάλληλων τεχνικών ασφάλειας του λογισμικού είναι μονόδρομος για την θωράκισή της. Ο έλεγχος ασφάλειας πρέπει πλέον να γίνεται σε διάφορα και διαφορετικά επίπεδα, όπως στο επίπεδο δικτύου, το επίπεδο του λειτουργικού, αλλά και το επίπεδο της εφαρμογής. Στόχος της παρούσας διπλωματικής είναι η σχεδίαση και η ανάπτυξη ενός μηχανισμού για την αναγνώριση πιθανών επιθέσεων ασφαλείας με τη χρήση τεχνικών μηχανικής μάθησης. Στόχος είναι η εφαρμογή τεχνικών μηχανικής μάθησης για την αναγνώριση "καλών" προτύπων συμπεριφοράς τόσο στο επίπεδο χρήστη (application-level), όσο και στο επίπεδο των διεργασιών που αυτές επηρεάζουν. Ανάλυση θα γίνει τόσο σε δυναμικό επίπεδο (κατά τη λειτουργία των εφαρμογών), όσο και σε στατικό επίπεδο (ο πηγαίος κώδικας της εφαρμογής) και θα αναπτυχθεί ένας μηχανισμός λήψης αποφάσεων.
Επιθυμητές γνώσεις/δεξιότητες: Αναγνώση Προτύπων, Λειτουργικά συστήματα, Γνώσεις προγραμματισμού Linux/Unix συστημάτων.
Δεξιότητες που θα αποκτηθούν: Intrusion detection systems, Software security assessment, Outlier detection.
Εκτιμώμενος χρόνος περάτωσης: 9 μήνες
Εξέλιξη συστήματος κατανόησης της αισθητικής ιστοσελίδων
Η αισθητική μιας ιστοσελίδας αποτελεί σημαντικό παράγοντα για την προσέλκυση χρηστών και πελατών καθώς και για τη βελτίωση της εμπειρίας κατά την πλοήγησή τους. Στα πλαίσια παλιότερης διπλωματικής εργασίας (https://www.dropbox.com/s/5g63saslyhqb6v0/thesis.pdf?dl=0) αναπτύχθηξε ένα εργαλείο το οποίο αυτοματοποιημένα αξιολογεί την αισθητική μιας ιστοσελίδας. Δημιουργήθηκαν μοντέλα βαθιάς μάθησης τα οποία παρουσιάζουν υψηλή συσχέτιση με την ανθρώπινη αντίληψη περί αισθητικής και δοκιμάστηκαν rating-based και comparison-based τεχνικές αξιολόγησης. Στόχος της παρούσας διπλωματικής είναι η εξέλιξη της ήδη υλοποιημένης λύσης και ο έλεγχός της σε μεγάλη κλίμακα και σε διαφορετικά περιβάλλοντα.
Επιθυμητές γνώσεις/δεξιότητες: Αναγνώση Προτύπων, Τεχνολογία Λογισμιικού.
Δεξιότητες που θα αποκτηθούν: Deep learning, Software aesthetics, Software evolution.
Εκτιμώμενος χρόνος περάτωσης: 9 μήνες