Ολοκληρωμένες διπλωματικές εργασίες, Ανδρέας Συμεωνίδης

Search:

2023

Χρύσα Λαμπροπούλου
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μετασχηματιστών
Το στάδιο του καθορισμού απαιτήσεων αποτελεί μία από τις σημαντικότερες προκλήσεις της Μηχανικής Λογισμικού. Οι ελλιπείς ή μη ορθά καθορισμένες απαιτήσεις έχουν ως συνέπεια καθυστερήσεις και αυξημένα κόστη κατά τη διαδικασία ανάπτυξης λογισμικού. Στο πλαίσιο αυτό, ένα σημαντικό τμήμα της έρευνας στη μηχανική απαιτήσεων εστιάζεται στη δημιουργία συστάσεων απαιτήσεων με βάση προϋπάρχοντα έργα λογισμικού, καθώς και στην κατανόηση και επικύρωση απαιτήσεων. Στην παρούσα διπλωματική εργασία, παρουσιάζεται ένα σύστημα θεματικής μοντελοποίησης για την ανάλυση λειτουργικών απαιτήσεων που αφορούν έργα λογισμικού. Για τον εντοπισμό των θεμάτων εντός των απαιτήσεων, το σύστημα χρησιμοποιεί το μοντέλο BERT, το οποίο βασίζεται στην αρχιτεκτονική Transformer. Επιπλέον, κάθε συστάδα έργων υφίσταται επαναληπτικά τη διαδικασία θεματικής μοντελοποίησης, η οποία δημιουργεί εσωτερικές συστάδες εντός των αρχικών. Ως αποτέλεσμα, οι απαιτήσεις κάθε έργου αναλύονται και ομαδοποιούνται σε διακριτές συστάδες, δίνοντας έτσι τη δυνατότητα στον μηχανικό να κατανοήσει καλύτερα το έργο υπό ανάλυση και να μπορεί εύκολα να το συγκρίνει με παρόμοια έργα. Οι εσωτερικές συστάδες χρησιμοποιούνται επιπλέον για την προσαρμογή (fine-tuning) του προ-εκπαιδευμένου μοντέλου παραγωγής κειμένου BART. Συγκεκριμένα, εξάγονται ζεύγη σχετικών απαιτήσεων που χρησιμοποιούνται για την εκπαίδευση του μοντέλου, ώστε να μπορεί να προτείνει νέες απαιτήσεις με βάση τις υπάρχουσες. Συνολικά, η αξιοποίηση των σημασιολογικών πληροφοριών διαδραματίζει καθοριστικό ρόλο στην ενίσχυση της συνάφειας των παραγόμενων συστάσεων. Αξιοποιώντας τεχνικές σημασιολογικής ανάλυσης, το σύστημα αποκτά βαθύτερη κατανόηση του υποκείμενου νοήματος μέσα στο κείμενο των Aπαιτήσεων. Μετά από την αξιολόγηση της προσέγγισης σε μια συλλογή απαιτήσεων από έργα λογισμικού, προκύπτει ότι μπορεί να είναι χρήσιμη για τους μηχανικούς κατά τη διαδικασία του καθορισμού απαιτήσεων σε νέα έργα λογισμικού.
Αντώνιος Πόντζο
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δεδομένα Διαχείρισης Έργων
Στο πλαίσιο της διαδικασίας ανάπτυξης λογισμικού, η ανάθεση εργασιών θεωρείται μια κρίσιμη πτυχή η οποία επιδιώκει να αναθέσει τις εργασίες προς επίλυση στον πιο κατάλληλο προγραμματιστή. Η υπάρχουσα έρευνα σε αυτόν τον τομέα επικεντρώνεται κυρίως σε πληροφορίες που συλλέγονται από τις αναφορές των εργασιών λογισμικού, αλλά υπάρχει ακόμα αρκετή πολύτιμη πληροφορία διαθέσιμη στα σχετικά commits των μηχανικών λογισμικού που δεν έχει διερευνηθεί πλήρως. Η παρούσα διπλωματική εργασία εμβαθύνει στη χρήση πληροφορίας από τα commits για τη βελτίωση της προσέγγισης ανάθεσης εργασιών λογισμικού. Αξιοποιώντας δεδομένα εργασιών λογισμικού και πληροφορίες από commits συνδεδεμένα με τις εργασίες λογισμικού, αναπτύξαμε ένα σύστημα που στοχεύει στην ενίσχυση της υπάρχουσας μεθοδολογίας. Ο πρωταρχικός στόχος ήταν να αξιολογηθεί η αποτελεσματικότητα της ενσωμάτωσης της πληροφορίας από commits σε σύγκριση με την αποκλειστική στήριξη στις αναφορές εργασιών λογισμικού. Μέσω τεχνικών προεπεξεργασίας, ανακαλύψαμε ότι τα πεδία των commits περιέχουν πολύτιμες πληροφορίες που μπορούν να συμβάλουν σημαντικά στη διαδικασία ανάθεσης των εργασιών. Προς αυτόν τον στόχο, κατασκευάσαμε ένα μοντέλο νευρωνικών δικτύων, ειδικά προσαρμοσμένο στις απαιτήσεις μας. Η προεπεξεργασία περιλάμβανε εξαγωγή και ανάλυση πεδίων κειμένου τόσο από αναφορές εργασιών λογισμικού όσο και από commits, καθώς και από το περιεχόμενο του κώδικα από τα commits. Επιπλέον, κωδικοποιήσαμε βασικά πεδία για την εξαγωγή σημαντικών χαρακτηριστικών, εμπλουτίζοντας έτσι το σύνολο δεδομένων. Στη συνέχεια χρησιμοποιήθηκε το εκπαιδευμένο μοντέλο νευρωνικών δικτύων για την ταξινόμηση των εργασιών λογισμικού, αναθέτοντάς τις στον καταλληλότερο προγραμματιστή. Για να επικυρώσουμε την αποτελεσματικότητα της προσέγγισής μας, χωρίσαμε τα διαθέσιμα δεδομένα σε υποσύνολα με βάση τα έργα και πραγματοποιήσαμε διαδικασίες εκπαίδευσης και ελέγχου. Ενσωματώνοντας πληροφορία από τα commits στη διαδικασία ανάθεσης εργασιών λογισμικού, το σύστημά μας επέδειξε την ικανότητα να επιτυγχάνει υψηλή ακρίβεια και αποτελεσματικότητα στην ανάθεση εργασιών σε προγραμματιστές.
Μιχαηλίδου Θεοδώρα
Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας με γραφικό τρόπο
Σήμερα η Ψηφιακή Επεξεργασία Εικόνας και η Μηχανική Όραση βρίσκουν περισσότερες εφαρμογές από ποτέ. Τα αυτόνομα αυτοκίνητα για την κατανόηση του κόσμου γύρω τους μέσω των οπτικών αισθητηρίων τους, η επεξεργασία ιατρικών τομογραφιών για την εξαγωγή συμπερασμάτων για την ύπαρξη η όχι διαφόρων παθήσεων, η παρακολούθηση των γραμμών παραγωγής και ο εντοπισμός ανωμαλιών είναι μόλις μερικές από αυτές. Ταυτόχρονα, τα κατανεμημένα συστήματα αισθητήρων στο πλαίσιο του Internet of Things έχουν αυξανόμενη παρουσία στην καθημερινότητα των ανθρώπων. Πρόκειται για συστήματα ωστόσο με επεξεργαστική ισχύ που συνήθως δεν επαρκεί για την εκτέλεση πολύπλοκων και απαιτητικών σε πόρους αλγορίθμων, όπως αυτοί της Μηχανικής Όρασης. Η κλασσική προσέγγιση είναι ο συνδυασμός εντολών κώδικα και η εκτέλεσή του σε απομακρυσμένο κεντρικό υπολογιστή, όμως περισσότερο ενδιαφέρον παρουσιάζεται σε μία αυτοματοποιημένη προσέγγισή του, με χρήση γραφικών δομικών στοιχείων, που θα επιτρέψει σε άτομα κάθε ειδικότητας να μπορούν να ασχοληθούν με την δημιουργία ροών Μηχανικής Όρασης. Η συγκεκριμένη διπλωματική εστιάζει ακριβώς στην ανάπτυξη ενός τέτοιου συστήματος, για την ανάπτυξη ροών επεξεργασίας εικόνας σε περιβάλλον χαμηλού κώδικα, που θα εκτελούνται σε απομακρυσμένη τοποθεσία. Συγκεκριμένα, επιλέχθηκε το εργαλείο Node-RED ως η γραφική διεπαφή χρήστη και δημιουργήθηκε ένα πακέτο κόμβων για αυτό, στο οποίο κάθε κόμβος ζητά την εκτέλεση ενός αλγορίθμου επεξεργασίας εικόνας από έναν απομακρυσμένο διακομιστή. Επιπλέον, δημιουργήθηκε ο διακομιστής επεξεργασίας εικόνας, ο οποίος εκτελεί τους αντίστοιχους αλγορίθμους βασισμένος στις βιβλιοθήκες OpenCV και skimage, και είναι υπεύθυνος να κωδικοποιεί τα δεδομένα σε μορφές κατάλληλες τόσο για αποστολή στο δίκτυο όσο και για κατανόηση από τους αλγορίθμους. Οι δύο οντότητες επικοινωνούν μεταξύ τους μέσω μεσιτών (brokers) και μπορούν να προσπελαστούν και εξωτερικά. Τέλος, δημιουργήθηκαν τρία σενάρια χρήσης του συστήματος για την επεξεργασία μίας εικόνας, αλλά και χρονικής ακολουθίας εικόνων από ροές διαφόρων μεγεθών, και πραγματοποιήθηκαν πειράματα σχετικά με την απόδοση του συστήματος.
Πορλού Χάιδω
Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μέσω Εξαγωγής Πληροφοριών
Η Τεχνητή Νοημοσύνη αποτελεί έναν από τους σημαντικότερους τομείς της Επιστήμης των Υπολογιστών σήμερα. Ένα από τα προσφάτως αναπτυσσόμενα παρακλάδια της Τεχνητής Νοημοσύνης είναι η Επεξεργασία Φυσικής Γλώσσας, ένα πεδίο που ασχολείται με την επεξεργασία και την κατανόηση της ανθρώπινης γλώσσας από υπολογιστικά συστήματα. Με τη μεγάλη αύξηση της πληροφορίας στο δια δίκτυο, η ανάγκη για αποτελεσματική εξόρυξη της είναι καίρια. Ως απάντηση, αναπτύχθηκε μια υποκατηγορία της Επεξεργασίας Φυσικής Γλώσσας που περιλαμβάνει, μεταξύ άλλων, την Παραγωγή και Απάντηση Ερωτήσεων, την Εξόρυξη Πληροφοριών κ.α. Ο σκοπός των παραπάνω είναι η αποτελεσματική άντληση δεδομένων σε φιλική προς τον χρήστη μορφή, αλλά και η κατανόησή τους με τη βοήθεια υπολογιστικών συστημάτων. Μια από τις σημαντικότερες κατηγορίες συστημάτων της Φυσικής Επεξεργασίας Γλώσσας αποτελούν τα συστήματα Απάντησης Ερωτήσεων. Σε ένα σύστημα Απάντησης Ερωτήσεων δίνεται ως είσοδος ένα κείμενο και ένας αριθμός ερωτήσεων, και σαν έξοδος εμφανίζεται η απάντησή τους. Μικρότερη σημασία έχει δοθεί, ωστόσο, στην ανάπτυξη συστημάτων που μπορούν να δημιουργήσουν ερωτήσεις χρησιμοποιώντας αντίστοιχα μόνο το κείμενο ως πληροφορία εισόδου, τα λεγόμενα συστήματα Παραγωγής Ερωτήσεων. Ο λόγος, μεταξύ άλλων, είναι πως τέτοιου είδους εφαρμογές απαιτούν μια υψηλότερου επιπέδου κατανόηση των χαρακτηριστικών της ανθρώπινης έκφρασης. Οι εφαρμογές Παραγωγής Ερωτήσεων χρησιμοποιούν, ομοίως με τα περισσότερα συστήματα Επεξεργασίας Φυσικής Γλώσσας, τα ταχύτατα αναπτυσσόμενα μοντέλα Transformer, τα οποία έχουν οδηγήσει σε μεγάλη βελτίωση της απόδοσης τους. Η Παραγωγή Ερωτήσεων χρησιμοποιείται, μεταξύ άλλων, σε εφαρμογές εκ παίδευσης, εξόρυξης πληροφοριών και εξυπηρέτησης πελατών. Μία ενδιαφέρουσα εφαρμογή αποτελεί η άντληση πληροφοριών από πρόσφατη δημοσιογραφική δραστηριότητα σε μορφή ερωτοαπαντήσεων, για εμπλουτισμό της ήδη υπάρχουσας πληροφορίας πάνω σε συγκεκριμένα θέματα. Συμπληρωματική για την εξόρυξη πληροφορίας εφαρμογή μπορεί να αποτελέσει η αποθήκευση των δεδομένων σε Γνωσιακό Γράφο, ως τριπλέτες της μορφής . Σε έναν τέτοιου είδους γράφο, συνεχώς εμπλουτιζόμενο με νέα πληροφορία, μπορεί να ακολουθήσει εκ νέου πρόσβαση με χρήση μοντέλων Απάντησης Ερωτήσεων, αλλά και κλασσικών μεθόδων προσπέλασης βάσεων δεδομένων. Η παρούσα διπλωματική εργασία επιχειρεί να δημιουργήσει ένα σύστημα Παραγωγής Ερωτήσεων που δέχεται σαν είσοδο ειδησεογραφικά νέα από το Google News Feed και παράγει ερωτοαπαντήσεις πάνω σε αυτά. Συμπληρωματικά, έχει τη δυνατότητα παραγωγής συνόλου δεδομένων Ερώτησης - Απάντησης μέσω των παραπάνω, αλλά και μέσω ανεξάρτητου κειμένου εισόδου. (continue in full text)
Σαχίνης Αλέξανδϱος
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκευση, επεξεργασία σε πραγµατικό χρόνο και ανάλυση δεδοµένων έξυπνων µετρητών
Καθώς ο κόσμος συνεχίζει την μετάβαση προς ένα πιο βιώσιμο μέλλον, η ανάγκη για αποτελεσματική διαχείριση των φυσικών πόρων γίνεται ολοένα και πιο σημαντική. Αυτό έχει οδηγήσει τις υπηρεσίες κοινωνικής ωφέλειας στη χρήση των έξυπνων μετρητών ως κύριας τεχνολογίας. Οι έξυπνοι μετρητές είναι συσκευές που μπορούν να συλλέξουν και να αναλύσουν, σε πραγματικό χρόνο, δεδομένα κατανάλωσης ηλεκτρικής ενέργειας, νερού και αερίου, επιτρέποντας την καλύτερη παρακολούθηση και διαχείριση των πόρων. Με αυτά τα δεδομένα, οι υπηρεσίες κοινής ωφέλειας μπορούν να λάβουν εμπεριστατωμένες αποφάσεις για τη βελτιστοποίηση των δικτύων διανομής και τη μείωση της σπατάλης, προσφέροντας ταυτόχρονα στους πελάτες τους τη δυνατότητα για καλύτερη κατανόηση των συνηθειών τους και βοηθώντας τους να λάβουν ποιοτικές αποφάσεις για την κατανάλωσή τους. Προκειμένου να καλυφθεί αυτή η ανάγκη, οι υπηρεσίες κοινής ωφέλειας πρέπει να υιοθετήσουν έναν συνδυασμό από κλιμακούμενες (scalable) και ανθεκτικές σε σφάλματα (fault-tolerant) τεχνολογίες, για την αποθήκευση των δεδομένων με αποτελεσματικό και οικονομικά αποδοτικό τρόπο. Επιπλέον, τεχνολογίες επεξεργασίας ροών δεδομένων (stream processing) μπορούν να χρησιμοποιηθούν για την εισαγωγή στο σύστημα και την ανάλυση των δεδομένων που παράγονται από τους μετρητές σε πραγματικό χρόνο, επιτρέποντας στους παρόχους και τους καταναλωτές την άμεση ανίχνευση και αντίδραση σε απρόσμενες μεταβολές, βελτιώνοντας έτσι την αποδοτικότητα και την αξιοπιστία της υπηρεσίας. Η παρούσα διπλωματική επικεντρώνεται στον σχεδιασμό και την υλοποίηση μιας κλιμακούμενης και επεκτάσιμης Lambda αρχιτεκτονικής, για την αποθήκευση και ανάλυση του τεράστιου όγκου δεδομένων που συλλέγονται από έξυπνους μετρητές, αν και μπορεί να γενικευθεί για κάθε σύστημα που αποθηκεύει και αναλύει δεδομένα χρονοσειρών. Στην προτεινόμενη αρχιτεκτονική, το Apache Kafka χρησιμοποιείται ως βασικό υποσύστημα για την εισαγωγή των μηνυμάτων στο συνολικό σύστημα, ώστε, μέσω αυτού, οι μετρικές των συσκευών να γίνονται διαθέσιμες σε εφαρμογές-καταναλωτές. Για την επεξεργασία ροών δεδομένων, χρησιμοποιούνται τα Kafka Streams και ksqlDB, ώστε να γίνει συνάθροιση (aggregation), φιλτράρισμα και επαναδρομολόγηση των μηνυμάτων, καθώς και να παραχθούν ειδοποιήσεις σε περίπτωση ανίχνευσης ακραίων τιμών. Για τη μεσοπρόθεσμη αποθήκευση, επιλέγεται η Cassandra, ενώ για τη μακροπρόθεσμη αποθήκευση, προτείνεται το S3. Η υλοποίηση επικεντρώνεται στην εισαγωγή των δεδομένων στο σύστημα, την επεξεργασία ροών δεδομένων και τη μεσοπρόθεσμη αποθήκευση, ενώ παρατίθενται παραδείγματα χρήσης αυτών των υποσυστημάτων. Τέλος, συλλέγονται και παρουσιάζονται μετρικές από τον έλεγχο επίδοσης των καίριων συστατικών, ώστε να αξιολογηθεί ο βαθμός κλιμάκωσης της λύσης.
Τριανταφυλλίδης Γρηγόριος
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων
Με την συνεχή εξέλιξη της τεχνολογίας οι άνθρωποι έχουν αποκτήσει ένα πλήθος εργαλείων που βελτιώνουν συνεχώς την καθημερινότητά τους. Ένα από αυτά είναι και το GPS. Κάθε άνθρωπος, έχοντας ένα δέκτη GPS στο κινητό του, μπορεί να είναι εφοδιασμένος με ψηφιακούς χάρτες όλης της υφηλίου και με τη γνώση της τρέχουσας τοποθεσίας στο χώρο, μπορεί να ταξιδεύει, να κινείται και να προσανατολίζεται πιο εύκολα από ποτέ. Το ίδιο όμως δεν ισχύει και για τους εσωτερικούς χώρους. Η ίδια τεχνολογία θα ήταν αρκετά χρήσιμη σε ένα μουσείο, πανεπιστήμιο, νοσοκομείο, πολυκατάστημα ή οποιοδήποτε άλλο κτήριο είναι αρκετά μεγάλο ώστε να μπορεί κάποιος να χάσει τον προσανατολισμό του μέσα σε αυτό. Ο σκοπός της διπλωματικής αυτής είναι η ανάπτυξη ενός συστήματος εντοπισμού θέσης για εσωτερικούς χώρους, χρησιμοποιώντας τα ήδη διαθέσιμα ασύρματα δίκτυα (WiFi) που υπάρχουν στο περιβάλλον και τη μέθοδο Fingerprinting. Το σύστημα αυτό αποτελείται από ένα server και μία κινητή εφαρμογή που επιτρέπουν τελικά στον χρήστη να εντοπίζει τη θέση του στο χώρο. Ταυτόχρονα παρέχονται τα κατάλληλα εργαλεία ώστε να μπορεί να εφαρμοστεί σε οποιοδήποτε κτήριο, γνωρίζοντας αρχικά μόνο την κάτοψή του. Επειδή η επιλεγμένη μέθοδος απαιτεί συγκεκριμένη προεργασία κατά την εγκατάσταση, έγινε προσπάθεια αυτοματοποίησης αυτής της εργασίας που μπορεί να επηρεάσει θετικά την τελική επιλογή αυτής της μεθόδου σε σχέση με άλλες. Με τη χρήση κατάλληλων αλγορίθμων, επιτεύχθηκε ένα μέσο σφάλμα των 1.42 m για τον εντοπισμό της θέσης ενώ για την πρόβλεψη του τρέχοντος δωματίου σε οικιακό περιβάλλον επιτεύχθηκε ακρίβεια 65%. Τέλος εξετάστηκε η επιρροή των μεταβολών του περιβάλλοντος στην τελική ακρίβεια της μεθόδου.
Τσαγκίδη Αργυρώ
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογών Ιστού
Σήµερα, το Web Development έχει αφήσει κατά πολύ πίσω του την στατική δοµή του µονολιθικού κώδικα και έχει υιοθετήσει νέες αρχιτεκτονικές που επιτρέπουν την διάδραση, την πιο αποτελεσµατική και εύκολη διαχείριση δεδοµένων, την ανοχή σε δυνητικά σφάλµατα, την ευκολότερη αναβάθµιση του κώδικα, κ.α. ∆ύο από αυτές τις αρχιτεκτονικές είναι και αυτές των micro front-ends και microservices οι οποίες αποσκοπούν στον διαχωρισµό µίας σελίδας ή εφαρµογής σε µικρότερες υπηρεσίες για την αποτελεσµατικότερη διαχείριση των αιτηµάτων του client και την καλύτερη διαχείριση των δεδοµένων. Στην παρούσα διπλωµατική εργασία, µελετώνται και αναλύονται τα πλεονεκτήµατα των δύο αυτών αρχιτεκτονικών, καθώς επίσης και τα patterns αυτών, τα οποία προσφέρουν ξεχωριστά πλεονεκτήµατα ανάλογα µε τον στόχο του developer. Η ϐιβλιογραφία που χρησιµοποιήθηκε για την άντληση των πληροφοριών, απαρτίζεται ως επί το πλείστον από επιστηµονικές έρευνες της τελευταίας δεκαετίας (µεταξύ 2011 και 2022), που αφορούν διαφορετικές πτυχές και χρήσεις των microservices και micro front-ends. Επιπροσθέτως, παράθετονται παραδείγµατα από την υλοποίηση δύο e-commerce εφαρµογών που δηµιουργήθηκαν στα πλαίσια της διπλωµατικής εργασίας µε σκοπό την ανάδειξη της εϕαρµογής των micro front-ends µε τη χρήση JavaScript και REACT framework. Τέλος, παρουσιάζονται µειονεκτήµατα των αρχιτεκτονικών καθώς και συµπεράσµατα για την εϕαρµογή τους.
Μέτα Λουίς
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγαίου κώδικα
Στις μέρες μας, ο ρυθμός ανάπτυξης της τεχνολογίας και η αδιάλειπτη χρήση του διαδικτύου έχουν ως αποτέλεσμα την εξέλιξη της διαδικασίας ανάπτυξης λογισμικού με ταχύτατους ρυθμούς. Στα πολυάριθμα έργα που υλοποιούνται συνεχώς, αυτό που προβληματίζει όλο και περισσότερο τους ειδικούς στον τομέα, είναι η ομαλή ανάπτυξη του πηγαίου κώδικα γύρω από ένα πλήθος κριτηρίων που ορίζουν την ποιότητά του. Αυτό το πρόβλημα διογκώνεται κυρίως όταν υπάρχουν διλήμματα επαναχρησιμοποίησης τμημάτων κώδικα και προκύπτουν ενδοιασμοί για τη σωστότερη επιλογή. Επομένως, τέτοιου είδους θέματα καθιστούν αναγκαία την αξιολόγηση της ποιότητας τμημάτων κώδικα που είναι υποψήφια για επαναχρησιμοποίηση βάση της συντηρησιμότητάς τους. Η διαδικασία αξιολόγησης της ποιότητας του πηγαίου κώδικα ενός έργου λογισμικού αποτελεί μια χρονοβόρα και κοστοβόρα λειτουργία, καθώς περιέχει υψηλό βαθμό περιπλοκότητας ανάλογα με τις γλώσσες που περιλαμβάνει το έργο αλλά και την έκταση του. Παράλληλα, η συμβολή πολλών και διαφορετικών προγραμματιστών στην ανάπτυξη του έργου, αποτελεί καθοριστικό παράγοντα στην αύξηση των δυσκολιών σωστής αξιολόγησης. Καθώς το έργο αναπτύσσεται, η ανάγκη για έλεγχο συντηρησιμότητας τόσο από την πλευρά του μηχανικού όσο και από την πλευρά του πελάτη γίνεται πρωταρχικός σκοπός. Συνεπώς, τέτοια ζητήματα απαιτούν τεχνικές και εργαλεία που θα λαμβάνουν υπόψιν πλήθος παραμέτρων με στόχο την αυστηρή και λογική αξιολόγηση της ποιότητας ενός έργου ως προς την συντηρησιμότητα του. Μια από τις επικρατέστερες τεχνικές είναι η ανάλυση του πηγαίου κώδικα με χρήση μετρικών που αξιολογούν με αυστηρά κριτήρια τα χαρακτηριστικά του έργου λογισμικού. Πάνω σε αυτό βασίστηκε και η παρούσα διπλωματική, καθώς εστιάζει στη στατική ανάλυση πηγαίου κώδικα και σε μεθόδους που θα συμβάλλουν στην αξιολόγηση της ποιότητας λογισμικού μέσω αυτών. Αυτό γίνεται εφόσον υπάρχει διαθεσιμότητα έργων ανοιχτού κώδικα τα οποία βρίσκονται διαθέσιμα σε αποθετήρια όπως το GitHub και μπορούν να αξιοποιηθούν για τη δημιουργία εργαλείων που στοχεύουν στην επίλυση του ζητήματος. Η στατική ανάλυση έργων ανοιχτού κώδικα μέσω μετρικών αποτελεί την βάση δεδομένων του συστήματος της παρούσας διπλωματικής. Σκοπός του συστήματος που ερευνούμε σε αυτή την διπλωματική είναι η δημιουργία μιας αξιόπιστης και λειτουργικά χρήσιμης διαδικασίας που θα είναι ικανή να προβλέπει τις μελλοντικές τιμές των μετρικών στατικής ανάλυσης. Αυτό το εργαλείο ουσιαστικά προσπαθεί να ανιχνεύσει μοτίβα συμπεριφοράς των στατικών μετρικών για μετρήσεις του παρελθόντος και να προβλέπει όμοιες συμπεριφορές στο μέλλον με χρήση της μνήμης. Η υλοποίηση αυτή γίνεται με δίκτυα LSTM και GRU καθώς η αρχιτεκτονική τους εστιάζει στην συγκράτηση πληροφοριών στη μνήμη για μεγάλα χρονικά διαστήματα. Από την στιγμή που η παραγωγή λογισμικού αυξάνεται με όλο και πιο ραγδαίους ρυθμούς, ένα τέτοιο εργαλείο θα αποτελέσει βασικό στοιχείο στην ομαλή και σωστά καθοδηγούμενη πορεία ανάπτυξης του πηγαίου κώδικα.
Θωμάς Κανούτας
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ
Στις ημέρες μας, η έννοια του λογισμικού έχει επικρατήσει σε όλες τις πτυχές της ανθρώπινης καθημερινότητας προσφέροντας σημαντικές λύσεις σε ένα εύρος διαφορετικών προβλημάτων. Η ανάγκη για παραγωγή αξιόπιστου και λειτουργικού λογισμικού σε μικρά χρονικά διαστήματα το οποίο θα παρουσιάζει ευελιξία σε πιθανές αλλαγές, είναι διαρκώς αυξανόμενη. Τα τελευταία χρόνια παρατηρείται σημαντική ερευνητική δραστηριότητα στο πεδίο της βελτιστοποίησης των διαδικασιών της ανάπτυξης λογισμικού ενώ η τεράστια διαθεσιμότητα ανοικτών έργων λογισμικού σε αποθετήρια όπως το GitHub, καθιστά εύκολη την πρόσβαση σε μεγάλους όγκους δεδομένων κώδικα. Η αξιοποίηση της πληροφορίας αυτής μπορεί να αποτελέσει το εφαλτήριο για την δημιουργία χρήσιμων εργαλείων τα οποία μπορούν να επιταχύνουν σημαντικά τη διαδικασία ανάπτυξης λογισμικού ενώ συγχρόνως θα βελτιώσουν την επικοινωνία και την συνεργασία μεταξύ των ομάδων ανάπτυξης. Η παρούσα διπλωματική εργασία παρουσιάζει ένα ολοκληρωμένο σύστημα αυτοματοποιημένης μορφοποίησης αρχείων πηγαίου κώδικα με χρήση τεχνικών μηχανικής μάθησης. Βασικός στόχος του συστήματος είναι ο εντοπισμός και η διόρθωση σφαλμάτων μορφοποίησης τα οποία αποκλίνουν από τα πρότυπα που έχει θέσει η ομάδα ανάπτυξης, διασφαλίζοντας την αναγνωσιμότητά του και συνεπώς την ευκολότερη συντήρησή του. Το σύστημα αξιοποιεί μοντέλα βαθιών νευρωνικών δικτύων τύπου LSTM σε συνδυασμό με στατιστικά μοντέλα γλώσσας N-gram για τον εντοπισμό σφαλμάτων μορφοποίησης, ενώ προτείνεται ένα συγκεκριμένος μηχανισμός διόρθωσης των σφαλμάτων αυτών. Επιπλέον, προτείνεται ένας μηχανισμός αξιολόγησης της μορφοποίησης αρχείων κώδικα με στόχο την ποσοτικοποίηση της αφαιρετικής αυτής έννοιας. Το σύστημα που σχεδιάστηκε στα πλαίσια της διπλωματική εργασίας, αξιολογείται σε 8000 αρχεία κώδικα σε γλώσσα Java τα οποία προέρχονται από το διαγωνισμό CodRep 2019. Μέσω της παρατήρησης των τελικών αποτελεσμάτων, συμπεραίνουμε πως το σύστημα αποδίδει αποτελεσματικά τόσο στο εντοπισμό όσο και στην διόρθωση των σφαλμάτων μορφοποίησης.
Στέργιος Νάνος
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώσης από αποθετήρια ανοιχτού λογισμικού
Η ανάγκη για την παραγωγή νέου λογισμικού αυξάνεται διαρκώς, τόσο λόγω της ψηφιοποίησης των διαδικασιών στη βιομηχανία, όσο και λόγω των αυξανόμενων απαιτήσεων των καταναλωτών για νέες ψηφιακές εμπειρίες. Η διαδικασία παραγωγής λογισμικού παραμένει, όμως, δύσκολη και πολύπλοκη, με πολλά έργα να μην φτάνουν στο τελικό στάδιο και να παραμένουν ανολοκλήρωτα. Για την αντιμετώπιση των προβλημάτων της διαδικασίας παραγωγής λογισμικού, οι εταιρίες ωθούνται να εφαρμόσουν νέες διαδικασίες και μεθόδους παραγωγής, όπως το Ευέλικτο μοντέλο. Είναι αναγκαίο, οπότε, να προσλάβουν τους κατάλληλους προγραμματιστές για τις θέσεις, που θα κατέχουν όχι μόνο τις απαραίτητες τεχνικές γνώσεις, αλλά και τις επικοινωνιακές δεξιότητες. Τα ανοιχτά αποθετήρια κώδικα μπορούν να προσφέρουν λύση στο πρόβλημα αυτό, καθώς παρέχουν πληροφορίες για τις τεχνικές ικανότητες και τις γλώσσες προγραμματισμού που χρησιμοποιούν οι προγραμματιστές. Επιπλέον, μέσω της αλληλεπίδρασης των προγραμματιστών, με σχόλια σε Issues και Pull Requests, μπορεί να αντληθεί πληροφορία για τις δεξιότητες επικοινωνίας τους. Στο πλαίσιο αυτό, η παρούσα διπλωματική εργασία προτείνει ένα σύστημα άντλησης και ανάλυσης των συνεισφορών των προγραμματιστών από τη πλατφόρμα GitHub, για τη παραγωγή χρήσιμων μετρικών, και ένα μοντέλο μη-εποπτευόμενης μάθησης για τον διαχωρισμό των προγραμματιστών σε ομάδες ανάλογα με τις δεξιότητές τους.
Νάτσος Δημοσθένης
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
Η Επεξεργασία Φυσικής Γλώσσας είναι ένας από τους πιο γρήγορα αναπτυσσόμενους τομείς της τεχνητής νοημοσύνης την τελευταία δεκαετία. Τα ερευνητικά πεδία που περιλαμβάνει είναι πολλά, όπως η αυτόματη περίληψη κειμένου, η εξαγωγή πληροφοριών από το κείμενο, η αυτόματη μετάφραση, τα ηλεκτρονικά συστήματα ερωτοαπαντήσεων, η αναγνώριση ομιλίας και ούτω καθεξής. Όμως τα φώτα της δημοσιότητας έχουν στραφεί στον υποτομέα της που ονομάζεται Συνομιλητική Τεχνητή Νοημοσύνη (Conversational AI) και προϊόν της οποίας είναι οι Συνομιλητικοί Βοηθοί (Conversational Assistants). Οι συνομιλητικοί βοηθοί ξεκίνησαν ως προγράμματα εγκατεστημένα σε υπολογιστές, που μπορούσαν να περατώσουν απλές και συγκεκριμένες πάνω σε ένα πεδίο λειτουργίες. Σήμερα βρίσκονται εγκατεστημένοι σε μία πληθώρα συσκευών όπως τα κινητά τηλέφωνα, τα έξυπνα ηχεία και τα έξυπνα ρολόγια. Παράλληλα, έχουν πολύ μεγαλύτερες δυνατότητες που αναμένεται να αυξηθούν στο άμεσο μέλλον, όπως η συγγραφή κώδικα, η σύνθεση μουσικής και ο έλεγχος κυβερνοφυσικών συστημάτων. Ένα από τα μεγαλύτερα προβλήματα που αντιμετωπίζουν είναι η έλλειψη της επαρκούς ασφάλειας. Λόγω των περιορισμένων δυνατοτήτων τους μέχρι τώρα, αυτό δεν αποτελούσε απειλή, καθώς οι συνομιλητικοί βοηθοί δεν διαχειρίζονταν προσωπικά δεδομένα των χρηστών, ούτε μπορούσαν να περατώσουν κρίσιμες για το σύστημα λειτουργίες. Με την εμφάνιση των προηγμένων βοηθών όπως το ChatGPT και τη χρήση τους σε όλο ένα και περισσότερους τομείς, αυτό έπαψε να ισχύει. Έτσι, κρίνεται αναγκαία η περαιτέρω μελέτη και δημιουργία συστημάτων ασφαλείας, για την προστασία των συνομιλητικών βοηθών και των χρηστών τους. Σε αυτή τη διπλωματική αναγνωρίστηκε η τεράστια έλλειψη εφαρμόσιμων συστημάτων εξουσιοδότησης και ελέγχου πρόσβασης στους συνομιλητικούς βοηθούς. Έτσι, αφού ερευνήθηκε το πεδίο και εξετάστηκαν οι υπάρχουσες προτάσεις, σχεδιάστηκε ένα τέτοιο σύστημα μέσω μίας μοντελο-κεντρικής προσέγγισης, βασισμένο στην μεθοδολογία ελέγχου πρόσβασης με βάση τους ρόλους (RBAC). Για να γίνει αυτό χρησιμοποιήθηκε η γλώσσα ειδικού σκοπού dFlow, μία γλώσσα ταχείας ανάπτυξης CAs, η οποία παράγει έτοιμους για χρήση συνομιλητικούς βοηθούς, χρησιμοποιώντας το RASA framework. Τα αποτελέσματα που προκύπτουν από την εφαρμογή της σχεδιασθείσας αρχιτεκτονικής είναι ενθαρρυντικά. Αυτή είναι ικανή να προστατεύσει αποτελεσματικά τους πόρους των συνομιλητικών βοηθών και τα δεδομένα των χρηστών από μη εξουσιοδοτημένη πρόσβαση και τροποποίηση. Επιπλέον, μέσω της δυνατότητας γενίκευσης και εφαρμογής της σε νέα μοντέλα συνομιλητικών βοηθών, θέτει τη βάση και το ερευνητικό έρεισμα για την ανάπτυξη προηγμένων συστημάτων ασφαλείας που θα τους θωρακίσουν.
Συλαίος Κίμων
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για την Απομακρυσμένη Εκτέλεση Εφαρμογών
H ανάγκη για αξιοπιστία και ισχυρά μέτρα ασφαλείας στο αναπτυσσόμενο λογισμικό γίνεται όλο και πιο επιτακτική. Συνεπώς, οι τεχνικές ανάλυσης με σκοπό την ασφάλεια, και ειδικότερα η στατική ανάλυση κώδικα, έγιναν ο στόχος για την κάλυψη αυτής της ανάγκης. Εμπνευσμένες από τη δυνατότητα της εξέτασης κώδικα χωρίς την εκτέλεση του, αυτές οι τεχνικές προσφέρουν τη δυνατότητα αποτελεσματικής ανίχνευσης ευπαθειών σε συστήματα, όπως θέματα στη ροή των δεδομένων, επιπλοκές στη ροή ελέγχου, και σύνθετες ευπάθειες ασφαλείας. Συγκριτικά με παλαιότερα συστήματα, τα σύγχρονα υπολογιστικά συστήματα έχουν τις δικές του μοναδικές δυσκολίες. Αυτά τα συστήματα συνήθως λειτουργούν σε περιβάλλοντα όπου η ακεραιότητα των συστημάτων είναι πρωταρχικής σημασίας και οποιαδήποτε πιθανή ευπάθεια ασφαλείας θα μπορούσα να οδηγήσει σε σημαντική ζημιά. Αυτό απαιτεί την εφαρμογή μηχανισμών που παρέχουν αυστηρή ανίχνευση ευπαθειών χωρίς όμως να επηρεάζουν τις επιδόσεις του συστήματος. Το επίκεντρο της παρούσας διπλωματικής εργασία είναι η ανάπτυξη μεθόδων στατικής ανάλυσης σε κώδικα Python για τον εντοπισμό ευπαθειών ασφαλείας σε υπολογιστικά συστήματα. Διάφορες τεχνικές διερευνήθηκαν, όπως το Linting, η ανάλυσης ροής δεδομένων, η ανάλυση ροής ελέγχου, η ανάλυση πολυπλοκότητας, και η αντιστοίχηση μοτίβου. Αναλύθηκαν μεθοδολογίες για τον εντοπισμό ευπαθειών ασφαλείας, όπως η επικύρωση εισόδου, η κωδικοποίηση εξόδου, η αυθεντικοποίηση και ο έλεγχος πρόσβασης, η κρυπτογραφία, ο έλεγχος εξαιρέσεων, η υπερχείλιση της προσωρινής μνήμης, η έγχυση SQL, και ο χειρισμός αρχείων. Το εργαλείο που αναπτύχθηκε ανιχνεύει κακόβουλες διευθύνσεις IP, URL, και κλήσεις API, παράλληλα εντοπίζει την ύπαρξη anti-debugging και anti-virtualization στρατηγικών. Επιπλέον, υπολογίζεται η εντροπία του αρχείου που περιλαμβάνει τον πηγαίο κώδικα της εφαρμογής για πιθανή χρήση τεχνικών συσκότισης και χρησιμοποιεί υπηρεσίες νέφους ώστε να το αντιπαραβάλει με βάσεις δεδομένων που έχουν γνωστούς ιούς. Τέλος, εκτελούνται μέθοδοι δυναμικής ανάλυσης του πηγαίου κώδικα της εφαρμογής σε εικονικό και απομονωμένο περιβάλλον. Τα αποτελέσματα της διπλωματικής εργασίας τονίζουν τον σημαντικό ρόλο της στατικής ανάλυσης κώδικα Python για τη διατήρηση της ακεραιότητας των υπολογιστικών συστημάτων. Η αποτελεσματική υλοποίηση αυτών των τεχνικών, μαζί με τα κατάλληλα εργαλεία λογισμικού και μία σειρά βελτιστοποιήσεων, έχουν τη δυνατότητα να παρέχουν λύσεις για διαδεδομένα ζητήματα ασφαλείας σε υπολογιστικά συστήματα.

2022

Δομπάζης Χρήστος
Ανάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDES - Ποδόσφαιρο
Η χρήση της τεχνολογίας και η επιστήμη των υπολογιστών μεταμορφώνει τον χώρο του αθλητισμού. Σε συνδυασμό με την έκρηξη της επιστήμης των δεδομένων και της μηχανική μάθησης, μπορούν να δημιουργηθούν μοντέλα που αξιολογούν τις επιδόσεις ενός αθλητή και να εξαχθεί χρήσιμη πληροφορία. Η παρούσα διπλωματική πραγματεύεται τη χρήση του REMEDES, ενός συστήματος καταγραφής δεδομένων, στον χώρο του ποδοσφαίρου. Στο σύστημα αυτό βασίζεται η ανάπτυξη ενός ασκησιολογίου, διεξάγονται πειραματικές μετρήσεις σε αθλητές και με τη χρήση της επιστήμης των δεδομένων δημιουργείται ένα σύστημα αξιολόγησης και άμεσης σύγκρισης των αθλητών, καθώς και ένα μοντέλο πρόβλεψης αγωνιστικής θέσης βάσει επιδόσεων με τη χρήση μηχανικής μάθησης.
Γεώργιος Καλαντζής
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγµατα
Με την ολοένα και αυξανόµενη ενσωµάτωση του λογισµικού σε κοινωνικές δοµές όπως η εκπαίδευση και η υγεία, η γρήγορη συντήρηση (π.χ. αποσφαλµάτωση) µεγάλων έργων λογισµικού γίνεται όλο και πιο σηµαντική. Για αυτό το σκοπό, καθίσταται αναγκαία η κοινοτική οργάνωση του πηγαίου κώδικα σε οµάδες οντοτήτων (π.χ. µεθόδων σε κλάσεις, κλάσεων σε πακέτα, πακέτων σε ϐιβλιοθήκες), έτσι ώστε να διευκολύνεται η κατανόηση και πλοήγηση µεταξύ υλοποιηµένων λειτουργιών. Αν οι οντότητες οργανωθούν σε γράφους των οποίων οι ακµές αντικατοπτρίζουν τις εξαρτήσεις τους, υπάρχουν κοινά αποδεκτές αρχές της τεχνολογίας λογισµικου για το τι συνιστά καλή ποιοτικά οργάνωση του πηγαίου κώδι κα, όπως η υψηλή συνεκτικότητα εντός οµάδων οντοτήτων και η χαλαρή συνδεσιµότητα µε οντότητες άλλων οµάδων. Σε αυτή τη διπλωµατική, εξετάζεται το πρόβληµα της αυτοµατο ποιηµένης επανοργάνωσης οντοτήτων πηγαίου κώδικα ώστε να ϐελτιστοποιηθούν µετρικές που ποσοτικοποιούν αρχές ποιοτικής κοινοτικής οργάνωσης. Για να το πετύχουµε αυτό, χρησιµοποιούµε µεθόδους εξόρυξης κοινοτικής πληροφορίας από γράφους εξαρτήσεων ο ντοτήτων. Η κύρια υπόθεσή µας είναι η τρέχουσα ιεραρχική οργάνωση του κώδικα περιέχει ψήγµατα της ϐέλτιστης οργάνωσης και τη χρησιµοποιούµε ως µια προσεγγιστική πρώτη εκτίµηση την οποία και προσπαθούµε να ϐελτιώσουµε µε ϕίλτρα γράφων. Αυτή η ηµιε πιβλεπόµενη µέθοδος συγκρίνεται µε υπάρχουσες πρακτικές άπληστης ϐελτιστοποίησης της αρχικής εκτίµησης και µη επιβλεπόµενης γενετικής ϐελτιστοποίησης των κοινοτήτων στους γράφους εξαρτήσεων οντοτήτων 10 δηµοφιλών έργων λογισµικού. Βρίσκουµε ότι, δεδοµένης µια ¨στρευλωµένης¨ οργάνωσης, η προσέγγισή µας επιτρέπει την ακριβέστερη εξόρυξη των κοινοτήτων που ορίστηκαν από τους προγραµµατιστές των έργων. Επιπρο σθέτως, ολοκληρώνεται σε σχεδόν γραµµικούς χρόνους εκτέλεσης σε σχέση µε τον αριθµό των εξαρτήσεων που επιτρέπουν την εφαρµογή της σε µεγάλα έργα λογισµικού.
Μιχάλης Καρατζάς
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφάλματα Στατιστικής Ανάλυσης
Τις τελευταίες δεκαετίες, τα έργα λογισµικού γίνονται όλο και µεγαλύτερα, χρησιµότερα και διεισδύουν σε όλο και περισσότερες πτυχές του ανθρώπινου ϐίου. Κατά την ανάπτυξη και τη συντήρηση λογισµικού, οι προγραµµατιστές σπαταλούν µεγάλο µέρος του χρόνου τους στον εντοπισµό και τη διόρθωση σφαλµάτων. Τα εργαλεία στατικής ανάλυσης κώδικα αυτοµατοποιούν τη διαδικασία εντοπισµού των σφαλµάτων. Η χρήση τους, ωστόσο, παραµένει περιορισµένη, καθώς η κατανόηση και η διόρθωση σφαλµάτων παραµένουν ευθύνες των προγραµµατιστών. Τα τελευταία χρόνια, πραγµατοποιούνται έρευνες για την εξόρυξη προτύπων διόρθωσης τέτοιων σφαλµάτων άλλα και την ανάπτυξη συστηµάτων αυτοµατοποιηµένης διόρθωσης σφαλµάτων. Οι πρώτες στοχεύουν στην κατανόηση του τρόπου που οι προγραµµατιστές αντιµετωπίζουν τέτοια προβλήµατα, και πολλές ϕορές τα αποτελέσµατα τους αποτελούν ϐάση για τις δεύτερες. Η παρούσα διπλωµατική, στοχεύει στην εξόρυξη χρήσιµων προτύπων διόρ ϑωσης σφαλµάτων για σφάλµατα που ανήκουν στους κανόνες του εργαλείου στατικής ανάλυσης PMD. Αρχικά, µέσω κατάλληλων ερωτηµάτων στο API του Github, αναζητο ύνται commits που αφορούν διορθώσεις τέτοιων σφαλµάτων και λαµβάνονται οι εκδόσεις των αρχείων πριν και µετά των αλλαγών των commits. Στη συνέχεια, µέσω εκτέλεσης του PMD στις δύο εκδόσεις, εντοπίζονται οι επιµέρους διορθώσεις και δηµιουργείται κα τάλληλο σύνολο δεδοµένων, αποτελούµενο αποκλειστικά από διορθώσεις σφαλµάτων, κανόνων του PMD. Οι επιµέρους διορθώσεις αναλύονται και µε αξιοποίηση της αναπα ϱάστασης κώδικα srcML και του αλγορίθµου απόστασης επεξεργασίας δέντρου Gumtree, είναι εφικτή η εξαγωγή µιας ακολουθίας όρων που είναι αντιπροσωπευτικοί για κάθε διόρθωση. ΄Ετσι, µε εύρεση του µήκους της µέγιστης κοινής υπακολουθίας µεταξύ δύο διορθώσεων, είναι εφικτή η ανάπτυξη ενός µοντέλου οµοιότητας για τις διορθώσεις συνολικά και κατ΄ επέκταση, η οµαδοποίηση τους και η εξαγωγή προτύπων διόρθω σης. Πραγµατοποιήθηκαν δύο διαφορετικά πειράµατα οµαδοποίησης : στο ένα αξιοποιήθηκε ο αλγόριθµος K-medoids και στο άλλο ο DBSCAN. Και στα δύο πειράµα τα, άλλα ιδιαίτερα σε αυτό µε τον DBSCAN, σχεδόν κάθε εξαγόµενη οµάδα αποτελείται κυρίως από διορθώσεις σφαλµάτων ενός κανόνα του PMD. Παράλληλα, µε τον υπο λογισµό του αριθµού των commits και των αποθετηρίων από τα οποία προέρχονται οι διορθώσεις κάθε οµάδας - προτύπου, ϕανερώνεται ότι οι περισσότερες οµάδες προκύπτουν από διορθώσεις προερχόµενες από µεγάλο αριθµό commits και αποθετηρίων. ΄Ετσι αντανακλούν τον τρόπο που αρκετοί προγραµµατιστές ϑα αντιµετώπιζαν παρόµοια προβλήµατα. Συνεπώς, τα εξαγόµενα πρότυπα ϑα µπορούσαν να αποτελέσουν αφετη ϱία για κάποιον µηχανισµό αυτοµατοποιηµένης διόρθωσης σφαλµάτων, ϐασιζόµενο στο PMD για τον εντοπισµό τους.
Λάγγαρης Σωτήριος
Βελτίωση του ρυθμού μετατροπής ηλεκτρονικών καταστημάτων με τεχνικές δυναμικής τιμολόγησης
Τα τελευταία χρόνια το ηλεκτρονικό εμπόριο αναπτύσσεται με ταχύτατους ρυθμούς και εδραιώνεται ως ένας από τους κυρίαρχους τρόπους πραγματοποίησης εμπορικών συναλλαγών. Οι πολιτικές και στρατηγικές τιμολόγησης που θα χρησιμοποιηθούν από την επιχείρηση αποτελούν μια από τις αποφάσεις-κλειδιά για την επιβίωσή της σε αυτή την ιδιαίτερα ανταγωνιστική αγορά, την επίτευξη των στόχων της και την μεγιστοποίηση των κερδών της. Για το λόγο αυτό έχουν υλοποιηθεί διάφοροι αλγόριθμοι δυναμικής τιμολόγησης προσαρμοσμένοι στις συνεχώς μεταβαλλόμενες συνθήκες της διαδικτυακής αγοράς. Οι αλγόριθμοι αυτοί στηρίζονται στη πληθώρα των δεδομένων που έχουν στη διάθεσή τους τα ηλεκτρονικά καταστήματα σχετικά με τις συνθήκες της αγοράς, τις προτιμήσεις και τις καταναλωτικές συνήθειες των πελατών. Η αξιοποίηση των παραπάνω δεδομένων και η ενσωμάτωσή τους στις στρατηγικές δυναμικής τιμολόγησης μπορεί να δώσει ένα σημαντικό συγκριτικό ανταγωνιστικό πλεονέκτημα στην επιχείρηση. Αντικείμενο της παρούσας διπλωματικής εργασίας, αποτελεί η ανάπτυξη ενός συστήματος για τη δυναμική τιμολόγηση των προϊόντων ενός καταστήματος ηλεκτρονικού εμπορίου. Στη συγκεκριμένη προσέγγιση, αρχικά υλοποιείται ένα υβριδικό μοντέλο πρόβλεψης μονοδιάστατων χρονοσειρών, για την αντιμετώπιση του προβλήματος της πρόβλεψης πωλήσεων. Το προτεινόμενο μοντέλο κάνει χρήση ενός εξελιγμένου νευρωνικού δικτύου (LSTM), το οποίο έχει αποδειχθεί ότι παράγει καλύτερα αποτελέσματα από ένα παραδοσιακό νευρωνικό δίκτυο πρόσθιας τροφοδότησης. Επίσης, προτείνουμε τη χρήση ενός αλγορίθμου βελτιστοποίησης για την τιμολόγηση των προϊόντων, με στόχο την βελτίωση του ποσοστού μετατροπών και του κέρδους του καταστήματος. Εν συνεχεία, η αξιολόγηση του συστήματος γίνεται σε ένα προσομοιωμένο περιβάλλον αγοράς με πραγματικά και ανώνυμα δεδομένα υπό ρεαλιστικές συνθήκες.
Αναστάσιος Μουρατίδης
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τη βελτιστοποίηση των ϕάσεων ανάλυσης απαιτήσεων λογισµικού
Η σωστή σύνταξη των λειτουργικών απαιτήσεων αποτελεί ϐασική προϋπόθεση για την ανάπτυξη ενός έργου λογισµικού. Σφάλµατα στον ορισµό των λειτουργικών απαι τήσεων και ο ορισµός ελλιπούς λειτουργικότητας αποτελούν τα σηµαντικότερα προ ϐλήµατα που οδηγούν στην αποτυχία της διαδικασίας ανάπτυξης λογισµικού. Ο µη ολοκληρωµένος ορισµός των λειτουργικών απαιτήσεων έχει ως αποτέλεσµα τον λανθασµένο προγραµµατισµό των απαραίτητων εργασιών και ακολούθως την αποτυχία της υλοποίησης του έργου λογισµικού. Η παρούσα διπλωµατική εργασία αρχικά συγκεντρώνει ένα σύνολο δεδοµένων από λειτουργικές απαιτήσεις έργων λογισµικού από διάφορες πηγές. Σε πρώτο στάδιο ορίζεται η οντολογία που καλείται να περιγράψει την στατική όψη ενός έργου λογισµικού. Οι οντότητες που ορίζονται εντοπίζονται στις λειτουργικές απαιτήσεις του συνόλου δεδοµένων και δίνεται η δυνατότητα της αποδοτικής αποθήκευσης των δεδοµένων µε τη µορφή της οντολογίας. Σε επόµενο στάδιο γίνεται χρήση αλγορίθµων µηχανικής µάθησης µε στόχο την ε ξαγωγή προτάσεων ϐελτίωσης σε όλα τα επίπεδα ανάλυσης απαιτήσεων λογισµικού. Για την αξιολόγηση της απόδοσης των αλγορίθµων, µετά την εκπαίδευσή τους στο σύνολο δεδοµένων, δέχονται ως είσοδο ένα νέο έργο λογισµικού µε µη ολοκληρωµένη λειτουργικότητα και εξετάζεται η πληροφορία που εξάγεται από τον κάθε αλγόριθµο. Πιο συγκεκριµένα, υλοποιείται ο αλγόριθµος Apriori για την εξαγωγή κανόνων συσχέτισης µε στόχο τον εντοπισµό απούσας λειτουργικότητας. Επιπλέον, χρησιµοποιείται ο αλγόριθµος Λανθάνουσας Κατανοµής Dirichlet που εκτελεί τη ϑεµατική µοντελοποίηση των έργων λογισµικού του συνόλου δεδοµένων. Τέλος, γίνεται χρήση ενός αλγορίθµου Ιεραρχικής Οµαδοποίησης κειµένου και συγκρίνονται τα αποτελέσµατά του µε αυτά του προηγούµενου αλγορίθµου.
Παρασκευάς Αθανάσιος
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών Κριτικών
Το περιεχόμενο που παράγεται από τους χρήστες στο διαδίκτυο έχει σημειώσει σημαντική αύξηση τα τελευταία χρόνια, καθώς τα σχόλια, οι διαδικτυακές συζητή σεις, οι ηλεκτρονικές πηγές κλπ. αποτελούν αναπόσπαστο κομμάτι της καθημερινό τητας. Η βελτίωση της ικανότητας αποθήκευσης τέτοιων δεδομένων, σε συνδυασμό με την εξέλιξη τεχνικών μηχανικής μάθησης, οδήγησε στην δημιουργία συστημάτων Κατανόησης-Επεξεργασίας Φυσικής Γλώσσας (NLU-NLP). Τα συστήματα αυτά εί ναι σε θέση να διαχειριστούν μεγάλο όγκο δεδομένων και να εξάγουν χρήσιμη πληροφορία, χωρίς ανθρώπινη παρέμβαση. Στο πλαίσιο αυτό, το συναίσθημα που εκφράζεται στο κείμενο των χρηστών αποτελεί επιθυμητή πληροφορία προς ανάλυση και υπάρχουν αρκετά και αξιόπι στα συστήματα σε αυτή την κατεύθυνση. Ωστόσο, δεν υπάρχουν πολλά συστήματα που να πραγματοποιούν ανάλυση συναισθήματος στην ελληνική γλώσσα. Η έλλειψη συνόλων δεδομένων αποτελεί τροχοπέδη στην έρευνα προς αυτή την κατεύθυνση. Στην παρούσα διπλωματική εργασία υλοποιείται ένα σύστημα σχολιασμού δε δομένων και μέσω αυτού δημιουργείται ένα σύνολο δεδομένων που περιέχει κριτι κές προϊόντων τεχνολογίας και το συναίσθημα που εκφράζεται προς τις πτυχές των προϊόντων. Το σύνολο δεδομένων αξιοποιείται για την εκπαίδευση μοντέλων ανά λυσης συναισθήματος. Σε πρώτη φάση, πραγματοποιείται μία σύγκριση μεταξύ των ήδη υπαρχόντων μοντέλων για τα ελληνικά. Έπειτα, προτείνεται μία νέα αρχιτεκτο νική για την ανίχνευση πτυχών από κριτικές (ACD), η οποία, σε συνδυασμό με μία υπάρχουσα αρχιτεκτονική για ανάλυση συναισθήματος πτυχών (SP), αξιοποιείται για την δημιουργία ενός συνολικού μοντέλου. Επιπρόσθετα, υλοποιείται μία διαδικτυακή διεπαφή για την ανάλυση κειμένου από οποιαδήποτε κριτική και την παρουσίαση των αποτελεσμάτων σε ένα γραφικό περιβάλλον φιλικό προς τον χρήστη. Η διεξαγωγή πειραμάτων με τα εκπαιδευμένα μοντέλα παρουσιάζει ικανοποιη τικά αποτελέσματα. Το συνολικό μοντέλο επιτυγχάνει την ακριβή αναγνώριση των πτυχών που περιέχονται σε μία κριτική και την ανάλυση του συναισθήματος που εκφράζεται προς αυτές.
Αριστείδη Πηλιανίδη
Αυτοματοποίηση της μετατροπής των HR επιχειρησιακών διαδικασιών εταιριών σε Web εφαρμογές
Ο ψηφιακός μετασχηματισμός είναι η διαδικασία χρήσης ψηφιακών τεχνολογιών για τη δημιουργία νέων — ή την τροποποίηση υπαρχουσών — επιχειρηματικών διαδικασιών, προκειμένου να ανταποκριθούν στις μεταβαλλόμενες απαιτήσεις της αγοράς. Η ανάγκη του λοιπόν είναι προφανής, ποσό μάλλον τώρα, λόγωτης εν εξελίξει πανδημίας, οπού οι εταιρίες πρέπει να προσαρμοστούν γρήγορα στις απαιτούμενες αλλαγές στον τρόπο λειτουργίας τους. Η συγκεκριμένη διπλωματική εργασία φιλοδοξεί να δώσει απάντηση στην παραπάνω ανάγκη, αυτοματοποιώντας τον ψηφιακό μετασχηματισμό των επιχειρησιακών διαδικασιών εταιριών, δίνοντας έμφαση στο τμήμα ανθρωπίνου δυναμικού, και παράγοντας εξειδικευμένες διαδικτυακές εφαρμογές για κάθε μια από αυτές. Στο πλαίσιο αυτής της προσπάθειας, αξιοποιείται η μηχανική οδηγούμενη από μοντέλα MDE (Model Driven Engineering). Πιο συγκεκριμένα, όταν οριστεί ένα αφαιρετικό μοντέλο μιας διαδικασίας, εκτελείται μια σειρά από μετασχηματισμούς, με τελικό αποτέλεσμα μια λειτουργική εφαρμογή πλήρους στοίβας. Με τον τρόπο αυτό, επιδιώκεται η επιτάχυνση της διαδικασίας ανάπτυξης λογισμικού και η παραγωγή λογισμικού με μεγαλύτερη αξιοπιστία. Στην παρούσα διπλωματική εργασία αναπτύσσεται το σύστημα EzProcess, με το οποίο ο χρήστης, μέσω ενός φιλικού γραφικού περιβάλλοντος, ορίζει παραμέτρους για τις επιχειρησιακές διαδικασίες του τμήματος ανθρωπίνου δυναμικού, που επιθυμεί να μετασχηματίσει. Αυτές οι διαδικασίες είναι συγκεκριμένα η περιγραφή μιας θέσης εργασίας, η αξιολόγηση των υποψηφίων, που έκαναν αίτηση για την παραπάνω θέση και τέλος η ένταξή τους στην εταιρία μετά την επιτυχή τους αξιολόγηση. Επιπλέον, οι παραπάνω διαδικασίες είναι αλληλεξαρτώμενες στο σύστημα EzProcess, με αποτέλεσμα να μειώνονται τα περιθώρια λάθους του χρήστη και παράλληλα να πραγματοποιείται ακόμη ευκολότερη και ταχύτερη η ανάπτυξη λογισμικού. Βάσει των παραμέτρων που θέτει ο χρήστης, δημιουργείται ο εκτελέσιμος κώδικας για τον ψηφιακό μετασχηματισμό των διαδικασιών και παράγονται οι αντίστοιχες διαδικτυακές εφαρμογές, που περιλαμβάνουν τόσο το κομμάτι του πελάτη (client) όσο και του διακομιστή (server). Οι τελευταίες, παρέχουν στο παρασκήνιο επιπλέον δυνατότητες ταυτοποίησης χρηστών, ταξινόμησης και αναζήτησης υποψηφίων υπαλλήλων σε βάση δεδομένων, μέσω της επικοινωνίας με το παραγόμενο API του διακομιστή.
Αλέξανδρος Τσιρώνης
ΑΝΑΠΤΥΞΗ ΑΛΓΟΡΙΘΜΟΥ ΣΤΑΘΕΡΟΥ ΚΡΥΠΤΟΝΟΜΙΣΜΑΤΟΣ ΧΩΡΙΣ ΑΝΑΓΚΗ ΕΝΕΧΥΡΟΥ ΦΥΣΙΚΟΥ ΝΟΜΙΣΜΑΤΟΣ
Η μεταβλητότητα της τιμής του Bitcoin και άλλων κρυπτονομισμάτων είναι ένα από τα μεγαλύτερα εμπόδια που αντιμετωπίζουν τα κρυπτονομίσματα στην εποχή μας. Σε αντίθεση με τα παραστατικά χρήματα, τα σημερινά κρυπτονομίσματα δεν έχουν μια κεντρική τράπεζα που να εφαρμόζει κάποιου είδους νομισματική πολιτική με σκοπό τη διατήρηση της αγοραστικής δύναμης. Αυτό συνεπάγεται ότι μεταβολές στη ζήτηση προκαλούν τεράστιες διακυμάνσεις στη τιμή. Αν οι χρήστες δεν αισθάνονται εντελώς σίγουροι για το ότι η αγοραστική δύναμη του τραπεζικού τους λογαριασμού θα παραμείνει σταθερή από τη μια μέρα στην άλλη, τότε δεν θα υιοθετήσουν ποτέ ένα κρυπτονόμισμα ως το κύριο συναλλακτικό μέσο έναντι ενός σταθερού νομίσματος. Επιπρόσθετα, λόγω της απουσίας σταθερότητας των τιμών, είναι πολύ δύσκολο να χτιστεί μια χρεωστική και πιστωτική αγορά που να βασίζεται στα κρυπτονομίσματα, καθώς κάθε συμφωνία η οποία εμπεριέχει μελλοντικές πληρωμές πρέπει να λαμβάνει υπόψιν και το ρίσκο της μεταβλητότητας της τιμής και να χρεώνει ένα μεγάλο ασφάλιστρο έναντί της. Παρά το γεγονός ότι υπάρχει πλήθος ερευνών όσον αφορά στα τεχνικά προβλήματα των κρυπτονομισμάτων, όπως η διεκπεραιωτή ικανότητα των συναλλαγών (transaction throughput) ή τα smart contracts, δεν έχει δοθεί σχεδόν καθόλου προσοχή στο θέμα της βελτίωσης της σταθερότητας των τιμών, πρόβλημα το οποίο είναι πολύ μεγαλύτερο εμπόδιο στη μαζική υιοθέτηση των κρυπτονομισμάτων ως κύριο συναλλακτικό μέσο. Στην παρούσα εργασία, θα παρουσιαστεί το Dollar Market Token (DMT), ένα κρυπτονόμισμα του οποίου τα νομίσματα (tokens), μπορούν να διατηρούν αξιόπιστα μια σταθερή ισοτιμία με οποιοδήποτε άλλο αγαθό και ταυτόχρονα να παραμένουν πλήρως αποκεντρωμένα. Συγκεκριμένα, θα επιχειρηθεί να οριστεί ότι 1 DMT μπορεί να εκφραστεί και να ανταλλαχθεί πάντα ως 1 USD. Θεωρητικά, το DMT θα μπορούσε ακόμα και να ανεξαρτητοποιηθεί από το δολάριο και η ισοτιμία του να ορίζεται βάσει ενός αγοραστικού δείκτη τιμής ή κάποιου καλαθιού αγαθών, με τον ίδιο τρόπο που οι κεντρικές τράπεζες υπολογίζουν τον πληθωρισμό και τις πολιτικές που θα ακολουθήσουν. Το DMT επιτυγχάνει τη σταθερότητά του ρυθμίζοντας αλγοριθμικά την προμήθεια των νομισμάτων του βάσει αλλαγών σε μεταβολές του DMT/USD δείκτη. Με αυτό τον τρόπο υλοποιεί ένα είδος νομισματικής πολιτικής παρόμοιο με αυτό που εφαρμόζουν οι κεντρικές τράπεζες σε όλο τον κόσμο. Ταυτόχρονα, λειτουργεί ως ένας αποκεντρωμένος αλγόριθμος, πλήρως διαφανής, βασισμένος σε ένα πρωτόκολλο, χωρίς την ανάγκη ανθρώπινης παρέμβασης. Έτσι, θα μπορούσε να θεωρηθεί το πρωτόκολλο DMT και ως μια αλγοριθμική αποκεντρωμένη κεντρική τράπεζα.
Δοϊνάκης Μιχαήλ
Ανάπτυξη ειδησεογραφικού ψηφιακού βοηθού πραγματικού χρόνου
Εκατοντάδες άρθρα ειδήσεων, και όχι μόνο, δημοσιεύονται καθημερινά στο μικρο-διαδίκτυο μας, καθιστώντας αδύνατη την ανάγνωση του μεγαλύτερου μέ ρους τους λόγω των γρήγορων ρυθμών της καθημερινότητας. Ταυτόχρονα, η σχετι κότητα των άρθρων με την είδηση μειώνεται με την πάροδο του χρόνου, καθώς τα νέα αλλάζουν συνεχώς ακόμη και αν πρόκειται για την ίδια είδηση. Επομένως, είναι απαραίτητη η εποπτεία τους σε πραγματικό χρόνο. Η αυτοματοποιημένη ανάκτηση αυτής της πληροφορίας είναι αναγκαία και μπορεί να επιτευχθεί χρησιμοποιώντας τεχνικές επεξεργασίας και κατανόησης φυσικής γλώσσας. Η παρούσα διπλωματική εργασία μελετά την ανάπτυξη ενός ειδησεογραφικού βοηθού πραγματικού χρόνου. Πιο συγκεκριμένα, ο βοηθός είναι υπεύθυνος για την αναζήτηση και την εύρεση απαντήσεων στις ερωτήσεις του χρήστη, τις οποίες ανα γνωρίζει κατά τη συνομιλία με αυτόν και η αναζήτηση πραγματοποιείται μέσω ενός συστήματος ερώτησης-απάντησης (Question-Answering - QA). Η χρήση του βοηθού καθιστά την υλοποίηση πιο ευέλικτη και φιλική προς το χρήστη. Η είσοδος του συ στήματος ορίζεται ως οτιδήποτε εισάγει ο χρήστης στην επικοινωνία του με τον ψη φιακό βοηθό. Οι ειδήσεις που υποστηρίζονται αφορούν πολιτική, αθλητικά, τεχνολο γία, ταινίες και ηλεκτρονικά παιχνίδια. Τα άρθρα παρέχονται από την προσομοίωση ενός εξωτερικού συστήματος και εισέρχονται σε έναν ταξινομητή για τον καθορι σμό της κατηγορίας τους. Στη συνέχεια, αποθηκεύονται σε μία βάση δεδομένων στην οποία ανατρέχει το QA σύστημα για την εξαγωγή της απάντησης. Το τελικό σύστημα αποτελείται από τον ταξινομητή, τον ψηφιακό βοηθό και το σύστημα QA. Κάθε ένα από αυτά τα κομμάτια μπορεί να αντικατασταθεί και βελτιστοποιηθεί ξεχωριστά από τα υπόλοιπα δημιουργώντας έτσι ένα αρθρωτό σύστημα. Για τη διασφάλιση της σωστής λειτουργίας του ψηφιακού βοηθού αλλά και τη συντήρηση του χρησιμοποιήθηκε βοηθητικό εργαλείο για την τροφοδοτούμενη από συνομιλίες ανάπτυξη του (Conversation-Driven Development). Μέσω αυτού, πραγμα τοποιείται η αξιολόγηση του συνολικού συστήματος σε πραγματικές συνομιλίες οι οποίες στη συνέχεια αξιοποιούνται για τη βελτιστοποίηση τόσο του βοηθού όσο και των υπόλοιπων κομματιών του. Για την επιλογή των μοντέλων μηχανικής μάθησης για επεξεργασία φυσικής γλώσσας πραγματοποιήθηκαν πειράματα με τα οποία αξιολογήθηκε η αποδοτικό τητα τους σε συγκεκριμένα σύνολα δεδομένων. Με τον τρόπο αυτό, μελετώντας τα αποτελέσματα των πειραμάτων, επιλέχθηκαν οι βέλτιστες παράμετροι για τη λειτουργία του συνολικού συστήματος.
Χρήστος Εμμανουήλ
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδομένων πλοήγησης και συμπεριφοράς
Τα έξυπνα κινητά τηλέφωνα (smartphones) έχουν γίνει πλέον αναπόσπαστο κομμάτι της καθημερινότητας και οι πληροφορίες που αποθηκεύονται σε αυτά συνεχώς αυξάνονται. Προκύπτει λοιπόν το ζήτημα της ασφάλειας αυτών των συσκευών, που είναι κρίσιμο για την εξασφάλιση της προστασίας των δεδομένων του ιδιοκτήτη ενός smartphone από κακόβουλους χρήστες. Οι περισσότερες συσκευές πλέον προσφέρουν ένα επίπεδο ασφάλειας χρησιμοποιώντας διάφορους τρόπους αυθεντικοποίησης, που όμως έχουν χαρακτηριστεί ευάλωτοι και έτσι έχει δημιουργηθεί η ανάγκη για την υλοποίηση καινούργιων μεθοδολογιών. Λύση στο πρόβλημα έρχονται να δώσουν τεχνικές συνεχούς – έμμεσης αυθεντικοποίησης, δηλαδή συστήματα που εκτελούνται συνεχώς στο παρασκήνιο της συσκευής, χωρίς να χρειάζονται την εκτέλεση ενεργειών από την πλευρά του χρήστη. Τα συστήματα αυτά συνήθως χρησιμοποιούν διάφορα δεδομένα του κινητού τηλεφώνου ή άλλων συσκευών, μοντελοποιούν την συμπεριφορά του χρήστη και στην συνέχεια παρέχουν ένα μοναδικό ή συμπληρωματικό επίπεδο ασφαλείας, που εξετάζει αν η συμπεριφορά του χρήστη συμβαδίζει με αυτή του ιδιοκτήτη. Στη συγκεκριμένη εργασία, το σύστημα βασίζει τη λειτουργία του σε δεδομένα αισθητήρων που είναι ήδη εγκατεστημένοι στα περισσότερα smartphones, όπως το επιταχυνσιόμετρο, το γυροσκόπιο και η οθόνη αφής. Η συμπεριφορά του ιδιοκτήτη μοντελοποιείται με αυτά τα δεδομένα μέσω της χρήσης μοντέλων μηχανικής μάθησης που, στη συνέχεια, μπορούν να πάρουν κατάλληλες αποφάσεις. Αυτό που κάνει το εν λόγω σύστημα να ξεχωρίζει είναι η χρήση ενός συνόλου μοντέλων μηχανών διανυσμάτων υποστήριξης μίας κλάσης (One Class Support Vector Machines), με ένα εύρος τιμών για τις παραμέτρους, για κάθε τύπο δεδομένων, που παράγει την πιθανότητα μια συμπεριφορά να συμβαδίζει με αυτή του ιδιοκτήτη και στην συνέχεια καλεί ένα σύστημα εμπιστοσύνης να αποφασίσει αν θα πραγματοποιηθεί το κλείδωμα της συσκευής. Όπως αποδεικνύεται, ένα τέτοιο σύστημα είναι εύκολα υλοποιήσιμο, μπορεί να προσαρμόζεται στον τύπο δεδομένων που είναι διαθέσιμος κάθε στιγμή και έτσι μπορεί να επιφέρει σημαντικές βελτιώσεις στην αυθεντικοποίηση του χρήστη με έναν συνεχή αλλά και μη παρεμβατικό τρόπο.
Γιαννοκώστα Γεωργία
Ανάπτυξη ψηφιακού βοηθού με στόχο την εξαγωγή και την ανάλυση συναισθήματος του χρήστη
Ο όρος τεχνητή νοημοσύνη αναφέρεται στη δημιουργία ευφυών υπολογιστικών συστημάτων που έχουν ικανότητες κατανόησης του περιβάλλοντος τους και μπο ρούν να πάρουν αποφάσεις ώστε να πετύχουν τους στόχους τους. Ουσιαστικά ο σκοπός των συστημάτων τεχνητής νοημοσύνης είναι να μιμηθούν σε ένα ικανοποι ητικό βαθμό τον τρόπο σκέψης και επακόλουθα τη συμπεριφορά του ανθρώπου. Η παρούσα διπλωματική εργασία εστιάζει στην ανάπτυξη ενός ψηφιακού βοη θού ο οποίος κινείται στον τομέα της υγείας και μπορεί να χρησιμοποιηθεί δυνητικά από ιατρικό προσωπικό που θέλει να παρακολουθεί την εξέλιξη πληθώρας ασθενών του. Ο ψηφιακός βοηθός δίνει στον χρήστη τη δυνατότητα να συμπληρώνει στοι χεία σχετικά με την ψυχική του υγεία, τα πιθανά συμπτώματα που βιώνει, αν πήρε το φάρμακό του, καθώς και καθημερινές ασχολίες που σχετίζονται με την ευεξία του. Ένα επιπλέον χαρακτηριστικό του βοηθού αυτού είναι η ικανότητά του να αντιλαμβάνεται το συναίσθημα του χρήστη με τον οποίο συνομιλεί. Για τη δημιουργία του ψηφιακού βοηθού χρησιμοποιείται το λογισμικό Rasa. Επιπρόσθετα υλοποιούνται και συγκρίνονται τρία μοντέλα Μηχανικής Μάθησης, με σκοπό την ενσωμάτωση του αποδοτικότερου εξ αυτών στον ψηφιακό βοηθό. Τέλος, χρησιμοποιείται το λογισμικό Dash, ώστε να δημιουργηθεί μία αναφορά ιατρικής φύσεως, ώστε να χρησιμοποιηθεί από το ιατρικό προσωπικό ή και τον ίδιο τον χρήστη. Σύμφωνα με την πορεία της διπλωματικής εργασίας και τα αποτελέσματα που προέκυψαν, η υλοποίηση ψηφιακών βοηθών και γενικότερα συστημάτων Τεχνητής Νοημοσύνης μπορεί να γίνει με πολύ ομαλό τρόπο, κάνοντας χρήση της πληθώρας εργαλείων λογισμικού που κυκλοφορούν. Πέραν βασικών λειτουργιών, οι ψηφιακοί βοηθοί μπορούν εύκολα να ενσωματώσουν επιπλέον δυνατότητες ώστε να προσο μοιώσουν την ανθρώπινη συμπεριφορά σε μεγαλύτερα επίπεδα. Τέλος, η ανάπτυξη αυτού του είδους τεχνολογίας έχει δεκάδες εφαρμογές στις πολυδιάστατες ανάγκες των ανθρώπων και επιφυλασσόμαστε για την πορεία της εξέλιξής της.
Ιατροπούλου Ζαφειρία
Υπολογισμός χρονισμού φωτεινών σηματοδοτών με χρήση ενισχυτικής μάθησης προς ελαχιστοποίηση χρόνου αναμονής αυτοκινήτων
Η Τεχνητή Νοημοσύνη αποτελεί έναν από τους σημαντικότερους τομείς των τε λευταίων ετών εξαιτίας της ανάπτυξης της Ενισχυτικής Μάθησης.Η μάθηση αυτή έντονα επηρεασμένη από τη φύση του ανθρώπου και την ψυχολογία του, δημιουργεί μια γέφυρα μεταξύ τεχνολογίας και ανθρώπων. Ξεπερνά το πρόβλημα της απόκτη σης δεδομένων καταργώντας σχεδόν πλήρως την ανάγκη για δεδομένα. Η μάθηση με ενίσχυση εκπαιδεύει ένα μοντέλο να φτάσει σε μια βέλτιστη λύση για ένα πρό βλημα, λαμβάνοντας αποφάσεις από μόνη του, αλληλεπιδρώντας με το περιβάλλον. Μέσω ανταμοιβών μαθαίνει να κρίνει ποιες ενέργειες πρέπει να ακολουθήσει ώστε να πετύχει το στόχο του. Η κυκλοφοριακή συμφόρηση αυξάνεται σε παγκόσμιο επίπεδο και το πρόβλημα πρέπει να αντιμετωπιστεί. Σε ένα δυναμικά μεταβαλλόμενο και διασυνδεδεμένο περιβάλλον κυκλοφορίας, οι επί του παρόντος ρυθμίσεις σηματοδοτών δεν είναι προσαρμοστικές. Υπάρχει ανάγκη για ένα ευφυές σύστημα μεταφορών, που θα βελτιώσει την αποτελεσματικότητα του οδικού συστήματος μιας έξυπνης πόλης. Η παρούσα διπλωματική εργασία προτείνει ένα σύστημα υπολογισμού του χρο νισμού των φωτεινών σηματοδοτών για την ελαχιστοποίηση του χρόνου αναμονής των οχημάτων. Κάθε σηματοδότης μιας διασταύρωσης εκπαιδεύεται, ώστε να μά θει να μεταβάλλει τη φάση του ανάλογα με την κίνηση. Το προτεινόμενο οδικό σύστημα έχει ευέλικτη δομή που τροποποιείται με την προσθήκη περισσότερων διασταυρώσεων στην αρχική δομή της απλής διασταύρωσης. Ο Q-Learning είναι ένας αλγόριθμος RL, που χρησιμοποιήθηκε για την επιλογή της επόμενης βέλτιστης ενέργειας του σηματοδότη σε μια δεδομένη κατάσταση. Λει τουργεί βελτιώνοντας διαδοχικά τις ανταμοιβές για τα ζεύγη κατάσταση-δράσης, τα οποία αποθηκεύονται σε έναν πίνακα Q ως πληροφορία για τον σηματοδότη. Για την προσομοίωση των οδικών δικτύων χρησιμοποιήθηκε το εργαλείο SUMO. Τα μοντέλα εκπαιδεύτηκαν και εξετάστηκαν σε περιβάλλοντα οδικών δικτύων Ν διασταυρώσεων, όπου Ν = 1,2,4,6, εκπαιδεύοντας τους σηματοδότες κάθε διασταύ ρωσης, με σκοπό τη μείωση της κίνησης. Τα αποτελέσματα των εκπαιδεύσεων συ γκρίνονται με τις αποκρίσεις των τωρινών μοντέλων διαχείρισης κυκλοφορίας. Επι πρόσθετα, εφαρμόζεται η εμπειρία των πινάκων Q των απλών δομών (Ν = 1,2) στα πιο πολύπλοκα δίκτυα, ώστε να κριθεί η ανταπόκριση των συστημάτων με τις εμπειρίες απλών δομών. Σύμφωνα με τα αποτελέσματα από τις εκπαιδεύσεις των μοντέλων και των πει ραμάτων, όλα τα μοντέλα ανταποκρίθηκαν αποδοτικά σε ποικίλες μορφές κίνησης, παρόλο που ο χρόνος εκπαίδευσης αυξάνεται με την πολυπλοκότητα. Ένα βέλτιστο μοντέλο απαιτεί περισσότερο χρόνο εκπαίδευσης από ένα απλώς καλό μοντέλο, δημιουργείται έτσι ένας συμβιβασμός μεταξύ χρόνου εκπαίδευσης και βέλτιστης απόκρισης, που πρέπει να λαμβάνει υπόψιν κάθε ερευνητής.
Νάστος Δημήτριος Νικήτας
Ανάπτυξη Ελληνικού Συστήματος Απάντησης Ερωτήσεων Ανοιχτού Τύπου
Ένας από τους σημαντικότερους και ταχύτερα αναπτυσσόμενους τομείς της Επιστήμης των Υπολογιστών και της Πληροφορικής είναι η Τεχνητή Νοημοσύνη. Από τα πλέον βασικά ζητήματα με τα οποία ασχολείται είναι η Επεξεργασία Φυσικής Γλώσσας, δηλαδή η ανάλυση και κατανόηση των φυσικών ανθρώπινων γλωσσών από υπολογιστικά συστήματα και η δυνατότητα αλληλεπίδρασης ανθρώπων και ”ευφυιών” συστημάτων με τη χρήση των γλωσσών αυτών. Καθώς το πλήθος των πληροφοριών αυξάνεται συνεχώς και οι άνθρωποι χρειάζονται όλο και περισσότερες πληροφορίες, ένα πολύ σημαντικό πεδίο της έρευνας στον τομέα της Επεξεργασίας Φυσικής Γλώσσας είναι η Απάντηση Ερωτήσεων. Ήδη από την έναρξη της χρήσης των υπολογιστών ήταν βασική στόχευση η δυνατότητα υποβολής ερωτήσεων και λήψης σωστών απαντήσεων από αυτούς. Μια από τις σημαντικότερες κατηγορίες συστημάτων Απάντησης Ερωτήσεων είναι τα Συστήματα Απάντησης Ερωτήσεων Ανοιχτού Τύπου, τα οποία δύνανται να απαντούν σε ερωτήσεις γενικών γνώσεων στηριζόμενα σε μια βασική πηγή γνώσης όπως είναι η Wikipedia. Η ανάπτυξη των μοντέλων Transformers και του BERT έχει οδηγήσει σε βελτιώσεις στην απόδοση των Συστημάτων Απάντησης Ερωτήσεων. Αν και η ύπαρξη αυτών των μοντέλων έχει οδηγήσει σε άνθιση του αντικειμένου της Απάντησης Ερωτήσεων, όπως και άλλων ζητημάτων με τα οποία ασχολείται το πεδίο της Επεξεργασίας Φυσικής Γλώσσας, είναι γεγονός πως τα περισσότερα Συστήματα Απάντησης Ερωτήσεων και ιδιαίτερα τα Ανοικτού-Τύπου, λειτουργούν στην αγγλική γλώσσα, ενώ τα συστήματα σε άλλες γλώσσες είναι ελάχιστα. Η παρούσα εργασία επιχειρεί να δημιουργήσει ένα Συστήματα Απάντησης Ερω τήσεων Ανοιχτού Τύπου στα ελληνικά. Για το σκοπό αυτό, ελλείψει των απαραί τητων δεδομένων εκπαίδευσης στα Ελληνικά, επιχειρείται η μηχανική μετάφραση ορισμένων κατάλληλων datasets, από την αγγλική στην ελληνική γλώσσα. Στη συ νέχεια, εκπαιδεύεται μια σειρά μοντέλων τόσο για την Απάντηση Ερωτήσεων όσο και για την Ανάκτηση Πληροφορίας, η οποία αποτελεί βασικό τμήμα κάθε συστή ματος απάντησης ερωτήσεων ανοικτού τύπου. Έπειτα, εγκαθίσταται το συνολικό σύστημα, το οποίο στηρίζεται σε δεδομένα της ελληνικής Wikipedia. Η πρόσβαση σε αυτό γίνεται με τη χρήση μιας διαδικτυακής εφαρμογής που αναπτύχθηκε. Τέλος, παρουσιάζονται τα αποτελέσματα της αξιολόγησης της απόδοσης που έγινε τόσο για το συνολικό σύστημα, όσο και για τα επιμέρους τμήματά του.
Νικόλαος Σαουλίδης
Αυτοματοποίηση Ανάθεσης Εργασιών Λογισμικοπύ με εφαρμογή τεχνικών Θεματικής Μοντελοποίησης σε Δεδομένα Διαχείρισης Έργων
Η σύγχρονη ευέλικτη (agile) προσέγγιση στην ανάπτυξη λογισµικού βασίζεται σε συστήµατα διαχείρισης εργασιών, υπεύθυνα για την οργάνωση της διαδικασίας προγραµµατισµού και τον καταµερισµό του ϕόρτου στα µέλη της οµάδας. Η ανάθεση εργασιών στο πιο κατάλληλο µέλος (triaging) είναι µια σηµαντική και απαιτητική διαδικασία και υλοποιείται από την αξιολόγηση των χαρακτηριστικών µιας αναφοράς εργασίας (τίτλος, περιγραφή, ετικέτες, σηµαντικότητα κτλ). Προηγούµενες προσπάθειες να αντιµετωπιστεί η περίπλοκη και χρονοβόρα διαδικασία αυτοµατοποίησης της ανάθεσης εργασιών περιορίζονται συνήθως στην ανάλυση αναφορών σφαλµάτων. Η παρούσα διπλωµατική εισάγει µια µέθοδο αυτοµατοποίησης της διαδικασίας ανάθεσης εργασιών, χωρίς περιοϱισµό στο είδος της εργασίας. Συγκεκριµένα, στοχεύει να διερευνήσει τη δυνατότητα πρόβλεψης του καταλληλότερου προγραµµατιστή για να εκτελέσει µια εργασία, χρησιµοποιώντας την αναφορά εργασίας. Αξιοποιήθηκαν δεδοµένα από διαφορετικά αποθετήρια, µε επίκεντρο τα δεδοµένα κειµένου (τίτλος, περιγραφή, ετικέτες). Η µεθοδολογία µας ϐασίζεται πάνω στην εφαρµογή τεχνικών επεξεργασίας κειµένου και ανάλυσης δεδοµένων. Σε αντίθεση µε την υπάρχουσα βιβλιογραφία που περιορίζεται σε απλές µεθόδους προεπεξεργασίας (tokenization, lemmatization κτλ.), εφαρµόστηκαν τεχνικές θεµατικής µοντελοποίησης (LDA), µε στόχο την εξαγωγή θεµάτων της κάθε αναφοράς και τον εµπλουτισµό των ετικετών. Τέλος, τα επεξεργασµένα δεδοµένα χωρίζονται σε σύνολα εκπαίδευσης και ελέγχου και εισάγονται σε βασικά µοντέλα ταξινόµησης (Naive Bayes και SVM). Η µεθοδολογία αποδείχθηκε αποτελεσµατική, αναθέτοντας εργασίες µε καλή ακρίβεια σε οµάδες προγραµµατιστών διαφορετικών µεγεθών και γνωστικών αντικειµένων, µε τις τεχνικές θεµατικές µοντελοποίησης να συνεισφέρουν σηµαντικά στη βελτίωση της απόδοσης.
Δημήτρης Βαδικόλιας
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Ανάπτυξης Λογισμικού
Η χρήση βιβλιοθηκών κώδικα µειώνει το χρόνο ανάπτυξης νέου λογισµικού, δίνει τη δυνατότητα στους προγραµµατιστές να εστιάσουν περισσότερο στην υλοποίηση νέων λειτουργικών απαιτήσεων, και αυξάνει την αξιοπιστία του παραγόµενου κώδικα. Έτσι, η αναζήτηση κατάλληλων βιβλιοθηκών είναι απαραίτητη για τη γρήγορη ανάπτυξη λογισµικού υψηλής ποιότητας. Ταυτόχρονα, όµως, απαιτείται χρόνος (και αντίστοιχο κόστος) για διερεύνηση και επιλογή βιβλιοθηκών µεταξύ των χιλιάδων σχετικών λύσεων που διαµοιϱάζονται µέσω αποθετηρίων λογισµικού. Στην εργασία αυτή, εστιάζουµε στο αρχικό στάδιο της ανάπτυξης έργων λογισµικού, όπου η διαθέσιµη πληροφορία για αναζήτηση συνίσταται στην περιγραφή των έργων προς ανάπτυξη µε λέξεις-κλειδιά. Υπάρχοντα συστήµατα µελετάνε την εξαγωγή σχετικών βιβλιοθηκών ϐάσει της οµοιότητας των περιγραφών τους µε λέξεις-κλειδιά. Αλλά αυτή η πρακτική αγνοεί τη δηµοτικότητα των σχετικών βιβλιοθηκών και τις σηµασιολογικές συσχετίσεις µεταξύ λέξεων που δε βρίσκονται στις περιγραφές τους, όπως λέξεις που βρίσκονται στις περιγραφές έργων λογισµικού που τις χρησιµοποιούν. Για την ταυτόχρονη ενσωµάτωση των παραπάνω σηµασιολογικών συσχετίσεων και της δηµοτικότητας σε µοντέλα πρόβλεψης βιβλιοθηκών, προτείνουµε µια προσέγγιση συνεργατικού ϕιλτραρίσµατος. Για την ακρίβεια, οργανώνουµε βιβλιοθήκες και λέξεις-κλειδιά σε γράφους συσχετίσεων, όπου οι ακµές αντιστοιχούν σε εµφάνιση των λέξεων σε έργα λογισµικού που χρησιµοποιούν τις βιβλιοθήκες. ∆εδοµένης αυτής της οργάνωσης, εφαρµόζουµε παραλλαγές του αλγορίθµου PageRank για τη βαθµολόγηση των κόµβων του γράφου ϐάσει της σχετικότητάς τους µε λέξεις-κλειδιά που περιγράφουν το λογισµικό προς ανάπτυξη και προτείνουµε χρήση των βιβλιοθηκών µε την υψηλότερη βαθµολογία. Αυτή η πρακτική συγκρίνεται πειραµατικά µε υπάρχουσες εναλλακτικές σε δύο σύνολα δεδοµένων της γλώσσας Java, όπου χρησιµοποιούµε τα ονόµατα των έργων λογισµικού ως σύντοµες περγραφές. Η µέθοδός µας παρουσιάζει µεγαλύτερη προβλεπτική ικανότητα σε σχέση µε απλή αναζήτηση λέξεων-κλειδιών σε κλάσµατα του δευτερολέπτου και µπορεί να µεταβληθεί ώστε να παράγει ετερογενείς προβλέψεις.
Γεώργιος Βαφειάδης
Τεχνικές Πληθοπορισμού σε Αυτόνομα Οχήματα για τη Δημιουργία Επιπέδων στο Σύστημα Γεωγραφικών Πληροφοριών Βασισμένων στο Διαδίκτυο
Τα αυτόνοµα οχήµατα αυξάνονται στους δρόµους των πόλεων διαρκώς. Όλο και περισσότερες εταιρείες επενδύουν στην ανάπτυξη αλγορίθµων που δίνουν τη δυνατότητα στο χρήστη να βασιστεί σε συστήµατα µε ευφυΐα για την αποφυγή ατυχηµάτων, το παρκάρισµα του οχήµατος ή ακόµα και για τη συνολική πλοήγηση του από ένα σηµείο εκκίνησης σε ένας προορισµό. Οι αδυναµίες του οδηγού όπως είναι η κόπωση, η συναισθηµατική οδήγηση, η παϱάβαση κανονισµών και τα αργά αντανακλαστικά οδηγούν πολύ συχνά σε ατυχήµατα. Τα γρήγορα αντανακλαστικά των αυτόνοµων οχηµάτων καθώς και η τήρηση των κανόνων σύµφωνα µε την υπάρχουσα βιβλιογραφία υπόσχονται δραµατική µείωση αυτών. Για το λόγο αυτό η αγορά στρέφεται προς τα αυτόνοµα οχήµατα. Για να επιτευχθεί αυτό, τα οχήµατα εξοπλίζονται µε αισθητήρες που µπορούν να παρέχουν ποικίλες πληροφορίες για τις συνθήκες του περιβάλλοντος τους. ∆ίνεται λοιπόν µια νέα δυνατότητα στην αυτοκίνηση να αλληλεπιδράσει µε πληροφορίες του οδικού δικτύου που δεν υπήρχαν προγενέστερα. Ένα επιπλέον ερευνητικό πεδίο που αναπτύσσεται µε την αύξηση των αυτόνοµων οχηµάτων είναι η εν γένει επικοινωνία τους µε το διαδίκτυο (το δίκτυο των οχηµάτων IoV) και τα παρακλάδια που προκύπτουν από αυτό. Σηµαντικότερη αναφορά είναι η επικοινωνία οχηµάτων µεταξύ τους (όχηµα προς όχηµα-V2V), στην οποία ένα όχηµα ενηµερώνει τα υπόλοιπα οχήµατα για τις προδιαθέσεις τους ως προς την κίνησή του ή για συµβάντα που ενώ είναι σηµαντικά µπορεί να αποκρύπτονται λόγω οπτικής γωνίας για τα υπόλοιπα οχήµατα. Η παρούσα διπλωµατική επικεντρώνεται στην επικοινωνία του οχήµατος µε τις υποδοµές του οδικού δικτύου (όχηµα προς την υποδοµή-V2I). Συγκεκριµένα οι πληροφορίες που συλλέγονται αποστέλλονται από κάθε όχηµα αποµονωµένα σε έναν κεντρικό εξυπηϱετητή. Εκεί, αφού επεξεργαστούν, µπορούν να αποσταλούν στους χρήστες του δικτύου ως χρήσιµη πληροφορία για την πλοήγηση των οχηµάτων στο οδικό δίκτυο. Οι εφαρµογές µεγάλου πλήθους πηγών (Crowd Sourcing-CS) µε γνωστότερη αυτή της Google Maps που καταγράφει σε πραγµατικό χρόνο την κίνηση στο οδικό δίκτυο έρχονται να ορίσουν κάποιες τεχνικές για την αποτελεσµατική διασύνδεση µιας πηγής µε τον εξυπηρετητή. Οι τεχνικές αφορούν το µέγεθος της πληροφορίας που κάθε µεµονωµένη πηγή πρέπει να στείλει, τους τρόπους και τη δοµή µε την οποία η πληροϕορία επεξεργάζεται, την ασφάλεια των δεδοµένων των χρηστών και την ευρωστία του συστήµατος ως προς εσφαλµένες πηγές. Στην παρούσα διπλωµατική χρησιµοποιούµε τεχνικές CS σε αυτόνοµα οχήµατα για τη δηµιουργία επιπέδων πληροφορίας στον χάρτη (GIS Layers). Συγκεκριµένα εξάγουµε από τον αισθητήρα LiDAR την πληροφορία για το πού υπάρχουν ελεύθερες θέσεις ή παρκαρισµένα οχήµατα και ενηµερώνουµε τους χρήστες σε πραγµατικό χρόνο για τη διαθεσιµότητα των θέσεων. Η υλοποίηση πραγµατοποιήθηκε µε τη χρήση του προσοµοιωτή CARLA που προσοµοιώνει ένα αστικό περιβάλλον. (continue in full text)
Ανέστης Βαρσαμίδης
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Η αναγνωσιμότητα του κώδικα είναι σημαντική, καθώς ένα μεγάλο κομμάτι χρόνου στη διάρκεια ζωής ενός έργου λογισμικού αφιερώνεται στην ανάγνωση και κατανόηση κώδικα. Υπάρχουν αρκετά μοντέλα που στοχεύουν στην εκτίμηση του πόσο εύκολα κάποιος άνθρωπος μπορεί να διαβάσει και να κατανοήσει ένα κομμάτι πηγαίου κώδικα. Στην παρούσα διπλωματική εργασία εξετάζουμε ποια μοντέλα και μετρικές είναι ευαίσθητα σε μικρές αλλαγές αναγνωσιμότητας (ένα commit). Βρήκαμε τα commits που βελτιώνουν την αναγνωσιμότητα από αποθετήρια λογισμικού ανοιχτού κώδικα, και επιλέξαμε κάποια ακόμα τυχαία commits. Για κάθε αρχείο που τροποποιούσαν, υπολογίσαμε την τιμή από μετρικές και μοντέλα αναγνωσιμότητας πριν και μετά το commit. Έπειτα, μετρήσαμε τη διαφορά σε κάθε μετρική πριν και μετά το commit, και επίσης τη διαφορά ανάμεσα σε commit αναγνωσιμότητας και μη. Τέλος, κατασκευάσαμε ένα νέο μοντέλο που είναι ευαίσθητο σε τέτοιες μικρές μεταβολές. Τα μοντέλα μας είναι Μηχανές Διανυσμάτων Υποστήριξης (SVR) που εκτελούν παλινδρόμηση και έχουν γραμμικό, RBF, ή πολυωνυμικό πυρήνα. Χρησιμοποιήσαμε cross-validation στην εκπαίδευση, και για την επιλογή των χαρακτηριστικών εισόδου εφαρμόσαμε Sequential Backward Selection. Βρήκαμε ότι οι περισσότερες μετρικές δεν έχουν στατιστικά σημαντικές μεταβολές μετά από commits αναγνωσιμότητας και οι υπόλοιπες εμφανίζουν πολύ μικρές μεταβολές. Συγκρίνοντας τις μεταβολές μεταξύ commits αναγνωσιμότητας και μη, οι διαφορές είναι μεγαλύτερες: σχεδόν όλες οι μετρικές έχουν παρατηρήσιμες και τουλάχιστον μικρές ή πολύ μικρές μεταβολές. Το SVR μοντέλο αναγνωσιμότητας κώδικα που εκπαιδεύσαμε λαμβάνει ως είσοδο 9 χαρακτηριστικά και έχει περίπου ίσες ή ελαφρά μεγαλύτερες μεταβολές μετά από commit αναγνωσιμότητας, σε σύγκριση με τα υπάρχοντα μοντέλα.
Ευριπίδης Χονδροματίδης
Σχεδιασμός και Υλοποίηση IoT Συσκευής για την Εκπαίδευση και Αξιολόγηση Σωματικών και Νοητικών Δραστηριοτήτων
Σήμερα ένα ολοένα αυξανόμενο μέρος του σύγχρονου τρόπου ζωής στηρίζεται στη χρήση έξυπνων συσκευών οι οποίες βασίζονται σε IoT τεχνολογίες. Οι συσκευές αυτές, μέσω της συλλογής δεδομένων μας προσφέρουν μια πρωτόγνωρη δυνατό τητα διαχείρισης της καθημερινότητάς μας. Ένα από τα ταχέως αναπτυσσόμενα πεδία των IoT εφαρμογών αποτελεί ο Αθλητισμός, όπου έξυπνες συσκευές μας παρέχουν μια πιο ενδιαφέρουσα και εξατομικευμένη αθλητική εμπειρία, ενώ παράλληλα επιτρέπουν τη συνεχή παρακολούθηση των επιδόσεων μας μέσω κοινώς αποδεκτών μετρικών. Παρόλ’ αυτά οι υπάρχουσες υλοποιήσεις έχουν υψηλό κόστος και περιορισμένο εύρος δυνατοτήτων, στοχεύοντας στην κάλυψη συγκεκριμένου είδος ασκήσεων. Στην παρούσα διπλωματική εργασία επιχειρούμε την ολοκληρωμένη ανάπτυξη και κατασκευή μιας χαμηλού κόστους αρθρωτής συσκευής, η οποία θα αποτελεί τη βάση για την ενσωμάτωση μεγάλου πλήθους αθλητικών ασκήσεων μέσω μιας κοινής διεπαφής. Η ανάπτυξη της εν λόγω συσκευής περιλαμβάνει τον σχεδιασμό του υλικού (PCB) με βάση τον μικροελεγκτή ESP32, τον προγραμματισμό του υλικού μέσω του λειτουργικού συστήματος πραγματικού χρόνου Riot-os, τη γε φύρωση της επικοινωνίας μεταξύ της συσκευής και του διαδικτύου διαμέσου του υπολογιστικού κόμβου Raspberry με χρήση IoT πρωτοκόλλων και την κατασκευή του πρωτότυπου περιβλήματος της συσκευής με τη βοήθεια τρισδιάστατης εκτύ πωσης. Στη συνέχεια ακολουθεί η διαδικασία αξιολόγησης της συσκευής κατά την οποία πραγματοποιούμε μετρήσεις που σχετίζονται με την ενεργειακή της κατανά λωση και αυτονομία. Τέλος θα επιχειρήσουμε την ενσωμάτωση πλήθους αθλητικών εφαρμογών που συναντώνται σε ερευνητικές και εμπορικές υλοποιήσεις συσκευών προκειμένου να διερευνήσουμε την ικανότητα προσαρμογής της συσκευής μας.
Κωνσταντίνος-Μάριος Χελάκης
Δημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERN
Στις μέρες μας, ο ρυθμός παραγωγής πληροφοριών είναι άνευ προηγουμένου. Από την ίδρυσή του, το CERN παράγει πληροφορίες που είναι σημαντικές για την επιστημονική κοινότητα και δεν μπορούν να αναπαραχθούν στο μέλλον. Είναι ευθύνη ενός οργανισμού σαν το CERN να διασφαλίσει ότι αυτές οι πληροφορίες διατηρούνται με τρόπο που θα τις κάνει διαθέσιμες στις μελλοντικές γενιές. Το Digital Memory Project δημιουργήθηκε για να λύσει αυτό το πρόβλημα αναπτύσσοντας ένα ψηφιακό αρχείο για το CERN, συμβατό με το πρωτόκολλο Open Archival Information System (OAIS). Με τη χρήση αυτού του συστήματος, οι ερευνητές θα μπορούν να αρχειοθετούν τα δεδομένα τους τα οποία θα επεξεργάζονται και θα αποθηκεύονται με τρόπο που να μεγιστοποιεί τις πιθανότητες ότι αυτά τα δεδομένα θα είναι προσβάσιμα στο μέλλον. Σε αντίθεση με άλλα υλοποιημένα συστήματα, η προτεινόμενη λύση είναι πλήρως συμβατή με το OAIS, είναι ενσωματωμένη με υπάρχοντα αποθετήρια του CERN ενώ ο χρήστης μπορεί εύκολα να διαχειρίζεται και να παρακολουθεί τις ενέργειες που εκτελούνται σε ένα αρχειακό πακέτο. Οι διαθέσιμες λύσεις είτε δεν συμμορφώνονται πλήρως με το πρότυπο, είτε αποτελούσαν βραχυπρόθεσμα έργα που δεν συντηρούνται ή δεν είναι ανοιχτού κώδικα και διαθέσιμα με αυτό τον τρόπο στην ερευνητική κοινότητα. Σε αυτή την εργασία, θα παρουσιάσουμε μια υλοποίηση ενός αρχείου συμβατό με το πρότυπο OAIS για το CERN. Αρχικά, υλοποιούμε ένα εργαλείο που μπορεί να χρησιμοποιηθεί για τη συλλογή δεδομένων από διάφορες πηγές του CERN όπως τα CDS, Indico, CERN Open Data, Gitlab και CodiMD σε μορφή συμβατή με το OAIS που ονομάζεται Submission Information Package (SIP). Αυτό το πακέτο μπορεί να χρησιμοποιηθεί από την πλατφόρμα προκειμένου να δημιουργηθούν τα πακέτα αρχειοθέτησης που μπορούν να αποθηκευτούν για μακροχρόνια διατήρηση. Αυτά τα πακέτα περιέχουν πρόσθετα μεταδεδομένα και κανονικοποίηση του περιεχομένου που θα εγγυηθούν τη μακροπρόθεσμη επιβίωση του περιεχομένου πληροφοριών. Επιπλέον, δείχνουμε πόσο εύκολο είναι για έναν χρήστη να δημιουργήσει, να παρακολουθεί και να ομαδοποιήσει τα αρχεία του χρησιμοποιώντας τη διεπαφή χρήστη που αναπτύχθηκε. Η πλατφόρμα μπορεί εύκολα να αναπτυχθεί και να χρησιμοποιηθεί από οποιονδήποτε μέσω του Openshift. Τέλος, συζητάμε πώς μπορεί να βελτιωθεί η απόδοση της πλατφόρμας και δείχνουμε ότι τα πακέτα που προκύπτουν καθώς και η πλατφόρμα στο σύνολό της είναι πλήρως συμβατή με το OAIS.
Ορέστης Φαρµάκης
Τυπο-κατευθυνόµενος Νευρωνικός Καρτεσιανός Γενετικός Προγραµµατισµός σε Πεδιακές Γλώσσες για Σύνθεση Συναρτήσεων κατά την Εκτέλεση
Η αβεβαιότητα του πώς θα χρησιµοποιηθούν στην πράξη βιβλιοθήκες λογισµικού οδηγεί συχνά τους συγγραφείς τους στην αναγνώριση πιθανών σεναρίων χρήσης και στην κάλυψη αυτών µέσω προγραµµατιστικών διεπαφών πολλαπλών χρήσεων. Ωστόσο, πιο ευέλικτες διεπαφές δυσχεραίνουν την κατανόηση για αποδοτική χρήση τους. Για τη διατήρηση της απλότητας των διεπαφών κατά την υποστήριξη περίπλοκων σεναρίων χρήσης, στην παρούσα διπλωµατική προτείνουµε µια νέα µεθοδολογία, κατά την οποία µηχανικοί λογισµικού που χρησιµοποιούν βιβλιοθήκες δηλώνουν µόνο διαθέσιµα δεδοµένα και επιθυµητές µορφές (π.χ., τύπους δεδοµένων) που θα προέκυπταν µέσω κατάλληλων εφαρµογών των διαθέσιµων διεπαφών. Στη συνέχεια, αυτοµατοποιούµε τη διαδικασία µετασχηµατισµού των δεδοµένων σε επιθυµητούς τύπους εφαρµόζοντας µια τυπο-κατευθυνόµενη προσέγγιση σύνθεσης εντός πεδιακών γλωσσών (Domain Specific Languages - DSLs) που περιγράφουν τις διεπαφές βιβλιοθηκών. Για το σκοπό αυτό, εξετάζουµε τον Καρτεσιανό Γενετικό Προγραµµατισµό (Cartesian Genetic Programming - CGP) ως µέθοδο σύνθεσης µετασχηµατισµών δεδοµένων που συνδυάζουν διεπαφές. ∆υστυχώς, υπάρχουσες συναρτήσεις καταλληλότητας του CGP που συνιστούν ποιες διεπαφές πρέπει να εφαρµοστούν σε κάθε βήµα µετασχηµατισµού αδυνατούν να αποτυπώσουν ορθά το κατά πόσο οι συντεθειµένες λύσεις προσεγγίζουν τις επιθυµητές και, ως εκ τούτου, αποτυγχάνουν να συνθέσουν περίπλοκους µετασχηµατισµούς. Για την αντιµετώπιση αυτής της ανεπάρκειας, παρουσιάζουµε ένα σύστηµα που µαθαίνει νευρωνικές συναρτήσεις καταλληλότητας και το εκπαιδεύουµε σε κάθε DSL δηµιουργώντας τεχνητά παραδείγµατα σύνθεσης. Η προσέγγισή µας υλοποιείται ως πακέτο της γλώσσας Python, ονοµαζόµενο Pymeleon, το οποίο µπορεί να χρησιµοποιηθεί προς απλοποίηση σεναρίων χρήσης πραγµατικών βιβλιοθηκών. Πειϱάµατα σε 20 εργασίες σύνθεσης διαφορετικής πολυπλοκότητας 4 υπαρχουσών προγραµµατιστικών διεπαφών δείχνουν πως η προτεινόµενη νευρωνική συνάρτηση καταλληλότητας αποδίδει καλύτερα από τον CGP, κυρίως στη σύνθεση περίπλοκων µετασχηµατισµών και, στις περισσότερες περιπτώσεις, παράγει το επιθυµητό αποτέλεσµα. Πραγµατοποιούµε επίσης µια περιπτωσιολογική µελέτη, στην οποία δείχνουµε πως, σε σύγκριση µε την υλοποίηση περίπλοκων περιτυλιγµάτων διεπαφών που απλοποιούν τον τελικό κώδικα αλλά είναι δύσκολα στη χρήση, επαρκεί ελάχιστη επιπρόσθετη προσπάθεια για τη δήλωση DSL βιβλιοθηκών ώστε να µειώσει δραστικά την απαιτούµενη προσπάθεια των µηχανικών λογισµικού κατά την επαναχρησιµοποίηση διεπαφών.
Αντώνιος-Ραφαήλ Καραμεσίνης
Eύρεση θέσης στάθμευσης και κατηγοριοποίηση ανθρώπινης δραστηριότητας με χρήση δεδομένων αισθητήρων κινητού τηλεφώνου
Ένα από τα προβλήματα που αντιμετωπίζει καθημερινά ο άνθρωπος, ειδικά στα αστικά κέντρα, είναι αυτό της εύρεσης θέσης στάθμευσης για το αυτοκίνητό του. Ενδεικτικό είναι ότι το 30% του όγκου της κυκλοφορίας αυτοκινήτων προ έρχεται από οδηγούς που βρίσκονται σε αναζήτηση μιας θέσης. Η πρόταση μιας αποτελεσματικής λύσης δε θα βελτίωνε μόνο το βιοτικό επίπεδο των ανθρώπων, παρέχοντάς τους ευκολία και άνεση στις δραστηριότητες που περιέχουν οδήγηση, αλλά θα ωφελούσε τις κοινωνίες οικονομικά και περιβαλλοντικά μακροπρόθεσμα. Τα έξυπνα κινητά τηλέφωνα αποτελούν ένα από τα μεγαλύτερα σύγχρονα τεχνολογικά επιτεύγματα, αφού συγκεντρώνουν πολλές δυνατότητες σε μία τόσο μικρή συσκευή, ενώ αποτελούν αναπόσπαστο κομμάτι της καθημερινότητας ενός ανθρώπου στη σύγχρονη κοινωνία. Αυτά τα δύο χαρακτηριστικά, ο ”πλούτος” δυνατοτήτων και η μαζικότητα της χρήσης, προσφέρουν αμέτρητες ευκαιρίες για την ανάπτυξη λύσεων σε προβλήματα, όπως αυτό της εύρεσης θέσης στάθμευσης. Στην παρούσα διπλωματική εργασία, αναπτύχθηκε και παρουσιάζεται μια εφαρμογή για κινητά τηλέφωνα σε περιβάλλον Android, η οποία αποτελεί τον πυρήνα δύο προτεινόμενων υλοποιημένων συστημάτων, που ως στόχο έχουν να προσφέρουν μια έξυπνη και αποδοτική λύση στην εύρεση μιας θέσης στάθμευσης για τον οδηγό. Οι δύο αυτές προτάσεις αναγνωρίζουν τη δραστηριότητα του χρήστη της εφαρμογής και όταν ανιχνευθεί η δραστηριότητα του παρκαρίσματος ή της αναχώ ρησης από μια τέτοια θέση, ενεργοποιούνται οι κατάλληλοι μηχανισμοί, με στόχο η κοινότητα της εφαρμογής να γνωρίζει τη διαθεσιμότητα θέσεων σε έναν αστικό ιστό. Τέλος, η διαφορά των δύο συστημάτων έγκειται στον τρόπο αναγνώρισης της δραστηριότητας, αφού το ένα αξιοποιεί τις δυνατότητες της Google, ενώ το δεύτερο ενσωματώνει έναν αλγόριθμο που δημιουργήθηκε για τις ανάγκες της εργασίας. Η διπλωματική εργασία και οι προτεινόμενες υλοποιήσεις που περιέχονται σε αυτή έχουν ερευνητικό χαρακτήρα, ωστόσο θέτουν τα θεμέλια εύρεσης και ανάπτυξης μιας πράγματι αποτελεσματικής λύσης στο συγκεκριμένο πρόβλημα, η οποία θα είχε ιδιαίτερα θετικό αντίκτυπο στη σημερινή κοινωνία.
Δημήτριος Καβελίδης Φραντζής
Αναγνώριση Κατηγορίας Νοητικής Έκπτωσης μέσω Χαρακτηριστικών Ομιλίας
Η σταθερά αυξανόμενη επίδραση των νευρογνωστικών ασθενειών γίνεται όλο και πιο εμφανής, καθώς, όπως δείχνουν τα στατιστικά δεδομένα, λόγω του μεγαλύτερου προσδόκιμου ζωής των ανθρώπων σήμερα, τόσο η εμφάνιση της Ήπιας Νοητικής Διαταραχής (ΗΝΔ ή MCI) όσο και της Άνοιας, σε μεγαλύτερα ποσοστά, θα είναι σύντομα ένα αναπόφευκτο πρόβλημα. Σήμερα, οι περισσότερες μέθοδοι διάγνωσης των νευροεκφυλιστικών ασθενειών είναι είτε επεμβατικές, είτε απαιτούν πλήρη νευροψυχολογική και κλινική εκτίμηση, η οποία γίνεται σε συγκεκριμένο πε ριβάλλον και συνήθως χρειάζεται αρκετό χρόνο. Προκειμένου να αναπτυχθεί μία απλούστερη μέθοδος διάγνωσης, υπάρχουν μελέτες που εστιάζουν σε ένα νοητικό έλλειμμα που σχετίζεται με την παραγωγή του λόγου που συχνά εμφανίζουν τα άτομα με νοητική έκπτωση, με σκοπό την ταξινόμηση των ατόμων με βάση την εξασθένησή τους αυτή, συλλέγοντας δεδομένα ομιλίας από δομημένες συνεντεύξεις και στη συνέχεια αναπτύσσοντας ένα μοντέλο Μηχανικής Μάθησης. Σε αυτή τη μελέτη, εξετάζεται η εγκυρότητα μίας διαδικασίας ταξινόμησης του υποκειμένου σε περισσότερες από δύο κλάσεις, με σκοπό την ικανότητα ισχυρής διαφοροποίησης μεταξύ των πρώιμων σταδίων του κλινικού φάσματος γήρανσης. Οι τέσσερις κλάσεις για την ταξινόμηση στη συγκεκριμένη έρευνα είναι : Υγιής (Healthy control), Υποκειμενική Νοητική Εξασθένηση / Subjective Cognitive Decline (SCD), Πρώιμη-ΗΝΔ (E-MCI), Όψιμη-ΗΝΔ (L-MCI). Για τη συλλογή δεδομένων, 84 άτομα μεταξύ 50 και 85 ετών ηχογραφήθηκαν στο κέντρο ”Αγία Ελένη” της Ελληνικής Εταιρίας Alzheimer και Συγγενών Διαταραχών, συγκεντρώνοντας συνολικά 1621 ηχογραφήσεις καθώς και τα προσωπικά στοιχεία των συμμετεχόντων. Η διαδικασία ηχογράφησης αποτελούνταν από 5 στάδια και είχε την μορφή μίας άτυπης συνέντευξης χρησιμοποιώντας ερωτήσεις και δοκιμασίες διπλού έργου, με σταδιακή αύξηση του νοητικού φορτίου που απαιτείται από το υποκείμενο, στοχεύοντας έτσι στην διερεύνηση και ποσοτικοποίηση των αλλαγών στην απόδοση του ατόμου ανάμεσα στα στάδια. Τρία διαφορετικά είδη ηχητικών χαρακτηριστικών εξήχθησαν: Χαρακτηριστικά Παύσεων, Προσωδιακά Χαρακτηριστικά και Χαρακτηριστικά Μηδενικών Διελεύσεων (αρχικά χαρακτηριστικά). Για να μετρηθούν οι διαφορές ανάμεσα στα στάδια, δημιουργήθηκε ένα νέο διάνυσμα χαρακτηριστικών από την αφαίρεση των διανυσμάτων χαρακτηριστικών ανά στάδιο.(continue in full text)
Ιωάννης Κεσσόπουλος
Γραφική Επεξεργασία Σήµατος σε Μεγάλους Γράφους
Τα τελευταία χρόνια έχει καταστεί δηµοφιλής η ανάλυση σχεσιακών δεδοµένων οργανώνο ντας δείγµατα ως κορυφές γράφων µε ακµές τις µεταξύ τους συσχετίσεις. ΄Ενα διαδεδοµένο εργαλείο για την ανάλυση γράφων -ιδιαίτερα όταν αυτοί περιγράφουν δεδοµένα µεγάλης κλίµακας- είναι η γραφική επεξεργασία σήµατος. Αυτή η ϑεωρία γενικεύει την ψηφιακή επεξεργασία σήµατος µε τον ορισµό γραφικών ϕίλτρων, τα οποία εκτελούν µετατοπίσεις πληροφορίας µεταξύ γειτονικών κορυφών ως ισοδύναµο του ϕασµατικού ϕιλτραρίσµατος στον χώρο των ιδιοτιµών. ∆υστυχώς, γραφικά ϕίλτρα που παρέχονται από συστήµατα δια χείρισης και ανάλυσης γράφων συνήθως δεν µπορούν να επεξεργαστούν δεδοµένα µεγάλης κλίµακας που ξεπερνούν τη χωρητικότητα της µνήµης τυχαίας προσπέλασης (RAM) των υπολογιστικών υποδοµών. ΄Ετσι, η χρήση τους περιορίζεται από το πλήθος των ακµών που µπορούν να επεξεργαστούν ταυτόχρονα. Αυτή η διπλωµατική εξετάζει υποσχόµενες τεχνικές για την εκτέλεση του γραφικού ϕιλτραρίσµατος όταν υποκείµενα υπολογιστικά συ στήµατα µπορούν να διατηρήσουν στη µνήµη µόνο τις κορυφές αλλά όχι τις ακµές γράφων (οι κορυφές είναι συχνά εκατοντάδες ϕορές λιγότερες σε πλήθος). Για την ακρίβεια, προ τείνεται ότι οι ακµές µπορούν να αποθηκευτούν σε µόνιµα µέσα αποθήκευσης, όπως ο σκληρός δίσκος, και µελετώνται δύο τρόποι οργάνωσής τους για αποτελεσµατική διάσχι ση κατά τον υπολογισµό ϕίλτρων γράφων, εκ των οποίων ο πρώτος αποθηκεύει όλες τις ακµές σε ένα αρχείο ανά γράφο, ενώ ο δεύτερος αποθηκεύει τις ακµές σε ένα αρχείο ανά σχετιζόµενη κορυφή. Οι προσεγγίσεις αυτές υλοποιούνται σε ένα σύστηµα διαχείρισης και ϕιλτραρίσµατος µεγάλων γράφων στη γλώσσα προγραµµατισµού Java, το οποίο εκτελείται τοπικά σε µηχάνηµα µε ενδεχοµένως περιορισµένη µνήµη. Πειραµατική σύγκριση µε ισοδύναµες υλοποιήσεις που διατηρούν όλες τις ακµές στη µνήµη τυχαίας προσπέλασης δείχνουν ότι οι προτεινόµενες τεχνικές επιτρέπουν γραφική επεξεργασία σήµατος ακόµη και όταν οι γράφοι υπερβαίνουν τη χωρητικότητας της µνήµης. Τέλος, αναλύονται οι α συµπτωτικοί και ωρολογιακοί χρόνοι εκτέλεσης των επιµέρους λειτουργιών συγκρινόµενων προσεγγίσεων, καταλήγοντας σε διαφορετική προτεινόµενη προσέγγιση για διαφορετικούς τρόπους χρήσης του ανεπτυγµένου συστήµατος.
Ναταλία Κωστοπούλου
Αυτόματη παραγωγή εξατομικευμένων ερωτηματολογίων με σκοπό τον έλεγχο των γνώσεων του προσωπικού
Καθώς οι απαιτήσεις για την παραγωγή λογισμικού αυξάνονται, το Model Driven Engineering (MDE) αναγνωρίζεται όλο και περισσότερο ως μία αναδυόμενη λύση για το χειρισμό πολύπλοκων συστημάτων λογισμικού. Χρησιμοποιεί ως βάση του τα μοντέλα, τα οποία μπορούν να περιγράψουν αφαιρετικά ένα σύστημα χωρίς να περιορίζονται από την πλατφόρμα παραγωγής. Το MDE, λόγω της γρήγορης και αξιόπιστης ανάπτυξης λογισμικού, έχει υιοθετηθεί από πολλούς κλάδους της βιομηχανίας, συμπεριλαμβανομένης της αυτοκινητοβιομηχανίας και της αεροδυναμικής. Παρόλα αυτά, μέχρι στιγμής, η συγκεκριμένη τεχνολογία έχει χρησιμοποιηθεί για την παραγωγή σχετικά μικρής κλίμακας συστημάτων λογισμικού. Ωστόσο, η χρήση της και σε άλλους τομείς πέραν της παραγωγής λογισμικού πιθανώς να έχει αντίστοιχη σημαντική επίπτωση στην παραγωγικότητα όπως και στην Μηχανική Λογισμικού. Στο πλαίσιο αυτό, στην παρούσα διπλωματική υλοποιείται ένα σύστημα αυτόματης παραγωγής εξατομικευμένων ερωτηματολογίων με σκοπό τον έλεγχο των γνώσεων των εργαζομένων. Η ανάπτυξη του συστήματος βασίζεται στη θεωρία των Intelligent Tutoring Systems (ITSs) και παρέχει μία εφαρμογή εύκολη στο χρήστη, καθιστώντας το έτσι εύχρηστο ακόμα και σε αυτούς που δεν γνωρίζουν προγραμματισμό, παράγοντας ερωτηματολόγια με αυτοματοποιημένο τρόπο. Η μετέπειτα αυτόματη αξιολόγηση των αποτελεσμάτων, συμβάλει στην πλήρη απεξάρτηση του εργοδότη από τη διαδικασία, καθώς ενημερώνεται άμεσα για την απόδοση των εξεταζόμενων. Λόγω αυτής της αυτοματοποίησης, το σύστημα καθίσταται κατάλληλο για την υιοθέτηση του από εταιρείες μικρού βεληνεκούς που επιθυμούν να αξιολογήσουν το προσωπικό τους.
Χριστίνα Μαρία Μαστραλέξη
∆ηµιουργία συµπεριφορών αυτόνοµου αυτοκινήτου µε χρήση προσοµοιωτή και απλών καμερών
Η αυτόνοµη οδήγηση είναι µια τεχνολογία η οποία αναπτύσσεται και εξελίσσεται ϱαγδαία τα τελευταία χρόνια. Τόσο η επιστηµονική κοινότητα όσο και οι κατασκευάστριες εταιρίες καταβάλλουν αξιοσηµείωτες προσπάθειες για την ανάπτυξη της τεχνολογίας προς την επίτευξη της αυτόνοµης οδήγησης. Η αυτόνοµη τεχνολογία οχηµάτων θα µπορεί να είναι σε θέση να παρέχει ορισµένα πλεονεκτήµατα σε σύγκριση µε τα παραδοσιακά οχήµατα, καθώς στα επόµενα χρόνια, θα αυξήσει δραµατικά την ασφάλεια των πολιτών, θα µειώσει το χρόνο των µεταφορών αλλά και την κυκλοφοριακή συµφόρηση των δρόµων, συντελώντας στην εύρυθµη λειτουργία του κυκλοφοριακού συστήµατος. Για την επίτευξη µια τέτοιας πραγµατικότητας είναι απαραίτητη η αντίληψη του χώρου γύρω από το αυτόνοµο όχηµα, η προσαρµογή του στο περιβάλλον και η άµεση απόκρισή του σε αλλαγές αυτού. Το όχηµα θα πρέπει να πλοηγείται µε ασφάλεια στο οδικό δίκτυο και να ανταποκρίνεται ανάλογα, αναγνωρίζοντας τόσο τα στατικά και όσο και τα δυναµικά εµπόδια. Επιπλέον, θα πρέπει να υπολογίζει και να αξιολογεί σενάρια αποφάσεων και να επιλέγει την κατάλληλη ανταπόκριση σύµφωνα µε τις συνθήκες. ΄Ετσι, τα αυτόνοµα οχήµατα θα πρέπει να είναι εξοπλισµένα µε εξειδικευµένους αισθητήρες και µε το κατάλληλο σύστηµα ελέγχου και λήψης αποφάσεων. Η παρούσα διπλωµατική εργασία εστιάζει στον σχεδιασµό και την υλοποίηση ενός τέτοιου συστήµατος ικανού να πλοηγείται αυτόνοµα σε προσπελάσιµο δρόµο αφού τον αναγνωρίσει επιτυχώς, κάνοντας χρήση οπτικής πληροφορίας που λαµβάνεται από RGB κάµερα, η οποία είναι ενσωµατωµένη στο όχηµα. Το όχηµα κινείται σε προσοµοιωµένο περιβάλλον, και συγκεκριµένα στον προσοµοιωτή CARLA. Γίνεται εκτενής χρήση συναρτήσεων της βιβλιοθήκης Υπολογιστικής Όρασης OpenCV για την διαµόρφωση και αξιοποίηση της ληφθείσας οπτικής πληροφορίας. Για την αναγνώριση των δυναµικών εµποδίων η οπτική πληροφορία αναλύεται από το µοντέλο βαθιάς µάθησης YOLO (You Only Look Once), ενώ χρησιµοποιείται Οπτική Αναγνώριση Χαρακτήρων (OCR) για την εξαγωγή πληροφορίας από τα σήµατα οδικής κυκλοφορίας και γίνεται ανάλυση ιστογράµµατος για Αναγνώριση Χρώµατος (Color Recognition) των ϕωτεινών σηµατοδοτών. Για την κατασκευή βασικού µονοπατιού δηµιουργείται ένας κατευθυνόµενος γράφος του χάρτη και χρησιµοποιείται ο αλγόριθµος Α* για την αναζήτηση της βέλτιστης διαδροµής. Τέλος, η πλοήγηση επιτυγχάνεται µε ένα σύστηµα διατήρησης των λωρίδων (Lane Keeping Assist System) και τη χρήση ενός PID ελεγκτή.
Γεώργιος Σαββίδης
Αντίληψη αυτόνοµου οχήµατος µε χρήση κάµερας
Το µεγαλύτερο µερίδιο της αγοράς στρέφεται σε πιο βιώσιµους και οικονοµικούς τρόπους ανάπτυξης. Αυτή η ϕιλοσοφία εκφράζεται στον τοµέα της αυτοκινητοβιοµηχανίας µέσω της αυξηµένης αυτονοµίας των οχηµάτων και συστηµάτων. Για να διευρυνθεί αυτή η προσέγγιση, πλέον έχουν οριστεί καινοτόµες πολιτικές και στρατηγικές ανάπτυξης που χρησιµοποιούνται από τις επιχειρήσεις και αποτελούν βασικό άξονα για την εύρυθµη και κερδοφόρο λειτουργία τους. Αυτή η κατεύθυνση ανάπτυξης συνεπάγεται άµεσες τεχνολογικές και επιστηµονικές καινοτοµίες. Αντικείµενο της παρούσας διπλωµατικής εργασίας αποτελεί η ανάπτυξη ενός συστήµατος µε βάση οπτικά µέσα για την ανίχνευση και ταξινόµηση του περιβάλλοντος του οχήµατος µε σκοπό την πλήρη αυτονοµία του. Αρχικά, αναπτύσσεται µία µέθοδος προσδιορισµού της τρέχουσας λωρίδας κίνησης του οχήµατος, αλλά και των πιθανών προσκείµενων λωριδών αυτού µε χρήση αλγορίθµων επεξεργασίας εικόνας. ΄Επειτα, ανιχνεύονται διασταυρώσεις µε ή χωρίς ϕωτεινούς σηµατοδότες. Τέλος, για την ανίχνευση διαφόρων χρήσιµων αντικειµένων, προτείνεται η χρήση και η εκπαίδευση νευρωνικών δικτύων τύπου YOLO. ΄Εχει αποδειχτεί οτι τα νευρωνικά δίκτυα YOLO παράγουν καλύτερα και πιο αξιόπιστα αποτελέσµατα σε αντίθεση µε παραδοσιακά νευρωνικά δίκτυα. Στα πλαίσια της παρούσας διπλωµατικής, το µοντέλο εκπαιδεύτηκε µε στόχο την ανίχνευση οχηµάτων, ποδηλάτων, µηχανών, πεζών, ϕωτεινών σηµατοδοτών και οδικής σήµανσης.
Ταβάγιος Συνοδινός
Εφαρμογή τεχνολογιών Blockchain για τη δημιουργία αποκεντρωμένης αγοράς ισχύος από Edge συσκευές
Μια από τις σπουδαιότερες νέες τεχνολογίες, η οποία αναπτύσσεται ταχύτατα και προσελκύει όλο και περισσότερο ενδιαφέρον είναι αυτή των αποκεντρωμένων δικτύων Blockchain. Ακολουθώντας τα βήματα που χαράχθηκαν το 2008 τα συνεχώς αναπτυσσόμενα δίκτυα Blockchain στοχεύουν στην ολική ανανέωση του τρόπου ολοκλήρωσης των διαδικτυακών συναλλαγών. Πέραν του τομέα της οικονομίας, στόχος είναι και η αλλαγή των διαδικτυακών εφαρμογών σε σύγχρονες αποκεντρωμένες εφαρμογές που προσφέρουν πολυάριθμα πλεονεκτήματα αντί των συμβατικών. Αυτές οι εφαρμογές (decentralized Applications) προσφέρουν απόλυτη ασφάλεια και αμεταβλητότητα των δεδομένων καθιστώντας τες ιδανικές για χρήση στους περισσότερους τομείς της καθημερινότητας. Η συνεχής ανάπτυξη και επέκταση του Internet of Things προκαλεί προβλήματα στον τρόπο με τον οποίο διαχειρίζονται τα δεδομένα αυτών των συσκευών. Η αναδυόμενη τεχνολογία του Edge Computing έρχεται να αντικαταστήσει τα παραδοσιακά συστήματα Cloud για την αντιμετώπιση αυτών των προβλημάτων. Η επεξεργασία των δεδομένων κοντά στις άκρες του δικτύου δίνει λύσεις στα θέματα ταχύτητας επεξεργασίας αλλά και σε αυτά ασφάλειας των προσωπικών δεδομένων. Η έλλειψη αποθηκευτικού χώρου και υπολογιστικής ισχύος από τις IoT συσκευές παύουν να αποτελούν πρόβλημα και η χρήση τους για την εκτέλεση πολύπλοκων υπολογισμών γίνεται εφικτή με την ύπαρξη ενός edge κόμβου που τις διαχειρίζεται. Φυσικά, είναι πολλά τα εμπόδια που πρέπει να αντιμετωπιστούν και πολλές οι λύσεις που πρέπει να βρεθούν για να αντικατασταθούν τα συστήματα Cloud Computing από τα αντίστοιχα Edge. Η παρούσα διπλωματική πραγματεύεται τη συνεργασία των δύο τεχνολογιών και πιο συγκεκριμένα την εφαρμογή τεχνολογιών Blockchain για τη δημιουργία αποκεντρωμένης αγοράς ισχύος από Edge συσκευές. Μελετώντας την τεχνολογία Blockchain δημιουργήθηκε μια αποκεντρωμένη εφαρμογή, η οποία επιτρέπει στους χρήστες να αξιοποιούν τις IoT συσκευές τους για την εκτέλεση κώδικα ενός άλλου χρήστη. Αυτή η αποκεντρωμένη αγορά ισχύος στοχεύει στην αξιοποίηση Edge κόμβων για την ταχύτερη και πιο αποδοτική εξυπηρέτηση των χρηστών που αιτούνται την εκτέλεση του δικού τους κώδικα. Δημιουργήθηκε κρυπτονόμισμα τύπου ERC-20 για να εξυπηρετούνται οι συναλλαγές μεταξύ των χρηστών το οποίο αναπτύχθηκε σε ένα από τα Ethereum Blockchain testnets. Γίνεται αναλυτική περιγραφή των σεναρίων χρήσης της εφαρμογής και παρουσιάζεται με μεγάλη ακρίβεια ο τρόπος λειτουργίας της. Τέλος, παρουσιάζονται τα πολυάριθμα εργαλεία που χρησιμοποιήθηκαν για την ολοκλήρωσή της καθιστώντας εμφανές ότι η ανάπτυξη αποκεντρωμένων εφαρμογών είναι ακόμη σε πρώιμο στάδιο.
Πουλάκης Ευάγγελος
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛΩΝ ΓΙΑ ΓΡΑΦΙΚΕΣ ΓΛΩΣΣΕΣ ΣΤΟ ΔΙΑΔΙΚΤΥΟ
Καθώς το διαδίκτυο αποκτά ολοένα και σημαντικότερο ρόλο στην κοινωνία, τα υπολογιστικά συστήματα γίνονται ολοένα και μεγαλύτερα, και συγχρόνως πολυπλοκότερα. Διογκώνεται έτσι η ανάγκη για γρήγορη παραγωγή αξιόπιστου λογισμικού. Μία υποσχόμενη απάντηση στην ανάγκη αυτή είναι οι μηχανισμοί αυτοματοποίησης παραγωγής κώδικα για συγκεκριμένα προβλήματα. Η χρήση των μηχανισμών αυτών, αποφέρει σημαντικά κέρδη παραγωγικότητας και ποιότητας του τελικού αποτελέσματος. Ωστόσο η ανάπτυξή τους ακολουθεί ως επί το πλείστων τον «παραδοσιακό» τρόπο ανάπτυξης και συνεπώς παρουσιάζει τα μειονεκτήματα αυτού, όπως αυξημένη προσπάθεια εκσφαλμάτωσης και μεγαλύτερη ανθρωποπροσπάθεια ενώ ταυτοχρόνως απαιτεί σημαντικές τεχνικές γνώσεις. Με στόχο να αντιμετωπιστούν οι αγκυλώσεις που παρουσιάζει η ανάπτυξη μηχανισμών αυτοματοποίησης παραγωγής κώδικα, στην παρούσα διπλωματική εργασία, αξιοποιείται η μηχανική οδηγούμενη από μοντέλα ή μοντελοστρεφής μηχανική (Model Driven Engineering ή MDE). Συγκριμένα, αφού οριστεί ένα αφαιρετικό μοντέλο, πραγματοποιείται μια σειρά από μετασχηματισμούς, με τελικό αποτέλεσμα μια πλήρως λειτουργική εφαρμογή. Με αυτό τον τρόπο, επιταχύνεται διαδικασία ανάπτυξης λογισμικού και παράγεται λογισμικό με μεγαλύτερη αξιοπιστία. Η παρούσα διπλωματική εργασία υλοποιεί το σύστημα DeGraCom (Developing Graphical Commands). Το DeGraCom παρέχει μία φιλική γραφική διεπαφή επιτρέπει στους χρήστες του, ακόμη και αν δεν γνωρίζουν διαδικτυακό προγραμματισμό, να παράγουν διαδικτυακά τμήματα-εντολές με αυτοματοποιημένο τρόπο. Τα τμήματα αυτά ακολουθούν την αρχιτεκτονική Client-Server ούτως ώστε να είναι εύκολη η ενσωμάτωσή τους που σε υπάρχοντες διαδικτυακούς Αυτόματους Μηχανισμούς προς επέκταση των δυνατοτήτων τους. Για την δοκιμή και αξιολόγηση αυτού του συστήματος, τα τμήματα-εντολές που παράγονται δοκιμάστηκαν στην πλατφόρμα TekTrain. Το τελευταίο, παρέχει ένα σύνολο από εργαλεία και διεπαφές, παράλληλα με μία σειρά από έξυπνες συσκευές, με στόχο την διευκόλυνση την εκπαίδευσης των παιδιών στις νέες τεχνολογίες. Η βασική γραφική διεπαφή του επιτρέπει στους χρήστες της να ορίσουν ένα σύνολο από δράσεις/εντολές για τις έξυπνες συσκευές του. Το σύστημα DeGraCom στοχεύει στο να αυτοματοποιήσει την διαδικασία δημιουργίας νέων εντολών.
Κούτρα Χαριτίνη
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπλών καμερών
Η ανίχνευση και η παρακολούθηση κίνησης αναγνωρίζονται όλο και περισσότερο ως σημαντικές δυνατότητες σε κάθε σύστημα όρασης σχεδιασμένο να λειτουργεί σε μη ελεγχόμενο, εσωτερικό περιβάλλον καθώς αυξάνονται όλο ένα και περισσότερο οι απαιτήσεις. Από την αυτόνομη πλοήγηση και την επιτέλεση εργασιών που απαιτούν αλληλεπίδραση με το περιβάλλον, μέχρι και την απλή παρακολούθηση αποτελούν δραστηριότητες που ωθούν την ανάπτυξη τεχνολογιών για την δημιουργία ενός εύρωστου τρόπου εντοπισμού της θέσης. Λόγω της ποικιλομορφίας των απαιτήσεων των συστημάτων, έχουν αναπτυχθεί τρόποι εντοπισμού που βασίζονται είτε σε εσωτερικούς είτε σε εξωτερικούς αισθητήρες. Στην περίπτωση των εξωτερικών αισθητήρων από τους πιο σημαντικούς αποτελούν οι κάμερες. Στη διπλωματική αυτή, εισάγεται η χρήση εξωτερικών μοτίβων σαν ορόσημα για την αναγνώριση και τον εντοπισμό της ακριβούς θέσης από ένα σύστημα καμερών που είναι τοποθετημένο στο περιβάλλον. Αυτό μπορεί να θεωρηθεί ενδεχομένως και ως η σημαντικότερη συνεισφορά της διπλωματικής καθώς εισάγει έναν καθολικό τρόπο εντοπισμού, που μπορεί να ενσωματωθεί σε διάφορα συστήματα ανεξάρτητα από το είδος τους και τις εργασίες που επιθυμούμε να υλοποιούν. Για να επιτευχθούν αυτοί οι στόχοι δημιουργήθηκαν τρία διαφορετικά μοτίβα, -ένα με led, ένα με χρώματα και QR Codes βασισμένα σε διαφορετικές αρχές αναγνώρισης με σκοπό να μελετήσουμε ποιο λειτουργεί πιο εύρωστα σε μεγαλύτερο εύρος συνθηκών. Η μεθοδολογία αποδείχθηκε αποτελεσματική και με μεγάλη ακρίβεια στην πειραματική διαδικασία σε ένα περιβάλλον μικρής κλίμακας για όλα τα διαφορετικά μοτίβα.

2021

Χριστιάνα Γαλεγαλίδου
Εκτίμηση Σημαντικότητας Εργασιών Λογισμικού από Δεδομένα Διαχείρισης Έργων
Η σύγχρονη διαδικασία ανάπτυξης λογισμικού απαιτεί τη χρήση συστημάτων καταγραφής των εργασιών που προκύπτουν κατά τις διάφορες φάσεις της διαδικασίας. Προκειμένου να βοηθήσουν στην κατάλληλη διαχείριση αυτών των εργασιών, τα συστήματα καταγραφής τους, προσφέρουν τη δυνατότητα καθορισμού σημασιολογικά σημαντικών χαρακτηριστικών σε κάθε εργασία. Ένα από αυτά τα χαρακτηριστικά αφορά τον ορισμό της σημαντικότητας της εκάστοτε εργασίας, η οποία με τη σειρά της επηρεάζει τόσο την προτεραιότητα της εργασίας στον κύκλο ανάπτυξης τους λογισμικού και τον εκτιμώμενο χρόνο αποπεράτωσής της. Δεδομένου ότι δεν υπάρχουν σαφείς οδηγίες που να ορίζουν τα κριτήρια με τα οποία γίνεται η συγκεκριμένη ανάθεση, επαφίεται στην προσωπική κρίση του κάθε προγραμματιστή να ορίσει την κατάλληλη τιμή σημαντικότητας. Ως αποτέλεσμα, οδηγούμαστε πολλές φορές σε λανθασμένο ορισμό τιμών, γεγονός που μπερδεύει τη διαδικασία διαχείρισης του έργου λογισμικού που εξετάζεται. Την αυτοματοποίηση της προαναφερθείσας διαδικασίας έχουν επιχειρήσει ερευνητές δημιουργώντας συστήματα προβλέψεων. Ωστόσο, τα συγκεκριμένα συστήματα εξειδικεύονται στην πρόβλεψη της σημαντικότητας μόνο σφαλμάτων, και όχι γενικά των εργασιών ενός έργου λογισμικού, δε φιλτράρουν τη χρησιμοποιούμενη πληροφορία με βάση το χρονικό πλαίσιο, στο οποίο ανήκει, και τέλος, δε λαμβάνουν υπόψιν το χαρακτηριστικό της διάταξης των δυνατών τιμών της σημαντικότητας, οι οποίες ακολουθούν αύξουσα λογική. Στο ίδιο πρόβλημα καλείται να δώσει λύση και η παρούσα διπλωματική, η οποία διαφοροποιείται από τις παραπάνω έρευνες καλύπτοντας τις παραπάνω περιπτώσεις. Συγκεκριμένα προτείνει ένα σύστημα με ικανότητα αυτοματοποίησης της διαδικασίας ανάθεσης τιμών σημαντικότητας σε αναφορές εργασιών, αξιοποιώντας διαθέσιμη πληροφορία που εντοπίζεται σε Συστήματα Καταγραφής Εργασιών. Για την υλοποίηση του συγκεκριμένου συστήματος χρησιμοποιήθηκε ένα σύνολο δεδομένων, το οποίο εξήχθη από την πλατφόρμα του Jira. Σε επίπεδο αναφοράς, εξάγεται πληροφορία από τα χαρακτηριστικά title, description, type και assigneeid. Ακολουθεί μία πολυπαραγοντική προσέγγιση, η οποία προκύπτει από τη δημιουργία τριών υπομοντέλων που συνθέτουν το τελικό. Για την υλοποίηση του ζητούμενου, εξετάστηκαν τέσσερις διαφορετικές περιπτώσεις μοντέλων, η διαφορά των οποίων εντοπίζεται στη χρήση διαφορετικών ταξινομητών για την πρόβλεψη της σημαντικότητας. Χρησιμοποιήθηκαν οι ταξινομητές KNN, SVR και δύο Νευρωνικών Δικτύων και η εκπαίδευση τους έγινε σε επίπεδο project. Σκοπός της ανάπτυξης των διαφορετικών μοντέλων ήταν η εύρεση της βέλτιστης περίπτωσης, έπειτα από τη σύγκριση των αποτελεσμάτων τους. Τα αποτελέσματα δείχνουν πως το σύστημά μας μπορεί να αποτελέσει τη βάση για τον καθορισμό της κατάλληλης τιμής σημαντικότητας των εργασιών.
Ευάγγελος Ζηκόπης
Ταξινόμηση Σφαλμάτων από Αποθετήρια Ανοιχτού Λογισμικού με Βάση το Χρόνο Επιδιόρθωσής τους
Οι σύγχρονες ομάδες ανάπτυξης λογισμικού έχουν εξελιχθεί σε όλους τους τομείς, ξεφεύγοντας από τα παλαιά πρότυπα εργασίας. Σήμερα, οι εν λόγω ομάδες ακολουθούν νέους κανόνες σχετικά με τη διαχείριση εργασιών και κάνουν ευρεία χρήση εργαλείων αποθήκευσης κώδικα και καταγραφής σφαλμάτων. Η εντατική χρήση συστημάτων αποθήκευσης κώδικα, έχει συγκεντρώσει έναν μεγάλο όγκο πληροφοριών που σχετίζονται με όλα τα στάδια της παραγωγής λογισμικού. Η αξιοποίηση αυτής της πληροφορίας, είναι δυνατόν να συμβάλλει στην εξαγωγή χρήσιμων συμπερασμάτων αναφορικά με τη σωστή παραγωγή λογισμικού. Οι νέες τάσεις που εμφανίζονται γύρω από τις μεθόδους ανάπτυξης κώδικα στοχεύουν στη σωστή κατανομή των εργασιών στους μηχανικούς, στην ταχεία προσαρμογή σε νέες καταστάσεις και στη δόμηση ενός χρονικού προγραμματισμού που θα ανταποκρίνεται στην πραγματικότητα. Η επίτευξη των παραπάνω στο δυναμικό περιβάλλον μεγάλων οργανισμών ανοιχτού λογισμικού, δύναται να επιτευχθεί μέσω της ανάλυσης των μεθόδων ανάπτυξης λογισμικού και της σχεδίασης συστημάτων αυτοματοποίησης σχετικών διαδικασιών. Η παρούσα διπλωματική παρουσιάζει ένα σύστημα που συμβάλλει στην πρόβλεψη του χρόνου επίλυσης των σφαλμάτων λογισμικού, με τη χρήση τεχνικών εξόρυξης δεδομένων. Το σύστημα που σχεδιάστηκε συγκεντρώνει πληροφορία αναφορικά με τα σφάλματα λογισμικού από έργα που φιλοξενούνται στο σύστημα ελέγχου εκδόσεων GitHub. Η συμβολή της υλοποιήσής μας στο πρόβλημα του αποδοτικού χρονοπρογραμματισμού, γίνεται μέσω της ταξινόμησης των σφαλμάτων λογισμικού κάθε έργου σε κλάσεις, ανάλογα με τον προβλεπόμενο χρόνο επιδιόρθωσής τους. Η προσέγγισή μας είναι πολυεπίπεδη και λαμβάνει υπόψιν τα χαρακτηριστικά του τίτλου, της περιγραφής, του assignee και των labels του σφάλματος. Για κάθε ένα από τα επιμέρους χαρακτηριστικά αναπτύχθηκε ένα υποσύστημα που το αναλύει και εξάγει ένα βαθμό συμμετοχής του σφάλματος στις επιμέρους κλάσεις. Η τελική πρόβλεψη και ταξινόμηση του σφάλματος σε μια κλάση πραγματοποιείται μέσω νευρωνικού δικτύου, το οποίο συνδυάζει τους βαθμούς συμμετοχής που έχουν εξαχθεί από κάθε υποσύστημα. Επιπλέον, με γνώμονα τη διεξαγωγή μιας ακέραιης έρευνας αναπτύχθηκαν τεχνικές αντιμετώπισης των ιδιαιτεροτήτων που διέπουν τα δεδομένα έργων ανοιχτού λογισμικού. Το σύστημα που σχεδιάστηκε στα πλαίσια της διπλωματικής, αξιολογείται σε δεδομένα από 26 έργα ανοιχτού λογισμικού που φιλοξενούνται σε αποθετήρια του GitHub και έχουν συνολικά 11099 issues. Τα έργα που εξετάστηκαν είναι γραμμένα σε Java και προέρχονται από τους πιο μεγάλους οργανισμούς στο GitHub. Από την παρατήρηση των αποτελεσμάτων, μπορούμε να καταλήξουμε ότι η προσέγγιση μας μπορεί να αποδώσει σε ικανοποιητικό βαθμό, ειδικότερα για την περίπτωση της δυαδικής ταξινόμησης όπου εμφανίζει υψηλές μετρικές αξιολόγησης.
Νικόλαος Καγιάφας
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξαγωγή Προτύπων Σχεδίασης και Εξέλιξης
Η στενή συνεργασία μεταξύ των προγραμματιστών για την ανάπτυξη καινοτόμων έργων λογισμικού κρίνεται απαραίτητη. Για αυτόν τον λόγο, υπάρχουν αρκετές διαδικτυακές πλατφόρμες φιλοξενίας προγραμμάτων, οι οποίες δίνουν τη δυνατότητα στους χρήστες τους να παρακολουθεί ο ένας τις αλλαγές, τις προτάσεις και τις παρατηρήσεις του άλλου για την εξέλιξη και τη βελτίωση του κώδικα. Επιπλέον, οι πλατφόρμες αυτές ελέγχουν τις διαφορετικές εκδόσεις του κώδικα ενός έργου, ώστε ο προγραμματιστής να μπορεί να ανατρέξει σε οποιαδήποτε από αυτές, εάν το επιθυμεί. Όλες οι τροποποιήσεις, οι οποίες διενεργούνται από ένα πρόσωπο της ομάδας ανάπτυξης λογισμικού σε μία δεδομένη χρονική στιγμή, συγκεντρώνονται σε ένα commit, όπου καταγράφονται μάλιστα όλοι οι λόγοι πίσω από αυτές. Έτσι, γίνεται κατανοητό ότι τέτοιες συλλογές αλλαγών εμπεριέχουν πολλές χρήσιμες πληροφορίες για τον τρόπο με τον οποίο εξελίσσεται ένα έργο λογισμικού. Η εφαρμογή τεχνικών του κλάδου της εξόρυξης δεδομένων στις δημόσιες αποθήκες λογισμικού και σε όλα τα δεδομένα που αναφέρθηκαν παραπάνω θα μπορούσε να φέρει στο φως ορισμένες συχνές διορθώσεις σφαλμάτων, συστηματικές τροποποιήσεις, επαναλαμβανόμενους τύπους αλλαγών στην αρχιτεκτονική, καθώς και κάποια ευρέως χρησιμοποιούμενα σχεδιαστικά πρότυπα, γνωστά ή μη. Μία εκτενής βιβλιογραφική έρευνα σε αυτόν τον τομέα αποκαλύπτει ότι οι περισσότερες προσπάθειες επιστημόνων έχουν στραφεί στις διορθώσεις σφαλμάτων και στις συστηματικές τροποποιήσεις, με αποτέλεσμα να έχουν αγνοηθεί κάποια λιγότερο λεπτομερή, δηλαδή πιο υψηλού επιπέδου (high level) μοτίβα εξέλιξης ή συγγραφής κώδικα. Στο πλαίσιο αυτό, η παρούσα διπλωματική εργασία προσπαθεί να ανακαλύψει τις σχέσεις ανάμεσα στις διάφορες κλάσεις ενός προγράμματος, αλλά και να παρακολουθήσει τον τρόπο με τον οποίο αυτές αλλάζουν στο πέρασμα του χρόνου. Για να επιτευχθούν οι παραπάνω στόχοι, προσαρμόζεται ένα εργαλείο εξαγωγής σχέσεων (Relationships Extractor), η λειτουργία του οποίου βασίζεται στην ανάλυση των Αφηρημένων Συντακτικών Δέντρων (Abstract Syntax Trees) που αφορούν τους κώδικες μερικών από τα πιο δημοφιλή έργα λογισμικού της διαδικτυακής πλατφόρμας του Github. Αφού αναλυθούν και επεξεργαστούν αυτά τα συντακτικά δέντρα, εξάγονται πληροφορίες για τη λειτουργία των κλάσεων, την αφαιρετικότητά τους και την κληρονομικότητα, οι οποίες στη συνέχεια μοντελοποιούνται σε γράφους (με τις κλάσεις ως κόμβους και τις συνδέσεις τους ως ακμές). Αφού λοιπόν ολοκληρωθούν οι παραπάνω ενέργειες για την τελική μορφή του εκάστοτε προγράμματος, η ίδια σειρά ενεργειών ακολουθείται και για κάθε στιγμιότυπό του, εξάγοντας τη διαφορά ως προς τις σχέσεις ανάμεσα στην έκδοσή του πριν και μετά από κάθε commit ξεχωριστά. Τέλος, εφαρμόζοντας τον αλγόριθμο gSpan (graph-based Substructure pattern mining), έναν αλγόριθμο αναζήτησης συχνών υπογράφων σε ένα σύνολο γράφων, ανιχνεύονται ορισμένα ευρέως χρησιμοποιούμενα από την παγκόσμια προγραμματιστική κοινότητα, μοτίβα σχεδίασης και εξέλιξης λογισμικού.
Δελεμήσης Δημήτριος
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τεχνικών Μηχανικής Μάθησης Ακολουθιακής Ταξινόμησης
Τα τελευταία χρόνια η εξάπλωση του διαδικτύου και των εφαρμογών του αυξάνεται με ραγδαίους ρυθμούς, καταλαμβάνοντας ολοένα και μεγαλύτερο μέρος της καθημερινότητας των ανθρώπων. Πλέον, το διαδίκτυο αποτελεί βασικό και αναγκαίο μέσο επικοινωνίας, ψυχαγωγίας, ενημέρωσης, αγοροπωλησιών και άλλων πολλών λειτουργιών που πια γίνονται μέσω αυτού. Μαζί με την ανάπτυξη αυτών των δυνατοτήτων, δυστυχώς, αυξήθηκαν και οι παράνομες ενέργειες όπως η εξαπάτηση χρηστών, η πρόσβαση σε εμπιστευτικές και απόρρητες πληροφορίες, η προώθηση ορισμένων προϊόντων ακόμα και η διακοπή διάθεσης ιστοσελίδων από το διαδίκτυο, εκμεταλλεύοντας τις αδυναμίες και τα τρωτά σημεία στην ασφάλεια των διαδικτυακών εφαρμογών και συστημάτων. Με τον όρο κυβερνοασφάλεια ορίζουμε την ανάπτυξη συστημάτων και μεθόδων προστασίας με στόχο τον εντοπισμό και την αναγνώριση μίας επικείμενης διαδικτυακής επίθεσης συμβάλλοντας έτσι δραστικά στην προστασία από τις κακόβουλες ενέργειες. Από την άλλη, και ο τομέας της Μηχανικής Μάθησης επιδεικνύει μεγάλη άνθιση. Η Μηχανική Μάθηση ασχολείται με τον προγραμματισμό του υπολογιστή ώστε να μπορεί να «σκέφτεται» και να «αποφασίζει», και όχι μόνο να εκτελεί ρητά εντολές που του έχουν υπαγορευθεί από τον προγραμματιστή. Πλέον τεχνικές Μηχανικής Μάθησης εφαρμόζονται σε μία πλειάδα πεδίων του διαδικτύου, όπως είναι η κυβερνοασφάλεια με την οποία η παρούσα διπλωματική εργασία ασχολείται. Στο πλαίσιο της παρούσας διπλωματικής εργασίας, μοντελοποιήθηκε και αναπτύχθηκε ένα σύστημα το οποίο λαμβάνει απαραίτητες και χρήσιμες πληροφορίες για την συμπεριφορά του χρήστη σε μια διαδικτυακή εφαρμογή ηλεκτρονικού εμπορίου και αφού τις αποθηκεύει και τις επεξεργάζεται με συγκεκριμένο τρόπο, εν τέλει τις τροφοδοτεί σε μοντέλα μηχανικής μάθησης ακολουθιακής ταξινόμησης ώστε να χαρακτηριστεί η συμπεριφορά του χρήστη είτε καλόβουλη είτε κακόβουλη.
Αντώνιος Ελευθεριάδης
Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυακό λογισμικό με τη χρήση τεχνικών Μηχανικής Μάθησης
Η αυξανόμενη χρήση του διαδικτυακού λογισμικού και η δημοφιλία του λογισμικού-ως-υπηρεσία έχει δημιουργήσει ένα μεγάλο κενό ασφαλείας στα συστήματα που μέχρι πριν από λίγα χρόνια \"έτρεχαν\" σε κλειστά δίκτυα: η πληροφορία (ευαίσθητη και μη) είναι πλέον διαθέσιμη στο διαδίκτυο. Κατά συνέπεια, η εφαρμογή κατάλληλων τεχνικών ασφάλειας του λογισμικού είναι μονόδρομος για τη θωράκισή της. Ο έλεγχος ασφάλειας πρέπει πλέον να γίνεται σε διάφορα και διαφορετικά επίπεδα, όπως στο επίπεδο δικτύου, στο επίπεδο του λειτουργικού, αλλά και στο επίπεδο της εφαρμογής. Στο πλαίσιο αυτό η παρούσα διπλωματική αποσκοπεί στη σχεδίαση και ανάπτυξη ενός μηχανισμού για την αναγνώριση πιθανών επιθέσεων ασφαλείας με τη χρήση τεχνικών μηχανικής μάθησης. Στόχος είναι η εφαρμογή τεχνικών μηχανικής μάθησης για την αναγνώριση \"καλών\" και “κακών” προτύπων συμπεριφοράς στο επίπεδο χρήστη (application-level). Ανάλυση θα γίνει σε δυναμικό επίπεδο (κατά τη λειτουργία των εφαρμογών) και θα αναπτυχθεί ένας μηχανισμός λήψης αποφάσεων.
Χωραφάς Χρήστος
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτικών συσκευών για το περιβάλλον προσομοίωσης Gazebo
Στην εποχή της ταχείας ανάπτυξης της τεχνολογίας, η χρήση ρομποτικών συστημάτων είναι ευρεία σε όλο το φάσμα της σύγχρονης ζωής, και η αυτοματοποίηση που επιτυγχάνεται με τη χρήση τους, αποφέρει μεγάλη και ταχύτερη παραγωγή με σχετικά μικρότερο κόστος. Ωστόσο, τα ρομπότ είναι συχνά ασυνεπή κατά τη δοκιμή, καθώς υπάρχουν πολλές απροσδόκητες μεταβλητές. Οι ρομποτικές προσομοιώσεις δίνουν τη λύση στο πρόβλημα αυτό, αφού παρέχουν ένα χαμηλού κόστους, εύκολης πρόσβασης εικονικό περιβάλλον ανάπτυξης ρομπότ. Χρησιμοποιούνται για τη γρήγορη δοκιμή αισθητήρων, την αξιολόγηση του σχεδιασμού ενός ρομπότ, την προσομοίωση εικονικών αισθητήρων, παρέχουν ελαχιστοποιημένο μοντέλο για προβλέψιμους ελεγκτές μοντέλων, μια αρχιτεκτονική για πραγματικό έλεγχο των ρομπότ και ούτω καθεξής. Οι ρομποτικές προσομοιώσεις λαμβάνουν χώρα σε ειδικά λογισμικά, τους προσομοιωτές ρομποτικής. Ένας προσομοιωτής ρομποτικής είναι ένας προσομοιωτής, που χρησιμοποιείται για τη δημιουργία μιας εφαρμογής για ένα φυσικό ρομπότ χωρίς να εξαρτάται από το πραγματικό μηχάνημα, εξοικονομώντας έτσι κόστος και χρόνο. Σε ορισμένες περιπτώσεις, αυτές οι εφαρμογές μπορούν να μεταφερθούν στο φυσικό ρομπότ χωρίς τροποποιήσεις. Μία από τις πιο δημοφιλείς εφαρμογές για προσομοιωτές ρομποτικής είναι η τρισδιάστατη μοντελοποίηση και απόδοση ενός ρομπότ και του περιβάλλοντός του. Αυτός ο τύπος λογισμικού ρομποτικής έχει ένα μοντέλο, που είναι ένα εικονικό ρομπότ, ικανό να μιμείται την κίνηση ενός πραγματικού ρομπότ σε μια πραγματική κατάσταση. Oρισμένοι προσομοιωτές μάλιστα χρησιμοποιούν μια μηχανή φυσικής, για μια πιο ρεαλιστική παραγωγή κίνησης του ρομπότ. Υπάρχει ένας μεγάλος αριθμός προσομοιωτών ρομποτικής, με τον καθένα να εξυπηρετεί, σε διαφορετικό βαθμό από τους άλλους, είτε διαφορετικούς είτε ίδιους σκοπούς. Παρόλο, όμως, που οι προσομοιωτές γενικότερα προσφέρουν μια πληθώρα προτερημάτων, η ανάγκη για την παραγωγή εφαρμογών και λογισμικού υψηλής ποιότητας έχει γίνει πιο επιτακτική απο ποτέ. Η αύξηση της παραγωγικότητας, ο έλεγχος (αποσφαλμάτωση), η επαλήθευση και συντήρηση του λογισμικού παίζουν καθοριστικό ρόλο στην ποιότητα του τελικού προϊόντος. Τα σύγχρονα λογισμικά, αντιθέτως, εμπεριέχουν μεγάλη πολυπλοκότητα, αφού συχνά αποτελούνται από εκατοντάδες γραμμές κώδικα, διανεμημένες σε πολλά διαφορετικά αρχεία, και εξαρτώνται από πολυάριθμες βιβλιοθήκες. Η αλλαγή μίας και μόνο γραμμής κώδικα, μπορεί να επηρεάσει τη λειτουργικότητα ολόκληρου του συστήματος και να προκαλέσει σφάλματα, κάτι που είναι πολύ πιθανό, αφού τα περισσότερα λογισμικά απαιτούν μεγάλο πλήθος ατόμων για την ανάπτυξή τους.(continue in full text)
Ανθή Παλάζη
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπεριφορών
Η αυξανόµενη δηµοτικότητα των κινητών τηλεφώνων (smartphones) έχει εγείρει σοβαρούς προβληµατισµούς σχετικά µε την ασφάλεια τους. Αυτό οφείλεται στο ότι σε αυτές τις συσκευές διατηρούνται πλέον ευαίσθητα προσωπικά και συχνά επαγγελµατι κά δεδοµένα και οι υπάρχοντες τρόποι αυθεντικοποίησης έχουν αποδειχθεί αναποτελε σµατικοί. Κωδικοί-µοτίβα και PIN, συγκεκριµένα, µπορούν εύκολα να αποκτηθούν από υποκλοπείς κοιτάζοντας κρυφά τις κινήσεις του ϑύµατος στην οθόνη του κινητού, ενώ όλοι οι ευρέως χρησιµοποιούµενοι τρόποι αυθεντικοποίησης, γενικότερα, προσφέρουν αυθεντικοποίηση µόνο κατά το ξεκλείδωµα της συσκευής, αφήνοντας την χωρίς καµία προστασία µετά από αυτό το στάδιο. Στη διπλωµατική αυτή, εισάγεται µια συνεχής και έµµεση προσέγγιση αυθεντικοποίησης που µπορεί να λειτουργήσει ως συµπληρω µατικός τρόπος αυθεντικοποίησης. Η προσέγγιση αυτή υποβοηθείται και ενισχύεται από την ανάπτυξη µιας µεθοδολογίας εξατοµίκευσης των κριτηρίων αυθεντικοποίησης, η οποία ϐασίζεται στον τρόπο που διαφορετικοί χρήστες συµπεριφέρονται ανάλογα µε το περιεχόµενο της οθόνης που πλοηγούνται. Αυτή η τελευταία προσθήκη µπορεί εν δεχοµένως να ϑεωρηθεί και ως η σηµαντικότερη συνεισφορά αυτής της διπλωµατικής στον τοµέα της συνεχούς και έµµεσης αυθεντικοποίησης, καθώς δεν έχουν διερευνηθεί ακόµα πολλοί τρόποι ϐελτιστοποίησης των µεθόδων αυθεντικοποίησης. Για να επιτευ χθούν αυτοί οι στόχοι, αξιοποιήθηκε µια συµπεριφορική, ϐιοµετρική ϐάση δεδοµένων, που περιέχει χειρονοµίες διαφόρων χρηστών. ∆ύο τύποι χειρονοµιών αναλύθηκαν, χειρονοµίες αγγίγµατος της οθόνης (taps) και χειρονοµίες κατά τις οποίες κινείται το δάχτυλο κατά µήκος της οθόνης (swipes), ως προς τη δυνατότητά τους να διαχωρίζουν τους χρήστες. Οι Μηχανές ∆ιανυσµάτων Υποστήριξης Μίας Κλάσης (One-Class SVM) έπαιξαν σηµαντικό ϱόλο στην ανάπτυξη αυτής της µεθοδολογίας καθώς εκπαιδεύονται µε τη χρήση χειρονοµίων ενός και µόνο χρήστη, κάτι που µπορεί να εφαρµοστεί και σε ϱεαλιστικές συνθήκες. Το πρόβληµα του καθορισµού της διακύµανσης που εµφανίζει κάθε χρήστης στη συµπεριφορά του (ϐάσει του περιεχοµένου της οθόνης που πλοη γείται) αντιµετωπίστηκε σαν πρόβληµα οµαδοποίησης, µε τη ϐοήθεια του αλγορίθµου k-means. Η µεθοδολογία αποδείχθηκε αποτελεσµατική, ειδικά κατά την ανάλυση χει ϱονοµιών swipes, και η ενσωµάτωση πληροφοριών συµπεριφοράς σε συνδυασµό µε το περιεχόµενο της οθόνης πλοήγησης µπορεί να επιφέρει σηµαντικές ϐελτιώσεις κατά την αυθεντικοποίηση χρηστών.
Παρασκευόπουλος Ιάσων
Γλώσσα περιγραφής πεδίου για τον έλεγχο αισθητήρων και ενεργοποιητών σε ΙοΤ συσκευές, χρησιμοποιώντας τεχνικές μοντελοστρεφούς ανάπτυξης λογισμικού
Ο κόσμος του διαδικτύου των πραγμάτων (Internet of Things, IoT) αναπτύσσε-ται με εκθετικούς ρυθμούς τα τελευταία χρόνια. Κάθε χρόνο νέες συσκευές εισβά-λουν στην ανθρώπινη καθημερινότητα και περιμένουν να ελεγχθούν. Νέο λογισμικόπρέπει να αναπτυχθεί για την αλληλεπίδραση με αυτές τις συσκευές και νέες εφαρ-μογές μπορούν να υλοποιηθούν με βάση αυτό.Ένας μεγάλος αριθμός ανθρώπων χάνει τα πραγματικά πλεονεκτήματα του IoTμιας και δεν μπορεί να αναπτύξει νέες εφαρμογές για προσωπική του χρήση, αφούτου λείπει το τεχνολογικό υπόβαθρο που χρειάζεται.Η οδηγούμενη από μοντέλα μηχανική (MDE) μπορεί να βοηθήσει αυτούς τουςανθρώπους, αφού λύνει προβλήματα λογισμικού χρησιμοποιώντας μοντέλα του φυ-σικού και του εικονικού κόσμου. Λίγες προσπάθειες έχουν γίνει για την εφαρμογήτου MDE στον κόσμο του IoT. Ακόμα λιγότερες είναι οι προσπάθειες που βοηθούντους τεχνολογικά ακατάρτιστους να αναπτύξουν εφαρμογές για το IoT. Η παρούσαδιπλωματική εργασία προτείνει μερικά εργαλεία για την μοντελοποίηση των συ-σκευών του IoT και των συνδέσεών τους. Επιπρόσθετα, προσφέρει μία γραμματικήκειμένου για τον ορισμό αυτών των μοντέλων. Επίσης, αναπτύσσει μία βιβλιοθήκηγια των έλεγχο συσκευών μέσω κοινών APIs. Τέλος, μέσω αυτόματης παραγωγήςκώδικα προτείνει έναν τρόπο ελέγχου αυτών των συσκευών, χρησιμοποιώντας έναrapsberry pi μαζί με διαδικτυακά σημεία επικοινωνίας.
Σιάτος Παναγιώτης
Ανάλυση Σημαντικότητας Χαρακτηριστικών Απόδοσης του Λογισμικού Google Lighthouse
Το διαδίκτυο αποτελεί αναπόσπαστο κομμάτι της καθημερινής ζωής του ανθρώπου, αναντικάταστατο κομμάτι άντλησης πληροφορίας, μέσο κοινωνικοποίησης, χρήσης υπηρεσιών και αγοραπωλησίας. Η πληθώρα των διαθέσιμων ιστότοπων που προσφέρουν παρόμοιες ή και διαφορετικές υπηρεσίες, έχει οδηγήσει σε μια νέα πραγματικότητα όπου κάθε χρήστης μπορεί να βρει ιστοσελίδες που καλύπτουν κάθε του ανάγκη. Συνεπώς, ιστοσελίδες παρόμοιου περιεχομένου και παροχής υπηρεσιών επικεντρώνονται στη βελτιστοποίηση της “εμπειρίας χρήστη” (User Experience) για να προσελκύσουν όσο το δυνατό περισσότερους χρήστες. Ειδικότερα, η εμπειρία χρήστη αναφέρεται στην αλληλεπίδραση ενός χρήστη με μία ιστοσελίδα και επικεντρώνεται στη γενική εμπειρία που προσφέρει ένας ιστότοπος ή μία εφαρμογή στο χρήστη. Η εμπειρία αυτή αποτελείται και επηρεάζεται από πολλούς παράγοντες. Αντικείμενο της διπλωματικής είναι η χρήση δεδομένων του λογισμικού Google Lighthouse, ενός αυτοματοποιημένου εργαλείου για τη βελτίωση της ποιότητας “εμπειρία χρήστη” σε έναν ιστότοπο, και η διερεύνηση των χαρακτηριστικών εκείνων που επηρεάζουν τις μετρικές απόδοσης “εμπειρία χρήστη”, όπως ορίζονται από το παραπάνω λογισμικό. Αναλυτικότερα, χρησιμοποιήθηκαν δεδομένα του Google Lighthouse από 200 χιλ. ιστοσελίδες και εξήχθεισαν 85 χαρακτηριστικά που περιγράφουν ποσοτικά τη σύνθεση, δομή και πόρους μίας ιστοσελίδας. Χρησιμοποιώντας αυτά τα χαρακτηριστικά εφαρμόστηκε μηχανική παλινδρόμηση και βρέθηκαν εκείνα τα χαρακτηριστικά με ανάλογο βαθμό σημαντικότητας που προβλέπουν τις μετρικές απόδοσης της εμπειρίας χρήστη όπως ορίζονται από το πρόγραμμα προσομοίωσης. Τελικός σκοπός της διπλωματικής είναι ένας front-end προγραμματιστής ιστοσελίδας να μπορεί να ιεραρχήσει και να επικεντρωθεί σε εκείνα τα χαρακτηριστικά που θα βελτιώσουν τις μετρικές απόδοσης του Google Lighthouse και κατά συνέπεια της εμπειρίας του τελικού του χρήστη.
Ζηκόπης Ευάγγελος
Ταξινόμηση Σφαλμάτων από Αποθετήρια Ανοιχτού Λογισμικού με Βάση το Χρόνο Επιδιόρθωσής τους
Οι σύγχρονες ομάδες ανάπτυξης λογισμικού έχουν εξελιχθεί σε όλους τους τομείς, ξεφεύγοντας απο τα παλαιά πρότυπα εργασίας. Σήμερα, οι εν λόγω ομάδες ακολουθούν νέους κανόνες σχετικά με τη διαχείριση εργασιών και κάνουν ευρεία χρήση εργαλείων αποθήκευσης κώδικα και καταγραφής σφαλμάτων. Η εντατική χρήση συστημάτων αποθήκευσης κώδικα, έχει συγκεντρώσει έναν μεγάλο όγκο πληροφοριών που σχετίζονται με όλα τα στάδια της παραγωγής λογισμικού. Η αξιοποίηση αυτής της πληροφορίας, είναι δυνατόν να συμβάλλει στην εξαγωγή χρήσιμων συμπερασμάτων αναφορικά με τη σωστή παραγωγή λογισμικού. Οι νέες τάσεις που εμφανίζονται γύρω απο τις μεθόδους ανάπτυξης κώδικα στοχεύουν στη σωστή κατανομή των εργασιών στους μηχανικούς, στην ταχεία προσαρμογή σε νέες καταστάσεις και στη δόμηση ενός χρονικού προγραμματισμού που θα ανταποκρίνεται στην πραγματικότητα. Η επίτευξη των παραπάνω στο δυναμικό περιβάλλον μεγάλων οργανισμών ανοιχτού λογισμικού, δύναται να επιτευχθεί μέσω της ανάλυσης των μεθόδων ανάπτυξης λογισμικού και της σχεδίασης συστημάτων αυτοματοποίησης σχετικών διαδικασιών. Η παρούσα διπλωματική παρουσιάζει ένα σύστημα που συμβάλλει στην πρόβλεψη του χρόνου επίλυσης των σφαλμάτων λογισμικού, με τη χρήση τεχνικών εξόρυξης δεδομένων. Το σύστημα που σχεδιάστηκε συγκεντρώνει πληροφορία αναφορικά με τα σφάλματα λογισμικού απο έργα που φιλοξενούνται στο σύστημα ελέγχου εκδόσεων GitHub. Η συμβολή της υλοποιήσής μας στο πρόβλημα του αποδοτικού χρονοπρογραμματισμού, γίνεται μέσω της ταξινόμησης των σφαλμάτων λογισμικού κάθε έργου σε κλάσεις, ανάλογα με τον προβλεπόμενο χρόνο επιδιόρθωσής τους. Η προσέγγισή μας είναι πολυεπίπεδη και λαμβάνει υπόψιν τα χαρακτηριστικά του τίτλου, της περιγραφής, του assignee και των labels του σφάλματος. Για κάθε ένα απο τα επιμέρους χαρακτηριστικά αναπτύχθηκε ένα υποσύστημα που το αναλύει και εξάγει ένα βαθμό συμμετοχής του σφάλματος στις επιμέρους κλάσεις. Η τελική πρόβλεψη και ταξινόμηση του σφάλματος σε μια κλάση πραγματοποιείται μέσω νευρωνικού δικτύου, το οποίο συνδυάζει τους βαθμούς συμμετοχής που έχουν εξαχθεί απο κάθε υποσύστημα. Επιπλέον, με γνώμονα τη διεξαγωγή μιας ακέραιης έρευνας αναπτύχθηκαν τεχνικές αντιμετώπισης των ιδιαιτεροτήτων που διέπουν τα δεδομένα έργων ανοιχτού λογισμικού. Το σύστημα που σχεδιάστηκε στα πλαίσια της διπλωματικής, αξιολογείται σε δεδομένα απο 26 έργα ανοιχτού λογισμικού που φιλοξενούνται σε αποθετήρια του GitHub και έχουν συνολικά 11099 issues. Τα έργα που εξετάστηκαν είναι γραμμένα σε Java και προέρχονται απο τους πιο μεγάλους οργανισμούς στο GitHub. Απο την παρατήρηση των αποτελεσμάτων, μπορούμε να καταλήξουμε ότι η προσέγγιση μας μπορεί να αποδώσει σε ικανοποιητικό βαθμό, ειδικότερα για την περίπτωση της δυαδικής ταξινόμησης όπου εμφανίζει υψηλές μετρικές αξιολόγησης.
Μπέλλος Βασίλειος
Ανάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDES
Η επιστήμη των δεδομένων αν και προϋπήρχε, στις μέρες μας κυριαρχεί και ενδέχεται να κάνει το ίδιο στο μέλλον. Η ύπαρξη τεράστιου αποθηκευτικού χώρου και ισχυρών επεξεργαστών, ικανών να διαχειριστούν αντίστοιχου μεγέθους βάσεις δεδομένων, έχουν δώσει τη δυνατότητα συλλογής πληροφορίας σε κάθε εργασιακό χώρο, από τον κλάδο της ιατρικής και των μηχανικών, μέχρι τις τέχνες και τον αθλητισμό. Στη συγκεκριμένη διπλωματική εργασία θα σταθούμε στο χώρο του επαγγελματικού αθλητισμού και συγκεκριμένα της καλαθοσφαίρισης (Basketball). Αρχικά θα παρουσιαστούν βασικές γνώσεις γύρω από το άθλημα, θα αναφερθούν κάποια από τα εργαλεία συλλογής πληροφορίας και θα αναλυθεί η σημασία και ο ρόλος των δεδομένων στην προπόνηση, στην προετοιμασία των αθλητών αλλά και στις αποφάσεις των προπονητών. Στη συνέχεια, έχοντας συλλέξει δεδομένα με τη χρήση του συστήματος REMEDES πάνω σε συγκεκριμένο ασκησιολόγιο καλαθοσφαίρισης, αναπτύχθηκε ένα σύστημα αξιολόγησης αθλητικών επιδόσεων, χρησιμοποιώντας τη γλώσσα προγραμματισμού Python και διάφορες τεχνικές επεξεργασίας και προ-επεξεργασίας δεδομένων (Data Preprocessing) και μηχανικής μάθησης (Machine Learning). Σκοπός του εν λόγω συστήματος είναι η όσο το δυνατόν πιο αντιπροσωπευτική αξιολόγηση μη αθλητών, αθλητών και αθλητών Basketball σε συγκεκριμένες ασκήσεις που αφορούν φυσικά την καλαθοσφαίριση. Κατά τη διάρκεια της ανάλυσης αλλά και με την προσεκτική παρακολούθηση των αποτελεσμάτων, προέκυψαν κάποια πολύ ενδιαφέροντα συμπεράσματα που θα παρουσιαστούν και θα ερμηνευθούν στην παρούσα διπλωματική εργασία.
Ιωσήφ Χατζηκυριάκου
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Τα τελευταία χρόνια παρατηρείται μια ραγδαία ανάπτυξη στο τομέα των υπηρεσιών νέφους(cloud computing) η οποία προκάλεσε το ενδιαφέρον πολλών επιχειρήσεων, με τη ζήτησή τους να αυξάνεται συνεχώς όπως επίσης και ο αριθμός των παρόχων που προσφέρουν αυτές τις υπηρεσίες. Όμως, παρά το ότι έχει εδραιωθεί η χρήση του cloud computing προσφέροντας πολλά πλεονεκτήματα, ανακύπτουν και διάφορες προκλήσεις, όπως η ασφάλεια των δεδομένων. Βασικό στοιχείο της διαδικασίας ανάπτυξης λογισμικού αποτελεί η συχνή πραγματοποίηση ελέγχων (tests) στην εφαρμογή, που αποσκοπεί στην διασφάλιση της ποιότητας, και την ελαχιστοποίηση των σφαλμάτων (bugs) , κάτι που επιτυγχάνεται μέσω των συστημάτων συνεχούς ενσωμάτωσης (Continuous Integration, CI). Μετά την επιτυχημένη εκτέλεση των αυτοματοποιημένων ελέγχων, το CI αποστέλλει και εκτελεί την τελευταία έκδοση του κώδικα στο δοκιμαστικό (staging) ή στο τελικό (production) περιβάλλον αυτόματα μέσω των συστημάτων Continuous Deployment (CD) και Continuous Delivery (CDE). Ο σκοπός της παρούσας εργασίας είναι η σύγκριση των παρόχων cloud, και ακολούθως η ανάπτυξη μιας μεθοδολογίας, μέσω της οποίας να απλοποιείται η χρήση ενός συστήματος CI + CD/CDE. Η προσέγγισή μας ενσωματώνει επίσης στατική ανάλυση και αξιολόγηση ποιότητας κώδικα. Η υλοποίηση του CI καθώς και των διαδικασιών CD/CDE γίνονται μέσω του διαδικτυακού εργαλείου ανοιχτού κώδικα Gitlab, όπου γίνεται χρήση έτοιμων pipelines με υποστήριξη εφαρμογών Node.js και Django, ενώ η στατική ανάλυση πραγματοποιείται μέσω του Code Quality που υπάρχει ενσωματωμένο στο Gitlab και βασίζεται στο εργαλείο Code Climate. Η αυτοματοποίηση της εγκατάστασης των προαπαιτούμενων για το deployment της εφαρμογής,δηλαδή η προετοιμασία του server, και το πρώτο deployment , πραγματοποιoύνται μέσω του εργαλείου διαχείρισης διαμόρφωσης λογισμικού Ansible. Ακόμη, δίνεται η δυνατότητα στο χρήστη για deployment της εφαρμογής στη cloud πλατφόρμα Heroku χωρίς να χρειάζεται η χρήση του Ansible. Το προϊόν της εργασίας απευθύνεται κυρίως σε φοιτητές ή προγραμματιστές με μικρή εμπειρία οι οποίοι θέλουν να ασχοληθούν και να κάνουν τα πρώτα τους βήματα με το CI του Gitlab.
Γιόκοτος Κωνσταντίνος
Μεθοδολογία ανάπτυξης γραφικών εφαρμογών για απομακρυσμένα ρομπότ, στο πλαίσιο κυβερνοφυσικών συστημάτων
Όπως το Διαδίκτυο άλλαξε τον τρόπο που οι άνθρωποι αλληλεπιδρούν με την πληροφορία, έτσι και τα κυβερνοφυσικά συστήματα αλλάζουν τον τρόπο που οι άνθρωποι αλληλεπιδρούν με τα υπολογιστικά συστήματα. Τα κυβερνοφυσικά συστήματα ενσωματώνουν αισθητήρες, υπολογιστικές δυνατότητες, έλεγχο και δικτύωση σε φυσικά αντικείμενα, συνδέοντάς τα στο Διαδίκτυο, αλλά και μεταξύ τους. Ενδεικτικό παράδειγμα τέτοιων συστημάτων είναι τα ρομποτικά συστήματα, καθώς συνδυάζουν αλληλεπίδραση με το περιβάλλον και υπολογιστικές ικανότητες. Παρόλο που η ρομποτική είναι παραδοσιακά συνυφασμένη με τη βιομηχανία, τα τελευταία χρόνια έχει επεκταθεί και σε άλλους κλάδους, όπως στην ιατρική, στην αυτόνομη εξερεύνηση αλλά και σε τομείς της καθημερινής ζωής, όπως για οικιακή χρήση και ψυχαγωγία. Παράλληλα, ραγδαία αύξηση παρουσιάζει και το Διαδίκτυο των Πραγμάτων (Internet of Things – IoT), όπου πλέον αντικείμενα της καθημερινότητας είναι εξοπλισμένα με αισθητήρες για τη συλλογή δεδομένων από το περιβάλλον και συνδέονται στο Διαδίκτυο για να μοιραστούν αυτά τα δεδομένα. Λόγω της κινητικότητας που προσφέρουν τα ρομποτικά συστήματα, η ενσωμάτωση τους στον IoT κόσμο θα επιτρέπει την καλύτερη επίδραση στο περιβάλλον, ενώ παράλληλα τα ρομπότ θα λαμβάνουν αποφάσεις βάσει δεδομένων άλλων συσκευών. Για να καταστεί αυτό δυνατό, πρέπει να ξεπεραστούν ορισμένοι περιορισμοί. Αφ’ ενός, είναι ιδιαίτερα σημαντικό να υπάρχει η δυνατότητα του απομακρυσμένου ελέγχου και παρακολούθησης ενός ρομπότ. Δυστυχώς, το Robot Operating System (ROS), το πιο διαδεδομένο μεσολειτουργικό σύστημα για ανάπτυξη ρομποτικών εφαρμογών, περιορίζει τη διαχείριση του ρομπότ σε τοπικό δίκτυο. Παράλληλα, είναι επιθυμητό, χρήστες χωρίς ιδιαίτερες γνώσεις ρομποτικής και προγραμματισμού να έχουν τη δυνατότητα να δημιουργήσουν τις εφαρμογές τους. Η παρούσα διπλωματική εργασία εστιάζει στην ανάπτυξη ενός συστήματος που θα αντιμετωπίζει τους παραπάνω περιορισμούς. Για την επικοινωνία μεταξύ του ρομπότ και του απομακρυσμένου υπολογιστή, χρησιμοποιείται ο μεσολαβητής μηνυμάτων RabbitMQ. Ταυτόχρονα, η ανάπτυξη των εφαρμογών και η ενσωμάτωση του ρομπότ στον IoT κόσμο πραγματοποιείται μέσω του Node-RED, ενός εργαλείου που επιτρέπει τη δημιουργία εφαρμογών για IoT συστήματα μέσω γραφικής διεπαφής, γεγονός που απλοποιεί σημαντικά τη δυσκολία της διαδικασίας του προγραμματισμού. Επιπλέον, υλοποιήθηκαν διάφορα σενάρια χρήσης που αναδεικνύουν τις δυνατότητες του συστήματος για την ανάπτυξη ρομποτικών εφαρμογών στα πλαίσια του IoT.
Ανδρέας Γούλας
Απόσταξη Γνώσης σε Δίκτυα BiLSTM για τη Συμπίεση του Μοντέλου Greek-BERT
Στα τελευταία χρόνια, τα προ-εκπαιδευμένα γλωσσικά μοντέλα, όπως το BERT, έχουν επιτύχει state-of-the-art αποτελέσματα σε πολλά προβλήματα επεξεργασίας φυσικής γλώσσας. Ωστόσο, τα μοντέλα αυτά χαρακτηρίζονται συνήθως από μεγάλο αριθμό παραμέτρων και από μεγάλες απαιτήσεις σε μνήμη και επεξεργαστική ισχύ. Επομένως, η χρήση τους σε περιβάλλοντα περιορισμένων πόρων, όπως οι εφαρμογές on-the-edge, είναι συχνά δύσκολη. Στην παρούσα διπλωματική, εξετάζονται διάφορες τεχνικές απόσταξης γνώσης σε απλά μοντέλα BiLSTM με στόχο τη συμπίεση του μοντέλου Greek-BERT. Ο όρος «Απόσταξη Γνώσης» αναφέρεται σε ένα σύνολο από τεχνικές μεταφοράς γνώσης από ένα μεγάλο και πολύπλοκο μοντέλο σε ένα μικρότερο. Το Greek-BERT είναι ένα μονογλωσσικό μοντέλο BERT, το οποίο έχει αποδειχθεί πολύ αποτελεσματικό σε διάφορα προβλήματα επεξεργασίας φυσικής γλώσσας στα Νέα Ελληνικά. Για τον σκοπό αυτό, εκπαιδεύονται και αξιολογούνται διανυσματικές παραστά σεις λέξεων GloVe στα Νέα Ελληνικά, οι οποίες δεν ήταν προηγουμένως διαθέσιμες. Η εκπαίδευση του GloVe πραγματοποιείται σε ένα τεράστιο corpus κειμένων στα Νέα Ελληνικά, μεγέθους συνολικά 30GB. Για να είναι η σύγκριση των μοντέλων δίκαιη, το corpus κειμένων αντλήθηκε από τις ίδιες διαδικτυακές πηγές που χρησι μοποιήθηκαν για την προ-εκπαίδευση του Greek-BERT. Τα μοντέλα αξιολογούνται στο σύνολο δεδομένων XNLI και σε ένα σύνολο δεδομένων κατηγοριοποίησης κειμένου από την εφημερίδα «Μακεδονία». Για τη βέλτιστη μεταφορά γνώσης από το Greek-BERT στα μοντέλα BiLSTM αναπτύσσεται ένας αλγόριθμος επαύξησης δεδομένων, ο οποίος βασίζεται στις δια νυσματικές παραστάσεις GloVe. Η διαδικασία αυτή αποδεικνύεται ότι βελτιώνει σημαντικά την απόδοση των μοντέλων, κυρίως σε σύνολα μικρής κλίμακας. Πειραματικά αποδεικνύεται ότι η απόσταξη γνώσης μπορεί να βελτιώσει την απόδοση των απλών BiLSTM μοντέλων κατανόησης φυσικής γλώσσας στα Νέα Ελ ληνικά. Το τελικό μοντέλο ενός επιπέδου είναι 28.6x φορές πιο γρήγορο, διατηρεί το 96.0% της απόδοσης του Greek-BERT σε προβλήματα κατηγοριοποίησης κειμέ νου και το 86.9% σε προβλήματα NLI. Το μοντέλο δύο επιπέδων είναι 10.7x φορές πιο γρήγορο, διατηρώντας το 88.4% της απόδοσης του Greek-BERT σε προβλήματα NLI.
Κορκούτι Διονύς
Βέλτιστη Xάραξη Διαδρομής από Αυτόνομο Όχημα σε Δυναμικό Περιβάλλον
Η αυτόνομη οδήγηση είναι μια τεχνολογία η οποία αναπτύσσεται και εξελίσ σεται ραγδαία τα τελευταία χρόνια. Κυρίως στον βιομηχανικό τομέα, πολλές είναι οι εταιρίες που θέλουν να εδραιωθούν πρώτες στην αγορά και να φτιάξουν το «ιδανικό» αυτόνομο όχημα. Η βελτίωση της ασφάλειας των πολιτών, η μείωση του χρόνου μετακινήσεων αλλά και η εύρυθμη λειτουργία του κυκλοφοριακού συστή ματος, επιτάσσει την αυτοματοποίηση της οδήγησης. Σε ένα ιδεατό σενάριο, οι άνθρωποι θα μπορούν να μετακινούνται χωρίς να απαιτείται η προσοχή τους στον έλεγχο του οχήματος, τα αυτοκινητικά ατυχήματα θα τείνουν στο μηδέν και τα φανάρια όπως και άλλα είδη σήμανσης οδικής κυ κλοφορίας δεν θα είναι πλέον απαραίτητα, καθώς τα αυτοκίνητα θα μπορούν να ανταλλάσσουν πληροφορίες μεταξύ τους μέσω ενός δικτύου επικοινωνίας. Η ανά πτυξη όμως μιας τέτοιας τεχνολογίας είναι αρκετά περίπλοκη, καθώς απαιτείται ο έλεγχος πολλών τυχαίων και απρόβλεπτων συνθηκών. Για την επίτευξη μια τέτοιας πραγματικότητας είναι απαραίτητη η πολύ καλή αντίληψη του χώρου γύρω από το αυτόνομο όχημα, η προσαρμογή του στο περιβάλ λον και η άμεση απόκρισή του σε αλλαγές του περιβάλλοντος. Το όχημα θα πρέπει να πλοηγείται με ασφάλεια στο οδικό δίκτυο και να ανταποκρίνεται ανάλογα τόσο σε στατικά και όσο και σε δυναμικά εμπόδια. Επιπλέον, θα πρέπει να υπολογίζει και να αξιολογεί σενάρια αποφάσεων και να επιλέγει την κατάλληλη ανταπόκριση σύμφωνα με τις συνθήκες. Έτσι, τα αυτόνομα οχήματα θα πρέπει να είναι εξοπλι σμένα με εξειδικευμένους αισθητήρες όπου αναγνωρίζουν και χαρτογραφούν τον γύρω χώρο του οχήματος, με πολύπλοκα συστήματα ελέγχου και λήψης αποφάσεων αλλά και κατάλληλα συστήματα πρόβλεψης συμπεριφορών. Η παρούσα διπλωματική εστιάζει στην ανάπτυξη ενός τέτοιου συστήματος αυ τόνομης οδήγησης. Σκοπός του συστήματος είναι να κατευθύνει το όχημα από ένα αρχικό σημείο σε έναν τελικό προορισμό σε μία πόλη με οχήματα και πεζούς ενώ ταυτόχρονα υπολογίζει τον βέλτιστο και πιο σύντομο δρόμο, με ασφάλεια και συμ μόρφωση στους κανόνες οδικής κυκλοφορίας. Το σύστημα αναπτύχθηκε σε μορφή μεμονωμένου συστήματος (ego-only system) και επιλέχθηκε η μορφή του αρθρωτού συστήματος (modular system). Η υλοποίησή του έγινε σε γλώσσα προγραμματι σμού Python και του μεσολογισμικό ROS. Ο προσομοιωτής που επιλέχθηκε είναι το σύστημα Carla όπου και προσφέρει τα αυτοκίνητα, το αστικό περιβάλλον και τους φυσικούς νόμους για την διεξαγωγή των αποτελεσμάτων. Το σύστημα που αναπτύχθηκε αποτελείται από τα επιμέρους συστήματα 1) κατασκευής βασικού μονοπατιού, 2) αντίληψης, 3) πρόβλεψης συμπεριφοράς, 4) κατασκευής τοπικών μονοπατιών, 5) επιλογής συμπεριφοράς και 6) ελέγχου κινηματικής συμπεριφοράς του οχήματος. Τα συστήματα αυτά επικοινωνούν κατάλληλα μεταξύ τους για την για την επίτευξη της αυτόνομης οδήγησης. Στο σύστημα κατασκευής βασικού μονοπατιού δημιουργείται ένας κατευθυνό μενος γράφος του χάρτη και χρησιμοποιείται ο αλγόριθμος A* για την αναζήτηση της βέλτιστης διαδρομής. (continue in full text)
Αναστάσιος Παπαδόπουλος
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚΩΝ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ ΣΤΗΝ ΑΙΣΘΗΤΙΚΗ ΙΣΤΟΣΕΛΙΔΩΝ
Οι ιστοσελίδες συνιστούν το πιο διαδεδομένο και πλέον απαραίτητο μέσο για όλους τους τομείς, από την ενημέρωση μέχρι και τη διασκέδαση. Η αισθητική τους αποτελεί αναπόσπαστο κομμάτι του σχεδιασμού μιας ιστοσελίδας, καθώς o ρόλος της είναι πολυδιάστατος. Αρχικά, βοηθά στην υποστήριξη του περιεχομένου και της λειτουργικότητας μιας ιστοσελίδας ενώ ταυτόχρονα αποσκοπεί στο να κεντρίσει το ενδιαφέρον συγκεκριμένων δημογραφικών ομάδων. Επίκεντρο της παρούσας εργασίας είναι να διερευνήσει τη σημαντικότητα των δημογραφικών χαρακτηριστικών στην αξιολόγηση της αισθητικής μιας ιστοσελίδας, μέσω της χρήσης αλγορίθμων βαθιάς μάθησης. Για την επίλυση του προβλήματος εφαρμόστηκαν δύο διαφορετικές προσεγγίσεις. Η πρώτη αφορά την εκπαίδευση τριών διαφορετικών αρχιτεκτονικών συνελικτικών νευρωνικών δικτύων στο σύνολο των δεδομένων, την αρχιτεκτονική AlexNet, VGG16 και Xception. Η AlexNet έχει αξιολογηθεί ξανά στο συγκεκριμένο σετ και παρουσιάζει αξιόπιστα αποτελέσματα ενώ η VGG16 παρουσιάζεται ως μια βελτιωμένη λύση. Η Xception είναι μια σύγχρονη αρχιτεκτονική που δοκιμάζεται για πρώτη φορά στο σύνολο αυτό και ξεπέρασε τα βιβλιογραφικά αποτελέσματα. Η δεύτερη προσέγγιση περιλαμβάνει τον διαχωρισμό του σετ δεδομένων σε δημογραφικές ομάδες και την εκπαίδευση συνελικτικών δικτύων για κάθε ομάδα ξεχωριστά. Με αυτό τον τρόπο τα εκάστοτε μοντέλα μπορούν να αντιληφθούν τα χαρακτηριστικά της κάθε δημογραφικής ομάδας. Τέλος, τα μοντέλα αυτά ενώνονται με διαφορετικές συνδυαστικές μεθόδους και επιλέγεται η βέλτιστη για την αξιολόγηση και τη σύγκριση των αποτελεσμάτων. Στα πειράματα που πραγματοποιήθηκαν γίνονται συγκρίσεις μεταξύ των μοντέλων για κάθε προσέγγιση καθώς και παρουσίαση παραδειγμάτων. Σκοπός της εργασίας είναι να αναδείξει τον ρόλο και τη σημασία των δημογραφικών χαρακτηριστικών, ενώ παράλληλα επισημαίνεται και η συνεισφορά των εξελιγμένων αλγορίθμων βαθιάς μάθησης στην επίτευξη αξιόπιστων προβλεπτικών αποτελεσμάτων αναφορικά με υποκειμενικά ζητήματα, όπως είναι η πρόβλεψη αισθητικής ιστοσελίδων.
Ψαροδήμου Μαρία
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης
Με την ανάπτυξη της τεχνολογίας και την είσοδο στην 4η βιομηχανική επανάσταση, ο τομέας της μηχανολογικής συντήρησης επεκτείνεται καθώς μεταβαίνει από προληπτικά μέτρα σε προβλεπτικές τεχνικές που αξιοποιούν μεθόδους και μοντέλα μηχανικής μάθησης. Η κείμενη διπλωματική εργασία στοχεύει μέσα από έρευνα και εφαρμογή κλασσικών και καινοτόμων τεχνικών στον τομέα της ανίχνευσης ανωμαλιών και ταξινόμησης χρονοσειρών να υλοποιήσει ένα εύχρηστο και αξιόπιστο εργαλείο ταυτοποίησης βλαβών. Μια τέτοια υλοποίηση προϋποθέτει την έρευνα διαθέσιμων τεχνικών μηχανικής μάθησης, την υλοποίηση και προσαρμογή τους σε ένα πραγματικό βιομηχανικό περιβάλλον, και την αξιολόγηση των αποτελεσμάτων στον επιτρεπόμενο βαθμό.
Βερβέρης Χρήστος
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου Λογικών Συμπερασμών
Σήμερα, η ανάπτυξη της τεχνολογίας και η αξιοποίηση της σε όλους τους τομείς της ζωής του ανθρώπου, δημιουργεί την ανάγκη για λογισμικό που είναι έυκολα προσαρμόσιμο, ευπαρουσίαστο, επιλύει πολλούς τύπους προβλημάτων, είναι οικονομικό και αξιόπιστο. Η Μοντελοστραφής Μηχανική (MDE), δηλαδή η ανάπτυξη λογισμικού που στηρίζεται σε μοντέλα, η αυτόματη παραγωγή κώδικα με βάση αυτά τα μοντέλα, η δυνατότητα γραφικής απεικόνισης του λογισμικού σε συνδυασμό με τις τεχνικές του Αυτοματοποιημένου Ελέγχου Συμπερασμών (Automated Reasoning) καλύπτουν ανά περίπτωση τις παραπάνω ανάγκες. Στην παρούσα διπλωματική εργασία, έγινε αξιοποίηση όλων των παραπάνω τεχνικών για την κατασκευή ενός ολοκληρωμένου εργαλείου, στην πλατφόρμα του Eclipse, με στόχο την κάλυψη των προαναφερθέντων αναγκών. Πιο συγκεκριμένα στα πλαίσια της Μοντελοστραφούς Μηχανικής (MDE) κατασκευάστηκε ένα μέτα-μοντέλο που αποτελεί τον πηρύνα του συστήματος και ενσωματώνει όρους από το πεδίο του Λογισμού. Στη συνέχεια, πάνω σε αυτό δημιουργήθηκε μια γραφική διεπαφή, στο περιβάλλον του Sirius, που δίνει την δυνατότητα στον ενδιαφερόμενο να καταγράψει, με γραφικό τρόπο, το μοντέλο που επιθυμεί. Η καταγραφή του μοντέλου γίνεται με την μορφή εξισώσεων σωστά διατυπωμένων στα πρότυπα της Κατηγορηματικής Λογικής Πρώτης Τάξης (FOL). Από αυτό το μοντέλο ύστερα, παράγεται αυτόματα κώδικας Java, ο οποίος αξιοποιώντας συναρτήσεις και αντικείμενα της βιβλιοθήκης TweetyProject, διαμορφώνεται κατάλληλα ώστε να αποτελεί έγκυρη είσοδο για τον built-in prover της ίδιας βιβλιοθήκης που μπορεί να πραγματοποιεί λογικούς ελέγχους στα πρότυπα του Αυτοματοποιημένου Ελέγχου Συμπερασμών. Μερικές ακόμα βοηθητικές συναρτήσεις σε Java, ολοκληρώνουν το εργαλείο της διπλωματικής. Όλα τα παραπάνω καθιστούν, το σύστημα που αναπτύχθηκε σε αυτή την διπλωματική, ικανό να χρησιμοποιηθεί από διάφορους υπάρχοντες μηχανισμούς αυτόματης παραγωγής συστημάτων, προκειμένου να ελέγξουν την εγκυρότητα των υπό σχεδίαση συστημάτων, δίχως κάποιος να απαιτείται να υλοποιήσει λογισμικό που κάνει λογικούς συμπερασμούς.
Ξανθόπουλος Κωνσταντίνος
Γλώσσα περιγραφής πεδίου για αρχιτεκτονικές με ασύγχρονη επικοινωνία οδηγούμενη από μηνύματα
Η εισαγωγή νέων τεχνολογιών στον τομέα του διαδικτύου των πραγμάτων (Inter net of Things) σε συνδυασμό με την ευρεία χρήση τους έχει προκαλέσει ζητήματα στους προγραμματιστές. Ένα από αυτά αφορά την διαλειτουργικότητα συστημά των που περιλαμβάνουν συσκευές που υποστηρίζουν διαφορετικά πρωτόκολλα και διεπαφές επικοινωνίας. Για τον λόγο αυτό αυξάνεται αρκετά η δυσκολία στην ανά πτυξη και συντήρηση εφαρμογών και συστημάτων που αποτελούνται από ποικίλες συσκευές και οντότητες. Στην αντιμετώπιση της πρόκλησης αυτής, σημαντικός παράγοντας μπορεί να αποτελέσει η μηχανική οδηγούμενη από μοντέλα (Model Driven Engineering), κυ ρίως γιατί αυξάνει το επίπεδο της αφαιρετικότητας (level of abstraction) ώστε να μην χρειάζεται να αντιμετωπιστούν οι λεπτομέρειες και οι περιορισμοί του συγκε κριμένου πεδίου από την πλευρά του χρήστη. Ακόμη, επιταχύνει την διαδικασία παραγωγής λογισμικού και αυξάνει την ποιότητά του, επιτρέποντας την σχεδίαση και ανάπτυξη επαναχρησιμοποιούμενου κώδικα. Προς το παρόν ωστόσο, η παρουσία του MDE στον κόσμο του IoT βρίσκεται σε πρώιμο στάδιο. Σε αυτά τα πλαίσια, η παρούσα διπλωματική εργασία περιγράφει μία λύση βασισμένη σε μοντέλα για την διασφάλιση της διαλειτουργικότητας σε IoT συ στήματα που βασίζονται στην οδηγούμενη από μηνύματα (Message Driven) επι κοινωνία. Το αποτέλεσμα της εργασίας αυτής είναι η MECO (Modeling Entities and COmmunications), μια γλώσσα περιγραφής πεδίου (Domain-specific language / DSL) που επιτρέπει σε απλούς χρήστες να σχεδιάζουν τέτοια συστήματα χωρίς σημαντική εμπειρία στον προγραμματισμό. Επίσης, μέσω ενός Model-to-Text με τασχηματισμού πραγματοποιείται αυτόματη παραγωγή λογισμικού που υλοποιεί τις επικοινωνίες και μέσω ενός Model-to-Model μετασχηματισμού παράγονται διαγράμματα και αρχεία τεκμηρίωσης που βοηθούν στην εποπτεία των περιγραφόμενων συστημάτων.
Οδυσσέας Κυπαρίσσης
Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού
Στη σημερινή εποχή παρατηρείται ραγδαία ανάπτυξη των συστημάτων ελέγχου εκδόσεων και των αποθετηρίων ανοικτού λογισμικού. Τεράστιος όγκος νέων έργων λογισμικού υλοποιείται, αναπτύσσεται και συντηρείται μέσω των συστημάτων αυτών. Κατ’ αυτόν τον τρόπο, οι μηχανικοί λογισμικού μπορούν να συνεργάζονται άμεσα μεταξύ τους, να οργανώνουν αποτελεσματικά τα έργα που υλοποιούν και να διατηρούν ένα συγχρονισμένο ιστορικό της εξέλιξής τους. Επομένως, ο όγκος πληροφορίας που αποθηκεύεται είναι τεράστιος και η αξιοποίηση του μπορεί να οδηγήσει στη δημιουργία έξυπνων και αποτελεσματικών συστημάτων. Τα αποθετήρια αυτά αποτελούν μια θαυμάσια πηγή πληροφοριών. Στη συγκεκριμένη εργασία υλοποιείται ένα σύστημα μηχανικής μάθησης το οποίο αποθηκεύει, επεξεργάζεται και ομαδοποιεί αλλαγές πηγαίου κώδικα που έχουν πραγματοποιηθεί κατά τη διάρκεια εξέλιξης των έργων λογισμικού με τελικό στόχο την εξόρυξη προτύπων αλλαγών πηγαίου κώδικα. Τα πρότυπα αυτά μπορούν να προσφέρουν προτάσεις σε νέα συστήματα που υλοποιούνται ώστε να πραγματοποιηθούν βελτιστοποιήσεις ή διορθώσεις πιθανών σφαλμάτων, οι οποίες έχουν γίνει επανειλημμένα σε μια πληθώρα διαφορετικών έργων λογισμικού στο παρελθόν. Η μεθοδολογία εφαρμόστηκε στα αποθετήρια του συστήματος GitHub. Μέσω του GitHub, εξορύσσονται οι αλλαγές των αρχείων πηγαίου κώδικα που περιέχονται στο ιστορικό εξέλιξης των αποθετηρίων. Οι αλλαγές αυτές αναπαρίστανται ως Αφηρημένα Συντακτικά Δέντρα (Abstract Syntax Trees) για τον υπολογισμό της ομοιότητας που παρουσιάζει η αλγοριθμική δομή τους. Επίσης, υπολογίζεται η λεξιλογική ομοιότητά τους και, έτσι, είναι εφικτή η τελική τους ομαδοποίηση. Ομάδες οι οποίες πληρούν συγκεκριμένες προϋποθέσεις περιέχουν πρότυπα αλλαγών πηγαίου κώδικα, τα οποία χρησιμοποιούνται για την παροχή συστάσεων σε νέα έργα λογισμικού.
Δημήτριος Καραγεωργίου
Μεταπρογραµµατισµός κώδικα Python σε γλώσσα γραµµικού χρόνου για αυτόµατη επαλήθευση κατά την εκτέλεση µε νευρωνικά δίκτυα γράφων
Ο όρος επαλήθευση λογικής κατά την εκτέλεση οριοθετεί ένα πεδίο που εκτείνεται από τον έλεγχο λογισµικού για τη συµµόρφωση µε ένα σύνολο προδιαγραφών, έως την εναρµόνιση µε καλές λογικές πρακτικές κατά τη συγγραφή κώδικα. Στο πλαίσιο αυτό, υλοποιήσαµε τη lovpy, µια βιβλιοθήκη µεταπρογραµµατισµού για τη γλώσσα Python, που εισάγει σε αυτή τις δυνατότητες της επαλήθευσης λογικής κατά την εκτέλεση. Ο καθορισµός της πρότυπης λογικής γίνεται χρησιµοποιώντας τη διαισθητική γλώσσα έκφρασης προδιαγραφών Gherkin, ενώ η χρήση της βιβλιοθήκης δεν απαιτεί καµία αλλαγή στον υπάρχον κώδικα. Για την υλοποίησή της αξιοποιήσαµε µια σειρά εργαλείων της θεωρίας γράφων, της θεωρίας τυπικών γλωσσών, της χρονικής λογικής καθώς και µοντέλα βαθιάς µηχανικής µάθησης, εστιάζοντας περισσότερο στα νευρωνικά δίκτυα γράφων. Θεµελιώσαµε µαθηµατικά ένα νέο είδος γράφου για την αναπαράσταση χρονικών προδιαγραφών και ορίσαµε για αυτόν ένα σύνολο µαθηµατικά τεκµηριωµένων λογικών αλγορίθµων. Στη συνέχεια, αξιοποιήσαµε τις δοµές αυτές προκειµένου να υλοποιήσουµε ένα νέο σύστηµα αυτόµατης απόδειξης θεωρηµάτων, το οποίο µας εξασφαλίζει την απόλυτη εγκυρότητα των εντοπισµένων παραβιάσεων. Αξιολογήσαµε πέντε διαφορετικές αποδεικτικές αρχιτεκτονικές, αποτελούµενες από ευριστικούς κανόνες και απλά νευρωνικά µοντέλα, µέχρι µεγάλα νευρωνικά δίκτυα γράφων. Για την εκπαίδευση των νευρωνικών συστηµάτων υλοποιήσαµε ένα µηχανισµό παραγωγής συνθετικών θεωρηµάτων, αξιοποιώντας µια σειρά από µαθηµατικές ιδιότητες. Τέλος, χρησιµοποιήσαµε τη lovpy για να εντοπίσουµε σφάλµατα σε δύο δηµοφιλής βιβλιοθήκες ανοιχτού κώδικα, την Django και την Keras.
Αθανάσιος Μανώλης
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου και χαμηλής κατανάλωσης
Το διαδίκτυο των πραγμάτων (Internet of Things ή IoT) είναι ένας κλάδος που εξελίσσεται ραγδαία ειδικά τα τελευταία χρόνια. Υπάρχει η δυνατότητα ανάπτυ ξης όλο και περισσότερων εφαρμογών, χρήσιμες για πολλούς ανθρώπους, είτε έχουν να κάνουν με απλές λειτουργίες σε συστήματα αυτοματισμού, είτε με μεγαλύτε ρης κλίμακας εφαρμογές στη βιομηχανία. Επομένως, όλο και περισσότερος κόσμος επιθυμεί να ασχοληθεί με το αντικείμενο αυτό. Η διαδικασία υλοποίησης ενός IoT συστήματος περιλαμβάνει την ανάπτυξη κώ δικα για τον έλεγχο των συσκευών. Μάλιστα, στις περισσότερες περιπτώσεις η γρήγορη απόκριση είναι υψίστης σημασίας, επομένως απαιτείται η ανάπτυξη χαμη λού επιπέδου κώδικα, καθώς και η χρήση λειτουργικών συστημάτων πραγματικού χρόνου (Real Time Operating System ή RTOS). Επίσης, λόγω της μεγάλης ετερογέ νειας IoT συσκευών που υπάρχουν στην αγορά, κρίνεται αναγκαία η κατανόηση των δυνατοτήτων που η εκάστοτε συσκευή μπορεί να προσφέρει, ώστε να γίνε ται η κατάλληλη επιλογή τους, προσαρμοσμένη στις ανάγκες του συστήματος προς υλοποίηση. Οι ενέργειες αυτές είναι λογικό να φαίνονται περίπλοκες σε κάποιους χρήστες, ειδικότερα στα άτομα που είναι τεχνολογικά ακατάρτιστα, δεν έχουν δηλαδή τις απαραίτητες προγραμματιστικές γνώσεις, αλλά παρόλα αυτά επιθυμούν να κατα σκευάσουν ένα IoT σύστημα π.χ. για προσωπική τους χρήση. Αυτό έχει ως αποτέ λεσμα μεγάλη μερίδα κόσμου που θέλει να ασχοληθεί με το IoT να αποθαρρύνεται. Η μοντελοστρεφής μηχανική (Model Driven Engineering ή MDE), έρχεται να δώσει λύση στα προβλήματα που μπορεί να αντιμετωπίσουν όσοι/ες θέλουν να ασχολη θούν με το IoT, αλλά και γενικότερα να απλοποιήσει τη διαδικασία παραγωγής λογισμικού, καθώς μπορεί να παρέχει την ανάπτυξη IoT συστημάτων σε ένα πιο αφαιρετικό επίπεδο, το οποίο είναι πιο φιλικό προς τον απλό χρήστη. Μέσω της παρούσας διπλωματικής εργασίας, δίνεται η δυνατότητα σε κάποιον/α να περιγράψει, με χρήση μοντέλων, IoT συσκευές, μέσω δύο γλωσσών συγκεκριμέ νου πεδίου (Domain Specific Language ή DSL) που αναπτύχθηκαν, για την περιγραφή των συσκευών και των μεταξύ τους συνδέσεων. Από τα μοντέλα πραγματοποιεί ται ένας Model-to-Text μετασχηματισμός για την αυτόματη παραγωγή λογισμικού, για μια πληθώρα IoT συσκευών, προσαρμοσμένη στα χαρακτηριστικά που επιθυ μεί ο χρήστης να έχει. Το λογισμικό ελέγχου των IoT συσκευών που παράγεται υλοποιεί την λήψη μετρήσεων από αισθητήρες και την αποστολή τους σε κάποιον μεσολαβητή (broker), αλλά και τον έλεγχο ενεργοποιητών μέσω του broker. Επίσης αποτελείται από χαμηλού επιπέδου κώδικα, καθώς έχει σχεδιαστεί σύμφωνα με τις απαιτήσεις ενός λειτουργικού συστήματος πραγματικού χρόνου, το RIOT. Τέλος, πραγματοποιείται και ένας Model-to-Model μετασχηματισμός για την παραγωγή διαγραμμάτων τα οποία βοηθούν στην οπτικοποίηση και άρα καλύτερη αντίληψη από τον χρήστη για τη συνδεσμολογία και ενδοεπικοινωνία του συστήματός του.
Παναγιώτου Θεόφιλος
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψηφιακών βοηθών
Η ανάπτυξη της Τεχνητής Νοημοσύνης τα τελευταία χρόνια έχει επιτρέψει τις τεχνολογίες ψηφιακών βοηθών να αναδειχθούν. Από κέντρα εξυπηρέτησης πελα τών εώς και ιατρικές διαγνώσεις, οι ψηφιακοί βοηθοί βρίσκουν εφαρμογή σε πολ λούς τομείς και χρησιμοποιούνται καθημερινά από χρήστες. Όλο και περισσότερες εταιρείες προσπαθούν να τους ενσωματώσουν στο πλαίσιό τους και οι τεχνολογίες πίσω από αυτούς συνεχώς εξελίσσονται. Επιπλέον, οι τεχνολογίες Ανοιχτού Κώδικα φέρνουν τα εργαλεία δημιουργίας ψηφιακών βοηθών πιο κοντά στους προγραμμα τιστές επιτρέποντας τους να πειραματιστούν με αυτά. Ένα τέτοιο εργαλείο είναι και το Rasa, μια τεχνολογία Ανοιχτού Κώδικα για τη δημιουργία ψηφιακών βοηθών βιομηχανικού επιπέδου που χρησιμοποιούν την Τεχνητή Νοημοσύνη. Η χρήση του Rasa απαιτεί ένα υψηλό επίπεδο προγραμματιστικών γνώσεων πράγμα που περιορίζει την ανάπτυξη τέτοιων συστημάτων αποκλειστικά σε προ γραμματιστές. Ενώ οι ψηφιακοί βοηθοί γίνονται όλο και πιο απαραίτητοι σε καθη μερινές εφαρμογές, το εμπόδιο της τεχνογνωσίας περιορίζει τον αριθμό των ατόμων που ασχολούνται με αυτές. Η παρούσα διπλωματική εργασία εστιάζει στην ανάπτυξη ενός εύχρηστου ερ γαλείου δημιουργίας σεναρίων-δεδομένων για το Rasa με στόχο την γρήγορη δη μιουργία ψηφιακών βοηθών. Με τη χρήση Python και συγκεκριμένα του framework Django παρουσιάζεται η υλοποίηση μιας full-stack εφαρμογής, από τις όψεις και τις διευθύνσεις των πόρων εώς τα μοντέλα και τις back-end διεργασίες. Η εφαρμογή αυτή κάνει εύκολη την δημιουργία και επεξεργασία ψηφιακών βοηθών αυτοματο ποιώντας τις περισσότερες λειτουργίες του Rasa. Επιπρόσθετα, γίνεται η χρήση της εφαρμογής με τη δημιουργία ψηφιακών βοη θών, απλών και σύνθετων. Αρχικά παρουσιάζεται η σχεδίαση των σεναρίων και των ιστοριών που θα ακολουθήσει η συζήτηση και στη συνέχεια αυτά υλοποιούνται στο σύστημα. Τέλος, δοκιμάζονται οι βοηθοί και αξιολογείται το αποτέλεσμα από τα παραδείγματα συζητήσεων. Σύμφωνα με τα αποτελέσματα, η εφαρμογή μπορεί να δημιουργήσει επιτυχη μένα ψηφιακούς βοηθούς που περιέχουν τα βασικά συστατικά του Rasa. Όσο όμως οι ψηφιακοί βοηθοί γίνονται πιο σύνθετοι, καθίστανται αναγκαία κάποια ανθρώπινη παρέμβαση ώστε η επιθυμητή λειτουργία να υλοποιηθεί. Έτσι παρότι η εφαρμογή λειτουργεί όπως θέλουμε σε απλά και σύνθετα σενάρια, όταν ο χειριστής χρειά ζεται κάτι αρκετά απαιτητικό σε πολυπλοκότητα, απαραίτητη είναι και πάλι η τεχνογνωσία προγραμματιστικών ικανοτήτων.
Παπαδάμ Στέφανος
Ανάπτυξη γραφικής διεπαφής αυτόνομου οχήματος για παραμετροποίηση της οδηγικής συμπεριφοράς και απομακρυσμένο έλεγχό του
Οι μετακινήσεις των ανθρώπων μέσα στη διάρκεια των χρόνων αποτελούσαν αναπόσπαστο κομμάτι της καθημερινότητάς τους. Για τον λόγο αυτό από τον 18o αιώνα άρχισαν οι πρώτες προσπάθειες κατασκευής του πρώτου μηχανοκίνητου αυ τοκινήτου. Μέσα στο πέρασμα των χρόνων οι βιομηχανίες κατασκεύαζαν συνεχώς και πιο σύγχρονα αυτοκίνητα με αποτέλεσμα να προσφέρουν εύκολες και άνετες μετακινήσεις στους ανθρώπους. Τα τελευταία χρόνια η καινοτομία που ερευνά ται εκτενώς από μεγάλες εταιρίες και πανεπιστήμια είναι η ανάπτυξη αυτόνομων οχημάτων και υπόσχεται να αλλάξει οριστικά τον παραδοσιακό τρόπο λειτουργίας των αυτοκινήτων. Ορισμένα μόνο από τα προβλήματα στα οποία θα συμβάλλει δραστικά η τεχνολογία των αυτόνομων οχημάτων είναι η εξοικονόμηση σημαντικού χρόνου στην καθημερινότητα των ανθρώπων, η μείωση των τροχαίων ατυχημάτων και κατ’ επέκταση η μεγαλύτερη ασφάλεια των μετακινήσεων, η συμβολή στην οικονομία καυσίμων και η ελάττωση της μόλυνσης του περιβάλλοντος. Μέχρι σήμερα δεν έχει υπάρξει κατασκευή ενός πλήρως αυτόνομου οχήματος που να λειτουργεί χωρίς καμία παρέμβαση από τον άνθρωπο. Όταν κάτι τέτοιο συμβεί τότε το όχημα θα μπορεί να γνωρίζει με μεγάλη ακρίβεια τις συνθήκες που επικρατούν στο εξωτερικό του περιβάλλον, θα λαμβάνει τις σωστές αποφάσεις σε κάθε χρονική στιγμή και θα μπορεί να ανταλλάσει πληροφορίες με άλλα οχήματα έτσι ώστε να συνεργάζεται για την καλύτερη λειτουργία της κυκλοφορίας. Ωστόσο, απαιτείται μεγάλη προσπάθεια και έρευνα έτσι ώστε το όχημα να ανταποκρίνε ται με επιτυχία στον μεγάλο αριθμό διαφορετικών σεναρίων που επικρατούν μέσα στην κίνηση. Η υλοποίηση ενός συστήματος αυτόνομης οδήγησης απαιτεί να λυ θεί με επιτυχία το πρόβλημα της αντίληψης του εξωτερικού περιβάλλοντος, της επιλογής σωστής συμπεριφοράς και της ομαλής μετάβασης στον τελικό προορισμό του υπακούοντας τους κανόνες της κυκλοφορίας και αποφεύγοντας στατικά και δυναμικά εμπόδια. Για την επίλυση αυτών απαιτείται ο κατάλληλος εξοπλισμός αισθητήρων τελευταίας τεχνολογίας που θα δέχονται τα ερεθίσματα του περιβάλ λοντος, θα αναλύονται από κάποια κεντρική μονάδα και θα παράγεται η σωστή απόφαση. (continue in full text)
Παπαδόπουλος Σταύρος
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης
To image inpainting είναι η διαδικασία επιδιόρθωσης μιας αλλοιωμένης ή/και κατεστραμμένης περιοχής σε μια εικόνα από την οποία απουσιάζει μέρος νοηματικής πληροφορίας και κατά συνέπεια παρουσιάζεται έλλειψη νοηματικής συνέχειας. Σχεδιάστηκε αρχικά με σκοπό την αποτελεσματική επιδιόρθωση κατ εστραμμένων περιοχών σε εικόνες. Γρήγορα, όμως, χρησιμοποιήθηκε με σκοπό την πλαστογράφηση και την παραπλάνηση. Τα τελευταία χρόνια, οι μέθοδοι που εφαρμόζουν inpainting σε εικόνες χρησι μοποιώντας μοντέλα τεχνητής νοημοσύνης, πετυχαίνουν όλο και ποιοτικότερα αποτελέσματα παρά γοντας εικόνες όπου η αλλοίωση τους, σε ορισμένες περιπτώσεις, είναι αδύνατον να εντοπιστεί με το ανθρώπινο μάτι. Κρίνεται αναγκαία λοιπόν η δημιουργία ενός μηχανισμού, που θα εντοπίζει αυτές ακριβώς τις αλλοιώσεις. Για το λόγο αυτό, η παρούσα διπλωματική εργασία εστιάζει στη μελέτη των μεθόδων εντοπισμού του inpainting σε εικόνες, αλλά και στην υλοποίηση ενός δικτύου τεχνητής νοημοσύνης ικανού να ανιχνεύει τις περιοχές όπου μια εικόνα έχει αλλοιωθεί μέσω inpainting. Εκ παιδεύτηκαν και έλεγχθηκαν συνολικά οχτώ δίκτυα, βασισμένα σε δύο αρχιτεκτονικές συνελικτικών νευρωνικών δικτύων, προτεινόμενες από σχετική βιβλιογραφία. Η εκπαίδευση πραγματοποιήθηκε με δύο διαφορετικά σύνολα ρυθμίσεων, για 10 και 50 εποχές αντίστοιχα και ως συνάρτηση κόστους χρησι μοποιήθηκε η Binary Cross Entropy (BCE). Επίσης, μελετήθηκε το κατά πόσο η χρήση ενός συνόλου δεδομένων αποτελούμενο από εικόνες που έχουν υποστεί inpainting σε σημασιολογικές περιοχές, βο ηθάει περισσότερο από ένα αντίστοιχο με εικόνες που έχουν υποστεί inpainting σε τυχαίες περιοχές στη διαδικασία του εντοπισμού του. Για το λόγο αυτό, δημιουργήθηκαν δύο σύνολα εκπαίδευσης (train set) από τα οποία το πρώτο αποτελείται από εικόνες με τυχαίες μάσκες inpainting, ενώ το δεύτερο απο εικόνες με μάσκες σημασιολογικής μορφής. Ο έλεγχος έγινε με τη χρήση ενός συνόλου ελέγχου (test set) αποτελούμενο και από τις 2 μορφές μασκών για να δοθεί μια αντικειμενική ερμηνεία των αποτε λεσμάτων. Σε κάθε ένα από τα εκπαιδευμένα δίκτυα, δόθηκε ως είσοδος μία έγχρωμη RGB είκονα I με σκοπό να παράξει στην έξοδο του την προβλεμόμενη μάσκα Mo. Τέλος, δεδομένης της πραγματικής μάσκας Mg πραγματοποιήθηκε 1-1 σύγκριση των αντίστοιχων εικονοστοιχείων και υπολογίστηκαν οι τιμές των μετρικών απόδοσης AUC και ΙοU. Αποδείχθηκε πως η εκπαίδευση με εικόνες που έχουν αλλοιωθεί σε τυχαίες περιοχές τους (τυχαίες μάσκες) οδηγεί σε καλύτερα αποτελέσματα εντοπισμού του inpainting, από ότι η εκπαίδευση με εικόνες που έχουν αλλοιωθεί σε σημασιολογικές περιοχές (αντικείμενα).
Κωνσταντίνος Βεργόπουλος
Ανάλυση σφαλµάτων κώδικα µε βάση τον γράφο κλήσεων συναρτήσεων
Το αυξανόµενο µέγεθος και η πολυπλοκότητα των µοντέρνων έργων λογισµικού συχνά οδηγεί στην εµφάνιση σφαλµάτων κατά την εκτέλεση προγραµµάτων, εξαιτίας, για παϱάδειγµα, ανακριβειών στον κώδικα ή απρόσµενων σεναρίων χρήσης. Λόγω της επίδρασης των σφαλµάτων στη χρήση λογισµικού, η ταχεία αντιµετώπισή τους αποτελεί πλέον σηµαντικό παράγοντα συντήρησης στενά συνδεδεµένο µε την επιτυχία του έργου λογισµικού. Συγχρόνως, διαδικασίες ανάλυσης των ανατροφοδοτήσεων των χρηστών, όπως αφοσιωµένες οµάδες, για την κατανόηση σφαλµάτων και την εκκίνηση διαδικασιών συντήρησης µπορούν να αποδειχθούν εξαιρετικά χρονοβόρες. Προκειµένου να περιοριστούν σχετικά έξοδα, αναδυόµενη τάση συνιστά η αυτοµατοποίηση (µέρους) της κατανόησης σφαλµάτων µε συστήµατα µηχανικής µάθησης, όπως για παράδειγµα συστήµατα αυτόµατοποιηµένης κατηγοριοποίηση. Στην παρούσα διπλωµατική εργασία, επικεντρωνόµαστε στην κατανόηση σφαλµάτων µέσω εξαγόµενων λανθανουσών αναπαραστάσεων. Οι αναπαραστάσεις αυτές µπορούν να ενταχθούν στα συστήµατα µηχανικής µάθησης για να προβλέψουν χαρακτηριστικά σφαλµάτων, όπως να προτείνουν σε ποιες κατηγορίες σφαλµάτων ανήκει το εκάστοτε σφάλµα. Για την επίτευξη αυτού, υπάρχουσες προσεγγίσεις για τον ευρύτερο σκοπό της αυτοµατο ποιηµένης κατανόησης σφαλµάτων κάνουν χρήστη τεχνικών επεξεργασίας ϕυσικής γλώσσας (natural language processing), όπως διανυσµατικές αναπαραστάσεις λέξεων, για να αντιληφθούν τα σχόλια και τις παρατηρήσεις των χρηστών. Ωστόσο, στις περιπτώσεις σφαλµάτων προτείνουµε ότι διαθέσιµοι γράφοι κλήσεων συναρτήσεων, οι οποίοι καταδεικνύουν προβληµατικά τµήµατα κώδικα, συλλαµβάνουν επίσης την σηµασιολογία του κώδικα στην µορφή των µονοπατιών εντός του γράφου κλήσεως. Συνεπώς, ερευνούµε αν οι διανυσµατι κές αναπαραστάσεις γράφων, οι οποίες έχουν εξαχθεί από γράφους κλήσεων συναρτήσεων, µπορούν να χρησιµοποιηθούν για την απόκτηση καλύτερης κατανόησης σφαλµάτων. Για την εξέταση της υπόθεσης µας, αναπτύξαµε ένα σύστηµα, το οποίο εξάγει τη λαν ϑάνουσα αναπαράσταση σφάλµατος έργων λογισµού συνδιάζοντας διανυσµατικές αναπα ϱαστάσεις γράφων κλήσεων συναρτήσεων και κειµένου. Για την επαλήθευση της ϐελτίωσης της κατανόησης σφαλµάτων σε σύγκριση µε τη χρήση µόνο κειµενικών χαρακτηριστικών, πειραµατιστήκαµε σε τρία διάσηµα έργα λογισµικού ανοικτού κώδικα που είναι διαθέσι µα µέσω του αποθετήριου λογισµικού GitHub. Από τα συγκεκριµένα έργα λογισµικού εξηγάγαµε αναπαραστάσεις σφαλµάτων και τις χρησιµοποιήσαµε για να προβλέψουµε κα τηγορίες σφαλµάτων (π.χ. υψηλής προτεραιότητας) µε προβλεπτικά µοντέλα ϐασισµένα σε νευρωνικά δίκτυα. Βρήκαµε ότι, δοθέντος ενός εύρωστου προβλεπτικού µοντέλου και αρκετά παραδείγµατα σφαλµάτων για να εκπαιδευτει, η προσέγγιση µας ϐελτιώνει την κειµενική κατηγοριοποίηση σηµαντικά λαµβάνοντας υπόψιν δηµοφιλείς µετρικές αξιολόγησης συστηµάτων.
Εµµανουήλ Ζήσης-Μήλης
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατοποίηση εφαρµογής ϕίλτρων σε µηνύµατα µε χρήση της τεχνολογίας διαµεσολάβησης µηνυµάτων
Η µετάβαση των τεχνολογιών του διαδικτύου προς αρχιτεκτονικές µικροϋπηρεσιών (microservices) και η ανάπτυξη του ∆ιαδικτύου των Πραγµάτων (Internet of Things - IoT) συνέβαλλαν σηµαντικά στην αύξηση των αναγκών για νέες µεθόδους αποδοτικής επικοι νωνίας µεταξύ ανοµοιογενών και διανεµηµένων συστηµάτων. Οι µεθοδολογίες διαµεσο λάβησης µηνυµάτων (brokered messaging) λειτουργούν καλύτερα από τις τεχνολογίες / προσεγγίσεις REST (Representational State Transfer) και RPC (Remmote Procedure Call) σε συστήµατα επικοινωνίας παραγωγών-καταναλωτών (µηνυµάτων) όπου είναι επιθυµητή τόσο η µετάδοση µεγάλου όγκου δεδοµένων σε υψηλούς ϱυθµούς όπως και η απεµπλοκή των υποσυστηµάτων των παραγωγών και των καταναλωτών. Μια ελαφριά και αξιόπιστη τεχνολογία που προσφέρει τα πλεονεκτήµατα της µεσολάβησης µηνυµάτων είναι το RabbitMQ. Με τη χρήση αυτής, µπορούν να χτιστούν πολύπλοκα και αποδοτικά συστήµατα ειδικά σε συνθήκες ασύγχρονης επικοινωνίας, αναξιόπιστων δικτύων και σε περιβάλλοντα εφαρµογών µεγάλων δεδοµένων (big data). Η παρούσα διπλωµατική εστιάζει στην ανάπτυξη ενός εργαλείου πλήρους στοίβας (full-stack), το οποίο κάνει χρήση της τεχνολογίας διαµεσολάβησης µηνυµάτων για την εφαρµογή ϕίλτρων στα διακινούµενα µηνύµατα του συστήµατος. Η αυτοµατοποίηση αυτών των λειτουργιών µέσω του εργαλείου, καθιστά τα ωφέλη των εµπλεκόµενων τεχνολογιών προσβάσιµα από τους χρήστες, ανεξάρτητα από το ϐαθµό της εµπειρίας τους στις συγκεκριµένες τεχνολογίες. Η επικοινωνία των µηνυµάτων επιτελείται µέσω του διακοµιστή Rabbitmq Server, ο οποίος εφαρµόζει την τεχνολογία διαµεσολάβησης µηνυµάτων. Τέλος για τη διευκόλυνση της διαχείρισης ολόκληρου του συστήµατος, αυτό ενσωµατώθηκε στο πλαίσιο της τεχνολογίας Kubernetes, η οποία προσφέρει την αυτοµατοποίηση της ενορχήστρωσης των κοµµατιών του συστήµατος. Για τη σύσταση του περιβάλλοντος Kubernetes επιλέχθηκε η τεχνολογία minikube καθώς προσφέρει εύκο λη και γρήγορη δηµιουργία ενός περιβάλλοντος Kubernetes. Η απόδοση του συστήµατος ελέγθηκε για διαφορετικές τιµές του ϕορτίου εισαγωγής µηνυµάτων και των εφαρµοζόµενων ϕίλτρων. Τα µεγέθη που µετρήθηκαν αφορούν την συχνότητα εισόδου µηνυµάτων, τη συχνότητα κατανάλωσης µηνυµάτων, τη συχνότητα καταγραφής µηνυµάτων στη Βάση ∆εδοµένων και τον αριθµό αποθηκευµένων δεδο µένων στις ουρές του διαµεσολαβητή. Από τα πειράµατα εξάγεται το συµπέρασµα ότι είναι ιδιαίτερα σηµαντική η επιλο γή του κατάλληλου αριθµού εφαρµοζόµενων ϕίλτρων σύµφωνα µε τους διαθέσιµους πόρους επεξεργαστικής ισχύος και µνήµης του συστήµατος.

2020

Κωνσταντίνος Παπαδόπουλος
Ανάπτυξη Εφαρμογής για τη Βελτίωση της Ορατότητας Δικτυακών Συσκευών σε Βιομηχανικά Συστήματα Ελέγχου
Οι ψηφιακές απειλές ενάντια στα Βιομηχανικά Συστήματα Ελέγχου (αγγλ. Industrial Control Systems ή ICS) βρίσκονται σε άνοδο. Τα ICS χρησιμοποιούνται σε κρίσιμες υποδομές που επηρεάζουν τις ζωές εκατομμυρίων, ωστόσο, όταν σχεδιάστηκαν, αναπτύχθηκαν ως επί το πλείστον με γνώμονα τη διαθεσιμότητα και όχι την ασφάλεια. Η ορατότητα ή ανιχνευσιμότητα και η επίβλεψη των συσκευών στα δίκτυα πληροφορικής (αγγλ. Information Technology ή IT networks) και στα επιχειρησιακά δίκτυα (αγγλ. Operational Technology ή OT networks) αποτελούν σημαντικά εργαλεία τόσο για την προστασία από τις απειλές στον κυβερνοχώρο, όσο και για τη διατήρηση της ομαλής λειτουργίας οποιουδήποτε βιομηχανικού δικτύου. Αυτή τη στιγμή, υπάρχει μία ποικιλία επιλογών από πλατφόρμες στην αγορά που παρέχουν αυτή τη λειτουργικότητα. Συγκεκριμένα, υπάρχουν μη-παρεμβατικά εργαλεία παρακολούθησης και επίβλεψης τα οποία διασφαλίζουν σε βάθος ορατότητα και προστασία στα ICS και SCADA δίκτυα. Σε αυτήν την προσπάθεια για καλύτερη ορατότητα των συσκευών και κυβερνοασφάλεια, η αυτόματη αναγνώριση των συσκευών που βρίσκονται σε ένα δίκτυο έχει σημαντικό ρόλο. Ο στόχος αυτής της διπλωματικής εργασίας είναι να σχεδιαστούν βελτιωμένες μέθοδοι βασισμένες σε δεδομένα ή τεκμήρια για την αυτόματη ταξινόμηση των δικτυακών συσκευών. Αναπτύξαμε μία μονάδα που ταξινομεί τις συσκευές του δικτύου συλλέγοντας τεκμήρια ως είσοδο από διαφορετικές πηγές στο δίκτυο, όπως από παθητικούς ή ενεργούς αισθητήρες που παρακολουθούν τη δικτυακή κίνηση και από δεδομένα δοσμένα από το χρήστη. Μέχρι τώρα, η διαδικασία ταξινόμησης ήταν ατελής κυρίως επειδή τα τεκμήρια που συλλέγονταν δεν συγκεντρώνονταν σε μία κεντρική οντότητα προκειμένου να πραγματοποιηθεί η ταξινόμηση βασισμένη σε ολόκληρο το σύνολο των δεδομένων από όλες τις πηγές του δικτύου. Αυτό οδηγούσε, σε ορισμένες περιπτώσεις, σε συσκευές που ταξινομούνταν με διάφορες, πολλαπλές τιμές και χωρίς κάποιο τρόπο να γνωρίζουμε πως να αξιολογήσουμε τα αποτελέσματα αυτά. Με τη νέα εφαρμογή, ο σκοπός μας είναι να αναθέτουμε μία συγκεκριμένη τιμή στην κάθε συσκευή (π.χ. PLC), να έχουμε τη δυνατότητα να καθορίσουμε το επίπεδο εμπιστοσύνης της ανάθεσής μας (π.χ. 70%) και να μπορεί να δοθεί η λογική πίσω από την κάθε απόφαση (π.χ. nmap query), συλλέγοντας δεδομένα ή τεκμήρια από τις διάφορες πηγές. Αυτές οι τεχνικές θα ερευνηθούν και θα δοκιμαστούν σε δίκτυα OT, αλλά μπορούν επίσης να γενικευτούν σε δίκτυα IT και Διαδικτύου των Πραγμάτων (αγγλ. Internet of Things ή IoT).
Ιάσωνας Χατζηκώστας
Wolie: μια mobile εφαρμογή για τη διαχείριση προγραμμάτων επιβράβευσης
Τα τελευταία χρόνια, ο χώρος της εστίασης και συγκεκριμένα των καταστημάτων τύπου takeaway ή που εξυπηρετούν με delivery, έχει γνωρίσει πολύ μεγάλη ανάκαμψη με το μέγεθος της αγοράς να φτάνει τα 1.5 δισεκατομμύρια ευρώ (€). Φυσικά, η ραγδαία αύξηση της τεχνολογίας αποτέλεσε καταλυτικό ρόλο καθώς δημιούργησε νέα εργαλεία για τα καταστήματα ώστε να μπορέσουν να αυξήσουν τον τζίρο τους. Λαμπρά παραδείγματα αποτελούν το efood [1] και ο deliveras [2] όπου αποτελόυν το 90% της ελληνικής αγοράς [3]. Ο σκοπός της παρούσας διπλωματικής εργασίας είναι να δείξει την ανάπτυξη και εξέλιξη που μπορεί να έχει μια ιδέα σε προϊόν όταν ακολουθούμε την μεθοδολογία Lean Startup (Build Measure Learn). Συγκεκριμένα θα εστιάσουμε στον χώρο της εστίασης και θα εξετάσουμε πόσο νόημα έχει μια συγκεντρωτική εφαρμογή προγραμμάτων επιβράβευσης που να επιτρέπει στο κάθε κατάστημα να τρέχει τα δικά του προγράμματα. Για την υλοποίηση κατασκευάστηκε μια mobile εφαρμογή η οποία δίνει τη δυνατότητα στον χρήστη να εγγραφεί σε πολλά διαφορετικά καταστήματα, να σκανάρει το χαρακτηριστικό QR code του εκάστοτε μαγαζιού, να μαζεύει πόντους ή στάμπες και να κερδίζει τα ανάλογα δώρα όταν συμπληρώσει το απαιτούμενο όριο. Επίσης, υπάρχει η δυνατότητα ανταλλαγής πόντων μεταξύ των χρηστών που είναι εγγεγραμμένοι στο ίδιο μαγαζί. Τέλος, το μαγαζί έχει την δυνατότητα να δέχεται και να απορρίπτει τα αιτήματα που δέχεται, καθώς και να ορίζει το πρόγραμμα επιβράβευσης αλλά και τα χαρακτηριστικά που θέλει να έχει.
Αλέξανδρος Δελιτζάς
Κατανόηση της Αισθητικής Ιστοσελίδων με Βαθιά Μάθηση
Η αισθητική μιας ιστοσελίδας αποτελεί σημαντικό παράγοντα για την προσέλκυση χρηστών και πελατών καθώς και για τη βελτίωση της εμπειρίας κατά την πλοήγηση τους. Σε αυτήν την εργασία, προτείνεται ένα εργαλείο το οποίο αυτοματοποιημένα αξιολογεί την αισθητική μιας ιστοσελίδας. Για το σκοπό αυτό, δημιουργήθηκαν μοντέλα βαθιάς μάθησης τα οποία παρουσιάζουν υψηλή συσχέτιση με την ανθρώπινη αντίληψη περί αισθητικής. Για την ανάπτυξη των μοντέλων χρησιμοποιήθηκαν δύο διαφορετικά σύνολα δεδομένων. Το πρώτο δημιουργήθηκε με rating-based αξιολόγηση, δηλαδή περιέχει βαθμολογίες χρηστών σε ιστοσελίδες με τη μορφή αριθμητικής τιμής μέσα σε μια κλίμακα. Με βάση αυτό, υλοποιήθηκαν μοντέλα με 3 διαφορετικές προσεγγίσεις, ξεπερνώντας την απόδοση σχετικών ερευνών στον κλάδο. Έπειτα, κατασκευάστηκε ένα νέο σύνολο δεδομένων με χρήση comparison-based αξιολόγησης, η οποία αποτελεί μια πιο αξιόπιστη και φυσική μέθοδο από την rating-based. Σε αυτήν την περίπτωση, το ζητούμενο από το χρήστη ήταν να συγκρίνει ζεύγη ιστοσελίδων και να επιλέξει ποια θεωρεί αισθητικά πιο ελκυστική. Η συλλογή έγινε μέσω μιας εφαρμογής που υλοποιήθηκε, ειδικά σχεδιασμένης για το σκοπό αυτό. Στα πειράματα που διεξάγονται, γίνεται αξιολόγηση του κάθε μοντέλου ξεχωριστά και σύγκριση των δύο προσεγγίσεων. Σκοπός της εργασίας είναι αφενός να επιδείξει την καταλληλότητα της βαθιάς μάθησης για την επίλυση του προβλήματος και αφετέρου να τονίσει τη σημασία της comparison-based αξιολόγησης για την επίτευξη αξιόπιστου αποτελέσματος. Στο τελικό στάδιο, υλοποιήθηκε ένα εργαλείο το οποίο μετράει την αισθητική μιας ιστοσελίδας, δίνοντας ως είσοδο μόνο το URL της. Το εργαλείο αυτό μπορεί να αποτελέσει έναν αξιόπιστο οδηγό στα χέρια των σχεδιαστών και των προγραμματιστών κατά τη διάρκεια της φάσης σχεδιασμού.
Βασίλειος Ματσούκας
Αυτοματοποίηση Ανάθεσης Εργασιών με Εφαρμογή Τεχνικών Εξόρυξης Γνώσης σε Αποθετήρια Ανοιχτού Λογισμικού
Ο βασικός στόχος της διπλωματικής εργασίας είναι η ανάπτυξη ενός συστήματος ανάκτησης βίντεο με βάση το ηχητικό περιεχόμενο, με χρήση τεχνικών βαθιάς μάθησης. Η μέθοδος που αναπτύσσεται, είναι προσαρμογή της state of the art μεθόδου ViSiL, που αποτελεί μία αρχιτεκτονική εκμάθησης ομοιότητας βίντεο και λαμβάνει υπόψη τις χωροχρονικές σχέσεις μεταξύ των βίντεο, πάνω στο ηχητικό περιεχόμενο. Έτσι, η προτεινόμενη μέθοδος ονομάζεται ViSiLaudio. Για την εξαγωγή αντιπροσωπευτικών περιγραφέων για τα βίντεο, πραγματοποιείται μεταφορά μάθησης (transfer learning) από ένα συνελικτικό νευρωνικό δίκτυο που έχει εκπαιδευτεί σε ένα μεγάλης κλίμακας σύνολο δεδομένων ηχητικών γεγονότων. Συγκρίνοντας τους περιγραφείς δύο βίντεο, προκύπτει ένας πίνακας ομοιότητας, ο οποίος περιέχει τα σκορ ομοιότητας κάθε χρονικού παραθύρου του ενός βίντεο με κάθε χρονικό παράθυρο του άλλου. Ο πίνακας αυτός, στη συνέχεια προωθείται σε ένα συνελικτικό νευρωνικό δίκτυο με σκοπό την αναγνώριση χρονικών μοτίβων εντός του πίνακα ομοιότητας μεταξύ των βίντεο. Η έξοδος του δικτύου αυτού συνοψίζεται χρησιμοποιώντας την ομοιότητα Chamfer (Chamfer Similarity) σε ένα τελικό σκορ ομοιότητας μεταξύ των συγκρινόμενων βίντεο. Το προτεινόμενο δίκτυο εκπαιδεύεται με τη χρήση της συνάρτησης κόστους τριπλετών (triplet loss), η οποία αυξάνει το σκορ ομοιότητας μεταξύ βίντεο που είναι σχετικά και το μειώνει μεταξύ άσχετων βίντεο. Σε μία προσπάθεια προσομοίωσης του προβλήματος της ανάκτησης βίντεο με βάση το ηχητικό περιεχόμενο, πραγματοποιήθηκε προσθήκη σχολιασμών (annotation) για τις ηχητικές σχέσεις μεταξύ των βίντεο στο σύνολο δεδομένων FIVR-200K. Ακόμη, για την αξιολόγηση της προτεινόμενης μεθόδου, υλοποιήθηκαν δύο state of the art μέθοδοι. Στο νέο σύνολο δεδομένων που προέκυψε, η μέθοδος ViSiLaudio ξεπερνάει σε απόδοση τις δύο συγκρινόμενες, σε ποσοστό 14% και 34% αντίστοιχα. Επίσης, πραγματοποιήθηκε αξιολόγηση πάνω σε τρία σύνολα δεδομένων ανάκτησης βίντεο με βάση το οπτικό περιεχόμενο. Στα δύο από τα τρία, η ViSiLaudio ξεπερνάει τις συγκρινόμενες, ενώ στο τρίτο, η μία από τις συγκριτικές μεθόδους ξεπερνάει οριακά την προτεινόμενη. Τέλος, εξετάστηκε κατά πόσο μπορούν οι ηχητικές μέθοδοι σε συνδυασμό με τις οπτικές να βελτιώσουν τα αποτελέσματα. Ο συνδυασμός αυτός βελτιώνει τα αποτελέσματα, αλλά οριακά.
Λάμπρος Μακροδημήτρης
Σχεδίαση και Ανάπτυξη Αυτόματου Χρηματιστή Ενέργειας για τον Διαγωνισμό PowerTac
Παύλος Αυγουστινάκης
Ανάκτηση βίντεο με βάση το ηχητικό περιεχόμενο από συλλογές μεγάλης κλίμακας με τη χρήση βαθιάς μάθησης
Ο βασικός στόχος της διπλωματικής εργασίας είναι η ανάπτυξη ενός συστήματος ανάκτησης βίντεο με βάση το ηχητικό περιεχόμενο, με χρήση τεχνικών βαθιάς μάθησης. Η μέθοδος που αναπτύσσεται, είναι προσαρμογή της state of the art μεθόδου ViSiL, που αποτελεί μία αρχιτεκτονική εκμάθησης ομοιότητας βίντεο και λαμβάνει υπόψη τις χωροχρονικές σχέσεις μεταξύ των βίντεο, πάνω στο ηχητικό περιεχόμενο. Έτσι, η προτεινόμενη μέθοδος ονομάζεται ViSiLaudio. Για την εξαγωγή αντιπροσωπευτικών περιγραφέων για τα βίντεο, πραγματοποιείται μεταφορά μάθησης (transfer learning) από ένα συνελικτικό νευρωνικό δίκτυο που έχει εκπαιδευτεί σε ένα μεγάλης κλίμακας σύνολο δεδομένων ηχητικών γεγονότων. Συγκρίνοντας τους περιγραφείς δύο βίντεο, προκύπτει ένας πίνακας ομοιότητας, ο οποίος περιέχει τα σκορ ομοιότητας κάθε χρονικού παραθύρου του ενός βίντεο με κάθε χρονικό παράθυρο του άλλου. Ο πίνακας αυτός, στη συνέχεια προωθείται σε ένα συνελικτικό νευρωνικό δίκτυο με σκοπό την αναγνώριση χρονικών μοτίβων εντός του πίνακα ομοιότητας μεταξύ των βίντεο. Η έξοδος του δικτύου αυτού συνοψίζεται χρησιμοποιώντας την ομοιότητα Chamfer (Chamfer Similarity) σε ένα τελικό σκορ ομοιότητας μεταξύ των συγκρινόμενων βίντεο. Το προτεινόμενο δίκτυο εκπαιδεύεται με τη χρήση της συνάρτησης κόστους τριπλετών (triplet loss), η οποία αυξάνει το σκορ ομοιότητας μεταξύ βίντεο που είναι σχετικά και το μειώνει μεταξύ άσχετων βίντεο. Σε μία προσπάθεια προσομοίωσης του προβλήματος της ανάκτησης βίντεο με βάση το ηχητικό περιεχόμενο, πραγματοποιήθηκε προσθήκη σχολιασμών (annotation) για τις ηχητικές σχέσεις μεταξύ των βίντεο στο σύνολο δεδομένων FIVR-200K. Ακόμη, για την αξιολόγηση της προτεινόμενης μεθόδου, υλοποιήθηκαν δύο state of the art μέθοδοι. Στο νέο σύνολο δεδομένων που προέκυψε, η μέθοδος ViSiLaudio ξεπερνάει σε απόδοση τις δύο συγκρινόμενες, σε ποσοστό 14% και 34% αντίστοιχα. Επίσης, πραγματοποιήθηκε αξιολόγηση πάνω σε τρία σύνολα δεδομένων ανάκτησης βίντεο με βάση το οπτικό περιεχόμενο. Στα δύο από τα τρία, η ViSiLaudio ξεπερνάει τις συγκρινόμενες, ενώ στο τρίτο, η μία από τις συγκριτικές μεθόδους ξεπερνάει οριακά την προτεινόμενη. Τέλος, εξετάστηκε κατά πόσο μπορούν οι ηχητικές μέθοδοι σε συνδυασμό με τις οπτικές να βελτιώσουν τα αποτελέσματα. Ο συνδυασμός αυτός βελτιώνει τα αποτελέσματα, αλλά οριακά.
Ευάγγελος Παπαθωμάς
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
Στην εποχή μας, πληθώρα παραδειγμάτων λογισμικού βρίσκονται σε αποθετήρια λογισμικού και σε ιστοσελίδες προγραμματιστικού περιεχομένου. Παρόλα αυτά, η αναζήτησή τους αποτελεί προβληματική διαδικασία, καθώς οι μηχανικοί λογισμικού αναγκάζονται να χρησιμοποιούν συμβατικές μηχανές αναζήτησης οι οποίες δεν εξετάζουν τη χρησιμότητα των αποτελεσμάτων τους. Η δαπάνη χρόνου που απαιτείται για την αξιολόγηση των αποτελεσμάτων δυσκολεύει και επιβραδύνει το έργο των μηχανικών. Για την αντιμετώπιση αυτών των προβλημάτων αναπτύχθηκαν συστήματα προτάσεων τα οποία έχουν ως στόχο την ανάλυση ερωτημάτων και την επιστροφή παραδειγμάτων κώδικα σχετικού περιεχομένου. Το εγχείρημα αυτών των συστημάτων, ωστόσο, αποδείχθηκε εξαιρετικά δύσκολο λόγω της συντακτικής διαφορετικότητας μεταξύ της φυσικής γλώσσας και του κώδικα. Πολλά από τα συστήματα αυτά φέρουν σημαντικές αδυναμίες ως προς την μορφή των εισαγόμενων ερωτημάτων (π.χ. δε δέχονται ερωτήματα σε φυσική γλώσσα) και ως προς την απόδοση και την ποιότητα των αποτελεσμάτων τους. Επιπλέον, η πλειοψηφία των συστημάτων αυτών χρησιμοποιεί απλοϊκές αρχιτεκτονικές, με αποτέλεσμα να μην αξιοποιείται ως επί τω πλείστον η σημασιολογία των ερωτημάτων και του ζητούμενου κώδικα. Εξετάζοντας τα παραπάνω προβλήματα, οδηγηθήκαμε στο σχεδιασμό και στην υλοποίηση του CODEtransformer, ενός συστήματος που βελτιώνει τα αδύναμα σημεία πολλών συστημάτων προτάσεων κώδικα. Το σύστημά μας εξασφαλίζει την ποιότητα των δεδομένων του αντλώντας παραδείγματα κώδικα από αναγνωρισμένα αποθετήρια του GitHub. Τα δεδομένα αυτά υπόκεινται σε προεπεξεργασία με στόχο την αξιοποίηση του μεγαλύτερου ποσοστού της πληροφορίας τους. Στη συνέχεια, πραγματοποιείται εκπαίδευση ενός state-of-the-art Νευρωνικού Δικτύου, το οποίο έχει τη δυνατότητα να δέχεται ερωτήματα σε φυσική γλώσσα και να πραγματοποιεί σημασιολογική ανάλυση στα παραδείγματα κώδικα. Έπειτα, κατασκευάζεται ένας διανυσματικός χώρος παραδειγμάτων κώδικα, ο οποίος εξασφαλίζει τη βέλτιστη δυνατή χρονική απόκριση των αναζητήσεων. Τέλος, το σύστημά μας αξιολογείται ως προς την απόδοσή του σε σύγκριση με παρόμοια συστήματα, αλλά και με τη χρήση ερωτημάτων φυσικής γλώσσας τα οποία έχουν αντληθεί από το Stack Overflow.
Στυλιανός Πουλακάκης-Δακτυλίδης
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθετήρια Ανοικτού Λογισμικού για την Εύρεση και Διόρθωση Σφαλμάτων
Στη σημερινή πραγματικότητα, η εξέλιξη του διαδικτύου και η εδραίωση της πρωτοβουλίας ανοιχτού κώδικα άλλαξαν τον τρόπο που αναπτύσσεται το λογισμικό. Τα αποθετήρια φιλοξενίας πηγαίου κώδικα με έλεγχο εκδόσεων προωθούν ενεργά τη συνεργασία μεταξύ προγραμματιστών και χρησιμοποιούνται πλέον εκτενώς για τη δημιουργία καλύτερου λογισμικού ανοιχτού κώδικα. Ως αποτέλεσμα, τα έργα λογισμικού σήμερα χτίζονται συνεργατικά με την εφαρμογή διαδοχικών αναθεωρήσεων/αλλαγών, οι οποίες σχηματίζουν μοτίβα εξέλιξης κώδικα. Τα μοτίβα αυτά μπορούν να υποδείξουν γενικές και επαναχρησιμοποιήσιμες τροποποιήσεις κώδικα, και ως εκ τούτου η ανάγκη για μία μέθοδο αποτελεσματικής ανίχνευσης τους είναι υψίστης σημασίας. Ωστόσο, παρά τα oφέλη των συστημάτων ελέγχου εκδόσεων, οι προγραμματιστές εξακολουθούν να αντιμετωπίζουν δυσκολίες κατά την αναζήτηση τμημάτων πηγαίου κώδικα, συχνά καταναλώνοντας ένα τεράστιο ποσό του χρόνους τους. Κατά συνέπεια, τα συστήματα προτάσεων κώδικα είναι απαραίτητα για την αυτοματοποίηση της προαναφερθείσας διαδικασίας αναζήτησης και την αύξηση των συλλογικής γνώσης της προγραμματιστικής κοινότητας. Στην παρούσα διπλωματική εργασία, προτείνουμε ένα σύστημα εξόρυξης commits από το GitHub προκειμένου να εξαγάγουμε αλλαγές στον πηγαίο κώδικα που μπορούν να υποδείξουν χρήσιμες τροποποιήσεις κώδικα ή ακόμη και να οδηγήσουν σε αυτοματοποιημένη διόρθωση σφαλμάτων. Η προσέγγισή μας εφαρμόζεται σε ένα μεγάλο αριθμό αποθετηρίων και χρησιμοποιεί το αφηρημένο συντακτικό δέντρο (AST) για κάθε μπλοκ κώδικα σε συνδυασμό με το μήνυμα του εκάστοτε commit. Στη συνέχεια, σχεδιάζεται ένα μοντέλο ομοιότητας για commits, το οποίο είναι αποτελεσματικό για τον εντοπισμό ομοιότητας μεταξύ τμημάτων πηγαίου κώδικα, και συνεπώς αποκαλύπτει χρήσιμα μοτίβα και επαναλαμβανόμενες διορθώσεις σφαλμάτων. Τέλος, αναπτύσσουμε ένα εργαλείο προτάσεων (Commit Recommender) που μπορεί να χρησιμοποιηθεί με επιτυχία για να παρέχει ουσιαστικές συστάσεις για εκτελέσιμες αλλαγές πηγαίου κώδικα και μηνύματα σε διαφορετικά σενάρια χρήσης.
Γεώργιος Μπαλαούρας
Συλλογή και Ανάλυση Δεδομένων Κατανάλωσης Ενέργειας Κινητών Τηλεφώνων με Χρήση Τεχνικών Μηχανικής Μάθησης
Στη σύγχρονη εποχή είναι αδιαμφισβήτητη πραγματικότητα πως τα «έξυπνα» κινητά τηλέφωνα αποτελούν κυρίαρχο στοιχείο της ζωής του ανθρώπου. Με το πάτημα ενός κουμπιού μπορεί κάποιος να ενημερωθεί για τις εξελίξεις παγκοσμίως, να επικοινωνήσει με άτομα από την άλλη άκρη του πλανήτη και να ψυχαγωγηθεί. Ειδικότερα, κύριος πόλος έλξης τους αποτελεί η φορητότητα τους, η οποία κατέστη δυνατή μέσω της αξιοποίησης των μπαταριών. Ωστόσο, αυτές διαθέτουν συγκεκριμένο αριθμό επαναφορτίσεων και συνεπώς, η διάρκεια ζωής μιας συσκευής εξαρτάται άμεσα από τον τύπο χρήσης της και τη στρατηγική επαναφόρτισης της. Η παρούσα διπλωματική εργασία ασχολείται με την ανάλυση της χρήσης των κινητών τηλεφώνων και την εκτίμηση της κατανάλωσης ενέργειας (energy drain) της μπαταρίας τους. Αρχικά, για τη συλλογή των δεδομένων αναπτύχθηκε η εφαρμογή BatteryApp, η οποία περιοδικά καταγράφει τις λειτουργίες της συσκευής και τις πληροφορίες της μπαταρίας. Στη συνέχεια, ακολουθεί η ομαδοποίηση (clustering) όμοιων τύπων χρήσεων των συσκευών μέσω της ιεραρχικής ομαδοποίησης, η οποία δεν επιβάλει την εξ’ αρχής (apriori) επιλογή συγκεκριμένου αριθμού ομάδων και δεν εισάγει περιορισμούς στη συνάρτηση απόστασης που θα επιλεχθεί. Έπειτα, αυτή αξιολογείται ως προς το περιεχόμενό της, έτσι ώστε να επιλεγούν εκείνες οι ομάδες που περιέχουν την περισσότερη πληροφορία. Τέλος, για την εκτίμηση του energy drain, χρησιμοποιήθηκαν ένα απλό γραμμικό μοντέλο, δύο παραλλαγές της γραμμικής παλινδρόμησης, όπου εισάγεται η έννοια της ποινής (Ridge και Lasso Regression), και ένα μη γραμμικό μοντέλο, που ανήκει στην κατηγορία του Ensemble Learning (eXtreme Gradient Boosted trees), με τη διαδικασία μάθησης των παραμέτρων να πραγματοποιείται σε κάθε μια από τις επιλεγμένες ομάδες ξεχωριστά.
Ραφαήλ Μπρούζος
Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανικής λογισμικού
Η ρομποτική είναι μια επιστήμη που έχει εισχωρήσει στις ζωές μας με τον έναν ή τον άλλο τρόπο. Παρά τις τεράστιες προοπτικές επέκτασης που διαθέτει, στις περισσότερες περιπτώσεις, τα ρομποτικά συστήματα που χρησιμοποιούνται στην αγορά είναι ξεπερασμένα και δεν ακολουθούν την ραγδαία εξέλιξη των ακαδημαϊκών ερευνών. Τα πρότυπα, οι πλατφόρμες και οι δυνατότητες των βέλτιστων ρομποτικών λύσεων ανήκουν σε εξειδικευμένους προγραμματιστές, παρουσιάζουν υψηλό κόστος και δεν προσδίδουν ιδιαίτερη ευελιξία. Η ανάγκη για αυτόματη παραγωγή λογισμικού για ρομποτικές εφαρμογές είναι γεγονός και θα μπορούσε να κάνει τα σύγχρονα ρομποτικά συστήματα προσιτά για όλους. Η μοντελο-κεντρική μηχανική (Model-Driven Engineering) υπόσχεται την αυτόματη παραγωγή λογισμικού μέσα από μοντέλα που συνθέτει ο χρήστης, σε γλώσσες που ευνοούν την εκάστοτε εφαρμογή. Τα μοντέλα συνήθως εκφράζονται σε γλώσσες πεδίου (Domain Specific Language), οι οποίες είναι κατασκευασμένες για την σύνταξη μοντέλων εντός ενός συγκεκριμένου εύρους εφαρμογών. Είναι ιδιαίτερα εκφραστικές, περιορίζουν τα λάθη και ευνοούν τους ειδικούς του κλάδου. Η χρήση τέτοιων τεχνικών θα μπορούσε να μειώσει το κόστος της παραγωγής λογισμικού για ρομπότ και να επιτρέψει σε περισσότερους χρήστες, χωρίς γενικές γνώσεις εκτός του κλάδου, να συμμετέχουν στην διαδικασία ανάπτυξης λογισμικού για ρομποτικά συστήματα. Το ROS 2 είναι ένα μεσολογισμικό για ρομποτικές εφαρμογές που χρησιμοποιείται ευρέως, ειδικά σε ακαδημαϊκό επίπεδο. Εισάγει αφαιρετικά επίπεδα κατά την ανάπτυξη ρομποτικού λογισμικού και είναι ανεξάρτητο από το υλικό. Η πολυπλοκότητά του και η εκπαίδευση που απαιτεί για να χρησιμοποιηθεί είναι οι κυριότεροι λόγοι που δεν έχει αξιοποιηθεί όσο θα μπορούσε στην βιομηχανία. Η παρούσα εργασία φιλοδοξεί να αξιοποιήσει τις δυνατότητες του ROS 2 μέσα από μια προσέγγιση μοντελο-κεντρικής μηχανικής. Αφενός μελετάται ο κλάδος της μοντελο-κεντρικής μηχανικής και αφετέρου το ROS 2 και οι δυνατότητες που μπορούν να αξιοποιηθούν από αυτά σε κάθε περίπτωση. Στα πλαίσια της παρούσας εργασίας αναπτύχθηκε το Generos, ένα λογισμικό αυτόματης παραγωγής ROS 2 συστημάτων. Το Generos το πλαισιώνει η GRS, μια γλώσσα πεδίου που δημιουργήθηκε για να συντάσσονται μοντέλα ROS 2 συστημάτων. Το Generos είναι ικανό να παράξει συστήματα με την απαιτούμενη δομή, ανάλογα με την εφαρμογή και απαιτεί από τον χρήστη μόνο ρομποτικές γνώσεις. Περιορίζει τα λάθη μέσα από διάφορα βήματα επαλήθευσης και επιταχύνει ιδιαίτερα την διαδικασία ανάπτυξης.
Θεόφιλος Γεωργιάδης
Σύστημα υπόδειξης βιβλιοθηκών με σκοπό την επανάχρηση τμημάτων λογισμικού
Το σύστημα αυτό βοηθάει τους προγραμματιστές στην εύρεση έτοιμων βιβλιοθηκών για τη γλώσσα python. Ο προγραμματιστής διατυπώνει ένα ερώτημα σε φυσική γλώσσα και αυτό του επιστρέφει τις 10 πιο σχετικές βιβλιοθήκες. Βασίζεται σε ένα γράφο, οι κόμβοι του οποίου αποτελούνται από λέξεις κλειδιά και βιβλιοθήκες που έχουν εξαχθεί από διάφορα αρχεία πηγαίου κώδικα. Για κάθε λέξη κλειδί που εμφανίζεται μαζί με μια βιβλιοθήκη μέσα σε ένα αρχείο κώδικα, υπάρχει ακμή μεταξύ τους. Το βάρος της ακμής αυτής είναι ίσο με τον αριθμό των αρχείων που έχουν βρεθεί να εμφανίζονται μαζί. Με βάση αυτόν τον γράφο, εξάγονται αναπαραστάσεις για το κάθε κόμβο του γράφου. Τέλος, χρησιμοποιώντας αυτές τις αναπαραστάσεις και μια μέθοδο υπολογισμού ομοιότητας, υπολογίζεται η ομοιότητα κάθε βιβλιοθήκης με τις λέξεις κλειδιά και εξάγεται μια πρόβλεψη για τις 10 βιβλιοθήκες με τις μεγαλύτερες τιμές ομοιότητας.
Δημήτριος Γουγούσης
Ανάπτυξη εργαλείου αυτόματης μηχανικής μάθησης για πρόβλεψη βέλτιστων τιμών υπερπαραμέτρων με χρήση μετα-μάθησης
Τα οφέλη της μηχανικής μάθησης είναι πλέον αδιαμφισβήτητα στους περισσότερους, αν όχι όλους τους τομείς της ανθρώπινης δραστηριότητας. Από την πρόγνωση του καιρού μέχρι τον χαρακτηρισμό ενός όγκου ως καλοήθη ή κακοήθη, η εφαρμογή μηχανικής μάθησης επιταχύνει και διευκολύνει την επίλυση του εκάστοτε προβλήματος. Η ανάπτυξη όμως κατάλληλου μοντέλου μηχανικής μάθησης για ένα δεδομένο πρόβλημα είναι μια χρονοβόρα διαδικασία που απαιτεί γνώση η οποία προέρχεται από την εμπειρία και τη συνεχή ενασχόληση με το αντικείμενο. Τα παραπάνω εμπόδια γίνεται να απομακρυνθούν μέσω της αυτοματοποιημένης μηχανικής μάθησης που, όπως δηλώνει το όνομα, επιχειρεί να αυτοματοποιήσει τη διαδικασία ανάπτυξης μοντέλων μηχανικής μάθησης, και έτσι τα οφέλη αυτής να γίνουν ευρύτερα διαθέσιμα. Αρωγός στο εγχείρημα αυτό βρίσκεται ο κλάδος της μετα-μάθησης, ο οποίος μελετά τις επιδόσεις διαφορετικών μοντέλων μηχανικής μάθησης σε ένα ευρύ φάσμα προβλημάτων και στη συνέχεια χρησιμοποιεί την εμπειρία αυτή για να \"προβλέπει\" το καταλληλότερο μοντέλο δεδομένου ενός προβλήματος, αποφεύγοντας τη διαδικασία δοκιμής - σφάλματος. Η εργασία αυτή ασχολείται με το πρόβλημα αυτοματοποίησης της μηχανικής μάθησης χρησιμοποιώντας τεχνικές μετα-μάθησης συγκεκριμένα για προβλήματα παλινδρόμησης. Στόχος της εργασίας αυτής είναι η ανάπτυξη ενός συστήματος το οποίο μπορεί να αποφαίνεται απευθείας για τις βέλτιστες τιμές υπερπαραμέτρων τριών αλγορίθμων, δεδομένων των προς επεξεργασία δεδομένων. Έτσι εξοικονομείται σημαντικός χρόνος κατά την ανάπτυξη του μοντέλου και διευκολύνεται η χρήση μηχανικής μάθησης από περισσότερες ομάδες ανθρώπων.
Ειρήνη Παντελίδου
Σχεδίαση και ανάπτυξη συστήματος σταδιακής (incremental) στατικής ανάλυσης έργων λογισμικού
Στην σημερινή εποχή, η τεχνολογία λογισμικού έχει πραγματοποιήσει ραγδαία βήματα. Κατόπιν ενδελεχούς έρευνας στο διαδίκτυο διαπιστώθηκε ότι υπάρχουν αποθήκες ανοιχτού λογισμικού (GitHub), οι οποίες περιέχουν πληθώρα έργων λογισμικού, με τα περισσότερα από αυτά να είναι ιδιαίτερα σύνθετα και περίπλοκα. Καθώς, όμως αναφερόμαστε σε προϊόντα ανοιχτού λογισμικού συνειδητοποιούμε ότι αυτά πρόκειται για έργα, τα οποία μεταβάλλονται συνεχώς και σε πραγματικό χρόνο, ως προς το πλήθος και τον κώδικα των αρχείων τους. Επομένως, η προγραμματισμένη στατική ανάλυση ολόκληρου του έργου από την αρχή, μία φορά την ημέρα ή την εβδομάδα δεν αρκεί, διότι καθυστερεί την ανατροφοδότηση των προγραμματιστών. Τις περισσότερες φορές, η στατική ανάλυση αποσκοπεί στην ανίχνευση και γνωστοποίηση στον προγραμματιστή, των σφαλμάτων, των αδυναμιών ασφαλείας των παραβιάσεων κανόνων προγραμματισμού του κώδικα. Όμως, αυτό που χρειάζεται πραγματικά να γνωρίζει ένας προγραμματιστής είναι, πώς κάθε μεταβολή αρχείου επηρεάζει ποιοτικά το έργο λογισμικού στο σύνολο του. Αυτό τον σκοπό εξυπηρετεί η στατική ανάλυση με την παραγωγή των μετρικών ποιότητας. Η ανάγκη, λοιπόν για έγκαιρη γνώση της ποιοτικής μεταβολής του έργου λογισμικού οδήγησε στην εκπόνηση της παρούσας διπλωματικής εργασίας, η οποία έχει ως στόχο τον υπολογισμό των μετρικών στατικής ανάλυσης μόνο των αρχείων κώδικα, που μεταβάλλονται κάθε στιγμή και όχι ολόκληρου του έργου λογισμικού από την αρχή. Σε αυτά τα πλαίσια, σχεδιάστηκε ένα σύστημα, το οποίο από το σύνολο των αρχείων του αποθετηρίου απομονώνει απευθείας αυτά που μεταβάλλονται και επηρεάζονται άμεσα και κατόπιν με τη χρήση ενός μηχανισμού στατικής ανάλυσης εξάγει τις νέες τιμές των μετρικών ποιότητας αποκλειστικά και μόνο για τα μεταβαλλόμενα αρχεία. Από τα αποτελέσματα χρήσης του συγκεκριμένου συστήματος προκύπτει ότι, αυτό συμβάλει δυναμικά στον συνεχή έλεγχο ποιότητας έργων λογισμικού, αφού προσφέρει άμεση και στοχευμένη πληροφόρηση περί των εισαγόμενων αλλαγών. Επιπλέον, δίνει τη δυνατότητα εξοικονόμησης χρόνου και πόρων και βοηθάει στην ποιοτική βελτιστοποίηση των προϊόντων, αφού προλαμβάνει τον προγραμματιστή από την άσκοπη ανάλωση του στη συνέχιση δόμησης ενός έργου λογισμικού επάνω σε μη ποιοτικά τμήματα κώδικα.
Χάρης Ελευθεριάδης
Αξιολόγηση της Ευρωστίας των Βαθιών Νευρωνικών Δικτύων σε Αντιπαραθετικά Παραδείγματα
Η Βαθιά Μάθηση και τα Τεχνητά Νευρωνικά Δίκτυα σημειώνουν εξαιρετική επίδοση σε πληθώρα εργασιών, για αυτό και προτιμούνται έναντι άλλων μεθόδων στις περισσότερες εφαρμογές Τεχνητής Νοημοσύνης. Παρατηρήθηκε όμως, πως μικρές παραλλαγές των εισόδων τους, οδηγούν την συγκεκριμένη κατηγορία αλγορίθμων σε μη προβλέψιμη συμπεριφορά. Αυτό έχει σαν αποτέλεσμα να εγείρονται ερωτήματα σχετικά με την ασφάλεια και αξιοπιστία των εν λόγω μοντέλων, με το φαινόμενο να παίρνει σημαντικές διαστάσεις αν αναλογιστεί κανείς την σημαντικότητα των τεχνολογικών εγχειρημάτων όπου βρίσκουν εφαρμογή τα Βαθιά Νευρωνικά Δίκτυα. Αυτοκινούμενα Οχήματα, Συστήματα Αναγνώρισης Ταυτότητας και Αναγνώριση Φωνής είναι μερικά μόνο παραδείγματα εφαρμογών, όπου η ασφάλεια είναι ύψιστης σημασίας. Για αυτό τον λόγο, μελετώνται οι πιθανοί τρόποι προσβολής των συγκεκριμένων συστημάτων μέσω μεθόδων Αντιπαραθετικών Επιθέσεων, αλλά και οι μέθοδοι αύξησης της ευρωστίας των μοντέλων, έτσι ώστε αυτά να είναι ανθεκτικά έναντι ανάλογων κακόβουλων πρωτοβουλιών. Στην παρούσα εργασία πραγματοποιείται μελέτη και αξιολόγηση των state-of-the-art μεθόδων επίθεσης και αύξησης της ευρωστίας Βαθιών Νευρωνικών Δικτύων διαφορετικής πολυπλοκότητας. Προς αυτή την κατεύθυνση προτείνεται μια εναλλακτική προσέγγιση μέσω της οποίας επιτυγχάνεται δημιουργία εύρωστων μοντέλων έναντι κατηγοριών επιθέσεων οι οποίες δεν είχαν αντιμετωπιστεί έως τώρα.
Ιωάννης Φλιώνης
Δημιουργία εργαλείου ανίχνευσης ευπαθειών ασφαλείας σε διαδικτυακές εφαρμογές μέσω εκτέλεσης λειτουργικών ελέγχων
Η συνεχής ανάπτυξη και η ολοένα αυξανόμενη δημοφιλία που γνωρίζει το διαδίκτυο στις μέρες μας έχει επιφέρει αλλαγές σε πολλούς τομείς της ανθρώπινης ζωής. Ηλεκτρονικά εμπορικά καταστήματα, ηλεκτρονικές τραπεζικές συναλλαγές, μέσα κοινωνικής δικτύωσης και ανταλλαγής μηνυμάτων είναι μόνο μερικές από τις υπηρεσίες των διαδικτυακών εφαρμογών που αποτελούν αναπόσπαστο κομμάτι της καθημερινότητας του ανθρώπου του 21ου αιώνα. Η πιο σημαντική απαίτηση που προκύπτει στο διαδίκτυο, όπως και σε κάθε δίκτυο ή κοινωνία στην οποία οργανώνεται ο άνθρωπος, είναι αυτή της ασφάλειας. Η δημιουργία διαδικτυακών εφαρμογών, καθώς και η συνεχής συντήρησή τους αποτελεί μία επαναληπτική και συχνά επίπονη διαδικασία, η οποία απαιτεί αδιάλειπτη επικύρωση ώστε όλα τα στοιχεία τους να λειτουργούν με τον επιθυμητό τρόπο και αποτέλεσμα, δηλαδή χωρίς bugs, και ώστε να μην είναι ευάλωτες σε επιθέσεις. Η παρούσα διπλωματική εργασία έχει ως στόχο να συμβάλει στον συνδυασμό της εκτέλεσης των αυτοματοποιημένων λειτουργικών ελέγχων και των δοκιμών ασφάλειας, για την βελτίωση του εντοπισμού ευπαθειών. Προς την κατεύθυνση αυτή αναπτύχθηκε μία διαδικτυακή εφαρμογή, η οποία εκτελεί τέτοιους ελέγχους επάνω σε άλλες διαδικτυακές εφαρμογές με σκοπό την αποκάλυψη όσο το δυνατόν περισσότερων ευπαθειών μέσω της χρήσης ενός ήδη υπάρχοντος εργαλείου δοκιμών διείσδυσης. Επιπλέον, αναλύει τα αποτελέσματα και παρουσιάζει συγκριτικές λίστες και διαγράμματα, που δείχνουν τη βελτίωση (ή παρ\' ελπίδα την επιδείνωση) της ασφάλειας της εφαρμογής μέσα στον χρόνο.
Νικόλαος Γιαννόπουλος
Ανάπτυξη τεχνικών εξατομίκευσης διαφημιστικών προβολών ηλεκτρονικού καταστήματος με χρήση μηχανικής μάθησης
Η ραγδαία τεχνολογική ανάπτυξη των τελευταίων χρόνων, η βελτίωση των υπολογιστικών συστημάτων αλλά και η εξοικείωση ενός μεγάλου ποσοστού του παγκόσμιου πληθυσμού με τον ψηφιακό κόσμο έχει δώσει μία τεράστια ώθηση στο ηλεκτρονικό εμπόριο, το οποίο συνεχώς εξελίσσεται και εξυπηρετεί ολοένα και περισσότερες ανάγκες. Ταυτόχρονα η σημαντική αύξηση χρηστών και προϊόντων, που έρχεται ως αποτέλεσμα της προόδου αυτής, και η δυναμική είσοδος της μηχανικής μάθησης και της επιστήμης ανάλυσης δεδομένων στον χώρο της πληροφορικής, έδωσε την ευκαιρία στους ιστότοπους ηλεκτρονικών αγορών να μπορούν να βελτιώσουν σε μεγάλο βαθμό την εμπειρία πλοήγησης του χρήστη και να τους παρέχουν εξατομικευμένες προτάσεις προϊόντων που ανταποκρίνονται στις προτιμήσεις τους ξεχωριστά, γεγονός που σημαίνει και ταυτόχρονη αύξηση των πωλήσεων για τα ηλεκτρονικά καταστήματα. Εκτός της εξατομικευμένης απευθείας σύστασης προϊόντων στους καταναλωτές η οποία έχει κάνει σημαντική πρόοδο και έχει μελετηθεί αρκετά από την επιστημονική κοινότητα, υπάρχουν και οι διαφημιστικές προβολές (ή αλλιώς banners). Είναι αρκετά συχνές στις ιστοσελίδες ηλεκτρονικού εμπορίου και έχουν ως στόχο να βοηθήσουν και να προωθήσουν ομάδες προϊόντων στον καταναλωτή σύμφωνα με τις προτιμήσεις του ή κατηγοριοποιώντας τον σύμφωνα με βασικά στοιχεία του ηλεκτρονικού αποτυπώματος του. Η εξατομικευμένη σύσταση διαφημιστικών προβολών δεν έχει μελετηθεί στον ίδιο βαθμό με την εξατομίκευση προϊόντων και βρίσκει περισσότερη εφαρμογή σε μεγάλου βεληνεκούς πλατφόρμες ηλεκτρονικού εμπορίου. Αντικείμενο, λοιπόν, της διπλωματικής εργασίας είναι η σχεδίαση και κατασκευή ενός συστήματος εξατομικευμένης σύστασης διαφημιστικών προβολών πραγματικού χρόνου για ένα μεσαίου μεγέθους ηλεκτρονικό κατάστημα e-shop με δεδομένα επίσης πραγματικού χρόνου που θα βασίζεται σε μεθόδους και αλγορίθμους μηχανικής μάθησης. Στο πλαίσιο της εργασίας προτείνεται ένα σύστημα το οποίο λαμβάνοντας ως δεδομένα τις κινήσεις των χρηστών κατά τη διάρκεια της πλοήγησης, που χαρακτηρίζονται στον κόσμο της τεχνολογίας ως «clickstream» δεδομένα, να μπορούν με κάποια αποτελεσματικότητα να πετυχαίνουν το ενδιαφέρον των χρηστών και να προτείνουν διαφημιστικές προβολές οι οποίες αντιστοιχούν στις προτιμήσεις τους.
Ακανθόπουλος Ηλίας
Ευρωστία νευρωνικών δικτύων βαθειάς μάθησης
Με τη ραγδαία εξέλιξη της τεχνολογίας και τη συνεχώς αυξανόμενη διείσδυσή της στην καθημερινότητα, τα τελευταία χρόνια δίνεται ολοένα και μεγαλύτερο βάρος στην αυτοματοποιημένη λήψη αποφάσεων από υπολογιστικά συστήματα. Συνεπώς η προσοχή μας στρέφεται ολοένα και περισσότερο στην εφαρμογή τεχνικών Μηχανικής Μάθησης (Machine Learning), δηλαδή στον τρόπο με τον οποίο ένα υπολογιστικό σύστημα μπορεί να εκπαιδευτεί, προκειμένου να είναι σε θέση να λάβει τις ζητούμενες αποφάσεις. Πέρα από τα κλασικά πεδία εφαρμογής, ενδιαφέρον παρουσιάζουν οι εφαρμογές αυθεντικοποίησης (authentication) που συναντάμε καθημερινά, όπως η ταυτοποίηση μέσω αναγνώρισης προσώπου (face recognition) ή δακτυλικού αποτυπώματος (fingerprint). Πιο συγκεκριμένα, η Μηχανική Όραση (Computer Vision) είναι ο κλάδος της Τεχνητής Νοημοσύνης (Artificial Intelligence) που ασχολείται με την αντίληψη του υπολογιστή μέσω εικόνων, με απώτερο στόχο την εξομοίωση της λειτουργίας του ανθρώπινου ματιού. Όμως, καθώς τα υπολογιστικά συστήματα βρίσκονται σε θέση να αναγνωρίζουν αντικείμενα, πολύ συχνά συναντάται η περίπτωση όπου κάποια από αυτά αξιολογούνται λανθασμένα. Αν λάβει κανείς υπόψη του τη σημασία και τη σπουδαιότητα των αποφάσεων που καλούνται να λάβουν οι υπολογιστές, γίνεται αμέσως αντιληπτό πως δεν υπάρχουν περιθώρια για τέτοιου είδους σφάλματα. Για τον λόγο αυτό γίνεται έρευνα γύρω από τις ευπάθειες των υπολογιστικών συστημάτων, προκειμένου να εντοπιστούν και να ληφθούν τα απαραίτητα μέτρα. Κάθε μοντέλο λήψης αποφάσεων αντιλαμβάνεται ένα πλήθος αντικειμένων και τα αξιολογεί σύμφωνα με την εκπαίδευση που έχει λάβει. Στην παρούσα διατριβή μελετάται και αξιολογείται ένα σύνολο μοντέλων νευρωνικών δικτύων βαθειάς μάθησης ως προς την ευρωστία τους, δηλαδή την ικανότητά τους να αντεπεξέρχονται σε συνθήκες που τα ωθούν σε λανθασμένες αποφάσεις. Επίσης μέσω της μελέτης αυτής επιδιώκεται η ανάδειξη των αποτελεσματικότερων μεθόδων δημιουργίας εύρωστων μοντέλων, καθώς και μεθόδων πουαποσκοπούν στην περεταίρω θωράκιση ήδη υπαρχόντων μοντέλων.
Μπεκιάρης Θεοφάνης
Χάραξη βέλτιστου μονοπατιού και πλοήγηση αυτόνομου οχήματος σε δυναμικό περιβάλλον με και χωρίς δυναμικά εμπόδια
Η τεχνολογία της αυτόνομης οδήγησης μελετάται εκτενώς τα τελευταία χρόνια και ειδικότερα την τελευταία δεκαετία. Τόσο η επιστημονική κοινότητα όσο και η βιομηχανία καταβάλουν αξιοσημείωτες προσπάθειες για την ανάπτυξη της τεχνολογίας και τελικά προς την επίτευξη της αυτόνομης οδήγησης. Τα οχήματα και οι μεταφορές έχουν καθοριστικό ρόλο στην ανάπτυξη του εμπορίου και κατ’ επέκταση στην ανάπτυξη της κοινωνίας. Η αυτοματοποίηση της οδήγησης, στα επόμενα χρόνια, θα αυξήσει δραματικά την ασφάλεια των πολιτών, θα μειώσει το χρόνο των μεταφορών αλλά και την κυκλοφοριακή συμφόρηση των δρόμων. Η τεχνολογία της αυτόνομης οδήγησης είναι αρκετά περίπλοκη και η ανάπτυξη της αποτελεί πρόκληση για τον επιστημονικό τομέα. Η λειτουργία των αυτὸνομων οχημάτων απαιτεί πολύ καλή αντίληψη του περιβάλλοντος, άμεση απόκριση σε μεταβολές αυτού και συνεπώς αξιόπιστη εκτίμηση της θέσης των οχημάτων μέσα στον χώρο. Το όχημα πρέπει να διαθέτει την κατάλληλη τεχνολογία που να του επιτρέπει τη πλοήγηση του μέσα στο οδικό δίκτυο και την εκτέλεση πολύπλοκων σεναρίων οδήγησης. Για το σκοπό αυτό τα οχήματα είναι εξοπλισμένα με κατάλληλους αισθητήρες τελευταίας τεχνολογίας και με το κατάλληλο σύστημα ελέγχου και λήψης αποφάσεων. Η υλοποίηση τέτοιων συστημάτων είναι μια αρκετά περίπλοκη διαδικασία, αποτελούνται από επιμέρους συστήματα τα οποία είναι εξειδικευμένα στην επίλυση συγκεκριμένων προβλημάτων της αυτόνομης οδήγησης. Η παρούσα διπλωματική εργασία εστιάζει στην ανάπτυξη ενός συστήματος αυτόνομης οδήγησης οχημάτων. Σκοπός του συστήματος είναι να κατευθύνει το όχημα με βέλτιστο τρόπο, με ασφάλεια, και με σεβασμό ως προς τους κανόνες οδικής κυκλοφορίας, από ένα αρχικό σημείο σε ένα τελικό σημείο μέσα σε μία πόλη στην οποία υπάρχουν οχήματα και πεζοί. Το σύστημα αναπτύχθηκε σε μορφή μεμονωμένου συστήματος (ego-only system) και επιλέχθηκε η μορφή του αρθρωτού συστήματος (modular system). Η κατασκευὴ του λογισμικού ὲγινε με χρήση της γλώσσας προγραμματισμού Python και του μεσολογισμικού ROS. Για την ανάπτυξη του συστήματος χρησιμοποιήθηκε ο προσομοιωτής Carla, με τον οποίο έγιναν οι δοκιμές και τα πειράματα και η προσομοίωση της αυτόνομης οδήγησης. Το σύστημα αναπτύχθηκε σε αρθρωτή μορφή και κατ’ επέκταση αποτελείται από τα επιμέρους συστήματα α) αντὶληψης, β) επιλογής συμπεριφοράς, δ) πρόβλεψης συμπεριφορών, ε) κατασκευή βασικού μονοπατιού, στ) κατασκευής τοπικών μονοπατιών και, ζ) ελέγχου οχήματος. Το καθένα από τα συστήματα αυτά είναι υπεύθυνο για την εκτέλεση συγκεκριμένων διεργασιών (continue in full text)
Ραφαήλ Μπρούζος
Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανικής λογισμικού
Η ρομποτική είναι μια επιστήμη που έχει εισχωρήσει στις ζωές μας με τον έναν ή τον άλλο τρόπο. Παρά τις τεράστιες προοπτικές επέκτασης που διαθέτει, στις περισσότερες εριπτώσεις, τα ρομποτικά συστήματα που χρησιμοποιούνται στην αγορά είναι ξεπερασμένα και δεν ακολουθούν την ραγδαία εξέλιξη των ακαδημαϊκών ερευνών. Τα πρότυπα, οι πλατφόρμες και οι δυνατότητες των βέλτιστων ρομποτικών λύσεων ανήκουν σε εξειδικευμένους προγραμματιστές, παρουσιάζουν υψηλό κόστος και δεν προσδίδουν ιδιαίτερη ευελιξία. Η ανάγκη για αυτόματη παραγωγή λογισμικού για ρομποτικές εφαρμογές είναι γεγονός και θα μπορούσε να κάνει τα σύγχρονα ρομποτικά συστήματα προσιτά για όλους. Η μοντελο-κεντρική μηχανική (Model-Driven Engineering) υπόσχεται την αυτόματη παραγωγή λογισμικού μέσα από μοντέλα που συνθέτει ο χρήστης, σε γλώσσες που ευνοούν την εκάστοτε εφαρμογή. Τα μοντέλα συνήθως εκφράζονται σε γλώσσες πεδίου (Domain Specific Language), οι οποίες είναι κατασκευασμένες για την σύνταξη μοντέλων εντός ενός συγκεκριμένου εύρους εφαρμογών. Είναι ιδιαίτερα εκφραστικές, περιορίζουν τα λάθη και ευνοούν τους ειδικούς του κλάδου. Η χρήση τέτοιων τεχνικών θα μπορούσε να μειώσει το κόστος της παραγωγής λογισμικού για ρομπότ και να επιτρέψει σε περισσότερους χρήστες, χωρίς γενικές γνώσεις εκτός του κλάδου, να συμμετέχουν στην διαδικασία ανάπτυξης λογισμικού για ρομποτικά συστήματα. Το ROS 2 είναι ένα μεσολογισμικό για ρομποτικές εφαρμογές που χρησιμοποιείται ευρέως, ειδικά σε ακαδημαϊκό επίπεδο. Εισάγει αφαιρετικά επίπεδα κατά την ανάπτυξη ρομποτικού λογισμικού και είναι ανεξάρτητο από το υλικό. Η πολυπλοκότητά του και η εκπαίδευση που απαιτεί για να χρησιμοποιηθεί είναι οι κυριότεροι λόγοι που δεν έχει αξιοποιηθεί όσο θα μπορούσε στην βιομηχανία. Η παρούσα εργασία φιλοδοξεί να αξιοποιήσει τις δυνατότητες του ROS 2 μέσα από μια προσέγγιση μοντελο-κεντρικής μηχανικής. Αφενός μελετάται ο κλάδος της μοντελο-κεντρικής μηχανικής και αφετέρου το ROS 2 και οι δυνατότητες που μπορούν να αξιοποιηθούν από αυτά σε κάθε περίπτωση. Στα πλαίσια της παρούσας εργασίας αναπτύχθηκε το Generos, ένα λογισμικό αυτόματης παραγωγής ROS 2 συστημάτων. Το Generos το πλαισιώνει η GRS, μια γλώσσα πεδίου που δημιουργήθηκε για να συντάσσονται μοντέλα ROS 2 συστημάτων. Το Generos είναι ικανό να παράξει συστήματα με την απαιτούμενη δομή, ανάλογα με την εφαρμογή και απαιτεί από τον χρήστη μόνο ρομποτικές γνώσεις. Περιορίζει τα λάθη μέσα από διάφορα βήματα επαλήθευσης και επιταχύνει ιδιαίτερα την διαδικασία ανάπτυξης.
Κωνσταντίνος Λέτρος
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματικό Χρόνο Με Χρήση Τεχνικών Μηχανικής Μάθησης
Δεδομένης της ταχείας ανάπτυξης της τεχνητής νοημοσύνης τα τελευταία χρόνια, γεννάται το ερώτημα αν θα μπορούσε να αξιοποιηθεί προκειμένου να βελτιωθεί η ασφάλεια των διαδικτυακών υπηρεσιών. Τα τελευταία χρόνια το διαδίκτυο ολοένα και με μεγαλύτερο ρυθμό καταλαμβάνει θέση στις ζωές των ανθρώπων αποτελώντας ένα από τα βασικότερα μέσα ενημέρωσης, ψυχαγωγίας, επικοινωνίας και άλλα. Ωστόσο, δεν είναι λίγοι και εκείνοι οι οποίοι χρησιμοποιούν το διαδίκτυο αποσκοπώντας να αυξήσουν τα προσωπικά τους κέρδη, όχι πάντα με νόμιμα ή ηθικά μέσα. Ανακαλύπτοντας και εκμεταλλεύοντας ευπάθειες συστημάτων κακόβουλοι χρήστες του διαδικτύου μπορούν να αποκτούν πρόσβαση σε ευαίσθητα δεδομένα, να τα μεταπωλλούν σε τρίτους είτε ακόμα και να ρίχνουν ιστοσελίδες μεγάλων εταιριών ή κυβερνήσεων. Παράλληλα, ωστόσο, με την αύξηση της υπολογιστικής ισχύος και την ανάπτυξη των μαθηματικών και της στατιστικής σημειώθηκε σημαντική πρόοδος και στον τομέα της τεχνητής νοημοσύνης. Πρόκειται για ένα τομέα με εφαρμογές σε πολλά διαφορετικά πεδία όπως η εκπαίδευση, η οικονομία, η επιστήμη, η υγεία και άλλα. Τα τελευταία χρόνια χρησιμοποιείται επίσης στον τομέα της κυβερνοασφάλειας για την ανάπτυξη συστημάτων προστασίας τα οποία επιδιώκουν να προβλέψουν ή να εντοπίσουν μία επικείμενη επίθεση μειώνοντας κατά το δυνατόν την πιθανότητα εισβολής και κλοπής δεδομένων. Στα πλαίσια της παρούσας διπλωματικής αναπτύχθηκε ένα σύστημα που μπορεί να λειτουργεί ταυτόχρονα με μία διαδικτυακή εφαρμογή με στόχο την ανίχνευση αποκλίνουσας συμπεριφοράς χρηστών. Το σύστημα αυτό λειτουργεί και εντοπίζει τις ανωμαλίες αυτές σε πραγματικό χρόνο, ενώ λαμβάνει παράλληλα και μέτρα για τον αποκλεισμό των επιτήδειων χρηστών.
Αργύριος Παπουδάκης
Εξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
Στα πλαίσια της διπλωματικής αυτής ασχοληθήκαμε με την εξαγωγή ιδιωμάτων κώδικα από αποθετήρια λογισμικού. Με τον όρο ιδίωμα εννοούμε ένα μικρό τμήμα κώδικα που επαναλαμβάνεται στα αποθετήρια και έχει ένα συγκεκριμένο σημασιολογικό σκοπό. Τα ιδιώματα χαρακτηρίζονται για την αναγνωσιμότητα τους και την εύκολη επαναχρησιμοποίηση τους για την εκτέλεση μιας συγκεκριμένης εργασίας. Οι έμπειροι προγραμματιστές επιζητούν την παραγωγή ιδιωματικού κώδικα, γεγονός που οδηγεί σε εφαρμογές με καλύτερη απόδοση και ευκολότερη συντήρηση. Η σημασία των ιδιωμάτων γίνεται αντιληπτή δεδομένου ότι περιβάλλοντα ανάπτυξης κώδικα όπως ο Eclipse και το IntelliJ έχουν συγκεκριμένα εργαλεία που προσφέρουν ιδιώματα στους χρήστες. Η έρευνα μας για την αντιμετώπιση του προβλήματος της αυτόματης εξαγωγής ιδιωμάτων επικεντρώθηκε στην ομαδοποίηση τμημάτων κώδικα που προέρχονται από έργα λογισμικού υψηλού επιπέδου. Τα έργα αυτά συγκεντρώθηκαν από το σύστημα ελέγχου εκδόσεων GitHub με βάση τη δημοφιλία τους. Για την αναπαράσταση αυτών των τμημάτων κώδικα χρησιμοποιήθηκαν Αφηρημένα Συντακτικά Δέντρα (Abstract Syntax Trees) που διατηρούν τόσο την δομική πληροφορία του κώδικα όσο και την νοηματική με τα ονόματα των μεταβλητών και μεθόδων. Η σύγκριση των τμημάτων πηγαίου κώδικα έγινε με τον αλγόριθμο pq-grams που αποτελεί μέθοδο μέτρησης της απόστασης δέντρων. Στη συνέχεια τα πιο αντιπροσωπευτικά τμήματα κώδικα των ομάδων που προέκυψαν μετατράπηκαν σε μια γενικευμένη μορφή διατηρώντας το νοηματικό περιεχόμενο του κώδικα. Τα αποτελέσματα από τη παραπάνω διαδικασία αξιολογήθηκαν με βάση ένα σύνολο ελέγχου (test set) και ήταν ιδιαίτερα ενθαρρυντικά.
Ανδρέας Σιαηλής
Πρόβλεψη πωλήσεων με την χρήση υβριδικού μοντέλου ARIMA-LSTM
Η πρόβλεψη της ζήτησης για προϊόντα και υπηρεσίες παίζει καθοριστικό ρόλο στην εύρυθμη λειτουργία των περισσότερων επιχειρήσεων. H οργάνωση του αποθέματος, το χρονοδιάγραμμα της παραγωγής, η διαχείριση της ροής χρήματος, οι αποφάσεις που αφορούν την πρόσληψη προσωπικού και άλλες αποφάσεις που παίρνει μια επιχείρηση μπορούν όλα να εξαρτώνται από προβλέψεις. Οι βελτιστοποίηση της απόδοσης αυτών των προβλέψεων οδηγεί σε βελτίωση της εξυπηρέτησης των πελατών και έτσι ευνοεί την ικανοποίηση τους και την μελλοντική διατήρηση τους. Επίσης γίνεται και μείωση αρκετών μορφών κόστους αφού υπάρχει μικρότερη ανάγκη από επείγων ανεφοδιασμούς αποθέματος και μείωση στα έξοδα διατήρησης περίσσιου αποθέματος και απούλητων προϊόντων. Παρόλο που η απόδοση των προβλέψεων της ζήτησης είναι καθοριστικός παράγοντας, έρευνες έχουν δείξει ότι η πιο συχνή μέθοδος (48%) που χρησιμοποιούν οι επιχειρήσεις στη Αμερική για την πρόβλεψη της ζήτησης είναι αυτή που βασίζεται στη χρήση λογιστικών φύλλων (spreadsheets), ενώ μόλις ένα ποσοστό 11% χρησιμοποιούν εξειδικευμένο λογισμικό. Τα διαθέσιμα λογισμικά πρόβλεψης χρησιμοποιούν διάφορες μεθοδολογίες που ανταποκρίνονται στη μορφή και το είδος κάθε προϊόντος και η απόδοση τους μπορεί να συγκριθεί με άλλες μεθοδολογίες μέσω κάποιων μετρικών απόδοσης. Αντικείμενο της παρούσας διπλωματικής εργασίας, αποτελεί η ανάπτυξη και εξερεύνηση της καταλληλόλητας ενός επαυξημένου υβριδικού μοντέλου, το οποίο αρχικά σχεδιάστηκε για την πρόβλεψη μονοδιάστατων χρονοσειρών, στην περίπτωση της πρόβλεψης του αριθμού πωλήσεων. Το προτεινόμενο μοντέλο κάνει χρήση ενός πιο μοντέρνου νευρωνικού δικτύου, το οποίο έχει αποδειχθεί ότι παράγει καλύτερα αποτελέσματα από ένα παραδοσιακό νευρωνικό δίκτυο πρόσθιας τροφοδότησης. Επίσης γίνεται προσθήκη ενός ακόμη χαρακτηριστικού στην είσοδο του νευρωνικού, με σκοπό την περαιτέρω βελτίωση της ακρίβειας των προβλέψεων.
Στράντζαλης Κωνσταντίνος
Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρωνικών Δικτύων σε Μικροεπεξεργαστικές Δομές
Ο τομέας του Edge AI αφορά την ανάπτυξη τεχνητής νοημοσύνης που έχει τη δυνατότητα επεξεργασίας δεδομένων και εκτέλεσης τοπικά σε hardware συσκευές, χωρίς απαραίτητα την σύνδεσή τους με το διαδίκτυο. Επομένως, λειτουργίες όπως η δημιουργία δεδομένων μπορούν να πραγματοποιηθούν χωρίς την ανάγκη ανεβάσματος ή κατεβάσματος δεδομένων από το cloud, με κύρια συνέπεια την μείωση του χρόνου απόκρισης ενός συστήματος για την εξαγωγή αποτελεσμάτων πάνω σε μία διεργασία. Το γεγονός αυτό δίνει το έναυσμα για την ανάπτυξη εφαρμογών τεχνητής νοημοσύνης στην ακμή των συστημάτων. Συγκεκριμένα στον κλάδο που αφορά την προγνωστική συντήρηση σε βιομηχανικό επίπεδο, οι εφαρμογές της τεχνητής νοημοσύνης στην ακμή των συστημάτων μπορούν να παρέχουν δυνατότητες αναγνώρισης καταστάσεων λειτουργίας για μηχανήματα σε πραγματικό χρόνο. Στη παρούσα εργασία, παρουσιάζονται δύο μεθοδολογικές προσεγγίσεις για την ανίχνευση τριών καταστάσεων λειτουργίας για έναν κινητήρα συνεχούς ρεύματος που κατονομάζονται ως καλή, εσφαλμένη και επιφορτωμένη. Αρχικά, και για τις δύο προσεγγίσεις πραγματοποιείται η εξαγωγή χαρακτηριστικών πάνω στα δεδομένα ήχου του σετ δεδομένων IDMT-ISA-ELECTRIC-ENGINE, αφού υποστούν κατάλληλη προ-επεξεργασία. Στη συνέχεια, εκπαιδεύεται ένα διαφορετικό νευρωνικό δίκτυο CNN για την εκάστοτε προσέγγιση. Ακολούθως, τα δύο μοντέλα υπόκεινται σε διαδικασία μετεκπαιδευτικής κβαντοποίησης και σε μία διαδικασία κατάλληλης μετατροπής και συμπίεσης, ώστε να εισαχθούν στη πλακέτα STM32 Discovery kit IoT node. Μετά την ολοκλήρωση των υλοποιήσεων, πραγματοποιείται πειραματική εφαρμογή με τη χρήση της πλακέτας με σκοπό τον έλεγχο της επίδοσης των μοντέλων στην αναγνώριση των τριών ηχητικών καταστάσεων λειτουργίας του κινητήρα, καθώς και της απόκρισής τους σε περιπτώσεις εναλλαγής των καταστάσεων σε πραγματικό χρόνο Εν κατακλείδι, παρουσιάζονται τα αποτελέσματα των ανωτέρω διαδικασιών και εξάγονται συμπεράσματα για την επίδοση των μοντέλων.
Αγγελική-Αγαθή Τσίντζηρα
Συνεχής έμμεση αυθεντικοποίηση χρηστώνκινητού τηλεφώνου με τη χρήση δεδομένων πλοήγησης
Ο στόχος της συγκεκριμένης διπλωματικής εργασίας ήταν η ανάπτυξη μεθοδολογίας συνεχούς έμμεσης αυθεντικοποίησης χρήστη κινητού τηλεφώνου, με τη χρήση των δεδομένων πλοήγησης, με σκοπό τη βελτίωση της ασφάλειας και τη διαφύλαξη της ιδιωτικότητας των ευαίσθητων και προσωπικών δεδομένων. Η ιδιωτικότητα και η ασφάλεια είναι 2 έννοιες αλληλένδετες. Η ιδιωτικότητα αναφέρεται στα δικαιώματα που έχει ο χρήστης αναφορικά με τον έλεγχο των προσωπικών του στοιχείων και τον τρόπο χρήση τους. Η ασφάλεια αναφέρεται στον τρόπο προστασίας των προσωπικών δεδομένων. Οι έξυπνες κινητές συσκευές περιέχουν πληθώρα προσωπικών δεδομένων όπως φωτογραφίες, συνομιλίες, ιατρικά δεδομένα, στοιχεία τραπεζών, προσωπικούς κωδικούς και πληροφορίες που σχετίζονται με τον στενό κύκλο του κάθε ατόμου (επαφές, εργασία, χόμπι, δραστηριότητες). Η προστασία και η διαφύλαξη αυτών από τρίτους, αποτελεί δραστηριότητα ζωτικής σημασίας. Η διαφύλαξη των προσωπικών δεδομένων με τη χρήση κωδικών pin ή βιομετρικών χαρακτηριστικών δεν είναι πάντα αρκετή. Στην περίπτωση που η συσκευή κλαπεί ή χαθεί, η παράκαμψη των κωδικών ασφαλείας μπορεί να γίνει με πολλούς τρόπους. Η παραβίαση βιομετρικών χαρακτηριστικών, όπως η αναγνώριση προσώπου ή το δακτυλικό αποτύπωμα, είναι πιο δύσκολη αλλά όχι αδύνατη. Η λύση εδώ επιτυγχάνεται μέσω της συνεχούς αυθεντικοποίησης χρήστη. Το σύστημα, επεξεργάζεται τη συμπεριφορά του χρήστη που διαβάζει από τους αισθητήρες, στο παρασκήνιο. Στη περίπτωση που η συμπεριφορά δεν ανήκει στον κάτοχο της συσκευής, αυτή κλειδώνει. Με αυτό τον τρόπο, τα δεδομένα και η συσκευή προστατεύονται. Η συμπεριφορά κάθε χρήστη είναι μοναδική. Μέχρι να αναγνωριστεί η σωστή συμπεριφορά, η συσκευή παραμένει κλειδωμένη και τα προσωπικά δεδομένα προστατευμένα. Για την ανάπτυξη του συστήματος συνεχούς αυθεντικοποίησης χρήστη, επιλέχθηκαν οι μετρήσεις των αισθητήρων επιταχυνσιόμετρο και γυροσκόπιο, οι οποίες συλλέχθηκαν σε μη ελεγχόμενο περιβάλλον μέσω εφαρμογής κινητού από το Store. Εκπαιδεύτηκαν 2 μοντέλα μηχανικής μάθησης, ένα για κάθε αισθητήρα. Στη συνέχεια, συνδυάστηκαν τα αποτελέσματα για να παραχθεί η τελική επίδοση του συστήματος. Η επίδοση του τελικού συστήματος ξεπέρασε της βιβλιογραφίας.(continue in full text)
Καμτζηρίδης Γεώργιος
Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς νομίσματος στο Ethereum Blockchain
Μια από τις τεχνολογίες που έκανε την εμφάνισή της την τελευταία δεκαετία είναι το Blockchain. Τα πλεονεκτήματα και ειδικότερα οι προοπτικές που δημιουργεί για αποκεντρωμένες, διανεμημένες και ασφαλείς συναλλαγές, ώθησαν την τεχνολογία αυτή εντός μικρού χρονικού διαστήματος να διεισδύσει στον τεχνολογικό κόσμο. Ξεκίνησε εστιάζοντας, κατά κύριο λόγο, στις οικονομικές συναλλαγές με τη βοήθεια του κρυπτονομίσματος Bitcoin. Στη συνέχεια, μέσω της πλατφόρμας Ethereum πραγματοποιήθηκε το επόμενο μεγάλο βήμα, όπου η τεχνολογία Blockchain μπόρεσε να βρει εφαρμογή σε μη οικονομοκεντρικά περιβάλλοντα, όπως αυτό της υγείας και κυρίως αυτό της διαχείρισης της εφοδιαστικής αλυσίδας. Όμως, το μεγαλύτερο πλεονέκτημα που κάνει το Blockchain μια πολλά υποσχόμενη εφεύρεση παραμένει το οικονομικά αποκεντρωμένο μοντέλο που μπορεί να υλοποιήσει. Σύμφωνα με το μοντέλο αυτό, όλες οι χρηματικές συναλλαγές πραγματοποιούνται μέσω ενός διανεμημένου συστήματος, το οποίο δεν ανήκει σε κάποια κεντρική αρχή, όπως για παράδειγμα μια τράπεζα. Το σύστημα αυτό λειτουργεί με τη βοήθεια των χρηστών του και προσφέρει ασφαλή εκτέλεση συναλλαγών σε άμεσο χρόνο. Πάνω σε αυτό το μοντέλο έχει προταθεί μια εναλλακτική μορφή χρηματοδότησης μικρομεσαίων επιχειρήσεων. Αυτή αναφέρεται ως αρχική προσφορά νομίσματος (στην αγγλική βιβλιογραφία αναφέρεται ως Initial Coin Offering ή εν συντομία ICO) και βοηθάει τις επιχειρήσεις να ενισχυθούν οικονομικά με αυτοματοποιημένο, ασφαλή και αποκεντρωμένο τρόπο. Ωστόσο, όπως όλες οι διαδικασίες, έτσι και το ICO, μπορεί να σχεδιαστεί με λανθασμένα κριτήρια ασφαλείας και να οδηγήσει στην οικονομική καταστροφή μιας εταιρίας. Στόχος, λοιπόν, αυτής της εργασίας είναι η τεχνική ανάλυση μιας διαδικασίας ICO που πραγματοποιείται στην πλατφόρμα του Ethereum και συγκεκριμένα η παρουσίαση των τμημάτων που μπορούν να υπονομεύσουν την ασφάλεια και την αξιοπιστία της, καθώς και να προταθούν τρόποι αντιμετώπισης και πρόληψης. Στο τέλος, υλοποιείται μια τέτοια διαδικασία στην πράξη, όπου και εφαρμόζονται όλα όσα αναλύθηκαν στα προηγούμενα στάδια.

2019

Αγγέλου Ευάγγελος
Εντοπισμός και Μεταφορά Αντικειμένων από Ρομπότ & Σχεδιασμός και Κατασκευή Κυκλώματος Τροφοδοσίας
Ο τομέας της ρομποτικής αναπτύσσεται ραγδαία τα τελευταία χρόνια και μπαίνει όλο και περισσότερο στη ζωή του ανθρώπου. Πλέον, οι άνθρωποι αναθέτουν διάφορες μικρές, καθημερινές εργασίες σε αυτόνομους ρομποτικούς πράκτορες, διευκολύνοντας έτσι τη ζωή τους. Μία ιδιαίτερα διαδεδομένη εφαρμογή τέτοιου είδους, είναι τα ρομπότ – σκούπες, τα οποία βοηθάνε στον καθαρισμό του σπιτιού. Επίσης, αυτόνομοι ρομποτικοί πράκτορες αυτής της λογικής μπορούν να χρησιμοποιηθούν για την εξερεύνηση άγνωστων χώρων, οι οποίοι είναι απροσπέλαστοι λόγω κάποιας, φυσικής ή μη, καταστροφής. Τέλος, με τη χρήση ενός βραχίονα σε τέτοιου είδους πράκτορες, μπορούν να επεκταθούν οι δυνατότητες τους και να μαζεύουν διάφορα αντικείμενα από τον χώρο στον οποίο βρίσκονται. Η παρούσα διπλωματική εργασία προτείνει μία λύση στην λειτουργία ενός αυτόνομου ρομποτικού πράκτορα, ο οποίος έχει τη δυνατότητα εξερεύνησης και κάλυψης (μέσω κάμερας) ενός άγνωστου, εκ των προτέρων, χώρου, ενώ παράλληλα, με τη χρήση ενός ρομποτικού βραχίονα, μπορεί να μαζεύει αντικείμενα που βρίσκονται διάσπαρτα μέσα σε αυτόν. Για την υλοποίηση, αναπτύχθηκε ο κώδικας ο οποίος με χρήση δεδομένων από έναν αισθητήρα laser δημιουργεί τον χάρτη του χώρου στον οποίο βρίσκεται και μέσω δεδομένων κάμερας, υπολογίζει το πεδίο κάλυψης του χώρου από αυτή. Τέλος, αναπτύχθηκε κώδικας ο οποίος μέσω δεδομένων RGB κάμερας, αναγνωρίζει συγκεκριμένου τύπου αντικείμενα μέσα στον χώρο, τα πλησιάζει και στη συνέχεια, με χρήση ενός ρομποτικού βραχίονα, τα συλλέγει και τα εναποθέτει σε ένα συγκεκριμένο σημείο πάνω του, μέχρις ότου επιστρέψει στο σημείο από όπου άρχισε την εξερεύνηση, αφού έχει καλύψει όλο τον χώρο στον οποίο βρίσκεται. Παράλληλα, αναπτύχθηκε κύκλωμα το οποίο έχει ως σκοπό την τροφοδοσία των περιφερειακών του ρομπότ, δηλαδή του ηλεκτρονικού υπολογιστή και του βραχίονα που θα βρίσκονται πάνω σε αυτό, μέσω μίας LiPo (Lithium - Polymer) μπαταρίας. Επίσης, μέσω κατάλληλου αισθητήρα, γίνεται μέτρηση της κατανάλωσης ρεύματος, τάσεως και ισχύος, με τα δεδομένα αυτά να στέλνονται σειριακά στον υπολογιστή που βρίσκεται πάνω στο ρομπότ. Επιπλέον, τοποθετήθηκε και ένας λαμπτήρας LED, μέσω του οποίου φαίνεται το επίπεδο τάσης της μπαταρίας. Τέλος, το κύκλωμα αυτό τυπώθηκε σε πλακέτα και τοποθετήθηκε πάνω στο ρομπότ.
Δήμητρα Ντζιώνη
Αυτόματη παραγωγή διεπαφής υψηλού επιπέδου για συλλογή δεδομένων αισθητήρων ρομπότ αξιοποιώντας την πλατφόρμα R4A
Στην επιστήμη του λογισμικού , ο όρος αυτόματος προγραμματισμός προσδιορίζει ένα μηχανισμό ο οποίος δημιουργεί ένα πρόγραμμα που επιτρέπει στους επιστήμονες να συντάξουν κώδικα σε υψηλότερο επίπεδο αφαίρεσης. Σήμερα, οι ρομποτικές εφαρμογές σε εταιρικό και οικιακό περιβάλλον κερδίζουν όλο και μεγαλύτερο έδαφος , αυξάνοντας συνεχώς τ η ν ανάγκη για αυτόματη παραγωγή λογισμικού χωρίς σφ άλματα . Όπως είναι γνωστό, τα ρ ομπό τ φέρουν ένα πλήθος αισθητήρων, οι οποίοι παίζουν καθοριστικό ρόλο στη λειτουργία τους και στην επίτευξη ορισμένων εργασιών. Για το λόγο αυτό , πρέπει συχνά να ελέγχονται τα δεδομένα που παράγο νται , ώστε να σχεδιαστούν περαιτέρω συστήματα λογισμικού. Η συγκεκριμένη διπλωματική εργασία φιλοδοξεί να θέσει τα πρώτα βήματα προς την κατεύθυνση της αυτοματοποίησης της διαδικασίας ανάπτυξης διεπαφών για συλλογή δεδομένων από αισθητήρες ρομπότ. Στα πλα ίσια αυτής της προσπάθειας , στην παρούσα διπλωματική εργασία, αξιοποιείται η μηχανική οδηγούμενη από μοντέλα, MDE (Model Driven Engineering ). Συγκριμένα, αφού οριστεί ένα αφαιρετικό μοντέλο, πραγματοποιείται μια σειρά από μετασχηματισμούς, με τελικό αποτέλ εσμα μια πλήρως λειτουργική εφαρμογή. Με αυτό τον τρόπο, επιταχύνεται διαδικασία ανάπτυξης λογισμι κού και παράγεται λογισμικό με μεγαλύτερη αξιοπιστία. Η παρούσα διπλωματικής εργασία, υλοποιεί το σύστημα CoRSeDA ( Collecting Robot Sensor Data Automatically ) στο οποίο ο χρήστης, μέσω ενός φιλικού γραφικού περιβάλλοντος αλληλοεπιδρά και ορίζει παραμέτρους για τους αισθητήρες ενός ρομπότ. Με βάση τους αισθητήρες και τις παραμέτρους που θέτει , δημιουργείται εκτελέσιμος κώδικα ς , βασισμένος στην πλατφόρμα R 4 A , γι α τη συλλογή δεδομένων από το ρομπότ και παράλληλα παράγεται πλήρως λειτουργική διεπαφή που παρέχει πληροφορίες ολόκληρου του συστήματος . Τις πληροφορίες αυτές μπορεί να τις δει, μαζί με οποιαδήποτε πληροφορία παράγεται, σε μία web εφαρμογ ή που έχει δημιου ργηθεί στα πλαίσια της συγκεκριμένης εργασίας ακριβώς για το σκοπό αυτό. Για την δοκιμή και αξιολόγηση αυτού του συστήματος , εκτελέστηκαν πειράματα στο πραγματικό ρομπότ ΝΑΟ , ένα αυτόνομο, προγραμματιζόμενο ανθρωποειδές που αναπτύχθηκε από την Aldebaran Robotics
Γιώργος Τσάμης
Αυτόματη δημιουργία κώδικα ρομποτικής εφαρμογής από δομημένη λεκτική περιγραφή
Η χρήση των ρομπότ γίνεται ολοένα και πιο διαδεδομένη, καθώς η έρευνα στο πεδίο της τεχνητής νοημοσύνης και της ρομποτικής είναι συνεχής. Τα ρομπότ, λοιπόν, έχοντας εισέλθει στη βιομηχανία εδώ και δεκαετίες, σταδιακά γίνονται προσβάσιμα και στους απλούς, καθημερινούς χρήστες. Αυτό έχει ως αποτέλεσμα την ανάγκη δημιουργίας τρόπων αλληλεπίδρασης χρήστη-ρομπότ που να μην είναι ιδιαίτερα περίπλοκοι ή δύσκολοι, ακόμα και για χρήστες χωρίς τεχνικό υπόβαθρο. Για το σκοπό αυτό υλοποιούνται συστήματα κατανόησης φυσικής γλώσσας, χειρονομιών κ.ά. που διευκολύνουν την επικοινωνία μεταξύ τους. Στην παρούσα διπλωματική εργασία αναπτύχθηκε προς την κατεύθυνση αυτή ένα σύστημα που διευκολύνει την ανάθεση εργασιών στο ρομπότ NAO, μέσω της περιγραφής των επιθυμητών ενεργειών από το χρήστη σε μία συγκεκριμένη, δομημένη, μορφή κειμένου και της αυτόματης παραγωγής του αντί- στοιχου κώδικα για το ρομπότ. Το υλοποιηθέν σύστημα βασίστηκε σε αντίστοιχο σύστημα παραγωγής κώδικα για το ίδιο ρομπότ μέσω της χρήσης γραφικών συμβόλων και ορισμού των τρόπων μετάβασης. Το κύριο αντικείμενο με το οποίο ασχολήθηκε η εργασία αφορά το δυναμικό κομμάτι του παραπάνω προβλήματος, τον καθορισμό δηλαδή της ορθής αλληλουχίας των προς εκτέλεση ενεργειών και τον τρόπο χρονικής σύνδεσής τους (στη σειρά ή παράλληλα, υπό συνθήκη ή τυχαία, με επανάληψη ή δια- κοπή εκτέλεσης), με βάση τις φράσεις που χρησιμοποιεί ο χρήστης. Η επιλογή του είδους της εκάστοτε ενέργειας ήταν ήσσονος σημασίας στα πλαίσια της εργασίας και δινόταν από το χρήστη μέσα στη λεκτική περιγραφή. Με την είσοδο της λεκτικής περιγραφής, πραγματοποιείται η ταξινόμηση και διασύνδεση των ενεργειών, παράγεται αυτόματα ο αντίστοιχος κώδικας και, τέλος, εμφανίζεται γραφικά το αποτέλεσμα στο χρήστη, οπότε είναι δυνατή η επιλογή εκτέλεσής του στο ρομπότ. Η αξιολόγηση του συστήματος έδειξε ότι είναι εφικτή η αποτελεσματική περιγραφή των διάφορων τρόπων σύνδεσης των ενεργειών, και των συνδυασμών τους, με βάση τη μορφή της λεκτικής περιγραφής της εισόδου που σχεδιάστηκε. Τέλος, φάνηκε ότι είναι δυνατή η μετατροπή σεναρίων που είναι γραμμένα σε φυσική γλώσσα στη δομημένη μορφή που δέχεται ως είσοδο το σύστημα με λίγες, κατά κανόνα, παραλλαγές, προκειμένου να παραχθεί η επιθυμητή ρομποτική εφαρμογή.
Παναγιώτης Μουζενίδης
Μοντελοποίηση και επέκταση της ρομποτικής αρχιτεκτονικής R4A προς αυτόματη παραγωγή διεπαφών και τμημάτων αυτής
Το Model Driven Engineering (MDE) στοχεύει στην επίλυση προβλημάτων ανάπτυξης λογισμικού χρησιμοποιώντας μοντέλα. Τα μοντέλα αυτά μπορούν να περιγράψουν ένα σύστημα χωρίς να λαμβάνουν υπόψη τους περιορισμούς της πλατφόρμας για την οποία προορίζεται η εφαρμογή. Στη συνέχεια, χρησιμοποιώντας μετασχηματισμούς μοντέλων, ένα μοντέλο μπορεί να παράγει ένα μοντέλο προσανατολισμένο στην πλατφόρμα που πρόκειται να εκτελεστεί η εφαρμογή. Με αυτό τον τρόπο το MDE λύνει ένα γενικό πρόβλημα που μπορεί να εφαρμοστεί σε πολλά μικρότερα προβλήματα χρησιμοποιώντας τους κατάλληλους μετασχηματισμούς. Επίσης, επειδή ένα μοντέλο μπορεί να εφαρμοστεί σε πολλά προβλήματα, είναι οικονομικά αποδοτικό και παράγει ποιοτικό πηγαίο κώδικα. Σε αυτή τη διπλωματική εργασία σχεδιάστηκε ένα Eclipse plugin που παράγει διεπαφές χρήστη, που ελέγχουν ρομπότ, χρησιμοποιώντας MDE τεχνικές. Ο χρήστης μπορεί να προσθέσει ή να αφαιρέσει λειτουργικότητα και να δημιουργήσει τον κώδικα της διεπαφής χρήστη. Το περιβάλλον χρήστη επικοινωνεί με το ρομπότ μέσω ενός API μίας πλατφόρμας που ονομάζεται R4A. Οι διεπαφές χρήστη είναι εντελώς ανεξάρτητες από τη συσκευή, καθώς είναι διαδικτυακές και χρησιμοποιούν μόνο HTTP κλήσεις για επικοινωνία με το ρομπότ. Οι παραγόμενες διεπαφές χρήστη από το plugin έχουν δοκιμαστεί στο ρομπότ NAO, το οποίο είναι ένα ανθρωποειδές ρομπότ που αναπτύχθηκε από την Aldebaran Robotics το 2008 για ερευνητικούς, εκπαιδευτικούς και ψυχαγωγικούς σκοπούς. Το plugin στοχεύει σε μηχανικούς που θέλουν να έχουν μια απλή διεπαφή χρήστη για τον έλεγχο ενός ρομπότ σε ελάχιστο χρόνο, αλλά και σε απλούς χρήστες που απλά θέλουν να ελέγξουν ένα ρομπότ για λόγους ψυχαγωγίας.
Ιωάννης Λόϊας
Υπολογισμός Σημασιολογικής Ομοιότητας ́Εργων Λογισμικού χρησιμοποιώντας Σχόλια
ο διαδίκτυο άλλαξε ιζικά τα μέσα και την ταχύτητα της μετάδοσης πληροφοριών και έχει δημιουργήσει νέες προοπτικές στον τομέα της ανάπτυξης κώδικα. Μια από αυτές είναι η ανάπτυξη αποθετηρίων κώδι- κα, τα οποία φιλοξενούν μεγάλο αριθμό έργων λογισμικού που μπορούν να χρησιμοποιηθούν από τους προγραμματιστές. Ωστόσο, οι προγραμματιστές καταχρώνται συχνά τον πηγαίο κώδικα που αντλούν από τέτοια αποθετήρια χωρίς να αποδίδουν τον αρχικό δημιουργό.Σε αυτή την εργασία αναπτύσσουμε ένα σύστημα που μπορεί να ανακαλύψει ομοιότητες πηγαίου κώδικα από μια πολύπλευρη οπτική που αναλύει τη σημασιολογία και τη δομή τόσο του πηγαίου κώδικα όσο και των συσχετιζόμενων σχολίων. Το σύστημα αυτό χρησιμοποιεί μια πληθώρα διαδεδομένων τεχνικών επεξεργασίας πηγαίου κώδικα για να συγκρίνει τα έργα λογισμικού και να παράγει τιμές ομοιότητας για διαφορετικά χαρακτηριστικά. Για παράδειγμα, υποστηρίζει αλγορίθμους διανυσματοποίησης, όπως η επεξεργασία λέξεων του πηγαίου κώδικα μέσω της σακούλας λέξεων και των χαρακτηριστικών tf-idf , με σκοπό την εφαρμογή μεθόδων σύγκρισης διανυσμάτων σε επίπεδο αρχείου και συνάρτησης. Εναλλακτικά, μπορεί να χρησιμοποιήσει τη λανθάσουσα σημασιολογική ανάλυση (LSA) , η οποία μειώνει τον θόρυβο που προκύπτει από τη χρήση διαφορετικών όρων με την ίδια σημασιολογία. Το σύστημα εφαρμόζει επίσης έναν αριθμό υφιστάμενων και καινοτόμων μεθόδων που ασίζονται σε γράφους για να συγκρίνουν δέντρα κλήσης συναρτήσεων. Τέλος, όλες οι μέθοδοι είναι σε θέση να συμπεριλάβουν τα σχόλια του πηγαίου κώδικα κατά τον υπολογισμό της ομοιότητας μεταξύ έργων λογισμικού. ∆οκιμάσαμε το σύστημά μας σε δύο σύνολα δεδομένων σχεδίων λογισμικού που εξήχθησαν από το GitHub : ένα σύνολο δεδομένων που περιέχει έργα λογισμικού και τις διακλαδώσεις τους ( forks ) που σχε- τίζονται με τη λέξη-κλειδί \"Pacman\" και ένα σύνολο που περιέχει έργα λογισμικού διάφορων τομέων με τις διακλαδώσεις τους. Από τα πειράματά μας προέκυψε ότι η χρήση σχολίων πηγαίου κώδικα οηθά να εντοπίσουμε αν δύο έργα του συνόλου δεδομένων \"Pacman\" είναι διακλαδώσεις του ίδιου αρχικού έργου, παράγοντας πιο περιγραφικές μετρήσεις για την αξιολόγηση από αλγόριθμους που δεν τα χρησι- μοποιούν. Στη συνέχεια, για το δεύτερο σύνολο δεδομένων χρησιμοποιήσαμε την έκδοση των μεθόδων που λαμβάνουν υπόψη τα σχόλια του πηγαίου κώδικα και έχουν υψηλή διακριτική ικανότητα στο προη- γούμενο σύνολο για να ανακαλύψουμε ποια έργα λογισμικού ήταν διακλαδώσεις του ίδιου έργου. ́Ολοι οι αλγόριθμοι ρέθηκαν να είναι περίπου ίσοι για να αποδώσουν υψηλότερες ομοιότητες στις διακλαδώσεις των ίδιων έργων. Ωστόσο, οι αλγόριθμοι που συγκρίνουν τα δέντρα κλήσης συναρτήσεων ήταν πιο αξιόπι- στοι στην ανακάλυψη παρόμοιων έργων, αποδίδοντας σχεδόν μηδενικές ομοιότητες κατά τη σύγκριση των διακλαδώσεων ανόμοιων έργων.
Αριστοτέλης Μικρόπουλος
Ανάπτυξη συστήματος ανάλυσης ποιότητας πηγαίου κώδικα σε πολύ-γλωσσικά έργα λογισμικού
Ελπίδα Φαλάρα
Βελτιστοποίηση Ανάθεσης Εργασιών μέσω Ανάλυσης Συνεισφορών από Αποθετήρια Ανοιχτού Λογισμικού
Διανύοντας τον 21ο αιώνα, ζούμε ήδη θεαματικά αποτελέσματα της τεχνολογικής προόδου. Η έξαρση της χρήσης μιας σειράς τεχνολογικών καινοτομιών έχει ως αποτέλεσμα να ονομάζεται η σημερινή εποχή ως εποχή των πληροφοριών. Με τη άνοδο του cloud computing και του Διαδικτύου, οι πλατφόρμες ανάπτυξης λογισμικού ανοιχτού κώδικα έλαβαν μεγάλη ώθηση. Βασίστηκαν κυρίως στη φιλοσοφία της λειτουργίας των κατανεμημένων συστημάτων ελέγχου εκδόσεων. Μια από τις πιο δημοφιλής εξ’ αυτών είναι το GitHub, που λειτουργεί ως υπηρεσία που φιλοξενεί εκατομμύρια έργα λογισμικού και χρήστες. Τα κατανεμημένα συστήματα ελέγχου εκδόσεων έχουν αλλάξει τη διαδικασία ανάπτυξης λογισμικού, καθώς πέραν των άλλων, δίνουν τη δυνατότητα συνεχής επόπτευσης του έργου. Σημαντικό κομμάτι στη διαδικασία ανάπτυξης λογισμικού είναι η επόπτευση του έργου λογισμικού για πιθανά σφάλματα και βελτιώσεις. Οι συνεργατικές πλατφόρμες ανοιχτού κώδικα συχνά διαθέτουν ένα αποθετήριο σφαλμάτων όπου καταγράφονται εκεί όλες οι αναφορές σφαλμάτων. Ωστόσο, οι μηχανικοί λογισμικού μπορεί να κατακλυστούν από τον αριθμό των αναφορών που υποβάλλονται καθημερινά, καθώς καθεμία από αυτές πρέπει να ανατεθεί στον κατάλληλο μηχανικό λογισμικού ο οποίος θα είναι σε θέση να αντιμετωπίσει το σφάλμα. Μια πιο αυτοματοποιημένη διαδικασία ανάθεσης των σφαλμάτων σε μηχανικούς λογισμικού πιθανότατα θα διευκόλυνε την ομάδα λογισμικού. Έτσι, η παρούσα διπλωματική εργασία έχει ως στόχο να δημιουργήσει ένα σύστημα που θα προτείνει τον υποψήφιο μηχανικό λογισμικού, μέσα σε μια ομάδα ανάπτυξης λογισμικού σε ένα σύστημα ελέγχου εκδόσεων, ώστε να επιλύσει ένα καταγεγραμμένο σφάλμα. Το σύστημα κατασκευάστηκε εξορύσσοντας πληροφορίες από αποθετήρια λογισμικού ανοιχτού κώδικα που υπάρχουν στο GitHub. Η διαδικασία ανάθεσης διενεργήθηκε υλοποιώντας μοντέλα με βάση την ομοιότητα των σφαλμάτων που έχει λύσει κάθε μηχανικός λογισμικού στο έργο, αλλά και τη συνεισφορά του σε προγραμματιστικό επίπεδο. Για τη μοντελοποίηση των παραπάνω παραμέτρων εφαρμόστηκαν αλγόριθμοι ανάλυσης κειμένου, καθώς και αλγόριθμοι ταξινόμησης. Η απόδοση των αλγορίθμων αξιολογήθηκε μεμονωμένα, αλλά και συνδυαστικά.
Χριστόφορος Μπέκος
Σχεδίαση και υλοποίηση μοντελοστραφούςμηχανισμού αυτόματης παραγωγής γραφικών διαδικτυακών διεπαφών μοντελοποίησης εφαρμογών ορισμένου πεδίου
Στην παρούσα διπλωματική περιγράφονται τα στάδια δημιουργίας του Simplified Web Sirius framework (SWSF), ενός framework με στόχο να υπερκεράσει την αδυναμία του Sirius να εκτελεστεί ανεξάρτητα από το περιβάλλον του Eclipse. Το SWSF παρέχει ένα γραφικό περιβάλλον, μέσω του οποίου ο χρήστης μπορεί να επεξεργαστεί μοντέλα με χρήση γραφικών στοιχείων κάποιας GDSL. Το γραφικό περιβάλλον δημιουργείται αυτόματα, συναρτήσει της GDSL που δίνεται ως είσοδος και είναι παρόμοιο με αυτό που παρέχει το Sirius. Το SWSF έχει κατασκευαστεί με συνδυασμό τεχνολογιών Model Driven Engineering (MDE) και διαδικτυακών εφαρμογών. H χρήση τεχνολογιών MDE είναι απαραίτητη προκειμένου να καταστεί δυνατή η αυτόματη δημιουργία κώδικα, μέσω του οποίου θα ορίζονται εκείνες οι παράμετροι, που διαφοροποιούν το γραφικό περιβάλλον, ανάλογα με την GDSL. Παράλληλα η χρήση τεχνολογιών διαδικτυακών εφαρμογών προσφέρει ένα γραφικό περιβάλλον επεξεργασίας, το οποίο διαθέτει τα πλεονεκτήματα αυτών. Το framework υποστηρίζει μερικά από τα πιο βασικά και συχνά χρησιμοποιούμενα χαρακτηριστικά του Sirius. Ως είσοδος στο framework δίνεται ένα αρχείο .odesign καθώς και ένα αρχείο .ecore, τα οποία περιέχουν τους ορισμούς μιας GDSL και των εννοιών ενός συγκεκριμένου πεδίου, αντίστοιχα. Στην συνέχεια γίνεται χρήση ενός xml parser, προκειμένου να μετασχηματιστεί η πληροφορία αυτών των δύο αρχείων σε ένα μοντέλο, το οποίο συμμορφώνεται (conforms) με το μεταμοντέλο gdslMetamodel. Έπειτα, το μοντέλο αυτό χρησιμοποιείται ως είσοδος σε έναν Μ2Τ μετασχηματισμό, από τον οποίο παράγονται δύο python modules. Τα modules αυτά χρησιμοποιούνται σε συνδυασμό με την εκτελέσιμη μορφή του appMetamodel και ένα UI (User Interface), προκειμένου να παραχθεί ένα γραφικό περιβάλλον επεξεργασίας μοντέλων, όπως ακριβώς περιγράφεται από την εκάστοτε GDSL. Η δημιουργία του μοντέλου, που υπακούει στο gdslMetamodel και ο M2T μετασχηματισμός αποτελούν το βασικότερο στοιχείο του framework και αυτό που καθιστά δυνατή την αυτόματη παραγωγή, διαφορετικών γραφικών περιβαλλόντων, συναρτήσει μιας GDSL. Το SWSF ενοποιεί τα προαναφερθέντα στοιχεία, παρέχοντας μία διαδικτυακή εφαρμογή, βασισμένη στην αρχιτεκτονική client-server. Ο server διαθέτει την πληροφορία που αφορά το μοντέλο, τις γραφικές αναπαραστάσεις αυτού, καθώς και τα εργαλεία, που περιγράφουν μεταβολές σε αυτό. Ο client είναι ένα UI, το οποίο εμφανίζει στον χρήστη γραφικές αναπαραστάσεις, συναρτήσει της αντίστοιχης πληροφορίας που παρέχεται από τον server. Επιπροσθέτως, o client αναλαμβάνει να χειριστεί την αλληλεπίδραση με τον χρήστη και να προωθήσει στον server τα κατάλληλα requests, προκειμένου αυτός να ενημερώνει κατάλληλα τόσο το μοντέλο, οσο και τις γραφικές αναπαραστάσεις αυτού.
Μαρία Ιωάννα Σηφάκη
Εφαρμογή τεχνικών εξόρυξης δεδομένων για την εξαγωγή προτύπων εξέλιξης σε συστήματα ερωταπαντήσεων
Oι προγραμματιστές εξακολουθούν να αντιμετωπίζουν δυσκολίες και εμπόδια κατά τη χρήση επαναχρησιμοποιήσιμων τμημάτων κώδικα που σχετίζονται κυρίως με τη λειτουργικότητα τους και την εμφάνιση σφαλμάτων. Αυτό συμβαίνει λόγω του ότι η εγκυρότητα των απαντήσεων σε τέτοιου είδους κοινότητες δεν ελέγχεται από ειδικούς παρά μόνο από τους ίδιους τους χρήστες, αν εκείνοι το επιθυμούν. Επομένως, αυτό επιβάλλει την προσπάθεια βελτίωσης των τμημάτων κώδικα και την έγκαιρη διόρθωση των λαθών τους. Η έρευνά μας επικεντρώθηκε στον εντοπισμό και έπειτα στην ομαδοποίηση των συνηθέστερων τροποποιήσεων (και κατ’ επέκταση σφαλμάτων) που παρατηρούνται στο ιστορικό των απαντήσεων της δημοφιλέστερης κοινότητας του Stack Overflow. Το σύνολο δεδομένων SOTorrent αποτέλεσε τη βάση πάνω στην οποία πραγματοποιήθηκε τόσο η υλοποίηση του συστήματος μας όσο και η ποιοτική αξιολόγησή του. Με αυτόν τον τρόπο, καταφέραμε να μετατρέψουμε την κάθε μεμονωμένη λύση μιας απάντησης σε γενική λύση προσφέροντας τελικά χρήσιμες και αξιοποιήσιμες πληροφορίες στους προγραμματιστές έτσι ώστε να αποφεύγουν παρόμοια λάθη στο μέλλον. Τέλος, η οπτικοποίηση των δεδομένων αλλά και της ομαδοποίησης αυτών ενισχύει σημαντικά την αξιολόγηση της μεθοδολογίας της παρούσας διπλωματικής εργασίας, καθώς οι ομάδες τροποποιήσεων απαντήσεων παρουσίασαν μεγάλη συνεκτικότητα. Με τη δημιουργία ενός εργαλείου σύστασης τροποποιήσεων επιβεβαιώσαμε την ορθότητα των αποτελεσμάτων της έρευνας και επιπλέον, πετύχαμε τη βελτίωση του περιεχομένου κάποιων γενικών σχολίων τροποποίησης με την πρόταση άλλων καταλληλότερων στη θέση τους.
Γεωργία Πανταλώνα
Εξόρυξη δεδομένων αποθετηρίων λογισμικού για την εξαγωγή προφίλ μηχανικών λογισμικό
Η διαδικασία παραγωγής λογισμικού εξελίσσεται συνεχώς και η εξέλιξη αυτή υποδεικνύεται από τις συνεχώς αυξανόμενες ανάγκες παραγωγής νέου λογισμικού. Η ανάγκη για όσο το δυνατόν πιο γρήγορη ανάπτυξη νέων λειτουργιών και η προσπάθεια της ενσωμάτωσης του τελικού χρήση στη διαδικασία παραγωγής λογισμικού οδήγησε σε νέα ευέλικτα πρότυπα ανάπτυξης λογισμικού (π.χ. agile), όπου η συνεργατική ανάπτυξη λογισμικού κατέχει πρωτεύοντα ρόλο. Αυτά τα νέα πρότυπα απαιτούν μηχανικούς στις ομάδες παραγωγής που διαθέτουν διάφορων ειδών δεξιότητες, είτε αυτές είναι τεχνικές είτε έχουν να κάνουν με δεξιότητες επικοινωνίας ή διαχείρισης έργων. Συνεπώς, είναι σαφές ότι υπάρχει αυξημένη ανάγκη αναγνώρισης των δεξιοτήτων των μηχανικών και αξιολόγησης ως προς το βαθμό στον οποίο καλύπτουν τις ανάγκες κάποιου ρόλου στις ομάδες παραγωγής λογισμικού. Αυτό έχει απώτερο σκοπό τη βελτιστοποίηση της διαδικασίας παραγωγής λογισμικού μέσω της καλύτερης αξιοποίησης του ανθρώπινου δυναμικού. Τέλος με την εμφάνιση των ευέλικτων μεθόδων παραγωγής λογισμικού ταυτόχρονα αυξήθηκε και η χρήση των πλατφορμών ανάπτυξης και διατήρησης λογισμικού, οι οποίες περιλαμβάνουν μεγάλο όγκο δεδομένων που αφορά τη διαδικασία ανάπτυξης λογισμικού. Σκοπός της παρούσας διπλωματικής είναι αξιοποίηση των δεδομένων από τις πλατφόρμες ανάπτυξης λογισμικού για την αναγνώριση των δεξιοτήτων των μηχανικών με απώτερο στόχο την αντικειμενικότερη αξιολόγηση και την καλύτερη ανάθεση ρόλων. Προς την κατεύθυνση αυτή γίνεται εξόρυξη δεδομένων από την πλατφόρμα του GitHub για την δημιουργία μετρικών οι οποίες αντικατοπτρίζουν τις δεξιότητες των μηχανικών. Επίσης, γίνεται μια συγκριτική αξιολόγηση των μετρικών, έτσι ώστε να είναι εμφανής η κατηγοριοποίηση της κάθε δεξιότητας και ο ρόλος του κάθε μηχανικού. Τέλος, οι μετρικές αυτές παρουσιάζονται με μορφή γραφημάτων σε μια εφαρμογή. Η εφαρμογή παρουσιάζει με εύληπτο τρόπο το προφίλ κάθε μηχανικού ώστε να είναι εφικτή η καλύτερη δυνατή ανάθεση σε κάποιο ρόλο με βάση τις δεξιότητες του μηχανικού. Μετά την αξιολόγηση του συστήματος για ένα ικανό σύνολο μηχανικών λογισμικού από την πλατφόρμα του GitHub, μπορούμε να συμπεράνουμε ότι το σύστημά μας παράγει χρήσιμα αποτελέσματα. Η επισκόπηση των προφίλ είναι ικανοποιητική, καθώς δίνει μια εικόνα του ρόλου και των δεξιοτήτων κάθε μηχανικού, συνεισφέροντας έτσι στην αποτελεσματικότερη αξιοποίησή τους μέσα στην ομάδα ανάπτυξης λογισμικού.
Παναγιώτης Σακκής
Επαύξηση κανόνων linting με τη βοήθεια μηχανικής μάθησης
Τα τελευταία χρόνια, η ραγδαία ανάπτυξη του Internet, έχει δώσει πολλές νέες δυνατότητες και έχει αλλάξει σημαντικά τον τρόπο συγγραφής κώδικα. Η επαναχρησιμοποίηση κομματιών κώδικα είναι καθημερινό φαινόμενα στην ανάπτυξη λογισμικού. Υψίστης σημασίας είναι συγγραφή κομματιών «καθαρού» κώδικα (clean code), δηλαδή κώδικα που να ακολουθεί τις αρχές της αναγνωσιμότητας, συντηρησιμότητας και επεκτασιμότητας. Τεράστια έρευνα γίνεται συνεχώς για τη διασφάλιση αυτών των αρχών. Ένα από τα εργαλεία που χρησιμοποιούνται γι’ αυτό το σκοπό είναι ο linter. Οι linters είναι απαραίτητοι ειδικά όταν οι γλώσσες προγραμματισμού δεν περιλαμβάνουν το τμήμα της συμβολομετάφρασης (π.χ. JavaScript, Python). Αρκετοί ερευνητές ασχολούνται με αντικείμενο τα τελευταία χρόνια, τη βελτίωση αυτών των εργαλείων ώστε να δουλεύουν όσο το δυνατόν αποδοτικότερα. Ο δημοφιλέστερος linter για κώδικα γραμμένο σε JavaScript αυτή τη στιγμή είναι ο ESLint. Είναι ένα open source εργαλείο, το οποίο είναι πλήρως διαμορφώσιμο και δίνει τεράστιες δυνατότητες στους προγραμματιστές. Σκοπός, αυτής της διπλωματικής είναι να εξετάσει τη χρήση που γίνεται από την κοινότητα των προγραμματιστών, στον ESLint και να εξαγάγει χρήσιμα συμπεράσματα και να προτείνει βελτιώσεις. Θα γίνει προσπάθεια να εφαρμοσθούν σύγχρονες τεχνικές μηχανικής μάθησης με σκοπό να δοθεί λύση σε μερικά από τα προβλήματα τα οποία αντιμετωπίζονται κατά τη χρήση του. Για την ανάλυση της εργασίας αυτής χρησιμοποιήθηκαν ανοιχτά έργα λογισμικού σε γλώσσα JavaScript από το GitHub, από τα οποία εξάχθηκαν χρήσιμα δεδομένα τα οποία είναι διαθέσιμα για μελλοντική χρήση από ερευνητές που θέλουν να ασχοληθούν με το αντικείμενο. Παράλληλα, με βάση αυτά τα δεδομένα αναπτύχθηκαν κάποια εργαλεία με τεχνικές μηχανικής μάθησης που προτείνουν άμεσες λύσεις στο πρόβλημα της διαμόρφωσης των κανόνων του ESLint.
Ορέστης Γεωργιάδης
Πρόβλεψη δημοτικότητας ειδησεογραφικών άρθρων από δεδομένα κειμένου και εικόνας
Tο πρόβλημα της πρόβλεψης της δημοτικότητας περιεχομένου οποιασδήποτε μορφής (κειμένου/εικόνας/βίντεο) που δημοσιεύεται στο διαδίκτυο, αποτελεί αντικείμενο έντονου ενδιαφέροντος και για την επιστημονική κοινότητα, αλλά και για τις επιχειρήσεις που δημοσιεύουν διαδικτυακά τέτοιο περιεχόμενο. Η παρούσα διπλωματική εργασία επικεντρώνεται στα ειδησεογραφικά άρθρα, και στόχος της είναι να προβλέψει την δημοτικότητα που θα έχει ένα άρθρο μόλις δημοσιευθεί στο διαδίκτυο. Η πρόβλεψη αυτή έγινε με την δημιουργία ενός συστήματος μηχανικής μάθησης (machine learning) το οποίο δέχεται ως είσοδο διάφορα δεδομένα για τα άρθρα, και με την κατάλληλη επεξεργασία τους και τον μετέπειτα διαχωρισμό τους σε σετ εκπαίδευσης και σετ ελέγχου, κάνει μια εκτίμηση για τον αριθμό προβολών που πρόκειται να έχει το κάθε άρθρο. Στα πλαίσια της παρούσας διπλωματικής αναπτύχθηκαν δύο διαφορετικά μοντέλα για τον υπολογισμό των προβολών των άρθρων. Το πρώτο μοντέλο είναι ένα μοντέλο παλινδρόμησης που σκοπός του είναι να εκτιμήσει τον ακριβή αριθμό προβολών. Το δεύτερο μοντέλο είναι ένα μοντέλο ταξινόμησης, και σκοπός του είναι να ταξινομήσει τα άρθρα σε τέσσερις ομάδες σύμφωνα με τον αριθμό προβολών που έχουν. Και τα δύο μοντέλα χρησιμοποιούν τα ίδια δεδομένα ως εισόδους. Αρχικά γίνεται η επεξεργασία του κειμένου από τους τίτλους των άρθρων ώστε να δημιουργηθεί ένα λεξιλόγιο το οποίο θα περιέχει τα διανύσματα των λέξεων των τίτλων. Τα διανύσματα αυτά προέρχονται από την προ-εκπαιδευμένη βιβλιοθήκη fastText, η οποία χρησιμοποιεί την μέθοδο συνεχόμενων πακέτων λέξεων (Continuous Bag of Words-CBoW) για την εκπαίδευση του λεξιλογίου. Στη συνέχεια δημιουργήθηκε ένα λεξικό στην Python που περιέχει τις ετικέτες των εικόνων των άρθρων μαζί με την πιθανότητα που έχει η κάθε ετικέτα να ταιριάζει στην εικόνα. Οι ετικέτες αυτές προήλθαν από την βάση δεδομένων ImageNet και συγκεκριμένα έγινε χρήση του μοντέλου ταξινόμησης εικόνων ResNet50. Τέλος, ως είσοδος στο σύστημα δόθηκε και ο εκδότης των άρθρων, δηλαδή η ιστοσελίδα στην οποία δημοσιεύθηκαν. Στην συνέχεια υλοποιήθηκε ένα συνελικτικό νευρωνικό δίκτυο το οποίο χρησιμοποιήθηκε για την εκπαίδευση των δύο μοντέλων, παλινδρόμησης και ταξινόμησης. Τα αποτελέσματα είναι αρκετά ενθαρρυντικά και φαίνεται να βελτιώνουν τις βασικές μεθόδους που δεν χρησιμοποιούν τα νευρωνικά δίκτυα για την πρόβλεψη των αποτελεσμάτων τους. Ως γενικό συμπέρασμα μπορεί να εξαχθεί ότι πιο αποτελεσματικό από τα δύο μοντέλα είναι αυτό της παλινδρόμησης, και ότι η χρήση νευρωνικών δικτύων δρα αποτελεσματικά στην επίτευξη του τελικού σκοπού.
Κοσμάς Τσιάκας
Εντοπισμός θέσης droneσε γνωστό 3D χάρτη με χρήση αισθητήρων απόστασης & πλήρης κάλυψη του χώρου
Η παρούσα διπλωματική εργασία εστιάζει στην επίλυση του προβλήματος της αυτόνομης και συνεχούς απογραφής προϊόντων σε οποιονδήποτε γνωστό χώρο. Με την χρήση των drones η διαδικασία αυτή απλουστεύεται με επιθυμητό αποτέλεσμα τον προσδιορισμό της θέσης των προϊόντων με ακρίβεια μερικών εκατοστών. Το πρόβλημα αυτό αποτελείται από δύο υπο-προβλήματα: α) αυτό του εντοπισμού θέσης στον κλειστό χώρο, και β) αυτό της πλήρους κάλυψης του χώρου αυτόνομα. Για την αντιμετώπιση των παραπάνω προβλημάτων χρησιμοποιείται γνωστός τρισδιάστατος χάρτης μορφής OctoMap. Κατά τη διάρκεια της έρευνας, υλοποιήθηκε ένας αλγόριθμος που βασίζεται σε φίλτρο σωματιδίων (Particle Filter) και αξιοποιεί ένα σύνολο αποστάσεων περιμετρικά του drone για τον υπολογισμό της θέσης. Η πλοήγηση στον χώρο πραγματοποιείται με την χρήση ενός PID ελεγκτή θέσης και εξασφαλίζει την κίνηση με αποφυγή των γνωστών στατικών εμποδίων. Για την πλήρη κάλυψη του χώρου αρχικά πραγματοποιείται μια επιλογή των σημείων που πρέπει να διασχίσει το ρομπότ και στην συνέχεια με την ένωση αυτών δημιουργείται το τελικό μονοπάτι. Τέλος, πραγματοποιήθηκε μια σειρά πειραμάτων τα οποία αρχικά εξετάζουν τηναξιοπιστίατουσυστήματοςεντοπισμούθέσηςσετρίαείδηκινήσεων,καθώςκαι με διαφορετικές ταχύτητες σε κάθε μία από αυτές τις περιπτώσεις. Ταυτόχρονα, εξετάστηκαν διάφοροι τρόποι κίνησης στο χώρο, πραγματοποιώντας κάλυψη του χώρουμε χρήση διαφορετικών χαρακτηριστικών του αισθητήρα ανά περίπτωση.Τα πειράματα αυτά πραγματοποιήθηκαν εξ’ολοκλήρου σε περιβάλλον προσομοίωσης.
Ορέστης Φλώρος Μαλιβίτσης
Αναγνώριση ενεργειών για το ρομπότ NAO σε μη δομημένη λεκτική περιγραφή
Στόχος της παρούσας διπλωματικής είναι η αναγνώριση ενεργειών μέσα σε ένα κείμενο φυσικής γλώσσας και η αντιστοίχισή τους σε μια ήδη υπάρχουσα ρομποτική πλατφόρμα. Δεν επιχειρείται ο συνδυασμός αυτών των ενεργειών για την παραγωγή ενός αλγορίθμου που να ακολουθεί τη λογική που εκφράζει το κείμενο αλλά γίνεται απλώς στατική αντιστοίχισητων προτάσεων του κειμένου στις κατάλληλες ενέργειες.Η έξοδος του συστήματος που υλοποιείται μπορεί να αξιοποιηθεί από κάποια άλλη εφαρμογή για την τελική παραγωγή εκτελέσιμου κώδικα. Για τους προαναφερθέντες στόχους, αναπτύξαμε ένα σύστημα κατανόησης φυσικής γλώσσας (NLU), το r4a-nao-nlp, το οποίο αναγνωρίζει τις ενέργειες που υποστηρίζονται από το μετά-μοντέλο R4A-NAO. Εφαρμόζουμε μια σωλήνωση λογισμικού που τμηματίζει το κείμενο χρησιμοποιώντας την ανάθεση σημασιολογικών όρων για να ταυτοποιήσει πολλαπλές προθέσεις του χρήστη ανά πρόταση. Επιπλέον, το σύστημα αξιοποιεί τα αποτελέσματα της επίλυσης συναναφοράς σε όλο το κείμενο προκειμένου να βελτιώσει την απόδοση της ταξινόμησης προθέσεων και πλήρωσης υποδοχέων σε προτάσεις που περιλαμβάνουν αναφορές. Καθώς το σύνολο δεδομένων για την εκπαίδευση του συστήματος NLU έπρεπε να δημιουργηθεί εκ του μηδενός, η προσέγγισή μας σχεδιάστηκε έτσι ώστε να ανταποκρίνεται σε χαμηλό αριθμό δεδομένων. Δεν υπάρχουν απαιτήσεις στο σύνολο εκπαίδευσης για προτάσεις που συνδυάζουν πολλαπλές προθέσεις, μιας και κάτι τέτοιο θα οδηγούσε σε πολυωνυμική αύξηση του μεγέθους του. Η έξοδος της σωλήνωσης είναι ένας κατευθυνόμενος γράφος που περιέχει όλες τις ανιχνευμένες ενέργειες και τις συνδέει χρησιμοποιώντας τους αρχικούς συνδέσμους του κειμένου. Η υλοποίηση αυτή επωφελείται από τον διαχωρισμό σε υποπροβλήματα καθώς τα μοντέλα που χρησιμοποιούνται, εξαιρουμένων αυτών που εκτελούν ταξινόμηση προθέσεων και πλήρωση υποδοχέων, είναι προ-εκπαιδευμένα σε μεγάλα σύνολα δεδομένων και αφορούν μείζονες εργασίες στον τομέα της επεξεργασίας φυσικής γλώσσας και ως εκ τούτου, προβλέπεται να βελτιωθούν με την περαιτέρω ανάπτυξη της σχετικής τεχνολογίας. Θεωρείται ότι η παρούσα προσέγγιση μπορεί να αξιοποιηθεί, χωρίς να υπάρχει η ανάγκη να αυξηθούν τα δεδομένα εκπαίδευσής τους, από συστήματα διαλόγου προσανατολισμένα για καθήκοντα ή άλλες σχετικές εφαρμογές που συχνά δεν έχουν την ικανότητα να αναγνωρίζουν πολλαπλές προθέσεις ανά πρόταση. Εν κατακλείδι, αναπτύχθηκε ένα σύστημα που μπορεί να αποδειχτεί χρήσιμο στον τελικό χρήστη ο οποίος μπορεί να αποκτήσει βέλτιστα αποτελέσματα αν γνωρίσει τους περιορισμούς και τις ιδιαιτερότητες.Αυτήηδιαδικασίαδενθεωρείταιότιαπαιτείτεχνικές ή εσωτερικές γνώσεις πάνω στο r4a-nao-nlp.
Παντελής Φωτίου
Υλοποίηση υβριδικού συστήματος δημιουργίας ρομποτικού λογισμικού ως προς χρονικούς περιορισμούς εκτέλεσης, με χρήση ROS1, ROS2 και συστήματος IoT
Λόγω της τεράστιας εξέλιξης της ρομποτικής, κατέστη αναγκαία η απομακρυσμένη παρακολούθηση αυτών των μηχανημάτων και ταυτόχρονα η απομακρυσμένη παρακολούθηση των παραμέτρων ενός ελεγχόμενου περιβάλλοντος όπως η θερμοκρασία, η πίεση, η υγρασία κ.λπ. με τη χρήση αισθητήρων. Αυτή την ανάγκη έρχεται για να ικανοποιήσει το ΙοΤ. Στο πλαίσιο του IoT ιδιαίτερη σημασία δίνεται στη σύνδεση των πραγμάτων (ISSEL)things) και μεσολογισμικών (middlewares). Τα ρομποτικά πλαίσια) σε ένα δίκτυο, ώστε να μπορούν να στέλνουν και να λαμβάνουν δεδομένα. Τα “Things” μπορεί να είναιThings) και μεσολογισμικών (middlewares). Τα ρομποτικά πλαίσια” μπορεί να είναι συσκευές που χρησιμοποιούνται στην καθημερινότητα,έχουν υπολογιστική ισχύ και επιτρέπουν τη σύνδεση με το (ISSEL)δια-)δίκτυο. Η ραγδαία εξέλιξη στον κλάδο του ΙοΤ και ο μεγάλος αριθμός έξυπνων συσκευών χαμηλού κόστους δημιούργησε την ανάγκη ανάπτυξης πρωτοκόλλων και εργαλείων για την επικοινωνία μεταξύ αυτών και τη διασύνδεση τους στον παγκόσμιο ιστό. Πέραν των υπαρχόντων, εμφανίστηκαν πρωτόκολλα για την αποτελεσματική μεταφορά δεδομένων μεταξύ όλων αυτών των συσκευών αλλά και την απομακρυσμένη παρακολούθησή τους μέσω του Cloud. Η παρούσα διπλωματική εργασία παρουσιάζει τη δημιουργία ενός ΙοΤ πλαισίου, μέσω του οποίου έρχονται σε επικοινωνία έξυπνες συσκευές και ρομπότ. Για τη δημιουργία του πλαισίου διερευνήθηκε η χρήση του μεσολογισμικού ROS2. Το ROS2 είναι η τελευταία έκδοση του ROS (ISSEL)Robot Operating Sys) και μεσολογισμικών (middlewares). Τα ρομποτικά πλαίσιαtem), του επικρατέστερου στις μέρες μας ρομποτικού πλαισίου, η οποία υλοποιεί/χρησιμοποιεί προκαθορισμένα το πρωτόκολλο επικοινωνίας DDS (ISSEL)Data Dis) και μεσολογισμικών (middlewares). Τα ρομποτικά πλαίσιαtribution Service). Το DDS είναι ένα real-time, data-centric, publis) και μεσολογισμικών (middlewares). Τα ρομποτικά πλαίσιαh-s) και μεσολογισμικών (middlewares). Τα ρομποτικά πλαίσιαubs) και μεσολογισμικών (middlewares). Τα ρομποτικά πλαίσιαcribe πρωτόκολλο το οποίο δημιουργήθηκε ειδικά για να ικανοποιήσει τις ανάγκες ενός πλήρως κατανεμημένου IoT συστήματος.Πέραν της δημιουργίας της υποδομής εκτελέστηκαν πειράματα για την αξιολόγηση του DDS ως πρωτόκολλο επικοινωνίας για ρομποτικές εφαρμογές, καθώς και ενσωμάτωσης με IoT πλατφόρμες, εξάγοντας χρήσιμα συμπεράσματα.
Δημήτριος Τάτσης
Αυτόματη παραγωγή σεναρίου ελέγχου μέσω δυναμικής ανάλυσης και συμβολικής εκτέλεσης
Με την άνοδο της τεχνολογίας υπάρχει αυξανόμενη ανάγκη για τον έλεγχο της αξιοπιστίας και της ασφάλειας λογισμικού. Ο έλεγχος ασφάλειας λογισμικού απαιτεί συνήθως χειροκίνητη εργασία από κάποιον εξειδικευμένο αναλυτή ασφάλειας. Ωστόσοτατελευταίαχρόνιαέχουνεμφανιστεί τεχνικές ανάλυσης προγραμμάτων που μπορούν να αυτοματοποιήσουν ένα μέρος της διαδικασίας. Αυτή η διπλωματική ασχολείται με την δημιουργία ενός αυτόματου συστήματος το οποίο χρησιμοποιεί δυναμική ανάλυση και συμβολική εκτέλεση για την παραγωγή σεναρίων ελέγχου προγραμμάτων.Χρησιμοποιείται δυναμική ανάλυσηώστε να συλλέγονται πληροφορίες κατά την εκτέλεση όπως η τρέχουσα κατάσταση του συστήματος,η χρήσητης εισόδου από το πρόγραμμα καθώς και πληροφορίες για τοποιά σημεία του κώδικα έχουν εκτελεστεί.Έπειτ ααυτά τα δεδομένα χρησιμοποιούνται για να επιταχυνθεί η συμβολική εκτέλεση και να γίνει παραγωγή ενός αρχείου που θα είναι κανόνα περάσει τους ελέγχους του προγράμματος εκτελώντας περισσότερο κώδικα και άρα έχοντας μεγαλύτερο code coverage. Αυτά τα αρχεία μπορούν έπειτα να χρησιμοποιηθούν στην περεταίρω ανάλυση του προγράμματος. Το σύστημα που δημιουργήθηκε δίνει καλά αποτελέσματα παράγοντας μερικώς αρχεία εισόδου με τη μορφή που αυτά αναμένονται από τα προγράμματα προς ανάλυση αυτόματα και χωρίς καμία προηγούμενη γνώση για αυτά. Ωστόσο οι περιορισμοί της συμβολικής εκτέλεσης γίνονται γρήγορα εμφανείς καθώς η πολυπλοκότητα της ανάλυσης ανεβαίνει εκθετικά. Ως αποτέλεσμα χρειάζονται επιπλέον μέθοδοι ώστε να άρου με αυτούς τους περιορισμούς σε μεγάλα προγράμματα.
Κυριαζής Γεώργιος Λέανδρος
Πλήρης κάλυψη γνωστού χώρου από πολλαπλούς ρομποτικούς πράκτορες
Η επιστήμη της ρομποτικής είναι ένας κλάδος που τις τελευταίες δεκαετίες παρουσιάζει σημαντικό ενδιαφέρον. Παρά το νεαρό του κλάδου το πρόβλημα της κάλυψης χώρων και της εύρεσης θέσης ενός πράκτορα μέσα σε αυτόν είναι από τα πρώτα που απασχόλησαν τους ερευνητές. Το εν λόγω πρόβλημα είναι εξίσου ενδιαφέρον σήμερα, και πέραν των τετριμμένων υλοποιήσεων ενός πράκτορα, προτείνονται και επιλύσεις πολλαπλών πρακτόρων. Αυτές οι λύσεις εφαρμόζονται σε διάφορα προβλήματα όπως παραδείγματος χάριν στρατιωτικές εφαρμογές, σε εφαρμογές εύρεσης και διάσωσης εντός αστικού περιβάλλοντος (USAR), καθώς και σε εφαρμογές παρακολούθησης χώρων. Αυτές οι προσπάθειες είναι ακόμα πιο προσιτές την τελευταία δεκαετία χάριν της ανάπτυξης της υπολογιστικής δύναμης, της πτώσης των τιμών του υλικού και της αύξησης του εύρους ζώνης των δικτύων. Η παρούσα διπλωματική εργασία λοιπόν παρουσιάζει μια μέθοδο συντονισμού δύο ρομποτικών πρακτόρων με σκοπό την πλήρη κάλυψη ενός χώρου μέσω ενός αισθητήρα ενδιαφέροντος. Στο πρώτο κεφάλαιο γίνεται η εισαγωγή, όπου παρουσιάζεται ο σκοπός της διπλωματικής και η διάρθρωση του κειμένου. Στο δεύτερο κεφάλαιο γίνεται η επισκόπηση της ερευνητικής περιοχής και πιο συγκεκριμένα των χώρων της ρομποτικής εξερεύνησης, ανάθεσης εργασιών και της ρομποτικής κάλυψης. Στο τρίτο κεφάλαιο παρουσιάζονται τα εργαλεία που χρησιμοποιήθηκαν δηλαδή το υλικό (Hardware), το ROS, και οι βιβλιοθήκες που παρέχει. Στο τέταρτο κεφάλαιο αναλύεται η μέθοδος που χρησιμοποιήθηκε δηλαδή ο τοπολογικός γράφος καθώς και η προσέγγιση κοντινότερου σημείου για την επίλυση του προβλήματος. Στο πέμπτο κεφάλαιο παρουσιάζεται ο τρόπος διεξαγωγής των πειραμάτων και τέλος αναφέρονται οι δυσκολίες που παρουσιάστηκαν, προοπτικές για μελλοντική μελέτη και τα συμπεράσματα που προέκυψαν. Για την προσομοίωση χρησιμοποιήθηκε ο προσομοιωτής Gazebo και καθώς και το rviz. Για την συγγραφή του κώδικα χρησιμοποιήθηκε η γλώσσα Python.
Κελεσάκης Δημήτριος
Βελτίωση του ρυθμού μετατροπών ηλεκτρονικών καταστημάτων με τεχνικές δυναμικής τιμολόγησης
Τα τελευταία χρόνια το ηλεκτρονικό εμπόριο αναπτύσσεται με ταχείς ρυθμούς και εδραιώνεται ως ένας από τους κυρίαρχους τρόπους πραγματοποίησης εμπορικών συναλλαγών. Οι πολιτικές και στρατηγικές τιμολόγησης που θα χρησιμοποιηθούν από την επιχείρηση αποτελούν μια από τις αποφάσεις-κλειδιά για την επιβίωσή της σ’ αυτή την ιδιαίτερα ανταγωνιστική αγορά, την επίτευξη των στόχων της και την μεγιστοποίηση των κερδών της. Για το λόγο αυτό έχουν υλοποιηθεί διάφοροι αλγόριθμοι δυναμικής τιμολόγησης προσαρμοσμένοι στις συνεχώς μεταβαλλόμενες συνθήκες της διαδικτυακής αγοράς. Οι αλγόριθμοι αυτοί στηρίζονται στη πληθώρα των δεδομένων που έχουν στη διάθεσή τους τα ηλεκτρονικά καταστήματα σχετικά με τις συνθήκες της αγοράς, τις προτιμήσεις και τις καταναλωτικές συνήθειες των πελατών. Η αξιοποίηση των παραπάνω δεδομένων και η ενσωμάτωσή τους στις στρατηγικές δυναμικής τιμολόγησης μπορεί να δώσει ένα σημαντικό συγκριτικό ανταγωνιστικό πλεονέκτημα στην επιχείρηση. Ωστόσο, μέχρι στιγμής οι συγκεκριμένες τεχνικές έχουν εφαρμοστεί σε περιορισμένες κατηγορίες προϊόντων, όπως οι κρατήσεις αεροπορικών εισιτηρίων και ξενοδοχείων. Αντικείμενο της παρούσας διπλωματικής εργασίας αποτελεί η ανάπτυξη μεθόδων δυναμικής τιμολόγησης για ηλεκτρονικά καταστήματα που θα λαμβάνουν υπόψη τη ζήτηση, τον ανταγωνισμό, το διαθέσιμο στοκ, καθώς και το προφίλ του χρήστη. Το σύστημα που δημιουργείται συνδυάζει τα παραπάνω δεδομένα και κάνει χρήση νευρωνικών δικτύων σε συνδυασμό με μεθόδους και αλγορίθμους βελτιστοποίησης και εξατομίκευσης, ώστε να αποφασίζει δυναμικά την τιμή για κάθε προϊόν ανά πελάτη με στόχο την βελτιστοποίηση του ποσοστού μετατροπών (conversion rate).
Νικόλαος Μάλαμας
Πλήρης Κάλυψη Γνωστού χώρου από Επίγειο Όχημα με χρήση Στρατηγικών Πλοήγησης και Σημασιολογική Ανάλυση του χάρτη
Ο κλάδος της ρομποτικής έχει εμφανίσει ραγδαία εξέλιξη τα τελευταία χρόνια. Η χρήση της αν και στην αρχή περιοριζόταν κυρίως σε στρατιωτικές εφαρμογές, σήμερα έχει γενικευτεί σε μια πληθώρα εφαρμογών τόσο επαγγελματικού όσο και καθημερινού περιεχομένου. Η σχέση των ανθρώπων με την ρομποτική συνεχώς αλλάζει και εξελίσσεται, σε μια προσπάθεια αυτή να βοηθήσει στην αποτελεσματικότερη αντιμετώπιση των διάφορων ανθρωπίνων προβλημάτων. Ένας ολόκληρος τομέας των εφαρμογών της ρομποτικής αφορά την αυτόνομη πλοήγηση ρομποτικών οχημάτων σε γνωστούς ή και άγνωστους χώρους. Τέτοιες περιπτώσεις είναι τα αυτοκινούμενα αυτοκίνητα, ο αυτόματος καθαρισμός ενός χώρου από μια ρομποτική σκούπα, η αυτόνομη απογραφή προϊόντων σε μια αποθήκη, η χαρτογράφηση άγνωστων περιοχών κ.α. Η παρούσα διπλωματική εργασία έχει ως στόχο την μελέτη και επίλυση του προβλήματος της αυτοματοποίησης της διαδικασίας απογραφής προϊόντων σε οποιονδήποτε γνωστό δισδιάστατο χώρο αποτελεσματικά. Το πρόβλημα αυτό περιλαμβάνει τρία υποπροβλήματα: α) τον διαχωρισμό του γνωστού χώρου σε υποχώρους, β) τον υπολογισμό της αλληλουχίας προσέγγισης των διάφορων υποχώρων, και γ) την εύρεση του μονοπατιού για την πλήρη κάλυψη του χώρου. Η κάλυψη αυτή, μάλιστα, πραγματοποιείται από αισθητήρες τα χαρακτηριστικά των οποίων δεν είναι πρότερα γνωστά. Τα προβλήματα αυτά αντιμετωπίζονται κάνοντας χρήση του γνωστού δισδιάστατου χάρτη του χώρου. Αρχικά, υλοποιείται η τοπολογική ανάλυση του χώρου προκειμένου να εντοπιστούν τα διάφορα δωμάτια του περιβάλλοντος. Έπειτα, υπολογίζεται η βέλτιστη σειρά επίσκεψης αυτών των δωματίων. Τέλος, υπολογίζεται το βέλτιστο μονοπάτι κίνησης σε κάθε υποχώρο μέσω των οποίων το όχημα καλύπτει πλήρως το χάρτη. Τα κριτήρια αξιολόγησης της μελέτης είναι η καλύτερη δυνατή κάλυψη του χώρου και η ταχύτητα εκτέλεσης τόσο της διαδικασίας πλοήγησης όσο και των υπολογισμών. Επιπλέον, στην διπλωματική αυτή εργασία εξετάζονται δύο διαφορετικές στραγητικές κάλυψης του χώρου που αφορούν τον τρόπο προσέγγισης του ρομποτικού οχήματος στα πιθανά σημεία εύρεσης προϊόντων. Επιπρόσθετα, πραγματοποιήθηκαν πειράματα στα τρία τμήματα της διαδικασίας σε περιβάλλον προσομοίωσης τα αποτελέσματα των οποίων παρουσιάζονται. Χρησιμοποιήθηκαν χώροι με διαφορετική μορφολογία και αισθητήρες με διαφορετικά χαρακτηριστικά, με στόχο την ολοκληρωμένη αξιολόγηση της μελέτης.
Δέσποινα Τούσκα
Ανίχνευση αλλοιώσεων σε βίντεο με την χρήση Autoencoder και αναδρομικού δικτύου
Στη σύγχρονη μεταβιομηχανική εποχή είναι αναμφισβήτητη η παραδοχή πως η εικόνα αποτελεί κυρίαρχο στοιχείο της ζωής του σύγχρονου ανθρώπου. Συλλαμβάνει και αποτυπώνει πλήθος πληροφοριών από το εξωτερικό περιβάλλον προσφέροντας μια απτή αναπαράσταση της πραγματικότητας ικανή να επηρεάσει την κοινή γνώμη, διαμορφώνοντας προσωπικότητες και συνειδήσεις. Ως επί το πλείστον, η κατασκευή μιας εικόνας δεν αποτελεί μια αυθόρμητη διαδικασία. Μεταξύ άλλων, πολλά κοινωνιολογικά παραδείγματα έχουν ασκήσει άμεση και έντονη επιρροή στον τρόπο με τον οποίο οι παραγωγοί μιας εικόνας κατασκευάζουν στο προϊόν τους την πραγματικότητα. Με άλλα λόγια, συχνό είναι το φαινόμενο της αλλοίωσης της οπτικής πληροφορίας που αναπαρίσταται από μια εικόνα από κακόβουλους χειριστές, με στόχο την παρουσίαση μιας άλλης αλήθειας. Η παραπάνω ενέργεια εγκυμονεί πολλούς κινδύνους για τον άνθρωπο και την κοινωνία. Στον αντίποδα των ενεργειών αυτών, συναντάμε επιστημονικούς κλάδους που ειδικεύονται στην ανίχνευση τέτοιου είδους παραβιάσεων και ανήκουν στην ευρύτερη κατηγορία των επιστημών που ακούν στο όνομα forensics science. Στην κατηγορία αυτή επιχειρεί να ενταθεί και η παρούσα διπλωματική αναλύοντας ένα τρόπο εντοπισμού επεξεργασμένων περιοχών σε βίντεο και καταδεικνύοντας τες με τα αντίστοιχα heat maps. Για τον σκοπό αυτό αξιοποιήθηκαν τεχνικές στεγανάλυσης για την εξαγωγή χαρακτηριστικών διανυσμάτων από τα δεδομένα και της μηχανικής μάθησης για την ανάλυση τους. Πιο συγκριμένα, χρησιμοποιήθηκαν δομές όπως οι autoencoders και τα recurrent neural networks όπου μέσα από μια διαδικασία εκπαίδευσης σε έναν μικρό αριθμό από κανονικά στιγμιότυπα, μετατρέπονται σε anomaly detectors ανακατασκευάζοντας τα δεδομένα που προέρχονται από επεξεργασμένες περιοχές με μεγάλο σφάλμα. Η αξιοπιστία αυτού του forensics μοντέλου εξασφαλίζεται μέσα από μια σειρά πειραμάτων που πραγματοποιήθηκαν, τα αποτελέσματα των οποίων φανερώνουν τις δυνατότητες του για την ανίχνευση επεξεργασμένων περιοχών σε βίντεο.

2018

Βασίλειος Πολιτειάδης
Αυτόματη Παραγωγή και Εκτέλεση Ελέγχων σε Διαδικτυακές Υπηρεσίες REST
Το αρχιτεκτονικό σ τυλ σχεδίασης διαδικτυακών υπηρεσιών REST εμφανίστηκε για πρώτη φορά στην διδακτορική διατριβή του Roy Fielding το 2000. Η βασική ιδέα πίσω από την REST αρχιτεκτονική είναι ότι όλα τα αντικείμενα που διαχειρίζεται μια υπηρεσία μπορούν να θεωρηθούν ως πόροι του συστήματος. Με βάση τη λογική πελάτη - διακομιστή, ένας πελάτης μπορεί να αιτηθεί στην υπηρεσία τη δημιουργία, την ανάκτηση, την ενημέρωση ή τη διαγραφή μιας αναπαράστασης ενός πόρου, μέσω ενός Ενιαίου Αναγνωριστικού Πόρου ( URI ) που αντιστοιχίζεται σε α υτ ή ν και κάνοντας σωστή χρήση των CRUD ρημάτων του HTTP πρωτοκόλλου. Τα τελευταία χρόνια , χάρη στην απλότητα και την ισχύ του , το αρχιτεκτονικό στυλ REST , έχει γνωρίσει μεγάλη άνθηση και αποδοχή από την παγκόσμια βιομηχανία λογισμικού, έχει κατακτήσει τον χώρο των διαδικτυακών υπηρεσιών και αποτελεί πλέον το κυρίαρχο πρότυπο για την ανάπτυξή τους. Εντωμεταξύ, η ολοένα και μεγαλύτερη ανάγκη για εύκολη και γρήγορη ανάπτυξη αξιόπιστου λογισμικ ού οδήγησε τους μηχανικούς λογισμικού στην γέννηση μεθόδων όπως η Μ οντελοστρεφή ς Μηχανική ( MDE ) , με στόχο την αύξηση της απόδοσης, της παραγωγικότητας αλλά και της αυτοματοποίησης της όλη ς διαδικασία ς . Η ιδέα που προωθεί η Μοντελοστρεφής Μηχανική είναι η χρήση μοντέλων σε διαφορετικά επίπεδα αφαίρεσης κατά την σχεδίαση συστημάτων και η αυτοματοποίηση της διαδικασίας με την χρήση μετασχηματισμών μοντέλων , από υψηλότερα σε χαμηλότερα επίπεδα αφαίρεσης , μέχρις ότου να προκύψει το τελικό προϊόν εκτελέσιμου κώδικα. Ένα από τα σημαντικότερα ζητήματα καθ ’ όλη τη διάρκεια ανάπ τυξης λογισμικού είναι ο έλεγχος ποιότητας και αξιοπιστίας του. Ο έλεγχος λογισμικού διακρίνεται σε δύο διαφορετικές προσεγγίσεις ανάλογα με τη γνώση που κατέχει ο tester για την εσωτερική δομή και τον σχεδιασμό του υπό έλεγχο λογισμικού. Στην White Box πρ οσέγγιση ο tester γνωρίζει την εσωτερική δομή του συστήματος και ελέγχει το λογισμικό από την πλευρά του developer , ενώ στην Black Box προσέγγιση ο tester αντιμετωπίζει το λογισμικό σαν ένα μαύρο κουτί , στο οποίο εφαρμόζει εισόδους και μελετά τις αποκρίσει ς του, από την πλευρά του τελικού χρήστη. Στα πλαίσια της παρούσας διπλωματικής εργασίας δημιουργήθηκε ένα εργαλείο για την αυτόματη παραγωγή και εκτέλεση ελέγχων σε RESTful διαδικτυακές υπηρεσίες που παράγονται με τη χρήση της MDE Engine του S - CASE . Με δεδομένο το PSM μεταμοντέλο του S - CASE και είσοδο συστήματος το PSM μοντέλο μιας δοθείσας υπηρεσίας, πραγματοποιείται ένας Model - To - Text μετασχηματισμός, ο οποίος παράγει μια εφαρμογή Black Box ελέγχου , αφοσιωμένη στη εν λόγω υπηρεσία. Τέλος, η εκτέλεση αυτής της εφαρμογής παράγει αναλυτικές αναφορές των ελέγχων που διεξάγει και των αποτελεσμάτων ελέγχου σε μορφή JSON .
Αναστάσιος Κακούρης
Συνεχής Αυθεντικοποίηση Χρήστη σε Διαδικτυακές Εφαρμογές βάσει Συμπεριφοράς
Η συνεχής αυθεντικοποίηση με στοιχεία συμπεριφοράς του χρήστη, σταδιακά γίνεται η προτιμώμενη μέθοδος προσωπικής αυθεντικοποίησης. Αιτία για αυτό αποτελεί η περιορισμένη φύση των συμβατικών τρόπων αυθεντικοποίησης, οι οποίοι αδυνατούν να επιβεβαιώνουν την ταυτότητα του χρήστη πέραν της αρχικής αυθεντικοποίησης, ενώ παράλληλα εγκυμονούν σοβαρά προβλήματα ασφαλείας, όπως η πλαστοπροσωπία και η έκθεση προσωπικών δεδομένων σε τρίτους. Από την άλλη μεριά, ένα βιομετρικό στοιχείο συμπεριφοράς του χρήστη πολύ δύσκολα μπορεί, με κάποιο τρόπο, να αντιγραφεί ή/και υποκλαπεί. Κατά συνέπεια μπορεί να χρησιμοποιηθεί κατάλληλα για την υλοποίηση ενός συνεχούς συστήματος αυθεντικοποίησης, εξασφαλίζοντας κατά το δυνατό, μια ασφαλή συνεδρία για το χρήστη. Σε αυτή τη διπλωματική, επιλέγουμε ως βιομετρικό στοιχείο για τη σχεδίαση του συστήματος συνεχούς αυθεντικοποίησης, τον τρόπο που ένας χρήστης αλληλεπιδρά με το πληκτρολόγιό του, και χρησιμοποιούμε τη δυναμική της πληκτρολόγησης για την αναγνώριση και αυθεντικοποίηση των χρηστών. Συγκεκριμένα, επιλέγουμε να αναλύσουμε τα keystroke digraphs ενός χρήστη που προκύπτουν από την πληκτρολόγηση λέξεων, εξάγοντας τρεις χρονικές πληροφορίες: τον χρόνο πίεσης του πρώτου πλήκτρου του digraph, τον χρόνο πίεσης του δευτέρου πλήκτρου του digraph και τον χρόνο που μεσολαβεί από την ελευθέρωση του πρώτου πλήκτρου έως την πίεση του δευτέρου πλήκτρου του digraph. Για την δοκιμή και αξιολόγηση του συστήματος που σχεδιάσθηκε, συλλέξαμε συνολικά 59000 γεγονότα πληκτρολόγησης από 37 άτομα μέσα σε περίοδο 12 εβδομάδων. Χρησιμοποιώντας αυτά τα δεδομένα, δοκιμάσαμε διάφορα μοντέλα αναγνώρισης προτύπων όπως ταξινόμηση και τεχνικές εντοπισμού εξωκείμενων τιμών, πειραματιζόμενοι παράλληλα, με τεχνικές προ-επεξεργασίας δεδομένων για τη μείωση διαστάσεων των χαρακτηριστικών διανυσμάτων (PCA). Τα καλύτερα αποτελέσματα που πετυχαίνει το σύστημά μας είναι με μοντέλο One-Class SVM για 3-διάστατο διάνυσμα χαρακτηριστικών, όπου προκύπτουν 0.61% False Accept Rate (FAR) και 0.75% False Reject Rate (FRR), και με τη χρήση Gaussian Mixture Models για 2-διάστατο διάνυσμα χαρακτηριστικών, όπου προκύπτουν 1.35% FAR και 1.71% FRR αντίστοιχα. Τα αποτελέσματα αυτά, δείχνουν ότι η δυναμική της πληκτρολόγησης μπορεί να χρησιμοποιηθεί επιτυχώς σε ένα σύστημα συνεχούς αυθεντικοποίησης που κάνει χρήση στοιχείων συμπεριφοράς του χρήστη.
Αναστάσιος Λουτρούκης
ΑΝΑΠΤΥΞΗ ΤΕΧΝΙΚΩΝ ΕΞΑΤΟΜΙΚΕΥΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΑΤΑΣΤΗΜΑΤΟΣ ΜΕ ΧΡΗΣΗ ΠΡΟΤΥΠΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΣΗΜΑΣΙΟΛΟΓΙΚΩΝ ΜΕΘΟΔΩΝ
Η ψηφιοποίηση των αγορών έχει αναδείξει το κλάδο του ηλεκτρονικού εμπορίου ως κυρίαρχο μέσο πραγματοποίησης εμπορικών συναλλαγών. Bασικό ζήτημα που απασχολεί τα συστήματα ηλεκτρονικού εμπορίου αποτελεί ο υψηλός όγκος δεδομένων που διαχειρίζονται, με αποτέλεσμα να καθίσταται επιτακτική η ανάγκη για ανάπτυξη κατάλληλων τεχνικών εξατομίκευσης του διαθέσιμου περιεχομένου προς τους καταναλωτές με στόχο τη προσφορά χρήσιμων και ενδιαφέροντων προϊόντων σε καθένα από αυτούς. Για το σκοπό αυτό, έχουν αναπτυχθεί τα συστήματα συστάσεων, τα οποία αποσκοπούν στη δημιουργία κατάλληλων μοντέλων εξατομίκευσης του διαθέσιμου περιεχομένου για κάθε χρήστη με τη βοήθεια τεχνικών μηχανικής μάθησης και ανάλυσης δεδομένων. Το βασικό πρόβλημα που χαρακτηρίζει τα υπάρχοντα συστήματα είναι η έλλειψη σημασιολογικής κατανόησης των παρεχόμενων προτάσεων, καθώς το μεγαλύτερο ποσοστό των αλγορίθμων της βιβλιογραφίας εστιάζει στην παροχή προτάσεων αποκλειστικά με βάση την ανάλυση των προτύπων αξιολόγησης των χρηστών στα προϊόντα. Αντικείμενο της παρούσας διπλωματικής εργασίας αποτελεί η ανάπτυξη τεχνικώνεξατομίκευσης για το ηλεκτρονικό εμπόριο δίνοντας έμφαση στη σημασιολογική ανάλυση του περιεχομένου που χαρακτηρίζει τα προϊόντα και τα ενδιαφέροντα των χρηστών. Το μοντέλο που δημιουργείται, κάνει χρήση ενός συνόλου μεθόδων επεξεργασίας φυσικής γλώσσας και επιτυγχάνει σε πρώτο επίπεδο τη κατηγοριοποίηση των προϊόντων με βάση το θεματικό τους περιεχόμενο και σε δεύτερο επίπεδο την αντιστοίχιση των χρηστών στις εξαγόμενες κατηγορίες προϊόντων με βάση τα ενδιαφέροντα που χαρακτηρίζουν το κάθε χρήστη.
Αμπαρτσουμιάν Αλεξάνδρα
Δημιουργία ρομποτικής εφαρμογής προς υποστήριξη συστήματος υπενθυμίσεων με χρήση του ρομπότ ΝΑΟ
The social and technological inclusion of the elderly, as well as their psychological and physical support, have recently become a major issue, due to the fact that senior citizens comprise an ever-increasing percentage of the general population. Within this context, numerous scientific studies have been conducted worldwide, engaging socially assistive robots, in order to find solutions that will enhance the autonomous living and the overall quality of the seniors’ life. In the present diploma thesis, the humanoid robot NAO assumes the role of a socially assistive robot, in order to assist the elderly towards quality living. In particular, NAO reminds seniors of their medication and general events of their everyday life, as well as plays songs associated with their past memories and experiences. Furthermore, each time a medication event reminder is triggered, the proper medicine image is simultaneously being displayed on a computer screen. Appropriate information of medication and music tracks can be inserted by the caregiver of the elderly person via the application graphical interface, while scheduling of all types of events is possible via the Google Calendar UI. Additionally, in the context of the present application, the assistive robot can operate as a recreational companion so as to contribute to the improvement of the mental and emotional well-being of the elderly. Its entertaining role is accomplished through a set of activities that allow the elderly user to be informed about upcoming events of their everyday life and to listen to music pieces of their choice on demand. The interaction of the elderly with the robot is accompanied by a series of interactive images displayed on a computer screen so that the activity is as pleasant and user-friendly as possible. The evaluation of the implemented robotics application by a psychologist specialized in issues related to the elderly, can be found at the end of this document.
Ναπολέων - Χρήστος Οικονόμου
Call by Meaning: Κλήση πακέτων λογισμικού με βάση το νόημά τους
Η ανάπτυξη λογισμικού σήμερα περιλαμβάνει την επαναχρησιμοποίηση κώδικα, αφού μεγάλο πλήθος εφαρμογών απαιτεί τον συνδυασμό ήδη υπαρχόντων πακέτων λογισμικού. Αυτά συνήθως είναι δύσκολο να κατανοηθούν πλήρως, καθώς έχουν γραφτεί από τρίτους και συνήθως έχουν σχεδιαστεί για να λύνουν παραπάνω του ενός προβλήματα. Αυτό κάνει την ανάπτυξη λογισμικού μια επίπονη διαδικασία διότι απαιτεί από τους προγραμματιστές να βρουν το συστατικό που χρειάζονται, να καταλάβουν ακριβώς πώς λειτουργεί, να το κάνουν συμβατό με το σύστημά τους και να το αναβαθμίζουν συνεχώς ώστε να παραμένει συμβατό όταν το συστατικό αλλάζει. Οι δημιουργοί λογισμικού έχουν καταλάβει ότι ακόμα και η δημιουργία απλών εφαρμογών είναι σήμερα αρκετά πολύπλοκη. Αυτό συμβαίνει διότι εξακολουθούμε να βασιζόμαστε στην κλήση διαφόρων εξαρτημάτων με βάση το όνομά τους. Το πρόβλημα που δημιουργείται είναι ότι η σύμβαση ονόματος δεν μπορεί να επεκταθεί εύκολα έξω από το περιβάλλον στο οποίο δημιουργήθηκε. Ως εκ τούτου καθίσταται δύσκολη τόσο η διαδικασία της εύρεσης και της κατάλληλης ενσωμάτωσης εξαρτημάτων λογισμικού, όσο και η ικανότητα της εφαρμογής να αντιδρά σε αλλαγές του εξωτερικού περιβάλλοντός της. Αυτή η διπλωματική εργασία πραγματεύεται τη δημιουργία μια υποδομής η οποία, δυνητικά, θα μπορούσε να αντικαταστήσει τις τακτικές αυθαίρετης ονοματολογίας, δημιουργώντας ένα περιβάλλον στο οποίο η εύρεση λογισμικού θα βασίζεται στην γενικά αποδεκτή παραδοχή ότι οποιαδήποτε μέθοδος μπορεί να περιγραφεί αναλυτικά και μονοσήμαντα, εάν η περιγραφή των εισόδων και των εξόδων της είναι αρκούντως αναλυτική. Αναγνωρίζοντας εκτός από τα προβλήματα εύρεσης, τα προβλήματα εγκατάστασης και συμβατότητας, φάνηκε λογικό η υποδομή αυτή να είναι αποκομμένη από οποιαδήποτε τοπική ανάπτυξη λογισμικού, να μην αποτελεί δηλαδή κομμάτι όποιας εφαρμογής την χρησιμοποιεί, αλλά να αποτελεί ένα γενικότερο κομμάτι του οικοσυστήματος.
Ιωάννης Μανιάδης- Μεταξάς
Ανάπτυξη Τεχνικών Εξατομίκευσης των Διεπαφών και Προβολών Ηλεκτρονικού Καταστήματος Κάνοντας Χρήση Ανάλυσης Ενδιαφερόντων
Τα τελευταία χρόνια η αύξηση της καταναλωτικής δραστηριότητας στο internet, καθώς και η αύξηση της υπολογιστικής ισχύος στην οποία έχουν πρόσβαση ακόμα και μικρές επιχειρήσεις, δημιούργησαν την ανάγκη και την δυνατότητα αντίστοιχα σε ιστοσελίδες να αναλυθεί σε βάθος η συμπεριφορά των επισκεπτών τους, με στόχο την καλύτερη προσέγγισή τους. Συγκεκριμένα στο πεδίο του ηλεκτρονικού εμπορίου (e-commerce) εφαρμόζονται τεχνικές μηχανικής εκμάθησης, ώστε να γίνονται στους χρήστες δυναμικές προτάσεις προϊόντων ή/και κατηγοριών προϊόντων, με βάση την συμπεριφορά ή/και τα χαρακτηριστικά τους (φύλλο, ηλικία κλπ). Η δραστηριότητα αυτή εντάσσεται στα πλαίσια του web personalization, και στα πλαίσιά της έχουν αναπτυχθεί μια σειρά μέθοδοι, οι οποίες ειδικεύονται στην αντιμετώπιση συγκεκριμένων μορφών αυτού του προβλήματος. Αντικείμενο αυτής της εργασίας είναι η σχεδίαση και ανάπτυξη μιας ολοκληρωμένης μεθόδου ανάλυσης του ιστορικού των επισκεπτών ενός e-shop, και πρόβλεψης των ενδιαφερόντων τους κατά την επόμενη επίσκεψή τους στην ιστοσελίδα, με βάση πραγματικά δεδομένα του www.pharm24.gr. Στα πλαίσια της εργασίας προτείνεται το σύστημα που θα σχεδιαστεί να τροφοδοτείται με τις παρελθοντικές κινήσεις κάθε χρήστη ως προς τα εννοιολογικά περιεχόμενα της ιστοσελίδας, όπως αυτά έχουν οριστεί από τον διαχειριστή του, μια απόκλιση και νέα προσέγγιση σε σχέση με την βιβλιογραφία. Με βάση τα δεδομένα αυτά θα επιχειρεί μέσω της εφαρμογής τεχνικών μηχανικής εκμάθησης να προβλέψει ποιες ενότητες της σελίδας είναι πιθανότερο να ενδιαφέρουν περισσότερο τον χρήστη κατά την επόμενή επίσκεψή του στην ιστοσελίδα. Στα πλαίσια αυτά μελετώνται διαφορετικές τεχνικές, αξιολογούνται, και προτείνονται αυτές που αποδίδουν καλύτερα.
Βαλασία Δημαρίδου
Ανάλυση Ανθρώπινης Παρουσίας & Συμπεριφοράς Κοινού σε Σημεία Ενδιαφέροντος
Η ευρεία χρήση των συστημάτων λήψης και εγγραφής εικονοσειρών έχει οδηγήσει στην ανάγκη δημιουργίας ολοκληρωμένων συστημάτων καταγραφής της ανθρώπινης συμπεριφοράς σε πληθώρα σημείων ενδιαφέροντος. Παράλληλα, υπάρχει τάση για αυξημένη έρευνα προς τη δημιουργ ία συστημάτων που αποσκοπούν στη στοχευμένη διαφήμιση. Ο συνδυασμός των δύο αναφερόμενων καταστάσεων με την παράλληλη συνεχή εξέλιξη του υλικού εγγραφής και επεξεργασίας των καταγεγραμμένων εικονοσειρών οδήγησε στην ιδέα σχεδίασης, ανάπτυξης και επικύρωσης ενός καινοτόμου συστήματος ανάλυσης της ανθρώπινης παρουσίας σε καίρια σημεία . Η ανάλυση που προαναφέρθηκε συνοψίζεται στη στατιστική ανάλυση του αριθμού των ατόμων που διέρχονται μπροστά από ένα σημείο ενδιαφέροντος (π.χ. μπροστά από διαφημιστικές πινακίδες), με παράλληλη καταγραφή ορισμένων χαλαρών βιομετρικών στοιχείων (όπως είναι η ηλικία και το φύλο), αλλά και η κατεύθυν ση στην οποία κοιτάει ο άνθρωπος, εφόσον το επιτρέπει η θέση και η στάση του. Στην παρούσα διπλωματική εργασία γίνεται εκτενής έρευνα των χρησιμοποιούμενων τεχνολογιών που αναφέρονται στην ανίχνευση και την εξαγωγή συμπερασμάτων για τ ο κάθε διερχόμενο – α πό ένα χώρο – άτομο. Παράλληλα δημιουργείται μία μεθοδολογία χειρισμού εικονοσειρών οι οποίες εμπεριέχουν άτομα, για τη συνδυαστική επίλυση των προβλημάτων του διαχωρισμού του προσκηνίου ( foreground ) και του παρασκηνίου ( background ) σε μία εικόνα, της ανί χνευσης προσώπων, της εύρεσης χαρακτηριστικών σημείων σε αυτά, της διεξαγωγής συμπερασμάτων για την περιστροφή του κατά τους τρεις βαθμούς ελευθερίας του και , τέλος , της απόδοσης ετικετών βιομετρικών χαρακτηριστικών. Το δεύτερο τμήμα της μεθοδολογίας είναι υπεύθυνο για την ενσωμάτωση της προτεινόμενης μεθοδολογίας σε ένα σύστημα παρακολούθησης της πορείας κάθε ατόμου με τη χρήση εικονοσειρών βάθους. Όλη η υλοποίηση της μεθοδολογίας έγινε με γνώμονα τη χρήση της σε πραγματικό χρόνο στον ενσωματωμένο επεξεργα στή της συσκευής καταγραφής εικονοσειρών, συνεπώς πρόκειται για μία υλοποίηση χαμηλού υπολογιστικού κόστους . Τη δημιουργία του συστήματος συνοδεύει μία εκτενής ανάλυση της ορθότητας και αξιολόγησης των αποτελεσμάτων, η οποία αποδεικνύει τη δυνατότητα χρήση ς του συστήματος σε εμπορικές εφαρμογές ειδικού σκοπού.
Σπυρίδων Παπατζέλος
Μελέτη του Κόστους Εκτέλεσης Εφαρμογών και Αποθήκευσης Πληροφορίας σε Blockchain Περιβάλλοντα
Σε ένα κόσμο που συνεχώς εξελλίσεται με αυξανόμενους ρυθμούς, η πληροφορία είναι το αγαθό με τη μεγαλύτερη αξία. Το πόσο γρήγορα είναι διαθέσιμη η πληροφορία και σε ποιόν, είναι τα κλειδιά που κάναν το Blockchain από μια ιδέα να μεταμορφωθεί σε ένα χρήσιμο εργαλείο το οποίο επεκτύνεται χρόνο με το χρόνο. Η ανιχνευσιμότητα , δηλαδή το “τί”, το “πώς” και το “πού” της συναλλαγής, και η διαφάνεια, δηλαδή η δυνατότητα κάθε χρήστη να έχει πρόσβαση στη βάση δεδομένων του Blockchain, συνθέτουν δύο μόνο από τα πλεονεκτήματα που προσφέρει αυτή η τεχνολογία. Η ανακάλυψη αυτής της καινοτόμου τεχνολογίας κάνει τον καθένα να θέλει να μάθει περισσότερα για αυτό το θέμα, ακόμη και αν δεν είναι στο χώρο των υπολογιστών και της πληροφορίας. Οι στόχοι της παρούσας διπλωματικής είναι η ανάλυση των Blockchain συστημάτων και η αναζήτηση τεχνικών βελτιστοποίησης από πλευράς κόστους αποθήκευσης δεδομένων και εκτέλεσης εφαρμογών σε ένα Blockchain περιβάλλον. Για τον λόγο αυτό έγινε υλοποίηση μιας ενδεικτικής Blockchain εφαρμογής για τη στοιχειώδη διαχείριση της αγροτικής εφοδιαστικής αλυσίδας και η μελέτη τεχνικών βελτιστοποίησης αυτής. Το πρώτο στάδιο ξεκίνησε με συνεχή μελέτη άρθρων και εργασιών πάνω στα χαρακτηριστικά της λειτουργίας Blockchain συστημάτων, τα οποία είναι μια γενική ιδέα και όχι μια υλοποίηση. Η πρώτη υλοποίηση έγινε με το Bitcoin το 2009, το οποίο συνδύασε ήδη υπάρχουσες τεχνολογίες. Για να υπάρξει μια καλύτερη κατανόηση των Blockchain συστημάτων έγινε εμβάθυνση στη μελέτη σε διάφορα περιβάλλοντα όπως Bitcoin, Ethereum, Hyperledger. Ο ανοιχτός χαραστήρας, η ασφάλεια και η κοινότητα χρηστών οδήγησαν στην επιλογή του Ethereum. Το δεύτερο στάδιο περιλαμβάνει μια περαιτέρω εμβάθυνση στα χαρακτηριστικά του Ethereum. Το Ethereum επιτρέπει την ανάπτυξη εφαρμογών μέσω Smart Contracts στο περιβάλλον εκτέλεσης Ethereum Virtual Machine (EVM). Τα Smart Contracts αναπτύχθηκαν με τη γλώσσα προγραμματισμού Solidity. ́Ολα τα παραπάνω συνέβαλαν στη σχεδίαση μιας εφαρμογής στην αvivii γροτική εφοδιαστική αλυσίδα. Ολοκληρώνοντας, δοκιμάστηκαν διάφορα σενάρια για τη δημιουργία τεχνικών βελτιστοποίησης του κόστους αποθήκευσης πληροφορίας και εκτέλεσης εφαρμογών στο περιβάλλον του Ethereum. Οι παραπάνω τεχνικές εφαρμόστηκαν στην εφαρμογή πάνω στην αγροτική εφοδιαστική αλυσίδα.
Δημήτριος Ρακαντάς
Δημιορυγία Πλατφόρμας Κατασκευής Ρομποτικών Εφαρμογών με Χρήση Διαδικτυακού Ρομποτικού Προσομοιωτή
Νικόλαος Οικονόμου
Σημασιολογική Ανάλυση Κώδικα από Διαδικτυακές Πηγές με Σκοπό την Επαναχρησιμοποιηση Λογισμικού
Η εξάπλωση του διαδικτύου και η ευκολία του διαμοιρασμού της πληροφορίας, που ήρθε σαν επακόλουθο αυτής, είχε ως αποτέλεσμα ουσιώδεις αλλαγές στον τρόπο διάδοσης και ανάπτυξης του λογισμικού. Παραδείγματα λογισμικού βρίσκονται πλέον σε αφθονία σε αποθήκες λογισμικού αλλά και σε διάφορες ιστοσελίδες που έχουν ως αντικείμενο τον προγραμματισμό. Ωστόσο, η ανεύρεση παραδειγμάτων κώδικα (με στόχο την επαναχρησιμοποίηση κώδικα) αποδεικνύεται προβληματική διαδικασία με τις συμβατικές μηχανές αναζήτησης, αφού ο προγραμματιστής καλείται να εγκαταλείψει το έργο του και να δαπανήσει πολύ χρόνο για να εξετάσει τη χρησιμότητα των αποτελεσμάτων. Προκειμένου να αντιμετωπιστούν οι δυσκολίες που αναφέρθηκαν, και να δοθεί μια πιο εξειδικευμένη λύση στο πρόβλημα, άρχισαν να αναπτύσσονται τα Συστήματα Προτάσεων στην Τεχνολογία Λογισμικού (Recommendation Systems in Software Engineering ή RSSEs). Ο θεμελιώδης στόχος αυτών των συστημάτων είναι να μπορούν να αναγνωρίσουν, δοσμένου ενός ερωτήματος, τα παραδείγματα κώδικα που περιέχουν σχετικό περιεχόμενο. Αυτό, όμως αποδεικνύεται ιδιαίτερα δύσκολο για πολλά από αυτά τα συστήματα εξαιτίας των διαφορετικών τύπων ανάμεσα στα ερωτήματα που συχνά παρουσιάζονται με φυσική γλώσσα και των αποτελεσμάτων που συνήθως εκφράζονται σε κώδικα. Ακόμα, τα περισσότερα συστήματα υστερούν σημαντικά τόσο στη μορφή των αποδεκτών ερωτημάτων, απαιτώντας πολλές φορές από τον χρήστη σύνταξη πολύπλοκων ερωτημάτων, όσο και στην μη βέλτιστη τελική κατάταξη των αποτελεσμάτων. Τέλος, τα περισσότερα συστήματα βασίζονται σε απλά μοντέλα διανυσματικού χώρου και δε χρησιμοποιούν σημασιολογική πληροφορία για την επιστροφή χρήσιμων τμημάτων κώδικα. Η ανάγκη λοιπόν για μια αποδοτική επίλυση του προβλήματος, μας οδήγησε στο σχεδιασμό και την ανάπτυξη ενός νέου συστήματος προτάσεων, του StackSearch. Το σύστημά μας χρησιμοποιεί ως πηγή δεδομένων την ιστοσελίδα Stack Overflow. Μετά από προσεκτική προεπεξεργασία των δεδομένων κειμένου και κώδικα, έγινε εκπαίδευση ορισμένων Μοντέλων Διανυσματικού Χώρου (Vector Space Models). Χρησιμοποιώντας τα μοντέλα αυτά το σύστημά μας μπορεί να δεχτεί ερωτήματα σε φυσική γλώσσα και είναι σε θέση να εκμεταλλευτεί τη σημασιολογική πληροφορία του κειμένου που συνοδεύει τα τμήματα κώδικα, καταφέρνοντας έτσι να παρουσιάσει στο χρήστη σχετικά παραδείγματα. Αυτά τα παραδείγματα έχουν πρωτύτερα εξορυχθεί από τις αναρτήσεις του Stack Overflow και έχουν ελεγχθεί για συντακτική ορθότητα. Τέλος, γίνεται αξιολόγηση του συστήματος συγκρίνοντας τον μηχανισμό κατάταξης που προτείνουμε με λύσεις που χρησιμοποιούνται ήδη στη σύγχρονη βιβλιογραφία, προκειμένου να βεβαιωθούμε για την αποδοτική του λειτουργία.
Τριανταφυλλιά Βουλιβάση
Test Routine Automation through Natural Language Processing Techniques
Αδαμαντίδου Ελένη
Ανάπτυξη εφαρμογής παροχής υπηρεσιών με βάση την αναγνώριση ομιλίας
Σε μία εποχή όπου η τεχνολογία αποτελεί μεγάλο μέρος της καθημερινότητας των περισσότερων ανθρώπων, η λεκτική επικοινωνία ανθρώπου-μηχανής μπορεί να διευκολύνει τη χρήση των προϊόντων της τεχνολογίας ακόμα και από άτομα μεγαλύτερης ηλικίας. Για το λόγο αυτό, στην παρούσα διπλωματική υλοποιήθηκε μία εφαρμογή αναγνώρισης ομιλίας, η οποία παρέχει πληροφορίες στον χρήστη. Ο χρήστης καλείται να κάνει μία προφορική ερώτηση στο σύστημα, το οποίο τη μετατρέπει σε κείμενο και στη συνέχεια του δίνει την πληροφορία που λαμβάνει μέσω της επικοινωνίας με την αντίστοιχη διαδικτυακή υπηρεσία. Η εφαρμογή αποτελείται από 7 επιμέρους στάδια, ανεξάρτητα μεταξύ τους, και έχει σχεδιαστεί ώστε να είναι εύκολα επεκτάσιμη, καθιστώντας δυνατή την προσθήκη μιας νέας υπηρεσίας με ελάχιστες αλλαγές στον υπάρχοντα κώδικα. Στα πλαίσια της διπλωματικής υλοποιήθηκαν 3 υπηρεσίες που παρέχουν πληροφορίες σχετικά με νοσοκομεία, φαρμακεία και τον καιρό. Όσον αφορά το τμήμα της αναγνώρισης ομιλίας, εκπαιδεύτηκε ένα νέο, εξειδικευμένο ως προς την εφαρμογή, μοντέλο στα ελληνικά με σκοπό τη βελτίωση της απόδοσης της αναγνώρισης ομιλίας σε σχέση με παλιότερα μοντέλα. Το νέο μοντέλο εκπαιδεύτηκε με ηχογραφήσεις ατόμων που διατυπώνουν ερωτήσεις περιεχομένου σχετικού με τις 3 παραπάνω υπηρεσίες. Τα πειράματα που εκτελέστηκαν, δείχνουν τη σημαντική βελτίωση του εξειδικευμένου ως προς την εφαρμογή συστήματος αναγνώρισης ομιλίας σε σχέση με ένα γενικό σύστημα, καθώς και την αποτελεσματική ανταπόκριση του συνόλου της εφαρμογής στα ερωτήματα του χρήστη.
Φεγγομύτης Θωμάς
Ανάλυση ποιότητας πηγαίου κώδικα σε πολύ-γλωσσικά έργα λογισμικού (multi-language software projects)
Η ραγδαία ανάπτυξη της τεχνολογίας και η διαδεδομένη χρήση του διαδικτύου έχουν ως αποτέλεσμα την εξέλιξη της διαδικασίας ανάπτυξης λογισμικού, στην οποία πλέον κυρίαρχη θέση έχει η έννοια της επαναχρησιμοποίησης. Στο γεγονός αυτό έχουν συμβάλλει τα πολυάριθμα έργα ανοικτού λογισμικού που διανέμονται ελεύθερα σε διαδικτυακά αποθετήρια και είναι εύκολα προσπελάσιμα από τους προγραμματιστές. Έτσι, η επαναχρησιμοποίηση κώδικα για την ανάπτυξη ενός νέου έργου λογισμικού δημιουργεί την ανάγκη αξιολόγησης της ποιότητας τμημάτων που είναι υποψήφια προς χρήση. Η δυνατότητα εφαρμογής τεχνικών λογισμικού με βάση την επαναχρησιμοποίηση έχει πρακτικά οδηγήσει στην εμφάνιση των πολύγλωσσικών έργων λογισμικού, δηλαδή έργων λογισμικού τα οποία περιέχουν τμήματα κώδικα γραμμένα σε διαφορετικές γλώσσες προγραμματισμού, για τη βέλτιστη εκμετάλλευση των δυνατοτήτων της εκάστοτε γλώσσας. Το γεγονός αυτό αυξάνει ακόμα περισσότερο την πολυπλοκότητα της αξιολόγησης της ποιότητας έργων λογισμικού. Προς την κατεύθυνση αυτή, οι υπάρχουσες πρακτικές εστιάζουν στην ανάλυση και αξιολόγηση του κώδικα με άξονα την γλώσσα προγραμματισμού ταυτίζοντας την έννοια έργο λογισμικού με μια γλώσσα υλοποίησης. Υπάρχουν λοιπόν εργαλεία στατικής ανάλυσης που μπορούν να αξιολογήσουν έργα λογισμικού, όμως μόνο ως προς μία γλώσσα προγραμματισμού. Προς την κατεύθυνση αυτή σχεδιάστηκε ένα σύστημα αξιολόγησης της ποιότητας πολύ-γλωσσικών έργων λογισμικού που λαμβάνει υπόψιν τις κλήσεις μεταξύ των τμημάτων πηγαίου κώδικα διαφορετικών γλωσσών προγραμματισμού. Η μεθοδολογία της παρούσας διπλωματικής εργασίας βασίζεται στην χρήση μετρικών στατικής ανάλυσης για την αξιολόγηση της ποιότητας, διαφοροποιώντας όμως τον υπολογισμό τους με βάση τις προαναφερθείσες κλήσεις. Τα αποτελέσματα της εφαρμογής του συστήματος σε πολύ-γλωσσικά έργα λογισμικού (υλοποιημένα σε Python και Java) έδειξε ότι το σύστημα είναι σε θέση να παρέχει μια συνολική και αντιπροσωπευτική αξιολόγηση ποιότητας και συνεπώς μπορεί να αποτελέσει ένα χρήσιμο βοήθημα για τους προγραμματιστές.
Ευστράτιος Ναρλής
Αξιολόγηση Ποιότητας διεπαφών χρήστη σε web εφαρμογές μέσω εύρεσης κυρίαρχων προτύπων σχεδίασης
Οι ιστοσελίδες στις μέρες μας έχουν γίνει αναντικατάστατο κομμάτι άντλησης και παροχής πληροφορίας σε όλους τους τομείς της καθημερινότητας. Είτε κάποιος δουλεύει σε έναν υπολογιστή στο γραφείο, είτε ψυχαγωγείται με ένα βιντεοπαιχνίδι, επικοινωνεί με άλλους μέσω κινητού ή εισάγει μια διεύθυνση στο GPS του αυτοκινήτου του ενώ οδηγεί, ανταλλάσσει πληροφορία μέσα από γραφικές (και όχι μόνο) διεπαφές (Graphical User Interfaces - GUIs). Η πληθώρα των διαθέσιμων διαδικτυακών εφαρμογών έχει οδηγήσει σε μια νέα πραγματικότητα όπου ο κάθε χρήστης μπορεί να βρει εφαρμογές που να καλύπτουν κάθε του ανάγκη. Στην πλειοψηφία των περιπτώσεων, μάλιστα, οι διαθέσιμες εφαρμογές που καλύπτουν μια συγκεκριμένη λειτουργικότητα είναι δεκάδες, γεγονός που καθιστά τη σχεδίαση των διεπαφών κομβικής σημασία για την επιλογή του τελικού χρήστη. Καλύτερη σχεδίαση τόσο ως προς την ελκυστικότητα, όσο και ως προς την ευχρηστία αυξάνουν σημαντικά την επιλεξιμότητα μιας εφαρμογής από τους τελικούς χρήστες. Με βάση τα παραπάνω, η παρούσα διπλωματική εργασία στοχεύει στο να συμβάλει στη βελτίωση της σχεδίασης των γραφικών διεπαφών των διαδικτυακών εφαρμογών, προτείνοντας ένα αυτοματοποιημένο εργαλείο το οποίο μπορεί να αξιολογήσει τη σχεδίαση μιας ιστοσελίδας, μοντελοποιώντας τον τρόπο με τον οποίο η καλύτερη σχεδίαση γίνεται αντιληπτή από τους τελικούς χρήστες. Προς αυτήν την κατεύθυνση, έγινε συλλογή δεδομένων εκπαίδευσης χρησιμοποιώντας τεχνικές εξόρυξης δεδομένων σε ένα σετ δεδομένων που περιείχε τις 5000 παγκόσμιος πιο δημοφιλείς ιστοσελίδες. Έγινε στατική ανάλυση στις συγκεκριμένες ιστοσελίδες προκειμένου να εντοπιστούν κοινά πρότυπα σχεδίασης των δομικών τους στοιχείων και στη συνέχεια έγινε χρήση των προτύπων αυτών με στόχο τη δημιουργία ενός δενδρικού μοντέλου αξιολόγησης της σχεδίασης των ιστοσελίδων. Το σύστημα που αναπτύχθηκε, εκτός του να βαθμολογεί ιστοσελίδες είναι σε θέση να προτείνει συγκεκριμένες αλλαγές στη σχεδίαση βασισμένο στα κυρίαρχα πρότυπα που έχουν εξαχθεί και συνεπώς μπορεί να αποτελέσει ένα χρήσιμο εργαλείο για τους προγραμματιστές
Δημοσθένης Κίτσιος
ΑΥΤΟΜΑΤΗ ΠΑΡΑΓΩΓΗ ΣΥΜΠΕΡΙΦΟΡΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΤΗ ΡΟΜΠΟΤΙΚΗ ΠΛΑΤΦΟΡΜΑ ΝΑΟ
Στην επιστήμη των υπολογιστών, ο όρος αυτόματος προγραμματισμός προσδιορίζει ένα είδος προγραμματισμού στον οποίο κάποιος μηχανισμός δημιουργεί ένα πρόγραμμα που επιτρέπει στους επιστήμονες να συντάξουν κώδικα σε υψηλότερο επίπεδο αφαίρεσης. Η μηχανική που βασίζεται σε μοντέλα (model-driven engineering) είναι μια μεθοδολογία ανάπτυξης λογισμικού που εστιάζει στη δημιουργία και εκμετάλλευση μοντέλων, τα οποία αποτελούν εννοιολογικά μοντέλα όλων των θεμάτων που σχετίζονται με ένα συγκεκριμένο πρόβλημα. Ως εκ τούτου, υπογραμμίζει και στοχεύει σε αφηρημένες αναπαραστάσεις των δραστηριοτήτων που διέπουν ένα συγκεκριμένο πεδίο εφαρμογής, αντί των υπολογιστικών (δηλαδή αλγοριθμικών) εννοιών. Στην παρούσα διπλωματική εργασία, σχεδιάστηκε μια μέθοδο αυτόματης παραγωγή κώδικα με βάση το Eclipse που επιτρέπει την χρήση model-driven προσεγγίσεων και χρησιμοποιείται για τη δημιουργία γλώσσας κειμένου από μοντέλα Ecore που ορίζονται από ένα μεταμοντέλο. Η τεχνολογία λογισμικού με γνώμονα το μοντέλο σκοπεύει να μειώσει την προσπάθεια του μηχανικού λογισμικού δημιουργώντας εκτελέσιμο κώδικα από μοντέλα υψηλού επιπέδου. Σκοπός της διπλωματικής εργασίας είναι η δημιουργία ενός φιλικού γραφικού περιβάλλοντος διεπαφής χρήστη, μέσω του οποίου ο χρήστης αλληλεπιδρά και επιλέγει τις λειτουργίες που καθορίζουν τις εντολές που θα εκτελέσει ένα ρομπότ. Για την δοκιμή και αξιολόγηση του συστήματος που σχεδίαστηκε, έγιναν πειράματα στο πραγματικό ρομπότ Nao. Το Nao είναι ένα αυτόνομο, προγραμματιζόμενο ανθρωποειδές ρομπότ που αναπτύχθηκε από την Aldebaran Robotics το 2006.

2017

Σοφία Συσούρκα
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης της αισθητικής διαδικτυακών εφαρμογών μέσω ανάλυσης της δομής
Οι γραφικές διεπαφές αποτελούν ένα δίαυλο επικοινωνίας μεταξύ ανθρώπου και μηχανής και στόχος τους είναι να προσφέρουν έναν αποτελεσματικό και εύκολο τρόπο αλληλεπίδρασης για την εξυπηρέτηση των λειτουργικών απαιτήσεων. Χαρακτηριστικό παράδειγμαλογισμικού αποτελούν οι διαδικτυακές εφαρμογές, οι οποίες αυξάνονται συνεχώς τόσο σε αριθμό, όσο και σε δημοφιλία. Είναι αναμενόμενο, λοιπόν, οι πάροχοι των εφαρμογών να προσπαθούν να αναπτύσσουν γραφικές διεπαφές οι οποίες έχουν ελκυστικό αισθητικό σχεδιασμό και να παρέχουν ευκολία πλοήγησης και πρόσβασης στην πληροφορία που επιθυμεί ο χρήστης.Κατά συνέπεια, το ερώτημα που εγείρεται, και το οποίο αποτελεί το βασικό ερευνητικό πεδίο της παρούσας διπλωματικής εργασίας, είναιΠώς αξιολογείται ο αισθητικός σχεδιασμός της γραφικής διεπαφής μίας ιστοσελίδας;και αφορά την εύρεση ενός αξιόπιστου μηχανισμού αξιολόγησης και μοντελοποίησης του σχεδιασμού της γραφικής διεπαφής μιας διαδικτυακής εφαρμογής.Η παρούσα διπλωματική εργασία στοχεύει στην τεκμηριωμένη απάντηση του παραπάνω ερωτήματος και στην εύρεση γενικών προτύπων σχεδίασης που σχετίζονται με τα αισθητικά χαρακτηριστικά των διεπαφών, καθώς και εξειδικευμένων προτύπων που εφαρμόζονται σε ιστοσελίδες με συγκεκριμένο θεματικό περιεχόμενο. Η εύρεση των προαναφερθέντων προτύπων βασίζεται στον τρόπο με τον οποίο η έννοια της άρτιας αισθητικής γίνεται αντιληπτή από τους τελικούς χρήστες (user - perceived aesthetics), γεγονός που αποτυπώνεται στη δημοφιλία.Προς την κατεύθυνση αυτή, αναπτύχθηκε ένα σύστημα συλλογής και επεξεργασίας δεδομένων και κατασκευάστηκε ένα μοντέλο αξιολόγησης της ποιότητας του αισθητικού σχεδιασμού των ιστοσελίδων. Ως δεδομένα εκπαίδευσης χρησιμοποιήθηκαν 75 δημοφιλείς ιστοσελίδες τριών θεματικών κατηγοριών (διαδικτυακών αγορών, ειδησεογραφικές, μηχανές αναζήτησης), οι οποίες αποτελούν δείγματα επιτυχημένου σχεδιασμού. Στις ιστοσελίδες αυτές διενεργήθηκε στατική ανάλυση με στόχο, τόσο τη συλλογή αξιοποιήσιμης πληροφορίας αναφορικά με τις γραφικές διεπαφές (όπως π.χ. ο αριθμός τους και ο τρόπος που κατανέμονται στα διάφορα επίπεδα θέασης), όσο και για τον υπολογισμό μιας σειράς μετρικών που χρησιμοποιούνται ευρέως από τη βιβλιογραφία.Στα δεδομένα που συλλέχθηκαν εφαρμόστηκαν τεχνικές ταξινόμησης και ομαδοποίησης, διαδικασία που είχε ως αποτέλεσμα τη δημιουργία ενός συνδυαστικού μοντέλου αξιολόγησης. Τα αποτελέσματα χρήσης του μοντέλου κατά την αξιολόγηση νέων ιστοσελίδων έδειξαν ότι ενσωματώνει επιτυχώς την έννοια της επιτυχημένης αισθητικής, όπως αυτή γίνεται αντιληπτή από τους τελικούς χρήστες και συνεπώς μπορεί να αποτελέσει ένα χρήσιμο εργαλείο για τους προγραμματιστές.
Βάγια Ρουσοπούλου
Αυτοματοποιημένη αξιολόγηση της ευχρηστίας διαδικτυακών εφαρμογών μέσω της εύρεσης κυρίαρχων προτύπων σχεδίασης διεπαφών χρήστη
Τα τελευταία χρόνια, γίνεται εμφανής η ραγδαία ανάπτυξη του διαδικτύου με αποτέλεσμα ολοένα και περισσότερες διαδικτυακές εφαρμογές να αποτελούν πηγές πληροφόρησης για εκατομμύρια χρήστες. Άνθρωποι κάθε ηλικίας, από κάθε μορφωτικό, κοινωνικό και οικονομικό επίπεδο επισκέπτονται καθημερινά πλήθος ιστοσελίδων με σκοπό να ενημερωθούν, να ψυχαγωγηθούν, να επικοινωνούν με άλλους ναθρώπους, να συνδιαλλαγούν ή ακόμα και να δράσουν επιχειρηματικά. Η διαρκώς αυξανόμενη τάση προς τις διαδικτυακές εφαρμογές σε συνδυασμό με την ύπαρξη πληθώρας εργαλείων που αυτοματοποιούν την ανάπτυξη των διεπαφών τους, καθιστά αναγκαία την αύρεση μεθόδων απόπτευσης και μοντελοποίησης της ευχρηστίας, όπως αυτή γίνεται αντιληπτή από τους τελικούς χρήστες.Η παρούσα διπλωματική εργασίας έχει ως στόχο να συμβάλλει στη βελτίωση της σχεδίασης των γραφικών διεπαγών διαδικτυακών εφαρμογών, προτείνοντας ένα μοντέλο αυτοματοποιημένης αξιολόγησης του χαρακτηριστικού της ευχρηστίας (usability), όπως αυτή γίνεται αντιληπτή από τους τελικούς χρήστες (user - perceived usability). Προς την κατεύθυνση αυτή, ακατασκευάστηκε ένα σύστημα, το οποίο μέσω της διενέργειας στατικής ανάλυσης σε μεγάλο αριθμό δημοφιλών ιστοσελίδων, ανέπτυξε πρότυπα σχεδίασης γραφικών διεπαφών με τη μορφή κανόνων (rule based). Το σύνολο των κανόνων που αναπτύχθηκαν, παρέχουν τη δυνατότητα πσοστικοποιημένες αξιολόγησης διεπαφών μέσω του υπολογισμού μετρικών στατικής ανάλυσης που σχετίζονται τόσο με την αισθητική (UI aesthetics), όσο και με την πολύπλοκότητα (complexity) των διεπαφών. Από την αξιολόγηση του συστήματος που αναπτύχθηκε, προκύπτει ότι μπορεί να αποτελέσει ένα χρήσιμο βοήθημα για τον προγραμματιστή.
Δημήτριος Δόντσιος
Μοντελοποίηση μη λειτουργικών απαιτήσεων λογισμικού σε μοντέλα διαδικτυακών συστημάτων REST
To πρότυπο αρχιτεκτονικής διαδικτυακών υπηρεσιών REST πρωτοεμφανίστηκε στην επιστημονική διατριβή του Roy Fielding το 2000. To πρότυπο αυτό είναι στην ουσία ένα σετ από κανόνες και περιορισμούς των οποίων η εφαρμογή σε μια διαδικτυακή υπηρεσία την καθιστούν πιο ελκυστική, αυξάνοντας την απόδοσή της, την επεκτασιμότητά της και διευκολύνοντας την διαδικασία κατανόησης και τροποποίησής της. Το REST εισήγαγε πρώτη φορά την ιδέα της μεταχείρισης των αντικειμένων μιας υπηρεσίας ως πόρους οι οποίοι μπορούν να δημιουργηθούν και να καταστραφούν μέσω των Ενιαίων Αναγνωριστικών Πόρων (URI), δηλαδή συνδέσμους στο διαδίκτυο. Οι πόροι αυτοί τροποποιούνται μέσω ενός συνόλου καλώς ορισμένων ενεργειών (HTTP ρήματα) και διαμοιράζονται μεταξύ πελατών και διακομιστών μέσω αναπαραστάσεων και καλώς ορισμένων πρωτοκόλλων. Λόγω της απλότητάς της, η αρχιτεκτονική REST έγινε ιδιαίτερα διάσημη και όλο και περισσότερες υπηρεσίες στο διαδίκτυο είναι RESTful. Έτσι προέκυψε μια συνεχώς αυξανόμενη ανάγκη για ανάπτυξη εργαλείων που αυτοματοποιούν την παραγωγή RESTful υπηρεσιών. Πολλά από τα εργαλεία που αναπτύχθηκαν είναι εύκολα στη χρήση τους, αλλά όλα υστερούν σε κάποιον τομέα. Κάποια από αυτά πετυχαίνουν υψηλότερη κάλυψη των περιορισμών που ορίζει η αρχιτεκτονική REST, ενώ άλλα καταφέρνουν καλύτερη αυτοματοποίηση της διαδικασίας παραγωγής του κώδικα. Το κοινό τους χαρακτηριστικό είναι ότι στοχεύουν στην κάλυψη των λειτουργικών απαιτήσεων της παραγόμενης υπηρεσίας και αγνοούν την σημασία της κάλυψης των μη λειτουργικών απαιτήσεων, γι’ αυτό και δεν λαμβάνουν τις μη λειτουργικές απαιτήσεις υπόψιν τους στη διαδικασία ανάπτυξης. Η παρούσα διπλωματική παρουσιάζει την ανάπτυξη ενός εργαλείου αυτοματοποίησης της παραγωγής μιας RESTful υπηρεσίας, το οποίο όμως καλύπτει και μη λειτουργικές απαιτήσεις, εκτός από λειτουργικές. Το εργαλείο αυτό είναι μια επέκταση ενός υπάρχοντος συστήματος αυτόματης παραγωγής κώδικα, του S-CASE, το οποίο χρησιμοποιεί τεχνικές μοντελοστραφούς σχεδίασης και μοντελοστραφούς αρχιτεκτονικής. Για τον λόγο αυτό, η τεχνική που ακολουθείται για την αυτόματη παραγωγή κώδικα ακολουθεί όλους τους κανόνες που εισήγαγε ο OMG (Object Management Group) κατά τον ορισμό της αρχιτεκτονικής οδηγούμενης από μοντέλα (MDA). Η παραγόμενη από το εργαλείο υπηρεσία έχει αρχιτεκτονική MVC και η πλατφόρμα εκτέλεσης είναι η Java EE. Συμφωνεί με όλους τους κανόνες που εισάγει το εργαλείο S-CASE. O τρόπος με τον οποίο καλύπτονται οι μη λειτουργικές απαιτήσεις είναι η μοντελοποίηση προτύπων σχεδίασης που τις ικανοποιούν και η ενσωμάτωση των μοντέλων αυτών στην διαδικασία παραγωγής του κώδικα, και άρα, τελικά, η ενσωμάτωση των προτύπων σχεδίασης στον εκτελέσιμο κώδικα.
Αθανάσιος Λέλης
Deep auto-encoders για ανάκτηση κώδικα και οπτικοποίηση
Up until recently search engines were exclusively used for web pages and documents expressed in natural language. Recently, search engines are gaining popularity in source code retrieval as well. Since source code follows a strict, yet sometimes complex structure, standard, exclusively Natural Language Processing and Information Retrieval approaches fail to adequately describe the functionality of the source code fragments, which is usually the question. On the other hand, Deep Learning methods in recent years surpassed by far other approaches in information retrieval problems, thus making them appealing in the field of source code retrieval. This diploma thesis reports on the implementation of a post-indexing system based on deep learning techniques. Our system incorporates a variety of Natural Language Processing techniques and finally transforms the original documents-posts to the Vector Space Model. With the usage of two auto-encoders, the original dimensional space is significantly reduced. Our system then retrieves the top documents in respect to the query. Our approach combines two different methods for auto-encoder training, which have performed well in similar document retrieval domains. Our methodology performs well in comparison to other state of the art practices that are commonly being used. Our auto-encoders appear to encode the datasets with small information loss, competing with Tf-Idf methodology against various metrics. We also illustrate that our systems response time is by far lower than retrieval with Tf-Idf, which makes our approach ideal for retrieval in big data repositories.
Χρήστος Ψάρρας
Aνάπτυξη Συστήματος Οπτικοποίησης Πηγαίου Κώδικα με χρήση τεχνικών Ανάκτησης Πληροφοριών
Το διαδίκτυο έχει αλλάξεθ ριζικά τον τρόπο με τον οποίο επικοινωνούμε και ανταλλάσουμε πληροφορίες. Επίσης, έχει δημιουργήσει πρόσφορο έδαφος για την ανάπτυξη αποθηκών ανοιχτού λογισμικούμ στις οποίες έχουν πρόσβαση όλοι. Σε αυτές βρίσκονται, εκτός από ολοκληρωμένες εφαρμογές, και βιβλιοθήκες, οι οποίες υλοποιούν αλγορίθμους και τεχνικές προγραμματισμού, που στοχεύουν στην επίλυση συγκεκριμένων προβλημάτων. Η κατανόηση όμως της λειτουργικότητας των βιβλιοθηκών αυτών, καθώς και η επέκτασή τους, απαιτεί πολύ χρόνο και είναι μια δύσκολη διαδικασία. Για τον λόγο αυτό αναπτύχθηξαν αυστήματα που συλλέγουν πληροφορίες για τις βιβλιοθήκες από την δομή και την τεκμηρίωσή τους και τις παρουσιάζουν στον χρήστη. Πολύ συχνά όμως, η τεκμηρίωση είναι ελλιπής ή απουσιάζει εντελώς και η δομή του κώδικα δεν είναι αρκετή για να φανερώσει τη λειτουργικότητα που εξυπηρετεί. Έτσι απαιτούνται εργαλεία που αξιοποιούν την σημασιολογική πληροφορία που κρύβεται στον κώδικα των βιβλιοθηκών. Με τα εργαλεία αυτά είναι δυνατή η σημασιολογική περιγραφή της λειτουργίας μιας εφαρμογής, καθώς και η ανάλυσης της συνοχής των πακέτων από τα οποία αποτελείται. Χρησιμοποιώντας σύγχρονες και διαδεδομένες μεθόδους επεξεργασίας πληροφορίας, αναπτύξαμε ένα σύστημα που αναλύει τον πηγαίο κώδικα μιας βιβλιοθήκης, εξάγει χρήσιμη πληροφορία από τα ονόματα των μεταβλητών/ μεθόδων και τα σχόλια στον κώδικα και στη συνέχεια εντοπίζει τις σημασιολογικές ομάδες (τα θέματα δηλαδή), τις οποίες περιλαμβάνει. Πιο συγκεκριμένα, το σύστημα υποστηρίζει την αυτοματοποιημένη εκτέλεση αλγορίθμων διανυσματοποίησης (count, tf-idf) και ομαδοποίησης (k-means, LDA)των κλάσεων μιας βιβλιοθήκης, και συγκρίνει την απόδοσή τους με βάση την καθαρότητα των θεμάτων που προκύπτουν. Για κάθε ένα από τα θέματα, αναζητά στο διαδίκτυο για ετικέτες που περιγράφουν πιο αφαιρετικά το περιεχόμενό τους. Επιπλέον, προβάλλει στον χρήστη τον τρόπο με τον οποίο τα πακέτα της βιβλιοθήκης κατανέμονται στα διάφορα θέματα. Τέλος, συσχετίζει τα θέματα μεταξύ τους, και βρίσκει πόσα και ποιοα από αυτά ανήκουν στην ίδια νοηματική κατηγορία. Από ένα σενάριο χρήσης του συστήματος, για την βιβλιοθήκη Weka, καθώς και από την εφαρμογή του σε 5 άλλες βιβλιοθήκες διαφόρων μεγεθών, προκύπτει ότι η καθαροτητα των θεμάτων που παράγονται υπερβαίνει το 60%, ενώ στις περισσότερες βιβλιοθήκες βρίσκεται στο 75 - 80%. Επίσης, παρατηρείται ότι οι ετικέτες που παράγονται για τα θέματα αποδίδουν με σαφήνεια το νοηματικό τους περιεχόμενο. Τέλος, ερευνάται η σύγκριση των μεθόδων ομαδοποίησης που χρησιμοποιούνται και η συσχέτιση της απόδοσής τους με τις μεθόδους διανυσματοποίησης.
Θεμιστοκλής Παπαβασιλείου
Εξαγωγή παραδειγμάτων χρήσης βιβλιοθηκών κώδικα από αποθήκες λογισμικού
Στην εποχή του διαδικτύου ο διαμοιρασμός πληροφορίας αποτελεί καθημερινό φαινόμενο. Ο μεγάλος όγκος δεδομένων καθιστά επιτακτική την ανάγκη αποδοτικής αξιοποίησής τους. Το λογισμικό, ως μορφή πληροφορίας, υπάρχει σε αφθονία στο διαδίκτυο κυρίως σε αποθήκες λογισμικού. Η αποτελεσματική αναζήτηση τμημάτων κώδικα για την επαναχρησιμοποίησή τους πολλές φορές καθίσταται δύσκολη λόγω ακριβώς της πληθώρας της πληροφορίας αλλά και της μη επαρκούς τεκμηρίωσης για τη χρήση σχετικών βιβλιοθηκών. Τα παραδείγματα χρήσης βιβλιοθηκών αφορούν κυρίως Διεπαφές Προγραμματισμού Εφαρμογών (Application Programming Interfaces, APIs) των οποίων η τεκμηρίωση δεν είναι πάντα διαθέσιμη και όταν είναι δεν παρέχεται κάποια εγγύηση ως προς την ποιότητά της. Η ανάγκη για αποδοτική επίλυση του προβλήματος της εξόρυξης API μας οδηγεί στην μελέτη και την ανάπτυξη ενός RSSE συστήματος που ως σκοπό έχει την αποδοτική αναζήτηση παραδειγμάτων για ένα API. Η χρήση κώδικα από αποθετήρια που ελέγχεται αν είναι μεταγλωττίσιμος και η χρήση αλγορίθμου εξόρυξης συχνών κλειστών ακολουθιών (Frequent Closed Sequences, FCS) έχουν ως αποτέλεσμα τα παραγόμενα παραδείγματα να είναι ποιοτικά και να καλύπτουν ικανοποιητικά μεγάλο εύρος χρήσεων ενός API. Επιπλέον, η απόρριψη περιττής πληροφορίας κατά την εξόρυξη δεδομένων καθιστά τα αποτελέσματα του συστήματός μας συνεκτικά. Το σύστημά μας υποστηρίζει τη συνοπτική περιγραφή ενός API με την περιληπτική παρουσίαση παραδειγμάτων, αλλά και την διεκπεραίωση ερωτημάτων που αφορούν συγκεκριμένες μεθόδους. Το σύστημα μας αξιολογείται ως προς το ποσοστό μεθόδων ενός API για τα οποία παράγει παραδείγματα αλλά και ως προς την ποιότητα αυτών βάσει μετρικών που αφορούν την ποικιλία και την συνοχή τους. Επιπροσθέτως, παραθέτουμε και μια μελέτη περίπτωσης για τη βιβλιοθήκη Μηχανικής Μάθησης και Εξόρυξης Δεδομένων (Machine Learning and Data Mining) weka οπού φαίνεται η απόδοση του συστήματός μας σε πραγματικές συνθήκες. Η αξιολόγηση παράγει ικανοποιητικά αποτελέσματα, υποδεικνύοντας πως το σύστημα που σχεδιάσαμε καλύπτει ικανοποιητικό αριθμό μεθόδων ενός API, για τα οποία παράγει συνεκτικά παραδείγματα χωρίς να απαιτεί σημαντικό χρόνο από το χρήστη για την εύρεση χρήσιμων παραδειγμάτων.
Ειρήνη Χατζηελευθερίου
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα μέσω Τεχνικών Ανακατασκευής
Το ευρέως πλέον χρησιμοποιούμενο παράδειγμα της επαναχρησιμοποίησης κώδικα, κατά τη διαδικασία παραγωγής λογισμικού, έχει καταστήσει αναγκαία την επόπτευση της ποιότητας του πηγαίου κώδικα των παραγόμενων εφαρμογών. Η αποτίμηση της ποιότητας λογισμικού αποτελεί ένα σύνθετο και πολυ-παραγοντικό πρόβλημα. Σε μια προσπάθεια αποσαφήνισης και μοντελοποίησης της έννοιας της ποιότητας, έχουν προταθεί μια σειρά από χαρακτηριστικά τα οποία τη συνθέτουν. Τέτοια χαρακτηριστικά είναι η διατηρησιμότητα, η επεκτασιμότητα, η ευχρηστία και άλλα. Τα χαρακτηριστικά αυτά συνδέονται με τη σειρά τους με ένα σύνολο από μετρικές, οι οποίες ποσοτικοποιούν ιδιότητες του κώδικα όπως είναι η πολυπλοκότητα και η συνοχή. Η παρούσα διπλωματική εργασία έχει ως στόχο την παρακολούθηση των ιδιοτήτων του πηγαίου κώδικα, σε συνάρτηση με τις περιπτώσεις στις οποίες αυτός έχει υποστεί ανακατασκευή. Σκοπός μας είναι η μελέτη του τρόπου επίδρασης της ανακατασκευής στις ιδιότητες αυτές και κατά συνέπεια στα χαρακτηριστικά ποιότητας. Μάλιστα, η εφαρμογή τεχνικών ανακατασκευής πολύ συχνά περιλαμβάνει τη χρήση προτύπων σχεδίασης. Τα πρότυπα αυτά περιγράφουν καλές πρακτικές για την επίλυση συχνά εμφανιζόμενων ζητημάτων στο σχεδιασμό λογισμικού. Το σύστημα που υλοποιείται στα πλαίσια της εργασίας αναζητά τις περιπτώσεις που χρησιμοποιήθηκαν πρότυπα σχεδίασης σε ένα έργο λογισμικού και εκτιμά την επίδραση που έχει η εφαρμογή αυτή στις μετρικές κώδικα. Αξιοποιώντας αυτή την πληροφορία, προτείνει την υλοποίηση ενός προτύπου σχεδίασης, ανάλογα με τις τιμές των μετρικών σε ένα έργο λογισμικού. Εφόσον έχει προταθεί ένα ή περισσότερα πρότυπα για χρήση, το σύστημα προχωρά στη σύσταση ενός τρόπου με τον οποίο μπορεί να εφαρμοστεί το κάθε πρότυπο, εντοπίζοντας τις κλάσεις που θα μπορούσαν να συμμετέχουν σε αυτό. Στα πλαίσια του συστήματος που υλοποιήθηκε, μοντελοποιήθηκε επίσης και η εύρεση σχεδιαστικών ελαττωμάτων (anti-patterns). Τα πρώτα αποτελέσματα από την εφαρμογή του συστήματος δείχνουν ότι μπορεί να αποτελέσει ένα χρήσιμο εργαλείο για τους προγραμματιστές.
Ιωάννη Α. Ζαφειρίου
Αναγνώριση Προφίλ Μηχανικών Λογισμικού μέσω Εφαρμογής Τεχνικών Εξόρυξης Δεδομένων σε Πηγαίο Κώδικα και Σχόλια στο GitHub
Οι μεθοδολογίες, ή πλαίσια, ανάπτυξης λογισμικού επιχειρούν να περιγράψουν τις διαδικασίες που θα έπρεπε να εκτελούνται καθ’ όλη τη διάρκεια από τη σύλληψη της ιδέας κάποιου λογισμικού μέχρι και την παράδοσή του. Υπάρχουν παραδοσιακές προσεγγίσεις οι οποίες εστιάζουν στην εκτέλεση κάποιας ακολουθίας βημάτων με ξεκάθαρα όρια και διαύλους επικοινωνίας, όπως το Μοντέλο Καταρράκτη (Waterfall Model) το οποίο περιλαμβάνει τη μετάδοση κάποιου εγγράφου, αλλά και νεότερες, όπως το Agile μοντέλο, το οποίο τονίζει τη σημασία της ευελιξίας και της διαρκούς, άμεσης επικοινωνίας μεταξύ των μελών της ομάδας ανάπτυξης. Αυτά τα νεότερα μοντέλα, τα τελευταία χρόνια έχουν συναντήσει ευρεία αποδοχή από τις ομάδες που αναπτύσσουν λογισμικό. Λόγω της σημαντικότητας και του τρόπου της επικοινωνίας που περιγράφεται από αυτά τα μοντέλα, είναι επιθυμητά άτομα που διαθέτουν τόσο τεχνικές, όσο και επικοινωνιακές δεξιότητες. Ωστόσο, το πρόβλημα που ανακύπτει αναζητώντας τέτοια άτομα είναι η δυσκολία της αξιολόγησης αυτών των δεξιοτήτων, καθώς δεν μπορούν να αποτελέσουν αντικείμενο κάποιας συνηθισμένης αξιολόγησης. Σκοπός της παρούσας εργασίας είναι η προσέγγιση του θέματος αυτού. Το πρόβλημα προσεγγίζεται χρησιμοποιώντας τεχνικές εξόρυξης δεδομένων για την ανίχνευση των ρόλων και την αξιολόγηση της δραστηριότητας των ατόμων που συμμετέχουν στη διαδικασία ανάπτυξης λογισμικού. Γι’ αυτό το λόγο, υλοποιείται ένα σύστημα το οποίο αντλεί δεδομένα δραστηριότητας των χρηστών της διαδικτυακής πλατφόρμας GitHub, και τα χρησιμοποιεί για την εκπαίδευση αλγορίθμων ομαδοποίησης. Με αυτό τον τρόπο στοχεύει στην κατασκευή μοντέλων για την αναγνώριση των διαφορετικών ρόλων που συναντώνται σε projects ανοιχτού κώδικα, όπως του GitHub, και τη δυναμικότητά της συνεισφοράς των χρηστών στα πλαίσιά τους. Μετά από πειράματα που έγιναν για διαφορετικούς συνδυασμούς δεδομένων και χαρακτηριστικών αξιολόγησης, κρίνεται πως τα αποτελέσματα που παρατίθενται ως τελικά, παρέχουν ικανοποιητική πληροφορία αυτά τα θέματα.
Μαρίνα Γέραλη
Αυτόματη Παραγωγή Σεναρίων Ελέγχου με Χρήση Αποθετηρίων Κώδικα
Οι σχεδιαστές λογισμικού ή οι απλοί προγραμματιστές προσπαθούν να εκμεταλλευτούν τις δυνατότητες του Διαδικτύου, ώστε να μπορέσουν να επαναχρησιμοποιήσουν τμήματα κώδικα που ταιριάζουν στο έργο τους, σώζοντας, έτσι, χρόνο και χρήμα. Για το σκοπό αυτό, αρχικά αναπτύχθηκαν οι Μηχανές Αναζήτησης Κώδικα (Code Search Engines, CSEs), οι οποίες αντλούν τμήματα κώδικα από διάφορες αποθήκες λογισμικού και εκτελώντας αλγορίθμους εξόρυξης δεδομένων (data mining) προσπαθούν να παρουσιάσουν τα πιο συναφή, σε αυτό που ζήτησε ο χρήστης, αποτελέσματα. Τη διαδικασία αναζήτησης σχετικού κώδικα διευκολύνουν, επίσης, και τα αποκαλούμενα Συστήματα Συστάσεων στην Τεχνολογία Λογισμικού (Recommendation Systems in Software Engineering, RSSE). Πρόκειται για συστήματα τα οποία συνεργάζονται συνήθως με CSEs, ανταποκρίνονται, όμως, σε περισσότερο σύνθετα ερωτήματα από ό,τι οι τελευταίες, λαμβάνοντας υπ’ όψιν το υπό κατασκευή project, προκειμένου να γίνει η αναζήτηση, και εφαρμόζοντας πολύπλοκες τεχνικές εξόρυξης δεδομένων, ώστε να παρουσιάσουν τα επιθυμητά αποτελέσματα σε αυτόν. Παρά τη σημαντική συνεισφορά των δύο παραπάνω εργαλείων στον τομέα της επαναχρησιμοποίησης κώδικα, αδυνατούν να λύσουν το πρόβλημα που αποτέλεσε αντικείμενο της παρούσας διπλωματικής. Δηλαδή, την αναζήτηση επαναχρησιμοποιήσιμων μεθόδων ελέγχου (testmethods) και την αυτοματοποιημένη κατασκευή σεναρίων ελέγχου (test cases), τα οποία να ελέγχουν τη λειτουργία που επιτελείται από το έργο λογισμικού που αναπτύσσει ο χρήστης. Σκοπός αυτής της εργασίας είναι η δημιουργία ενός συστήματος RSSE το οποίο θα λαμβάνει ως είσοδο τον κώδικα του χρήστη και θα κατασκευάζει κατάλληλα ερωτήματα, ώστε να αναζητηθούν σενάρια ελέγχου σε online αποθήκες λογισμικού (AGORA και GitHub). Με τη χρήση τεχνικών που θα αναλυθούν στη συνέχεια, εξορύσσει δεδομένα από τα τμήματα κώδικα που ανακτήθηκαν, τα βαθμολογεί με βάση τη σχετικότητά τους ως προς το ερώτημα του χρήστη και ελέγχει αν και κατά πόσο μπορούν να μεταγλωττιστούν και ο κώδικας του χρήστη να περνά από τα test cases που επιστράφηκαν. Για κάθε μέθοδο του κώδικα του χρήστη, παρουσιάζονται οι μέθοδοι ελέγχου που ανακτήθηκαν ταξινομημένες με βάση τη βαθμολογία τους. Ο χρήστης μπορεί να επιλέξει τις μεθόδους ελέγχου που επιθυμεί για να κατασκευάσει ένα πλήρες σενάριο ελέγχου για τον κώδικά του ή, εφόσον τοδιαλέξει, να πάρει ένα από τα έτοιμα σενάρια ελέγχου που δημιουργήθηκαν από όλους τους πιθανούς συνδυασμούς των μεθόδων ελέγχου που προέκυψαν στο προηγούμενο βήμα και είναι μεταγλωττίσιμες. Ύστερα από την υποβολή ενός συνόλου ερωτημάτων στο σύστημα που υλοποιήθηκε και την αξιολόγησή του, κρίναμε πως τα αποτελέσματα είναι ικανοποιητικά, καθώς επιστρέφονται περισσότερα του ενός σχετικά αποτελέσματα, τόσο για την περίπτωση που αναζητούνται μεμονωμένες μέθοδοι ελέγχου, όσο και για αυτήν που αναζητούνται ολόκληρα σενάρια ελέγχου.
Ιωάννης Μάλαμας
Σχεδίαση και Ανάπτυξη Συστήματος Καταγραφής και Ανάλυσης της Συμπεριφοράς των Χρηστών Ιστοσελίδων
Στη σημερινή εποχή η εξάπλωση του διαδικτύου είναι ραγδαία και σε όλους τους τομείς της ανθρώπινης δραστηριότητας. Ενημερωτικές σελίδες, καταστήματα ηλεκτρονικού εμπορίου, μέσα κοπινωνικής δικτύωσης και άλλου είδους ιστότοποι, αποτελούν αναπόσπαστο κομμάτι της σύγχρονης πραγματικότητας. Όλοι αλληλεπιδρούν με αυτές, λιγότερο ή περισσότερο, γεγονός που εξαρτάται από την ηλικία, την εξοικείωση και τις ιδιαίτερες ανάγκες του καθενός. Κατά συνέπεια, η διαμόρφωση της νέας αυτής πραγματικότητας έχει ως αποτέλεσμα την ολοένα αυξανόμενη δημιουργία νέων ιστοσελίδων και διαδικτυακών εφαρμογών οι οποίες έχουν ως στόχο την προσέκλυση όσο το δυνατόν περισσότερων χρηστών. Η προσέλκυση ενδιαφέροντος και η ανάπτυξη ιστοσελίδων και διαδικτυακών εφαρμογών που να ανταποκρίνονται στις ολοένα αυξανόμενες απαιτήσεις των χρηστών δεν αποτελεί εύκολη υπόθεση, αλλά είναι ένα πολυπαραγοντικό πρόβλημα. Η δυσκολία έγκειται στο γεγονός ότι διαφορετικές κατηγορίες χρηστών συνεπάγονται διαφορετικές απαιτήσεις. Επιπλέον, τα υπάρχοντα εργαλεία και συστήματα συστάσεων, που παρέχουν προτάσεις αναφορικά με τη βέλτιστη σχεδίαση, έχουν το μειονέκτημα ότι βασίζονται σε γενικές παραδοχές και δεν εξειδικεύονται ανάλογα με το πεδίο εφαρμογής της κάθε ιστοσελίδας. Έτσι στο σημείο αυτό προκύπτει το παρακάτω ερώτημα: \"Πως μπορεί να αναπτυχθεί μια εξατομικευμένη μεθοδολογία αξιολόγησης της σχεδίασης μιας ιστοσελίδας;\" Η απάντηση στο παραπάνω ερώτημα έγκειται στην αξιοποίηση της πληροφορίας που προέρχεται από τους ίδιους τους χρήστες. Έτσι, η παρούσα διπλωματική εργασία έχει ως στόχο να συμβάλλει στο παραπάνω ερευνητικό ερώτημα μέσω της ανάπτυξης ενός συστήματος καταγραφής και ανάλυσης της συμπεριφοράς των χρηστών ιστοσελίδων με στόχο την εξαγωγή χρήσιμων συμπερασμάτων αναφορικά με τη βέλτιστη σχεδίαση όπως αυτή γίνεται αντιληπτή από τους τελικούς χρήστες. Η καταγραφή της συμπεριφοράς των χρηστών μπορεί να επιτευχθεί μέσω της συλλογής δεδομένων που αναφέρονται στον τρόπο με τον οποίο οι χρήστες αλληλεπιδρούν με την εκάστοτε ιστοσελίδα. Χαρακτηριστικά παραδείγματα αποτελούν δεδομένα που σχετίζονται με τις κινήσεις του ποντικιού, τα clicks, τα επιμέρους τμήματα της ιστοσελίδας στα οποία κάνουν προσπέλαση και πολλά άλλα. Τα δεδομένα αυτά μπορούν στη συνέχεια να αναλυθούν με στόχο την εξαγωγή συμπερασμάτων τόσο αναφορικά με ητν κατανόηση του τρόπου που οι χρήστες περιηγούνται στην ιστοσελίδα, όσο και για τον τρόπο με τον οποίο η εμπειρία χρήσης θα μπορούσε να βελτιωθεί. Το σύστημα που υλοποιήθηκε στα πλαίσια της παρούσας διπλωματικής εργασίας ονομάζεται \"Synopsis\" και είναι υπεύθυνο για την καταγραφή και μοντελοποίηση του τρόπου με τον οποίο αλληλεπιδρούν οι χρήστες με τις ιστοσελίδες. Το \"Synopsis\" αναπτύχθηκε ως διαδικτυακή εφαρμογή και δοκιμάστηκε σε πραγματικό περιβάλλον όπου και χρησιμοποιήθηκε για την παρακολούθηση της συμπεριφοράς των χρηστών ενός ηλεκτρονικού καταστήματος. Τα αποτελέσματα έδειξαν ότι αποτελεί ένα χρήσιμο εργαλείο ανατροφοδότησης.
Βασίλης Μπούντρης
Αυτόματη Συγγραφή Κώδικα με Αναδραστικά Νευρωνικά Δίκτυα
Η εξέλιξη των κλάδων της Μηχανικής Μάθησης και της Επιστήμης της Πληροφορίας είναι ραγαία την τελευταία δεκαετία. Ως μηχανικοί υπολογιστών, αναζητούμε τρόπους να εκμεταλλευτούμε την εξέλιξη αυτή. Στην παρούσα διπλωματική εργασία εξετάζουμε την ικανότητα των αναδραστικών νευρωνικών δικτύων στην παραγωγή κώδικα, ως δίκυα αποτελεσματικά στη διαχείριση ακολουθιών. Προτείνουμε δύο προσεγγίσεις, που βασίζονται στην κατά χαρακτήρα ανάλυση αποθετηρίων κώδικα. Μετά την κατάλληλη προ-επεξεργασία του κώδικα και την εκπαίδευση των δικτύων, τα μοντέλα μπορούν να παράγουν κώδικα μέσω μιας στοχαστικής διαδικασίας. Εκτελούμε στατική ανάλυση κώδικα στα προϊόντα των μοντέλων, με στόχο την εξέταση των επιδόσεων των προσεγγίσεων. Η γλώσσα επιλογής μας είναι η JavaScript. Η ανάλυση δείχνει την μεγάλη αναπαραστατική δύναμη των αναδραστικών νευρωνικών δικτύων, αλλά και την αδυναμία των προσεγγίσεων μας να αντιμετωπίσουν ικανοποιητικά το πρόβλημα του αυτόματου προγραμματισμού. Με βάση αυτά τα ευρήματα προτείνουμε περαιτέρω ερευνητικές κατευθύνσεις και τρόπους εκμετάλλευσης των μοντέλων που σχεδιάστηκαν.
Ελένη Νησιώτη
Αυτόματος Αναλυτής Δεδομένων
Η επιστήμη της μηχανικής μάθησης έχει κατορθώσει, βασιζόμενη σε αυστηρά μαθηματικά εργαλεία, να μετατρέψει τη σύγχρονη αφθονία πληροφορίας σε κατανόηση κοινωνικών, οικονομικών και φυσικών μηχανισμών, γεγονός που οδήγησε στην εκτεταμένη δημιουργία προβλεπτικών μοντέλων. Η εξέλιξή της, ωστόσο, περιορίζεται σήμερα από την ύπαρξη απαιτητικών προβλημάτων και την εγγενή αδυναμία εφαρμογής μια δοκιμασμένης μεθοδολογίας των πειραμάτων και μοντέλων σε νέα προβλήματα. Ανέκυψε λοιπόν η ανάγκη ανακάλυψης μονοπατιών που θα οδηγήσουν σε βαθύτερη κατανόηση των μηχανισμών της μηχανικής μάθησης, ώστε πλέον να εκπαιδεύουμε μοντέλα που βελτιστοποιούν την ίδια τη διαδικασία της μάθησης, και όχι μεμονωμένα προβλήματα. Το πεδίο του ΑutoML αναδύθηκε πρόσφατα από αυτήν την προσπάθεια και σύγχρονοι ορισμοί του αποδίδουν την αυτοματοποίηση της εφαρμογής μηχανικής μάθησης. Συναντάται κυρίως με τη μορφή εργαλείων λογισμικού, τα οποία υποβοηθούν τον αναλυτή δεδομένων, αναλαμβάνοντας την αναζήτηση αυτόματων λύσεων που καθιστούν την εφαρμογή μηχανικής μάθησης πιο αποδοτική και αποτελεσματική. Χαρακτηριστικό αυτών των συστημάτων είναι η ύπαρξη μετα-γνώσης, δηλαδή γνώσης προερχόμενης από την εφαρμογή μηχανικής μάθησης σε παρελθοντικά προβλήματα, η οποία προσδίδει εμπειρία και προσαρμοστικότητα στο σύστημα. Την υλοποίηση ενός τέτοιου εργαλείου έχει ως στόχο η παρούσα διπλωματική εργασία, καθώς αναγνωρίζει την ανάγκη έρευνας και επέκτασης των εφαρμογών του AutoML. Εκμεταλλευόμενοι σύγχρονες τεχνολογίες, όπως την πολυπληθή αποθήκη πακέτων της γλώσσας R, εξερευνήσαμε τις δυνατότητες τεχνικών μηχανικής μάθησης και επιχειρήσαμε να επεκτείνουμε την τρέχουσα κατάσταση ενσωματώνοντας στο σύστημά μας μεταμάθηση για τη βελτιστοποίηση υπερ-παραμέτρων και ensembles με προς τα εμπρός επιλογή μοντέλων. Βασικός στόχος της εργασίας μας είναι η σχεδίαση και υλοποίηση ενός έμπειρου, κατανοητού και επεκτάσιμου αυτόματου αναλυτή δεδομένων. Θεωρούμε πως η βιβλιογραφική έρευνα, τα πειράματα και το εργαλείο λογισμικού που υλοποιήθηκαν κατά τη διάρκεια της δουλειάς μας μπορούν να αποτελέσουν σημαντική συνεισφορά στο πεδίο του AutoML.
Μαρία Κουιρουκίδου
Αυτόματη παραγωγή διεπαφών χρήστη για διαδικτυακές υπηρεσίες τύπου REST
Την τελευταία δεκαετία, το αρχιτεκτονικό στυλ που έχει επικρατήσει για την ανάπτυξη διαδικτυακών εφαρμογών είναι αυτό που πρωτοεμφανίστηκε στην επιστημονική διατριβή του Roy Fielding το 2000, το REST αρχιτεκτονικό στυλ. Έκτοτε, χάρη στην απλότητα και την ισχύ του, το REST αρχιτεκτονικό στυλ, έχει κατακτήσει τον χώρο των διαδικτυακών εφαρμογών και αποτελεί το κυρίαρχο πρότυπο για την ανάπτυξή τους. Για τον λόγο αυτό, η ολοένα αυξανόμενη ζήτηση και χρήση REST APIs συνοδεύεται και από την τάση για δημιουργία αυτοματοποιημένων διαδικασιών που θα μπορούν να παράγουν μία εφαρμογή που θα καταναλώνει RESTful διαδικτυακές υπηρεσίες, οδηγώντας στην ελαχιστοποίηση του χρόνου και του κόστους που απαιτείται για την ανάπτυξή τους. Πολλά εργαλεία αυτοματοποίησης έχουν δημιουργηθεί τα τελευταία χρόνια, ωστόσο, πολλά από αυτά δεν έχουν τη δυνατότητα να παράγουν εφαρμογές έτοιμες για εκτέλεση, απαιτώντας εκ νέου την παρέμβαση του προγραμματιστή και την επιπλέον συγγραφή κώδικα. Η συγκεκριμένη διπλωματική εργασία φιλοδοξεί να θέσει τα πρώτα βήματα προς την κατεύθυνση της αυτοματοποίησης της διαδικασίας ανάπτυξης διαδικτυακών εφαρμογών πελάτη , πλήρως λειτουργικών και έτοιμων προς εκτέλεση. Για την αυτοματοποίηση της διαδικασίας ανάπτυξης εφαρμογών πελάτη, στην παρούσα διπλωματική εργασία, αξιοποιείται η αρχιτεκτονική MDA (Model Driven Architecture), η οποία εντάσσεται στο γενικότερο σύνολο της Μοντελοκεντρικής Μηχανικής (MDE - Model Driven Engineering). Στα πλαίσια της MDA αρχιτεκτονικής, ορίζεται ένα σύνολο από σαφώς ορισμένα πρότυπα και εργαλεία και περιγράφεται μια διαδικασία ανάπτυξης, κατά την οποία, αφού οριστεί ένα αρχικό αφαιρετικό μοντέλο, πραγματοποιείται μια σειρά από μετασχηματισμούς, με τελικό αποτέλεσμα μια πλήρως λειτουργική εφαρμογή. Με αυτό τον τρόπο, επιδιώκεται η επιτάχυνση της διαδικασίας ανάπτυξης λογισμικού και η παραγωγή λογισμικού με μεγαλύτερη αξιοπιστία. Στην παρούσα διπλωματική εργασία, η μηχανή παραγωγής εφαρμογών πελάτη CREATE (Client for RESTful Api Automated Engine) πραγματεύεται την υλοποίηση ενός εργαλείου αυτόματης ανάπτυξης γραφικών διεπαφών χρήστη. Οι διαδικτυακές εφαρμογές πελάτη, που παράγονται αυτόματα από την γεννήτρια, καταναλώνουν RESTful διαδικτυακές υπηρεσίες, οι οποίες έχουν παραχθεί μέσω της πλατφόρμας του S-CASE, διαχειρίζονται την αποστολή CRUD (Create, Read, Update και Delete) αιτημάτων και λαμβάνουν, επεξεργάζονται και παρουσιάζουν τις αποκρίσεις του εξυπηρετητή. Έχουν, επίσης,τη δυνατότητα ταυτοποίησης των χρηστών, αναζήτησης στη βάση δεδομένων και επικοινωνίας με εξωτερικές διαδικτυακές υπηρεσίες. Επίσης, παρέχονται ποιοτικά χαρακτηριστικά γραφικών διεπαφών, όπως αναδυόμενα παράθυρα για την επιβεβαίωση ή ενημέρωση των κινήσεων του χρήστη, μενού πλοήγησης, ενσωμάτωση εικόνων κ.α. Τέλος, παράγονται και αρχεία τεκμηρίωσης του κώδικα για την καλύτερη επεξήγηση του. Ο μηχανισμός που αναπτύχθηκε είναι υλοποιημένος στο JavaScript framework AngularJS.
Άσπα Καρανάσιου, Χρυσούλα Γουνιώτου
Διαδραστική Αναγνώριση, Προσέγγιση & Εύρεση Θέσης QRs με Χρήση του Ανθρωπόμορφου Ρομπότ Nao
Η ρομποτική επιστήμη έχει κάνει άλματα προόδου και έχει προσφέρει αρκετά τεχνολογικά θαύματα. Τα ρομποτικά συστήματα συνεχώς εξελίσσονται και είναι ήδη μέρος της ζωής μας σε πολλούς τομείς όπως στη βιομηχανία, την ιατρική και την προσωπική βοήθεια, επιτελώντας πληθώρα εργασιών για την ικανοποίηση πολλαπλών αναγκών. Έτσι, ολοένα και περισσότεροι είναι οι επιστήμονες από διαφορετικούς κλάδους οι οποίοι ασχολούνται με θέματα ρομποτικής, από διαφορετική σκοπιά ο καθένας. Ιδιαίτερο ενδιαφέρον παρουσιάζει η έρευνα και ανάπτυξη των αυτόνομων ρομποτικών οχημάτων. Αυτό αποτέλεσε και το έναυσμα για τη μελέτη και την υλοποίηση της παρούσας διπλωματικής εργασίας, στόχος της οποίας είναι η ανάπτυξη μίας αυτόνομης ρομποτικής εφαρμογής με τη χρήση του ανθρωπόμορφου ρομπότ Nao. Αναλυτικότερα, η εφαρμογή αυτή περιλαμβάνει τον προσδιορισμό της θέσης του ρομποτικού πράκτορα στον ήδη γνωστό χώρο και στη συνέχεια την αυτόνομη περιήγησή του με σκοπό την αναγνώριση QRs και τον εντοπισμό της θέσης τους. Πρωταρχική ανάγκη για την ανάπτυξη μιας αυτόνομης ρομποτικής εφαρμογής αποτελεί η δυνατότητα αλληλεπίδρασης του ρομποτικού πράκτορα με το περιβάλλον, καθώς και η αντίληψη αυτού. Για την κάλυψη της ανάγκης αυτής, εκτελέστηκε η υλοποίηση του αλγορίθμου εντοπισμού θέσης (Localization) σύμφωνα με τις αρχές του Monte Carlo Localization, συνδυαζόμενη με την ταυτόχρονη χρήση QRs. Ο αλγόριθμος εντοπισμού θέσης παρέχει όλες τις απαραίτητες πληροφορίες για την πραγματική θέση του ρομπότ στο περιβάλλον, μετά τον προσδιορισμό της οποίας εκκινεί η διαδικασία εξερεύνησης του χώρου. Αυτό επιτυγχάνεται με τον αλγόριθμο αποφυγής εμποδίων που αναπτύσσεται στην παρούσα διπλωματική και αναλύεται στα επόμενα κεφάλαια. Τέλος εκτελείται η αναζήτηση QRs στον χώρο και κάθε φορά που το ρομπότ εντοπίζει κάποιο, προχωρά στην παρακολούθησή του, με τελικό σκοπό τον υπολογισμό της θέσης του και την καταγραφή του στον ήδη υπάρχον τα χάρτη.
Αθηνά Ανοιξιάδου
Αυτόνομη Περιήγηση Εκθεμάτων με τη Βοήθεια Ρομπότ
Η ρομποτική αποτελεί έναν από τους πιο εξελισσόμενους τεχνολογικούς τομείς της σημερινής εποχής. Η διεκπεραίωση διάφορων διεργασιών με τη χρήση ενός αυτόνομου ρομποτικού οχήματος είναι πλέον εφικτή. Ένα από τα κύρια χαρακτηριστικά που οφείλει να διαθέτει ένα ρομπότ για να μπορεί να εκτελέσει μια εργασία είναι η δυνατότητα αυτόνομης πλοήγησης σε έναν εσωτερικό χώρο. Το πρόβλημα το οποίο εξετάζεται στην παρούσα διπλωματική εργασία είναι αυτό του υπολογισμού του βέλτιστου μονοπατιού μεταξύ δύο σημείων του χώρου και της ασφαλούς πλοήγησης σε αυτό. Ειδικότερα, η υλοποίηση επικεντρώνεται σε γνωστούς εκ των προτέρων εσωτερικούς χώρους και οι οποίοι εκτός από στατικά εμπόδια περιέχουν και δυναμικά. Αναπτύχθηκε μία τεχνική σχεδιασμού βέλτιστου μονοπατιού προς έναν στόχο το οποίο είναι τέτοιο ώστε να αποφεύγονται πιθανές συγκρούσεις με τα εμπόδια. Επίσης, αναπτύχθηκε μία τεχνική εντοπισμού της θέσης του ρομπότ μέσα σε ένα δυναμικό περιβάλλον. Για την επίτευξη αυτής της τεχνικής, έπρεπε πρώτα να καθοριστεί ο τρόπος με τον οποίο μπορεί να γίνει διαχωρισμός των εμποδίων σε στατικά και δυναμικά. Στη συνέχεια, αναλύθηκε η μέθοδος με την οποία γίνεται επαναπροσδιορισμός του αρχικού μονοπατιού κάθε φορά που εντοπίζεται ένα δυναμικό εμπόδιο, ώστε το ρομποτικό όχημα να μη συγκρουστεί μαζί του. Τέλος, πραγματοποιήθηκε μία σειρά πειραμάτων, σε αντιπροσωπευτικές συνθήκες, για τον έλεγχο και την αξιολόγηση των τεχνικών που υλοποιήθηκαν.
Αναστάσιος Δημανίδης
Ανάπτυξη RESTful APIs με τη χρήση της γλώσσας Gherkin και του OpenApi Specification
Οι βασικοί στόχοι της διπλωματικής είναι δύο. Ο πρώτος στόχος είναι ο σχεδιασμός μίας μεθοδολογίας κατά την οποία οι λειτουργικές απαιτήσεις των RESTful Web APIs περιγράφονται σε φυσική γλώσσα, φιλική προς τον πελάτη. Ο δεύτερος στόχος είναι η ανάπτυξη ενός λογισμικού ικανού να μετατρέψει τις απαιτήσεις σε τεχνικές πληροφορίες. Προκειμένου να επιτευχθούν αυτοί οι στόχοι, υιοθετείται η γλώσσα συγγραφής απαιτήσεων Gherkin, η τυποποίηση REST υπηρεσιών OpenAPI Specification αλλά και μεθοδολογίες επεξεργασίας φυσικής γλώσσας. Αρχικά, κατά την υλοποίηση του συνολικού συστήματος διερευνήθηκε ο τρόπος απεικόνισης REST απαιτήσεων σε Gherkin. Για τον λόγο αυτό πραγματοποιήθηκαν επικοινωνίες με στελέχη εταιριών Agile και BDD, εξετάσθηκαν blog και σεμινάρια εταιριών API και μελετήθηκε διεξοδικά η βιβλιογραφία. Με βάση αυτή την έρευνα, στην παρούσα εργασία σχεδιάστηκε η μεθοδολογία Resource Driven Development (RDD). Κατά το RDD, αναθεωρείται η λογική συγγραφής των feature files της Gherkin. Πλέον οι απαιτήσεις λειτουργίας της Web εφαρμογής αφορούν αποκλειστικά την περιγραφή πόρων Παγκόσμιου Ιστού. Ακόμη, τα βήματα ‘When’ και ‘Then’ χρησιμοποιούνται πλέον για την μοντελοποίηση του πρωτοκόλλου HTTP. Επιπρόσθετα, τα σενάρια χρησιμοποιούνται για περιγραφή αλλαγής κατάστασης πόρου και εφαρμογής, με βάση την φιλοσοφία του REST. Τα ειδικότερα χαρακτηριστικά της μεθοδολογίας Gherkin αναλύονται διεξοδικά στην διπλωματική και παρουσιάζονται με συγκεκριμένα παραδείγματα. Στο επόμενο στάδιο της υλοποίησης του συνολικού συστήματος, αναπτύχθηκε σε python 3.5 το λογισμικό Gherkin2OAS, το οποίο μετατρέπει τις Gherkin απαιτήσεις σε OpenAPI Specification. Στην διπλωματική παρουσιάζεται αναλυτικά το μοντέλο λειτουργίας του λογισμικού, οι συναρτήσεις του και οι τεχνικές επεξεργασίας φυσικής γλώσσας που χρησιμοποιεί. Το λογισμικό είναι ικανό να εντοπίζει σε κείμενο φυσική γλώσσας HTTP ρήματα, ονόματα παραμέτρων, τύπους παραμέτρων (string, int, float, bool, array, file, date, password κ.α.) και ιδιότητες παραμέτρων (required, min/max, descriptions, formats), συνδέσεις πόρων με βάση το μοντέλο HATEOAS, ρόλους/χρήστες, HTTP status codes κ.α. Επίσης, έχει ξεχωριστή λειτουργία οργάνωσης αυτών των τεχνικών πληροφοριών σε OpenAPI Specification. Περαιτέρω προσπαθεί μέσω μηνυμάτων να καθοδηγήσει τον χρήστη στην συγγραφή των απαιτήσεων Gherkin, όπως ένας compiler. Τέλος, στην παρούσα εργασία και ως μέρος του Gherkin2OAS, αναπτύχθηκε υποσύστημα απεικόνισης του RESTful API με γράφους. Οι γράφοι μπορούν να συνεισφέρουν στην κατά REST αξιολόγηση του συστήματος, στην επιβεβαίωση της επιτυχούς σύλληψης του επιχειρησιακού πρωτοκόλλου του πελάτη, στην διόρθωση λαθών και στην εξαγωγή τεχνικών πληροφοριών. Η χρήση των γράφων παρουσιάζεται με συγκεκριμένα παραδείγματα.
Χρήσταινας Γρηγόριος
Ανάπτυξη μεθοδολογίας για μετασχηματισμό client-server αρχιτεκτονικής σε REST Εφαρμογή στην πλατφόρμα Power TAC
Το πρότυπο αρχιτεκτονικής διαδικτυακών υπηρεσιών REST (Representational State Transfer) είναι ένα σύνολο από αρχές σχεδίασης διαδικτυακών υπηρεσιών που πρωτοεμφανίστηκε στην διδακτορική διατριβή του Roy Fielding με τίτλο «Architectural Styles and the Design of Network-based Software Architectures». Οι αρχές αυτές αποτελούν ουσιαστικά ένα σύνολο κανόνων και περιορισμών, η εφαρμογή των οποίων στη σχεδίαση των διαδικτυακών υπηρεσιών έχει σκοπό να τις κάνει πιο απλές και πιο εύκολα επεκτάσιμες. Βασικό στοιχείο της REST αρχιτεκτονικής είναι η αναπαράσταση της πληροφορίας και των αντικειμένων μιας υπηρεσίας ως πόρους (resources). Κάθε αντικείμενο είναι στην ουσία ένας πόρος που μπορεί να δημιουργηθεί ή να διαγραφεί μέσω των URI\\\'s (Uniform Resource Identifier). Συγκεκριμένα, μέσω ενός ορισμένου συνόλου HTTP ενεργειών στα URI\\\'s των πόρων είναι δυνατή η προσπέλαση και επεξεργασία της πληροφορίας, καθώς και ο διαμοιρασμός της μέσω αναπαραστάσεων βασισμένων σε ένα σετ καλά ορισμένων πρωτοκόλλων. Η ολοένα και αυξανόμενη ζήτηση για διαδικτυακές υπηρεσίες που διέπονται από μια RESTful αρχιτεκτονική συνοδεύεται και απο μια τάση εξέλιξης των τεχνικών δημιουργίας και λειτουργίας τους. Οι client-server αρχιτεκτονικές βασισμένες σε ξεπερασμένα πρότυπα αρχικτεκτονικών τείνουν να αντικαθίστανται από RESTful αρχιτεκτονικές και προσεγγίσεις. Η παρούσα διπλωματική εργασία πραγματεύεται την μελέτη ενός πραγματικού προβλήματος μετασχηματισμού μιας client-server αρχιτεκτονικής σε REST. Συγκεκριμένα μελετάται η πλατφόρμα PowerTAC, η οποία αποτελεί μια ανταγωνιστική προσομοίωση ενός χρηματηστηρίου ενέργειας. Οι ανταγωνιζόμενες οντότητες επονομαζόμενοι ως brokers προσφέρουν υπηρεσίες ενέργειας σε πελάτες μέσω συμβολαίων και έπειτα καλούνται να μεγιστοποιήσουν το κέρδος τους αγοράζοντας και πουλώντας ενέργεια με στόχο την ικανοποίηση των πελατών τους. Η διπλωματική εργασία παρουσιάζει τα βασικά προβλήματα που αντιμετωπίστηκαν στην διαδικασία “Restification” της πλατφόρμας καθώς και τις λύσεις που δόθηκαν, στοχεύοντας στην γενικότερη παρουσίαση λύσεων σχεδιαστικών προβλημάτων που αντιμετωπίζονται κατά το Restification.
Δημήτριος Γούτης
ΑΥΤΟΜΑΤΗ ΕΞΕΥΡΕΣΗ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕ ΤΗΝ ΑΞΙΟΠΟΙΗΣΗ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ
Το διαδίκτυο προσαρμόζεται προκειμένου να χειριστεί το μέγεθος των συνεχώς αυξανόμενων δεδομένων. Ο σημασιολογικός ιστός όπως τον οραματίστηκε ο Tim Berners Lee, εξαπλώνεται με αργούς ρυθμούς, αν και οι απαιτούμενες μέθοδοι και τεχνολογίες είναι ήδη εδώ και περιμένουν να εφαρμοστούν σε μεγάλη κλίμακα. Η τρέχουσα εργασία επικεντρώνεται στην αυτοματοποίηση της εξεύρεσης και χρήσης διαδικτυακών υπηρεσιών. Η βασική ιδέα της εργασίας περιστρέφεται γύρω από την ιδέα ότι σε μια επικοινωνία μεταξύ των συμμετεχόντων είτε είναι άνθρωποι είτε μηχανές, πρέπει να υπάρχει ένα κοινό πλαίσιο επικοινωνίας μεταξύ τους. Αυτό το θεμελιώδες πλαίσιο υλοποιείται με τις τεχνολογίες που προσφέρει ο Σημασιολογικός Ιστός. Χρησιμοποιείται το πλαίσιο περιγραφής πόρων (RDF) για τη μορφή δεδομένων. Επιπλέον, διατίθεται μια ποικιλία λεξιλογίων για την ανάθεση των εννοιών στα μοντέλα δεδομένων και τις υπηρεσίες. Στα πλαίσια της υλοποίησης δημιουργήθηκε ένα δίκτυο διακομιστών που προσφέρουν διαδικτυακές υπηρεσίες. Το περιεχόμενό τους περιγράφεται με όρους από το λεξιλόγιο HYDRA. Το μοντέλο δεδομένων είναι βασισμένο πάνω στους όρους του schema.org σε αντίθεση με τον απλό σχολιασμό. Ο γενικός πελάτης (client) είναι σε θέση να κατανοήσει αυτούς τους όρους και να επικοινωνήσει με τους διακομιστές με τη βοήθεια γραφημάτων RDF και όχι με απευθείας κλήσεις στις διευθύνσεις URL τους. Στη μέση αυτής της επικοινωνίας βρίσκεται ο API-Resolver, ένας εξυπηρετητής εξοπλισμένος με αναλυτή RDF και έναν διακομιστή SPARQL, προκειμένου να επιλύσει και να αντιστοιχήσει τα αιτήματα από τον πελάτη στον επιθυμητό διακομιστή. Οι κύριοι στόχοι της παρούσας εργασίας είναι δύο: Η αξιολόγηση αυτής της πρότυπης υλοποίησης και η επίδειξη των δυνατοτήτων του Σημασιολογικού Ιστού. Μόνο με την υιοθέτησή του σε πραγματικές συνθήκες, ωστόσο, θα γίνει δυνατή η αυτοματοποίηση πολλών διαδικασιών και η επέκτασης της λειτουργικότητας του τρέχοντος ιστού.
Ανδρέα Χατζηθωμά
Υλοποίηση ChatOps Bot με τη χρήση του Hubot Framework
Ο κλάδος της τεχνολογίας, της επικοινωνίας και των πληροφοριών τα τελευταία χρόνια εξελίσσεται με ραγδαίους ρυθμούς. Αυτό οφείλεται στο γεγονός ότι η κάλυψη των περισσότερων φυσικών αναγκών εξαρτάται κυρίως από τεχνολογικά επιτεύγματα. Οι τομείς της υγείας, της βιομηχανίας, της διατροφής, της μαζικής μετακίνησης, της επικοινωνίας – και όχι μόνο, βασίζονται σε προηγμένα τεχνολογικά προϊόντα, προϊόντα τα οποία για τη σχεδίασή τους, την υλοποίησή τους και σε πολλές περιπτώσεις ακόμα και για τη χρήση τους, απαιτείται ένα καταλλήλως σχεδιασμένο λογισμικό. Η ανάπτυξη αλλά και η συντήρηση των διαφόρων προϊόντων λογισμικού, είναι μια πολύπλοκη διαδικασία, ειδικά όταν πρόκειται για μεγάλης έκτασης λογισμικό το οποίο απαιτεί τη συνεργασία πολλών ατόμων και το συνδυασμό διαφόρων υπηρεσιών, εργαλείων και τεχνολογιών που αφορούν την ανάπτυξή του. Η συνεργασία μεταξύ των ομάδων, η συνεχής ενημέρωση της προόδου των εργασιών καθώς και η αυτοματοποίηση καθημερινών διαδικασιών αποτελεί κλειδί επιτυχίας στην ανάπτυξη λογισμικού. Η διπλωματική εργασία πραγματεύεται την υλοποίηση ενός ChatOps Bot για την υποβοήθηση της ανάπτυξης λογισμικού μέσα από μια διαδικασία οδηγούμενη από διαλόγους εντός του εργαλείου ομαδικής συνομιλίας, Slack. Κυρίαρχος σκοπός είναι οι ομάδες ανάπτυξης να αυτοματοποιούν εργασίες, να συνεργάζονται και να λειτουργούν καλύτερα, φθηνότερα και πιο γρήγορα. To Bot παρέχει στους χρήστες τη δυνατότητα να διαχειρίζονται τις υπηρεσίες των GitHub, Trello και Jenkins, να ενημερώνονται και να ανταλλάσσουν πληροφορίες με την υπόλοιπη ομάδα σε κοινόχρηστα κανάλια σχετικά με την πρόοδο των εργασιών που έχουν αναλάβει παραμένοντας εντός του Slack.
Δημήτριος Νήρας
Δημιουργία ενός διαδικτυακού εγγραφέα (web recorder) για την αυτοματοποίηση των ελέγχων (test) σε διαδικτυακές εφαρμογές
Στη σημερινή εποχή η εξάπλωση του διαδικτύου είναι ραγδαία, συμμετέχοντας πλέον σε όλους σχεδόν τους τομείς της ανθρώπινης δραστηριότητας. Άνθρωποι κάθε ηλικίας, διαφορετικού μορφωτικού, κοινωνικού και οικονομικού επιπέδου, επισκέπτονται καθημερινά πλήθος ιστοσελίδων με σκοπό την ενημέρωση, την ψυχαγωγία, την επικοινωνία, τη συνδιαλλαγή τους σε διαφορετικά επίπεδα, καθώς και την ανάπτυξη των επιχειρηματικών τους δράσεων. Κατά συνέπεια, η διαμόρφωση της καινούριας αυτής πραγματικότητας έχει ως αποτέλεσμα την ολοένα και μεγαλύτερη παραγωγή ιστοσελίδων και διαδικτυακών εφαρμογών, οι οποίες έχουν ως στόχο την προσέλκυση όσο το δυνατόν περισσότερων χρηστών. Η δημιουργία των διαδικτυακών εφαρμογών, καθώς και η συνεχής συντήρησή τους αποτελεί μία επίπονη διαδικασία, η οποία απαιτεί την αδιάλειπτη παρακολούθηση των αλλαγών που συμβαίνουν σε αυτές. Για να επιτευχθεί αυτό όμως, απαιτείται η ανάπτυξη ενός αρκετά μεγάλου αριθμού από ελέγχους, οι οποίοι επιβεβαιώνουν την εύρυθμη λειτουργία της ιστοσελίδας σε όλα τα σημεία της. Η χειροκίνητη αυτή διαδικασία ωστόσο, αποδεικνύεται εξαιρετικά χρονοβόρα, καθώς για κάθε λειτουργία της εφαρμογής θα πρέπει να δημιουργηθεί και ο αντίστοιχος έλεγχος, ο οποίος θα πρέπει και να μεταβάλλεται από τον προγραμματιστή, κάθε φορά που κάποιο από τα στοιχεία της ιστοσελίδας έχει αλλάξει. Η παρούσα διπλωματική έχει ως στόχο να συμβάλει στην αυτοματοποίηση της διαδικασίας δημιουργίας και δοκιμής των ελέγχων. Προς την κατεύθυνση αυτή αναπτύχθηκε μία επέκταση (extension) σε Chrome, η οποία είναι υπεύθυνη για την μαγνητοσκόπηση των ενεργειών ενός χρήστη σε μία ιστοσελίδα, “καταγράφοντας” όλες τις διαθέσιμες πληροφορίες που συναντά, όπως HTML, CSS, JS κώδικα, κλήσεις API, περιεχόμενο και φωτογραφίες των ιστοσελίδων. Επιπλέον δημιουργήθηκε και μία διαδικτυακή εφαρμογή, η οποία είναι υπεύθυνη για την παρουσίαση και προγραμματισμό των αποτελεσμάτων των διαφόρων ελέγχων. Τόσο το extension όσο και η εφαρμογή δοκιμάστηκαν σε πραγματικές ιστοσελίδες, και τα αποτελέσματα έδειξαν ότι αποτελεί ένα πολύ χρήσιμο εργαλείο για τους προγραμματιστές, εξοικονομώντας τους πολύτιμο χρόνο.
Δημήτριος Ταμπάκης
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΛΟΓΙΚΟΥ ΒΟΗΘΟΥ (ΒΟΤ) ΓΙΑ ΤΗΝ ΕΞΑΤΟΜΙΚΕΥΣΗ ΠΛΗΡΟΦΟΡΙΑΣ ΣΤΟ ΔΙΑΔΙΚΤΥΟ
Το διαδίκτυο αποτελεί πλέον ένα αναπόσπαστο κομμάτι της ζωής των ανθρώπων. Σε καθημερινή βάση, οι χρήστες χρησιμοποιούν τις υπηρεσίες που παρέχονται από το διαδίκτυο για επαγγελματικούς, ψυχαγωγικούς, δημιουργικούς αλλά και άλλους λόγους. Οι χρήστες προκειμένου να ικανοποιήσουν τις εκάστοτε ανάγκες τους αλληλοεπιδρούν με τον υπολογιστή, μέσω κατάλληλα σχεδιασμένων διεπαφών (user interfaces). Η πιο βασική μετρική που χρησιμοποιείται για να αξιολογήσει την αλληλεπίδραση χρήστη-υπολογιστή είναι η Εμπειρία Χρήστη (ΕΧ). Ως ΕΧ ορίζονται οι αντιλήψεις και οι αντιδράσεις ενός ατόμου που είναι αποτέλεσμα της χρήσης ή της αναμενόμενης χρήσης ενός προϊόντος. Η έννοια της ΕΧ σχετίζεται άμεσα με τον ίδιο το χρήστη και κάθε χρήστη ξεχωριστά. Ωστόσο, κάθε χρήστης χαρακτηρίζεται από ένα διαφορετικό επίπεδο γνώσεων και εμπειρίας όσον αφορά τη χρήση του διαδικτύου. Έχει τα δικά του ενδιαφέροντα και προτιμήσεις, που συμβαδίζουν με τη προσωπικότητά του. Με άξονα τη βελτίωση της ΕΧ και την καλύτερη κατανόηση και ικανοποίηση των αναγκών του χρήστη, η εκμετάλλευση πληροφοριών που μπορούν να συλλεχθούν από το χρήστη, καθίσταται αναγκαία. Πληροφορίες, όπως το φύλο, η ηλικία, δημογραφικά χαρακτηριστικά και το περιεχόμενο των ιστοσελίδων που επισκέπτεται ο χρήστης θα μπορούσαν να χρησιμοποιηθούν για την αναγνώριση των ενδιαφερόντων του και τη δημιουργία ενός διαδικτυακού προφίλ που θα τον αντιπροσωπεύει. Στόχος της παρούσας διπλωματικής είναι η σχεδίαση ενός συστήματος που θα επιτρέπει την αναγνώριση των ενδιαφερόντων του χρήστη και θα παρέχει ένα μηχανισμό για την δυναμική επαναξιολόγηση τους. Αρχικά, συλλέγονται πληροφορίες από το ιστορικό του χρήστη μέσω μιας επέκτασης του Chrome και την αλληλεπίδραση του χρήστη με ένα Messenger Bot. Αυτές, χρησιμοποιούνται για την αναγνώριση των ενδιαφερόντων του χρήστη και τη δημιουργία ενός προφίλ. Στη συνέχεια η παροχή μιας εξατομικευμένης ροής ειδήσεων από το Messenger Bot επιτρέπει τη δυναμική επαναξιολόγηση των ενδιαφερόντων του και του σχετικού προφίλ. Στα πλαίσια της εργασίας γίνεται μια λεπτομερής παρουσίαση του συστήματος που αναπτύχθηκε και των τμημάτων που το απαρτίζουν και παρουσιάζονται τα αποτελέσματα που προέκυψαν κατά τη χρήση του από ένα πραγματικό χρήστη.
Ιωάννης Αγρότης
Σχεδίαση και ανάπτυξη αυτοματοποιημένου συστήματος βελτίωσης ποιότητας κώδικα μέσω αυτόματης διόρθωσης παραβάσεων ποιότητας κώδικα
Η εισαγωγή του διαδικτύου στην καθημερινή ζωή δεν θα μπορούσε να αφήσει ανεπηρέαστη τη διαδικασία παραγωγής λογισμικού. Με την ευρεία και εύκολη πρόσβαση σε πληροφορίες, παρουσιάστηκε επίσης μια ευκαιρία για τους προγραμματιστές λογισμικού σε όλο τον κόσμο να δημιουργήσουν μια κοινότητα που όλοι θα μπορούσαν να ανακαλύψουν και να συνεισφέρουν στη δημιουργία νέων προγραμμάτων λογισμικού, γνωστή και ως “κοινότητα ανοιχτού λογισμικού”. Έχει πλέον αναγνωριστεί ότι για την ανάπτυξη και δημιουργία λογισμικού είναι απαραίτητη η χρήση μίας διαδικασίας η οποία θα επιτρέπει την συστηματική επαναχρησιμοποίηση κώδικα η οποία θα βοηθά στη δημιουργία λογισμικού καλύτερης ποιότητας πιο γρήγορα και με χαμηλότερο κόστος. Αυτό καθιστά πιο δύσκολο το έργο των προγραμματιστών να διατηρούν καλή ποιότητα στο λογισμικού τους αφού πλέον ένα λογισμικό μπορεί να αποτελείται από διαφορετικούς συγγραφείς. Η ποιότητα του λογισμικού μπορεί να έχει διαφορετικές έννοιες και ως εκ τούτου είναι δύσκολο για κάθε προγραμματιστή να ακολουθήσει τον ίδιο τρόπο γραφής με άλλους. Έτσι δημιουργήθηκε η ανάγκη για τη μοντελοποίηση της ποιότητας λογισμικού, το οποίο γίνεται δυνατό μέσα από τα πρότυπα ποιότητας. Επίσης έχουν μοντελοποιηθεί οι ενδεικνυόμενοι τρόποι συγγραφής κώδικα οι οποίοι αποτελούν σημείο αναφοράς για την πιο οργανωμένη και σωστή εποπτεία της ποιότητας κώδικα. Για το σκοπό αυτό έχουν δημιουργηθεί εργαλεία στατικής ανάλυσης πηγαίου κώδικα τα οποία εντοπίζουν και αναφέρουν τις παραβάσεις συγγραφής κώδικα. Μία πιο άμεση λύση στο πρόβλημα της βελτίωσης της ποιότητάς κώδικα θα ήταν η δημιουργία συστημάτων που όχι μόνο εντοπίζουν τις παραβάσεις ποιότητας κώδικα αλλά έχουν τη δυνατότητα και να τα διορθώσουν. Στα πλαίσια των παραπάνω προτείνουμε την ανάπτυξη ενός αυτοματοποιημένου συστήματος βελτίωσης ποιότητας κώδικα μέσω αυτόματης διόρθωσης παραβάσεων ποιότητας κώδικα, χρησιμοποιώντας υπάρχοντα εργαλεία στατικής ανάλυσης κώδικα για την ανάλυση προγραμμάτων και έπειτα την αξιολόγηση της επίδρασής που είχαν αυτές οι διορθώσεις παραβάσεων ποιότητας κώδικα στην ποιότητας του λογισμικού.
Ιωάννης Ιακωβίδης
Εφαρμογές ενισχυτικής μάθησης στο πεδίο της δομημένης πρόβλεψης
Τις τελευταίες δεκαετίες, ο συνδυασμός διαφορετικών συντελεστών όπως η αύξηση της χρήσης του ίντερνετ, η εξάπλωση των ενσωματωμένων υπολογιστών αλλά και η ολοένα αυξανόμενη ερευνητική κοινότητα έχουν προκαλέσει μια εκρηκτική αύξηση του αριθμού και του μεγέθους των διαφόρων διαθέσιμων συλλογών δεδομένων. Παράλληλα, είναι πλέον δυνατή η γρήγορη και αποτελεσματική αξιοποίηση μιας ποικιλίας συλλογών δεδομένων. Κάποιοι από τους σημαντικότερους παράγοντες που το επιτρέπουν αυτό είναι η αύξηση της διαθέσιμης υπολογιστικής δύναμης και χωρητικότητας των υπολογιστών. Η αξιοποίηση, όμως, δεδομένων από πολλαπλές πηγές αποδεικνύεται, στην πράξη, δύσκολη και χρονοβόρα διαδικασία. Πράγματι, ακόμα και όταν ασχολούμαστε με συλλογές δεδομένων που περιέχουν όμοια δεδομένα, τα δεδομένα αυτά σπάνια βρίσκονται στην ίδια μορφή σε όλες τις δομές που μας ενδιαφέρουν. Αντιθέτως, όσο μεγαλύτερη ποικιλία συλλογών χρησιμοποιεί κανείς, τόσο περισσότερος χρόνος απαιτείται για τη μετατροπή των εκάστοτε δεδομένων σε μία κοινή μορφή. Επιπλέον, μία τεράστια κατηγορία δεδομένων που δε μπορούν να εκμεταλλευτούν εύκολα οι σύγχρονες τεχνικές είναι αυτή των ημιδομημένων δεδομένων. Σε αυτή την κατηγορία ανήκουν συλλογές δεδομένων οι οποίες παρουσιάζουν χαλαρή δομή, όπως παραδείγματος χάριν δένδρα τύπου HTML (ιστοσελίδες). Η αξιοποίηση των δεδομένων αυτών καθίσταται συχνά από ασύμφορη μέχρι και ανέφικτη εάν κανείς βασίζεται στη χειροποίητη προ-επεξεργασία δεδομένων. Τα παραπάνω στοιχεία καθιστούν φανερή την ανάγκη ανάπτυξης ευέλικτων αλγορίθμων ικανών να αναλάβουν την προεπεξεργασία και μετατροπή δεδομένων με ελάχιστη ή και καθόλου ανθρώπινη παρέμβαση. Εάν και πολλές τεχνικές τεχνητής νοημοσύνης έχουν εφαρμοστεί με σχετική επιτυχία για την αντιμετώπιση του παραπάνω προβλήματος, υπάρχει ακόμα πολύ μεγάλο περιθώριο βελτίωσης των έως τώρα αποτελεσμάτων. Ιδιαίτερο ενδιαφέρον παρουσιάζουν οι αλγόριθμοι του πεδίου της ενισχυτικής μάθησης, καθώς πιστεύουμε πως η δομή των αλγορίθμων αυτών τους καθιστά ιδανικούς για το έργο της επεξεργασίας δεδομένων διαφορετικών δομών. Στη διπλωματική αυτή παρουσιάζουμε τις επιδόσεις αλγορίθμων ενισχυτικής μάθησης σε μία ποικιλία προβλημάτων δομημένης πρόβλεψης.
Ιωάννης Τσαφαράς
Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
Η ανάπτυξη του cloud computing (υπηρεσιών νέφους) τα τελευταία χρόνια είναι ραγδαία. Λόγω των πλεονεκτημάτων που το cloud computing προσφέρει, χρησιμοποιείται από όλο και περισσότερες επιχειρήσεις και αντίστοιχα υπάρχουν πολλοί πάροχοι, που προσφέρουν υπηρεσίες cloud computing. Μαζί με τα πλεονεκτήματα του cloud computing, ανακύπτουν και διάφορες προκλήσεις, για παράδειγμα σε σχέση με την ασφάλεια των δεδομένων. Οι προκλήσεις αυτές διαφέρουν ανάλογα με τις υλοποιήσεις κάθε παρόχου. Σημαντικό κομμάτι της διαδικασίας ανάπτυξης λογισμικού αποτελεί η συνεχής ενσωμάτωση (Continuous Integration, CI). Η συνεχής ενσωμάτωση στοχεύει στην ελαχιστοποίηση των σφαλμάτων, και στην επιτάχυνση της ανάπτυξης και εξέλιξης ενός έργου λογισμικού. Οι έλεγχοι του λογισμικού (tests) εκτελούνται αυτόματα μέσω συστημάτων CI, ενώ μετά την επιτυχημένη εκτέλεση των αυτοματοποιημένων ελέγχων, το CI αποστέλλει και εκτελεί την τελευταία έκδοση του κώδικα στο τελικό (production) ή πριν το τελικό (staging) περιβάλλον αυτόματα μέσω των συστημάτων Continuous Deployment (CD) και Continuous Delivery (CDE), που αποτελούν επέκταση των συστημάτων CI. Διατίθενται πολυάριθμες -βασισμένες στο cloud (cloud based)- υλοποιήσεις CI ως υπηρεσία (as a Service), όπου όμως υπάρχει διαχωρισμός των παρεχόμενων υπηρεσιών ανάλογα με το αν το έργο λογισμικού είναι κλειστού ή ανοιχτού κώδικα, ενώ παρουσιάζονται προκλήσεις ασφαλείας των δεδομένων (κώδικα), ιδιαίτερα σε έργα κλειστού κώδικα. Εκτός αυτού, η προσαρμοστικότητα των συστημάτων στις απαιτήσεις του χρήστη είναι περιορισμένη. Η διαδικασία της υλοποίησης ενός ολοκληρωμένου, παραμετροποιήσιμου, αυτόματου συστήματος CI + CD/CDE, μέσω χρήσης υποδομής cloud, είναι χρονοβόρα και απαιτεί τεχνογνωσία. Αντικείμενο της παρούσας εργασίας είναι, μετά από σύγκριση των παρόχων cloud, η ανάπτυξη μιας υπηρεσίας, για την αυτοματοποίηση της εγκατάστασης, ρύθμισης και εκτέλεσης ενός συστήματος CI + CD/CDE. Η προσέγγισή μας ενσωματώνει επίσης στατική ανάλυση και αξιολόγηση ποιότητας κώδικα. Η υλοποίηση του CI γίνεται μέσω του λογισμικού ανοιχτού κώδικα Jenkins, ενώ η στατική ανάλυση πραγματοποιείται μέσω του λογισμικού SonarQube. Η αυτοματοποίηση της ροής εργασίας δημιουργίας του συστήματος CI, καθώς και των διαδικασιών CD/CDE πραγματοποιείται μέσω του εργαλείου διαχείρισης διαμόρφωσης λογισμικού Ansible. Το αποτέλεσμα της εργασίας είναι ένα φιλικό προς το χρήστη web interface, το οποίο δίνει τη δυνατότητα με την εισαγωγή των κατάλληλων μεταβλητών, να δημιουργηθεί ένα σύστημα CI, που είναι συμβατό με τις cloud υποδομές διαφόρων παρόχων, αλλά και με τη χρήση τοπικών εξυπηρετητών. Το προϊόν της εργασίας μπορεί να χρησιμοποιηθεί από εταιρίες ή μεμονωμένους προγραμματιστές εφαρμογών.
Γιώργος Καραγιαννόπουλος
Ανάπτυξη Συστήματος Προτάσεων για την Εξαγωγή Τμημάτων Κώδικα από Διαδικτυακές Πηγές
Η εξάπλωση του Διαδικτύου οδήγησε στην ευκολότερη εύρεση χρήσιμου κώδικα από αποθήκες λογισμικού, αλλάζοντας ριζικά τον τρόπο με τον οποίο το λογισμικό αναπτύσσεται και συντηρείται. Ωστόσο, παρά την πληθώρα διαθέσιμων επιλογών, ο προγραμματιστής χρειάζεται συχνά να εγκαταλείψει το προγραμματιστικό του περιβάλλον και να καταφύγει σε μηχανές αναζήτησης για την εύρεση χρήσιμου κώδικα. Ως συνέπεια αυτού, μειώνεται η παραγωγικότητα και η συγκέντρωση του. Για την αντιμετώπιση αυτών των δυσκολιών, έχει αναπτυχθεί τελευταία ο τομέας έρευνας των Συστημάτων Προτάσεων στην Τεχνολογία Λογισμικού. Τα συστήματα αυτά δέχονται ερωτήματα από τον προγραμματιστή και, μέσα από διαδικασίες εξόρυξης δεδομένων, επιστρέφουν έτοιμες λύσεις, όπως τμήματα κώδικα. Στη σύγχρονη βιβλιογραφία, υπάρχουν αρκετά συστήματα που λαμβάνουν ερωτήματα σε κάποια μορφή και επιστρέφουν έτοιμα προς χρήση τμήματα κώδικα.Ωστόσο, σε πολλά από αυτά τα συστήματα χρησιμοποιείται κάποια γλώσσα ερωτημάτων, απαιτώντας έτσι αρκετή προσπάθεια για την σωστή κατασκευή ενός ερωτήματος. Επιπλέον, ο τρόπος παρουσίασης των αποτελεσμάτων είναι συχνά περιοριστικός, καθώς δίνεται στον προγραμματιστή μόνο μια λίστα από τμήματα κώδικα, χωρίς αυτά να ομαδοποιούνται και χωρίς να δίνεται περαιτέρω πληροφορία ως προς την ποιότητα των αποτελεσμάτων. Στην παρούσα εργασία, σχεδιάζουμε και αναπτύσσουμε ένα νέο σύστημα προτάσεων για την αντιμετώπιση των παραπάνω προκλήσεων. Το σύστημά μας δέχεται ερωτήματα σε φυσική γλώσσα και αναζητεί χρήσιμα τμήματα κώδικα από πληθώρα διαδικτυακών πηγών. Στη συνέχεια, εφαρμόζονται τεχνικές εξόρυξης δεδομένων και μηχανικής μάθησης, με σκοπό την αξιολόγηση και την ομαδοποίηση των τμημάτων κώδικα. Η αξιολόγηση των αποτελεσμάτων γίνεται τόσο ως προς την χρησιμότητα όσο και ως προς την ποιότητα (αναγνωσιμότητα), ενώ η ο τρόπος παρουσίασης επιτρέπει στον προγραμματιστή να διακρίνει εύκολα την υλοποίηση που επιθυμεί να χρησιμοποιήσει. Τέλος, αξιολογούμε το σύστημά μας σε ένα σύνολο ερωτημάτων για να επιβεβαιώσουμε την καλή του λειτουργία.
Βασίλης Ρέμμας
Αυτοματοποιημένη δημιουργία εκτελέσιμων και εκτέλεση ρομποτικών υπηρεσιών στο Νέφος
Στη σημερινή εποχή τα δεδομένα αυξάνονται συνεχώς. Αυτό οδηγεί στην δημιουργία αλγορίθμων και μαθηματικών μοντέλων με σκοπό την γρηγορότερη ή/και σωστότερη επεξεργασία αυτού του όγκου δεδομένων. Πολλές φορές η εκτέλεση των παραπάνω απαιτεί μεγάλο αριθμό υπολογιστικών πόρων, το οποίο συνεπάγεται αρκετή ενέργεια και κόστος. Είναι λοιπόν προφανές πως όσο τα δεδομένα συνεχίζουν να αυξάνονται, τόσο δυσκολότερη θα γίνεται η εκτέλεση τέτοιων αλγορίθμων επεξεργασίας σε ένα ρομποτικό όχημα το οποίο δεν κατέχει την υπολογιστική ισχύ και την ενέργεια που μπορεί να κατέχει μία συστοιχία υπολογιστών. Σκοπός αυτής της διπλωματικής εργασίας είναι η υλοποίηση ενός συστήματος με στόχοτην ανάθεση κάποιων εργασιών των ρομποτικών οχημάτων σε μία συστοιχία υπολογιστών. Με αυτόν τον τρόπο μπορούν τα οχήματα να εκτελέσουν αλγορίθμους ιδιαίτερα απαιτητικούς σε υπολογιστικούς πόρους. Επίσης, επιτυγχάνεται εξοικονόμηση ενέργειας στο ρομπότ. Ακόμα, το προτεινόμενο σύστημα δίνει την δυνατότητα σε προγραμματιστές οι οποίοι δεν έχουν γνώση των περιβαλλόντων υλοποίησης ρομποτικών υπηρεσιών, να χρησιμοποιήσουν τέτοιες υπηρεσίες, αξιοποιώντας τις προγραμματιστικές γνώσεις που ήδη κατέχουν στο χώρο των υπηρεσιών.
Παναγιώτης Δοξόπουλος
Παροχή Ρομποτικών Διαδικτυακών Υπηρεσιών μέσω Κόμβου Υλικού και Διασύνδεση με Πλατφόρμες ΙοΤ
Η ραγδαία ανάπτυξη της τεχνολογίας την τελευταία δεκαετία έχει επηρεάσει σε μεγάλο βαθμό την καθημερινότητα των ανθρώπων. Πλέον, εξαιτίας της ανάπτυξης της ρομποτικής και του διαδικτύου, διανύουμε την 4 η βιομηχανική επανάσταση (Industry 4.0). Η επικοινωνία και συνεργασία των κυβερνο-φυσικών συστημάτων (Cyber-Physical Systems), συμπεριλαμβανομένων μηχανών και ρομποτικών συστημάτων, μεταξύ τους αλλά και με τους ανθρώπους, αναμένεται να προσελκύσει το ενδιαφέρον των ερευνητών τουλάχιστον για τις επόμενες δεκαετίες. Βασικό στοιχείο της 4 ης βιομηχανικής επανάστασης αποτελεί το διαδίκτυο των πραγμάτων (Internet of Things - IoT). Η ιδέα του ΙοΤ εμφανίστηκε πρώτη φορά στο πανεπιστήμιο Carnegie Mellon το 1982, όπου και συζητήθηκε η δημιουργία ενός δικτύου από έξυπνα αντικείμενα, σε μια προσπάθεια να συνδέσουν στο δίκτυο έναν αυτόματο πωλητή αναψυκτικών. Πλέον, το ΙοΤ ξεκινάει μια περίοδο ακμής, με τους επιστήμονες να έχουν βάσιμες ενδείξεις ότι μέχρι το 2020 οι συνδεδεμένες σε αυτό έξυπνες συσκευές θα προσεγγίσουν τα 50 δισεκατομμύρια. Η παρούσα διπλωματική παρουσιάζει την ανάπτυξη ενός ΙοΤ συστήματος, μέσω του οποίου θα έρχονται σε επικοινωνία διάφορες συσκευές και έξυπνα αντικείμενα, είτε μεταξύ τους είτε με τους ανθρώπους. Το σημαντικότερο ίσως τμήμα του συστήματος αποτελείται από έναν δρομολογητή, τον crossbar, ο οποίος επιτρέπει τη σύνδεση έξυπνων αντικειμένων, ρομπότ και ανθρώπων στο σύστημα. Η επικοινωνία επιτυγχάνεται με χρήση πρωτοκόλλων Remore Procedure Call (RPC) και Publish/Subscribe (PubSub). Το πρώτο αναφέρεται σε απομακρυσμένες κλήσεις υπηρεσιών που προσφέρει η εκάστοτε συσκευή, ενώ με χρήση πρωτοκόλλου PubSub επιτυγχάνεται η ασύγχρονη ανταλλαγή μηνυμάτων μεταξύ των ανεξάρτητων κόμβων σε ένα IoT δίκτυο. Συγκεκριμένα, χρησιμοποιήθηκαν τα πρωτόκολλα WAMP και REST over HTTP. Στα πλαίσια της διπλωματικής, επιτεύχθηκε η σύνδεση στο σύστημα ενός ρομπότ ΝΑΟ, ενός Raspberry Pi (RPi), του συστήματος REMEDES και ενός Arduino. Εξίσου σημαντικό μέρος του συνολικού συστήματος αποτελεί η υλοποίηση ενός κόμβου παροχής ρομποτικών διαδικτυακών υπηρεσιών. Ο κόμβος υλοποιήθηκε σε Raspberry Pi και φιλοξενεί έναν server ο οποίος δημιουργήθηκε με τη βοήθεια των εργαλείων του Swagger. Ο server παρέχει RESTful διαδικτυακές υπηρεσίες με σκοπό τη χρήση τους από ρομπότ. Το Raspberry Pi είναι συνδεδεμένο στο ΙοΤ σύστημα, επιτρέποντας τα ρομπότ να έρθουν έμμεσα σε επαφή με τις υπηρεσίες. Φυσικά, είναι εφικτή και η απευθείας επικοινωνία των ρομπότ με το RPi. Επίσης, διενεργήθηκε ένας μεγάλος αριθμός πειραμάτων αποδεικνύοντας την ικανοποιητική λειτουργία του συστήματος και εξάγοντας χρήσιμα συμπεράσματα. Τέλος, υλοποιήθηκαν ορισμένες εφαρμογές οι οποίες παρουσιάζουν τη δυναμική του συστήματος.

2016

Ιωάννης Γκιλίρης
Αναδυόμενα Πρότυπα Πρακτικών Προγραμματισμού μέσω Συλλογικής Νοημοσύνης
Η ραγδαία εξάπλωση του Internet τα τελευταία χρόνια έχει επηρεάσει αδιαμφισβήτητα πολλές πτυχές της καθημερινής ζωής των ανθρώπων, μεταξύ αυτών και του τρόπου εργασίας τους. Η πρόσβαση σε μεγάλο όγκο διαθέσιμης πληροφορίας, καθώς και η εύκολη και γρήγορη μετακίνησή της έχει οδηγήσει την διαδικασία ανάπτυξης λογισμικού σε μια νέα εποχή, στην οποία η συλλογικότητα και η συνεργασία παίζουν ιδιαίτερα σημαντικό ρόλο. Κατ\\\' επέκταση, σημαντική έρευνα έχει πραγματοποιηθεί στην αναζήτηση και επαναχρησιμοποίηση έτοιμων τμημάτων ανοικτού κώδικα, καθώς πλατφόρμες όπως αυτή του GitHub προσφέρουν γόνιμο έδαφος για τέτοιους σκοπούς. Η συλλογική νοημοσύνη πλέον είναι κάτι απτό και στο πεδίο του software engineering, αν λάβει κανείς υπόψη την δυνατότητα υποστήριξης που λαμβάνουν οι σημερινοί προγραμματιστές στα πλαίσια της εργασίας τους. Σκοπός, λοιπόν, αυτής της διπλωματικής εργασίας είναι η ανάπτυξη ενός εργαλείου(statLint), το οποίο είναι ανοικτού κώδικα, με στόχο να αναγνωρίσει τις προγραμματιστικές πρακτικές του εκάστοτε χρήστη που στατιστικά διαφέρουν από τις πρακτικές που χρησιμοποιούν προγραμματιστές σε άλλα, δημοφιλή έργα ανοικτού λογισμικού. Οι συνήθεις και αναδυόμενες αυτές πρακτικές προέκυψαν από την ανάλυση πλήθους πακέτων και εφαρμογών, διαθέσιμων στο GitHub. Σε πρώτη φάση υλοποιήθηκε το σύστημα που ανέλυσε και συγκέντρωσε τη χρήσιμη πληροφορία ώστε να είναι εύκολα διαθέσιμη. Σε δεύτερη φάση αναπτύχθηκε το πακέτο statLint, το οποίο είναι ένα plugin για το Atom IDE και το οποίο αναλαμβάνει να κάνει την αξιολόγηση των πρακτικών του χρήστη, όπως και την ενημέρωσή του για πιθανές παρεκκλίσεις. Από το σύνολο των πειραμάτων που διενεργήθηκαν διαπιστώθηκε η ικανοποιητική λειτουργία του συστήματος, καθώς έγινε παρακολούθηση της λειτουργίας τόσο σε πρακτικό επίπεδο, όσο και από μία γενικότερη σκοπιά. Επιπλέον, διαπιστώθηκε η ισχυρή συσχέτιση που υπάρχει ανάμεσα στην ποιότητα αξιολόγησης του statLint και ενός άλλου παρεμφερούς εργαλείου. Ολοκληρώνοντας, το κύριο συμπέρασμα που εξήχθη από την όλη προσπάθεια είναι η δυνατότητα υποστήριξης εργαλείων που παρακολουθούν τις εξελίξεις και τις μεταβολές των προγραμματιστικών τάσεων, διότι όπως και οι φυσικές γλώσσες, έτσι και οι γλώσσες προγραμματισμού χρησιμοποιούνται από την ανθρώπινη κοινότητα και συνεπακόλουθα οι αλλαγές είναι αναπόφευκτες.
Ναταλία Μιχαηλίδου
Σχεδιαση και αναπτυξη διαδικτυακης εφαρμογης πελατη για διαδικτυακες υπηρεσιες τυπου REST
Το REST αρχιτεκτονικό στυλ περιγράφηκε για πρώτη φορά από τον Roy T. Fielding το 2000 σε μια προσπάθεια γενίκευσης των βασικών αρχών αρχιτεκτονικής του διαδικτύου και παρουσίασή ς τους ως ένα συγκεκριμένο πλαίσιο περιορισμών. Έκτοτε, το REST αρχιτεκτονικό στυλ γνώρισε τεράστια απήχηση στην ανάπτυξη διαδικτυακών υπηρεσιών και πλέον αποτελεί το κυρίαρχο πρότυπο για την ανάπτυξή τους. Παρά ταύτα, η ανάπτυξη εφαρμογών πελάτη που θα καταναλώνουν RESTful διαδικτυακές υπηρεσίες περιορίζεται στη δημιουργία βιβλιοθηκών πελάτη, οι οποίες απαιτούν την παρέμβαση προγραμματιστή για να καταστούν πλήρως λειτουργικές. Η συγκεκριμένη διπλωματική εργασία φιλοδοξεί να θέσει τα πρώτα βήματα προς την κατέυθυνση αυτοματοποίησης της διαδικασίας ανάπτυξης διαδικτυακών εφαρμογών πελάτη. Για την αυτοματοποίηση της διαδικασίας ανάπτυξης εφαρμογών πελάτη αξιοποιείται η θεωρία της τεχνολογίας λογισμικού και εξετάζεται η προσέγγιση της MDA αρχιτεκτονικής, που εισήχθηκε από τον όμιλο OMG. Η συγκεκριμένη αρχιτεκτονική υποστηρίζει τον ορισμό μοντέλων σε διάφορα επίπεδα αφαίρεσης και επιτρέπει την ανάπτυξη λογισμικού με βάση σχεδιαστικούς στόχους που σχετίζονται με το αντικείμενο του προβλήματος, και όχι με βάση το υποκείμενο υπολογιστικό περιβάλλον. Με αυτό τον τρόπο επιδιώκεται η επιτάχυνση της διαδικασίας ανάπτυξης λογισμικού και η παραγωγή λογισμικού με μεγαλύτερη αξιοπιστία, επεκτασιμότητα και διαλειτουργικότητα. Στην παρούσα διπλωματική εργασία η μηχανή παραγωγής εφαρμογών πελάτη Automated Client Engine παράγει διαδικτυακές εφαρμογές πελάτη που καταναλώνουν RESTful διαδικτυακές υπηρεσίες (με συγκεκριμένα χαρακτηριστικά, όπως παράγονται από την πλατφόρμα S-CASE–http://s-case.github.io). Οι παραγόμενες εφαρμογές πελάτη διαχειρίζονται την αποστολή CRUD(create, read, update και delete) αιτημάτων και λαμβάνουν, επεξεργάζονται και παρουσιάζουν τις αποκρίσεις του εξυπηρετητή. Έχουν τη δυνατότητα ταυτοποίησης των χρηστών και των αιτημάτων τους, χρησιμοποιούν στοιχεία UI/UX σχεδιασμού και ενσωματώνουν CSS μορφοποίηση. Η υλοποίησή τους έγινε σε Angular JS και HTML γλώσσα προγραμματισμού και είναι έτοιμες προς εκτέλεση (ready to deploy).
Σωτήριος Αγγελής
Σχεδίαση και υλοποίηση εργαλείου αυτόματης ανάπτυξης προσαρμόσιμων διεπαφών χρήστη για RESTful web APIs
Την τελευταία δεκαετία, η τάση για ανάπτυξη διαδικτυακών εφαρμογών παρουσιάζει ραγδαία ανάπτυξη κα καλύπτει ολοένα και περισσότερες ανάγκες λογισμικού. Σημαντικό ρόλο στην ανάπτυξη των εν λόγω εφαρμογών παίζουν οι διαδικτυακές υπηρεσίες, που εξυπηρετούν την επικοινωνία μεταξύ των υπολογιστών και την ανταλλαγή δεδομένων μέσω του πρωτοκόλλου HTTP. Την επικρατέστερη επιλογή σήμερα για τις διαδικτυακές υπηρεσίες αποτελούν τα RESTful web APIs, δηλαδή οι διαδικτυακές διεπαφές προγραμματισμού εφαρμογών που υπακούν στην αρχιτεκτονική σχεδιασμού Representational state transfer (REST). Η REST αρχιτεκτονική επικράτησε, μεταξύ άλλων, λόγω της απλότητας και της δυνατότητας εύκολης επεξεργασίας και επέκτασης των εφαρμογών που βασίζονται σε αυτήν. Την ολοένα αυξανόμενη ζήτηση και χρήση REST APIs συνοδεύει και η τάση στην εξέλιξη των τεχνικών και εργαλείων δημιουργίας τους, καθώς και αυτών για την κατανάλωσή τους. Τα εργαλεία αυτά επικεντρώνονται στην ελαχιστοποίηση του χρόνου και του κόστους που απαιτείται για την ανάπτυξη μιας εφαρμογής ιστού και της υλοποίησης μιας ολοκληρωμένης διεπαφής που θα εξυπηρετεί αποτελεσματικά την λειτουργία της εφαρμογής από το χρήστη. Όπως κάθε προϊόν λογισμικού, έτσι και ένα REST API, για να είναι επιτυχημένο θα πρέπει να χαρακτηρίζεται από μία εύλογη ευχρηστία με την οποία ο άνθρωπος θα μπορεί να χρησιμοποιεί τις λειτουργίες και τα χαρακτηριστικά του προϊόντος, αποτελεσματικά. Η παρούσα διπλωματική εργασία πραγματεύεται την υλοποίηση ενός εργαλείου ανάπτυξηςγραφικών διεπαφών χρήστη πλήρως προσαρμόσιμου στην δομή ενός δοσμένου API. Ουσιαστικά πρόκειται για μία ολοκληρωμένη διεπαφή χρήστη που η χρήση της δεν απαιτεί κάποια γνώση για υλοποίηση front-end client, ενώ παράλληλα παρέχει στον προγραμματιστή τη δυνατότητα τροποποίησης που επιθυμεί, αλλαγή του περιεχομένου ή της συμπεριφοράς της εφαρμογής. Το εργαλείο αυτό σχεδιάστηκε ώστε να είναι συμβατό με το S-CASE(http://s-case.github.io), μια πλατφόρμα λογισμικού η οποία εμπεριέχει, μεταξύ άλλων, μια μηχανή παραγωγής κώδικα που υλοποιεί την παραγωγή RESTful Web APIs σε Java πλατφόρμα. Ο μηχανισμός που αναπτύχθηκε είναι υλοποιημένος στο JavaScript framework Angular Js. Μπορεί να χρησιμοποιηθεί για τον έλεγχο λειτουργίας ενός REST API, σαν ολοκληρωμένη ιστοσελίδα ή σαν μια πρότυπη έκδοση εφαρμογής για παρουσίαση της λειτουργικότητας του API σε κάποιον ενδιαφερόμενο.
Νικηφόρος Σακκάς
Σχεδίαση και ανάπτυξη διαδικτυακής εφαρμογής με σκοπό την αξιολόγηση της Εμπειρίας Χρήστη (UX) διαφορετικών τεχνικών αλληλεπίδρασης και σημασιολογικού περιεχομένου
Αποτελεί αναμφισβήτητο γεγονός ότι το Διαδίκτυο αποτελεί αναπόσπαστο κομμάτι της ζωής του σύγχρονου ανθρώπου. Για το λόγο αυτό η ύπαρξη μιας συνεχούς και καθημερινής σχεδόν «επικοινωνίας» μεταξύ ανθρώπου και υπολογιστή αποτελεί αδήριτη πλέον ανάγκη. Πιο συγκεκριμένα, η αλληλεπίδραση ανθρώπου- υπολογιστή(γνωστή και ωςεπικοινωνία ανθρώπου-μηχανής) συγκαταλέγεται στο επιστημονικό πεδίο της επιστήμης της πληροφορικής που μελετά την αλληλεπίδραση μεταξύ ανθρώπων (χρηστών) και υπολογιστών. Θεωρείται, μάλιστα, ως το σημείο τομής μεταξύ της Πληροφορικής, της Γνωστικής και Κοινωνικής Ψυχολογίας, της Γλωσσολογίας, του Βιομηχανικού Σχεδιασμού, καθώς και άλλων γνωστικών πεδίων. Η αλληλεπίδραση μεταξύ χρηστών και υπολογιστών πραγμα τώνεται σε επίπεδο διεπαφών του χρήστη (user interface), μέσω κατάλληλου λογισμικού και υλικού. Η βασικότερη μετρική αξιολόγηση της αλληλεπίδρασης ανθρώπου-υπολογιστή, όσον αφορά το διαδίκτυο, είναι η Εμπειρία Χρήστη (ΕΧ). Ειδικότερα, η Εμπειρία Χρήστη αναφέρεται στη συνολική εμπειρία που προσφέρει μια ιστοσελίδα ή μία εφαρμογή στο άτομο που τη χρησιμοποιεί. Η ΕΧ επηρεάζεται από πολλούς παράγοντες, μερικοί από τους οποίους είναι οι διάφορες τεχνικές αλληλεπίδρασης και η χρήση σημασιολογικού περιεχομένου. Αντικείμενο της παρούσας διπλωματικής εργασίας είναι ο σχεδιασμός και η αξιολόγηση της Εμπειρίας Χρήστη από την εφαρμογή διαφορετικών τεχνικών αλληλεπίδρασης και σημασιολογικού περιεχομένου. Δημιουργήθηκαν, αρχικά, έξι ιστοσελίδες ίδιου θέματος με διαφορετική τεχνική αλληλεπίδρασης η κάθε μια, και στην συνέχεια, άλλες έξι παρόμοιες, στις οποίες αναγνωρίζονται και επισημαίνονται στον χρήστη οι σημαντικότερες σημασιολογικές οντότητες, προσφέροντας μ’ αυτόν τον τρόπο επιπρόσθετο υλικό για αλληλεπίδραση. Παρουσιάζονται τα διάφορα αποτελέσματα των μετρήσεων της Εμπειρίας Χρήστη τα οποία προήλθαν από τα πειράματα που διενεργήθηκαν σε πραγματικούς χρήστες οι οποίοι περιηγήθηκαν στις δώδεκα αυτές σελίδες και αξιολογούνται ως προς το βαθμό σημασίας του και το επίπεδο εμπειρίας των χρηστών.
Γεώργιος Ουζούνης
Εξατομικευμένη Αυτόματη Αναγνώριση Φωνής
Η παρούσα διπλωματική εργασία έχει ως στόχο την αύξηση της απόδοσης της χρήσης ηλεκτρονικών συστημάτων στις καθημερινές δραστηριότητες των ανθρώπων. Ο στόχος αυτός μπορεί να επιτευχθεί μέχω του μετασχηματισμού της διεπαφής ανθρώπου και ηλεκτρονικού συστήματος, ώστε να ομοιάζει με τον τρόπο επικοινωνίας μεταξύ των ανθρώπων. Για το σκοπό αυτό, υλοποιήθηκε η εφαρμογή Εξαρτομικευμένης Αυτόματης Αναγνώρισης Φωνής (Ε.Α.Α.Φ.) η οποία δίνει τη δυνατότητα στο χρήστη να συγγράφει μηνύματα ηλεκτρονικού ταχυδρομείου στην αγγλική γλώσσα υπαγορεύοντάς τα. Η εφαρμογή αποτελείται από δύο στάδια. Το πρώτο στάδιο περιλαμβάνει την μετατροπή της φωνής του χρήστη σε κείμενο και υλοποιείται από το σύστημα Αυτόματης Αναγνώρισης Φωνής (σύστημα Α.Α.Φ.) κάνοντας χρήση της εργαλειοθήκης ανοιχτού κώδικα CMY Sphinx. Το δεύτερο στάδιο της εφαρμογής υλοποιεί διόρθωση του κειμένου που έχει εξαγθεί από το πρώτο στάδιο με βάση ένα σύνολο από μηνύματα ηλεκτρονικού ταχυδρομείου που παρέχει ο χρήστης ως είσοδο. Το στάδιο αυτό υλοποιείται από το σύστημα Μετ-επεξεργασίας (σύστημα Μ.Ε.) το οποίο χρησιμοποιεί μεθόδους επεξεργασίας φυσικής γλώσσας (natural language processing) για τη διόρθωση και την εξαγωγή του τελικού κειμένου. Τα πειράματα που εκτελέστηκαν τόσο στο σύστημα Α.Α.Φ. όσο και στο σύστημα Μ.Ε. δείχνουν τη σημαντική βελτίωση που επιφέρει το δεύτερο σε ό,τι αφορά τη συνολική απόδοση της εφαρμογής. Τέλος, τα συμπεράσματα και τα ανοιχτά θέματα που παρατίθενται στο τέλος του παρόντος εγγράφου, κάνουν σαφή τη δυνατότητα περαιτέρω βελτίωσης αλλά και τους τρόπους με τους οποίους αυτή μπορεί να επιτευχθεί.
Παρασκευάς Λαγάκης
Venuetrack: Μια έξυπνη μηχανη αναζητησης σημέιων ένδιαφέροντος στη Θέσσαλονικη μέ δυνατοτητές αξιολογησης βασέι αναγνωρισης συναισθηματων σχολιων
Το διαδίκτυο γνωρίζει την τελευταία δεκαετία μια ραγδαία επέκταση, φτάνοντας σήμερα να χρησιμοποιείται καθημερινά από το 40% του παγκόσμιου πληθυσμού. Τα μέσα κοινωνικής δικτύωσηςέπαιξαν καθοριστικό ρόλο για την ανάπτυξη αυτή, καθώς για πολλούς τα κοινωνικά δίκτυα είναι ο κύριος, αν όχι ο μοναδικός λόγος που χρησιμοποιούν το διαδίκτυο. Αυτή η έκρηξη είχε ως αποτέλεσμα την παραγωγή πολύ μεγάλων ποσοτήτων δεδομένων, η ανάλυση των οποίων αποτελεί τεράστια πρόκληση για την επιστημονική κοινότητα. Στα πλαίσια αυτά, η ανάλυση συναισθήματος και η επεξεργασία φυσική γλώσσας βρίσκονται στο κέντρο των ερευνητικών εξελίξεων, παρουσιάζοντας μεγάλο ενδιαφέρον και προσφέροντας πολλές νέες ευκαιρίες. Ιδίως μάλιστα στην Ελλάδα, όπου ακόμη η ενασχόληση με τα εν λόγω πεδία δεν είναι επαρκής. Γι’ αυτό το λόγο, η παρούσα διπλωματική εργασία καταπιάνεται με την εφαρμογή ανάλυσης συναισθήματος με μεθόδους επεξεργασίας φυσικής γλώσσας. Σκοπός αυτής της διπλωματικής, είναι η εφαρμογή ανάλυσης συναισθήματος για την αξιολόγηση σημείων ενδιαφέροντος στη Θεσσαλονίκη, βάσει σχολίων χρηστών τόσο στα αγγλικά όσο και στα ελληνικά. Τα σχόλια αυτά κατηγοριοποιούνται σε σχόλια με θετικό ή αρνητικό συναίσθημα, με βάση έναν ταξινομητή που εκπαιδεύτηκε σε αντίστοιχο σετ δεδομένων. Έτσι, τα σημεία ενδιαφέροντος, ανάλογα με την ταξινόμηση των σχολίων τους, χωρίζονται με βάση την πόλωση σε θετικά (προσφέρουν θετικές εμπειρίες), ή αρνητικά (προσφέρουν αρνητικές εμπειρίες στους χρήστες). Για την ταξινόμηση, το σύστημα που κατασκευάστηκε, εφαρμόζει διάφορες τεχνικές επεξεργασίας φυσικής γλώσσας και προεπεξεργασίας δεδομένων, και παράγει κάποια πειραματικά αποτελέσματα, που θα παρουσιαστούν στα πλαίσια αυτής της διπλωματικής εργασίας. Τέλος, το σύστημα αυτό ενσωματώνεται και χρησιμοποιείται σε μια web εφαρμογή με το όνομα Venuetrack. Το Venuetrack είναι μια έξυπνη μηχανή αναζήτησης, όπου ο χρήστης μπορεί να βρει ένα σημείο ενδιαφέροντος στο χάρτη της Θεσσαλονίκης, και να δει τις βασικές πληροφορίες του σημείου αυτού καθώς και την κριτική (θετική ή αρνητική) στην οποία κατέληξε το σύστημα ταξινόμησης που κατασκευάστηκε.
Οδυσσέας Δούμας
Σχεδίαση μιας Εξειδικευμένης Πλατφόρμας Συστήματος διαδικτυακών υπηρεσιών REST και αυτόματη παραγωγή εκτελέσιμου κώδικα
Στην παρούσα διπλωματική εξετάζεται η αρχιτεκτονική MDA, την οποία έχει παρουσιάσει ο όμιλος OMG. Η MDA υπάγεται στο γενικότερο σύνολο των Model Driven Engineering μεθόδων, με κύριο χαρακτηριστικό την χρήση αφαιρετικών μοντέλων και μετασχηματισμών ως μέλη της διαδικασίας ανάπτυξης του λογισμικού. Στα πλαίσια της MDA ορίζεται ένα σύνολο από σαφώς ορισμένα πρότυπα και εργαλεία, και περιγράφει μια διαδικασία ανάπτυξης κατά την οποία αφού οριστεί ένα αρχικό αφαιρετικό μοντέλο, πραγματοποιείται μια σειρά από μετασχηματισμούς με τελικό αποτέλεσμα μια πλήρως λειτουργική εφαρμογή. Η MDA αρχιτεκτονική ευελπιστεί σε σημαντική αύξηση της ταχύτητας ανάπτυξης, βελτίωση στην δυνατότητα κατανόησης και επικοινωνίας μεταξύ των εμπλεκόμενων μελών, καθώς και βελτίωση σε θέματα αξιοπιστίας, ποιότητας, επεκτασιμότητας και διαλειτουργικότητας του παραγόμενου λογισμικού. Στην παρούσα διπλωματική εργασία πραγματοποιείται αρχικώς εκτενής διερεύνηση των βασικών εννοιών και της φιλοσοφίας της MDA καθώς και των αρχών που επιβάλει το REST αρχιτεκτονικό στυλ, και στην συνέχεια υλοποιείται ένα εργαλείο ανάπτυξης RESTful WEB APIs που ακολουθεί την MDA αρχιτεκτονική. Το εργαλείο αυτό σχεδιάστηκε ώστε να είναι συμβατό με το S-CASE, ένα έργο λογισμικού το οποίο εμπεριέχει, μεταξύ άλλων, μηχανή παραγωγής κώδικα που υλοποιεί την διαδικασία που ορίζει η MDA, για την παραγωγή RESTful Web APIs σε Java πλατφόρμα. Η υλοποίηση αυτής της εργασίας αποτελεί παρακλάδι της λειτουργικότητας του S-CASE, καθώς θα δέχεται σαν είσοδο ένα αρχικό μοντέλο PIM που παράγει η μηχανή του S-CASE,το οποίο περιγράφει την δομή και την λειτουργία ενός RESTful Web API ανεξαρτήτως της πλατφόρμας υλοποίησης, και θα παράγει ένα RESTful Web API με λειτουργία όπως αυτή που ορίζει το PIM, υλοποιημένο όμως στην πλατφόρμα .NET της Microsoft. Η παραγόμενη υπηρεσία αυτής της πλατφόρμας θα είναι έτοιμη για εκτέλεση και υποστηρίζει μεταξύ άλλων την αυτόματη κατασκευή της βάσης δεδομένων του συστήματος μέσω του Entity Framework, τον ορισμό μεθόδων που χειρίζονται όλα τα επιτρεπόμενα CRUD αιτήματα προς την βάση αυτή καθώς και την δυνατότητα φιλοξενίας της υπηρεσίας σε διακομιστές μέσω του ASP.NET WEB API πλαισίου ανάπτυξης. Επιπλέον το Web API υποστηρίζει τις μορφές XML/JSON για την αναπαράσταση των δεδομένων, καθώς και το HTTP πρωτόκολλο επικοινωνίας, γεγονός που το καθιστά πλήρως συμβατό με αυτά που παράγει η μηχανή του S-CASE, καθώς έχουν την δυνατότητα να επικοινωνήσουν μέσω μιας κοινής διεπαφής.
Κωνσταντίνος Σιδέρης
Ανάπτυξη διαδικτυακής εφαρμογής για την στατική ανάλυση αποθετηρίων κώδικα
Τα τελευταία χρόνια παρατηρείται μια ραγδαία εξάπλωση του οικοσυστήματος της JavaScript. Σ\' αυτό έχει συμβάλει τόσο η εδραίωση του διαδικτύου ως πλατφόρμα ανάπτυξης διαδικτυακών εφαρμογών, καθώς και η πλατφόρμα Node.js, που έδωσε την δυνατότητα, χρήσης της γλώσσας εκτός browser, για ανάπτυξη κάθε είδους εφαρμογής. Η μεγάλη απήχηση του Node.js ενέπνευσε τη δημιουργία του πρώτου αποθετήριου πακέτων JavaScript (npm), που γρήγορα εξελίχθηκε σε ένα από τα μεγαλύτερα απουθετήρια κώδικα. Η συσσώρευση μεγάλου αριθμού πακέτων λογισμικού σε σχετικά μικρό χρονικό διάστημα, έχει δυσκολέψει την διαδικασία επιλογής και εύρεσης εξιόλογων πακέτων. Ο μεγάλος όγκος πληροφορίας και δεδομένων που βρίσκεται διαθέσιμος τόσο στα αποθετήρια αλλά και στον κώδικα θα μπορούσε να αξιοποιηθεί στη βελτίωση και αξιολόγηση του διαθέσιμου λογισμικού. Η διπλωματική εργασία πραγματεύεται την ανάπτυξη μιας διαδικτυακής εφαρμογής (npm-miner) που έχει ως στόχο τη βελτίωση της διαδικασίας επιλογής πακέτων λογισμικού μέσω της χρήσης μετρικών ποιότητας για την αξιολόγηση τους. Ο χρήστης θα έχει τη δυνατότητα αναζήτησης και σύγκρισης λογισμικού αλλά και να εξερευνήσει στατιστικά σχετικά με την ποιότητα του οικοσυστήματος.
Κλέαρχος Θωμόπουλος
Σύστημα Προτάσεων Κώδικα με χρήση Μετρικών Επαναχρηστικότητας Λογισμικού
Αδιαμφισβήτητα, η ψηφιακή εποχή χαρακτηρίζεται από την ευρεία διάδοση του διαδικτύου, το οποίο έχει συντελέσει στην ευκολότερη μετάδοση της πληροφορίας. Το εύλογο ζήτημα που τίθεται πλέον, είναι η αποδοτική αξιοποίηση αυτής της πληροφορίας, κομμάτι της οποίας αποτελεί το λογισμικό, το οποίο βρίσκεται σε αφθονία στις αποθήκες ανοιχτού λογισμικού στο διαδίκτυο. Το λογισμικό αυτό θα ήταν σκόπιμο να μπορέσει να αξιοποιηθεί από τους προγραμματιστές, με στόχο την επανάχρηση τμημάτων του. Για την αποτελεσματικότερη αξιοποίηση του κώδικα που βρίσκεται στο διαδίκτυο, εκτός από τις κλασσικές μηχανές αναζήτησης, δημιουργήθηκαν και οι λεγόμενες Μηχανές Αναζήτησης Κώδικα (Code Search Engines ή CSEs). Ωστόσο, ακόμα και αυτές αδυνατούν να αντιμετωπίσουν επαρκώς το πρόβλημα της εύρεσης τμημάτων κώδικα προς επανάχρηση, καθώς δεν είναι εφικτό να περιγράψουν πλήρως το ερώτημα του χρήστη. Έτσι, εν συνεχεία, αναπτύχθηκαν πιο εξελιγμένα συστήματα, τα Συστήματα Συστάσεων στην Τεχνολογία Λογισμικού (Recommendation Systems in Software Engineering ή RSSEs). Τα συστήματα αυτά αναλαμβάνουν να αυτοματοποιήσουν την εξαγωγή ερωτημάτων από τον κώδικα του χρήστη και σε ένα βαθμό να ελέγξουν την λειτουργικότητα των αποτελεσμάτων. Ωστόσο, τα σύγχρονα συστήματα αδυνατούν να εξετάσουν μη λειτουργικά χαρακτηριστικά των τμημάτων κώδικα που αναφέρονται στην επαναχρηστικότητά τους. Η αδυναμία των παραπάνω συστημάτων να αντιμετωπίσουν το πρόβλημα που υπάρχει μας οδήγησε στην ανάπτυξη ενός RSSE συστήματος, το οποίο έχει σκοπό να καλύπτει τις λειτουργικές αλλά και τις ποιοτικές απαιτήσεις επαναχρηστικότητας κώδικα. Το σύστημά μας χρησιμοποιεί το αποθετήριο λογισμικού της Boa, που περιέχει επεξεργασμένες πληροφορίες για έργα λογισμικού και είναι προσπελάσιμο χρησιμοποιώντας μία γλώσσα ερωτημάτων. Πιο συγκεκριμένα, το σύστημα μας αρχικά εξάγει το ερώτημα από τον κώδικα του χρήστη και εν συνεχεία πραγματοποιεί αναζήτηση για σχετικά τμήματα κώδικα χρησιμοποιώντας την Boa. Επιπλέον, εξάγουμε μετρικές ποιότητας κώδικα και κατασκευάζουμε ένα μοντέλο για τη μέτρηση της επαναχρηστικότητας του κάθε αποτελέσματος. Τέλος, το σύστημα παρουσιάζει στον χρήστη την κατάταξη των αποτελεσμάτων, παραθέτοντας το βαθμό λειτουργικής ταύτισης με το αρχικό ερώτημα, καθώς και το βαθμό επαναχρηστικότητας του κάθε αποτελέσματος. Με βάση την αξιολόγηση που εφαρμόστηκε, διαπιστώ θηκε ότι το σύστημα παρουσιάζει τα επιθυμητά αποτελέσματα, τα οποία είναι ικανοποιητικά τόσο ως προς την ποιότητα όσο και ως προς την ακρίβεια. Είναι ασφαλές να συμπεράνουμε ότι το σύστημα μας μπορεί να χρησιμοποιηθεί αποτελεσματικά για την σύσταση επαναχρηστικών τμημάτων λογισμικού.
Ιωάννης Λυκάρτσης
Σχεδιασμός και παρακολούθηση λειτουργιών σε αποστολές ρομποτικών οχημάτων
Τα κινούμενα ρομπότ ολοένα και περισσότερο χρησιμοποιούνται για την επίτευξη κρίσιμων στόχων, όπου η ανθρώπινη παρουσία δεν κρίνεται ασφαλής. Τέτοιους στόχους αποτελούν οι αποστολές έρευνας και διάσωσης, η παρακολούθηση και εξερεύνηση επικίνδυνων περιοχών, οι διαστημικές αποστολές κλπ. Ένα ακόμα πλεονέκτημα από τη χρήση ρομπότ στις περιπτώσεις αυτές, εκτός από την διασφάλιση της ανθρώπινης ζωής, είναι η δραματική μείωση του κόστους (πολύ πιο χαμηλά κριτήρια προστασίας). Η συνεργασία αυτή ρομπότ-ανθρώπου, δίνει τη δυνατότητα της αξιοποίησης των καλύτερων χαρακτηριστικών του καθενός. Την ικανότητα των ρομπότ να πραγματοποιούν ταχύτατους υπολογισμούς και να παίρνουν αποφάσεις δεδομένου ότι διαθέτουν αρκετές πληροφορίες και την ικανότητα των ανθρώπων να αντιλαμβάνονται καταστάσεις και να δρουν με ελάχιστες πληροφορίες. Για να επιτευχθεί το δεύτερο, όταν το ρομπότ βρίσκεται στο πεδίο της αποστολής, απαιτείται ένα σύστημα επικοινωνίας μεταξύ ανθρώπου και ρομπότ. Το πεδίο που μελετά το παραπάνω σύστημα είναι αυτό του Human-RobotInteraction (HRI). Σκοπός του πεδίου αυτού είναι η βελτιστοποίηση της συνεργασίας ανθρώπου-ρομπότ για την διεκπεραίωση αποστολών σε ένα φάσμα δυνατοτήτων που εκτείνεται μεταξύ της πλήρους αυτονομίας και της τηλεχείρησης. Το πρόβλημα που εξετάζεται στην παρούσα διπλωματική εργασία, είναι αυτό της ανάπτυξης μια εφαρμογής γραφικού περιβάλλοντος διεπαφής χρήστη, που θα επιτρέπει τους χειριστές στο έδαφος να ελέγχουν και να παρακολουθούν τις εργασίες των ρομποτικών οχημάτων στο πεδίο των αποστολών. Αναπτύχθηκε η εφαρμογή GRASP που καθιστά δυνατή την διεκπεραίωση αποστολών με χρήση απομακρυσμένων ρομποτικών οχημάτων.Μέσω του GRASP ο χειριστής έχει τη δυνατότητα να δημιουργεί σχέδια αποστολής, να τα στέλνει στο ρομπότ και να παρακολουθεί την εξέλιξή τους. Το GRASP βοηθά τον χειριστή να διεκπεραιώσει τις απαραίτητες διεργασίες, παρέχοντάς του επίγνωση της κατάστασης και του περιβάλλοντος του ρομπότ αξιοποιώντας τα εισερχόμενα μηνύματα τηλεμετρίας. Το είδος και η ποιότητα της χωρικής επίγνωσης που παρέχεται στο χειριστή εξαρτάται αποκλειστικά από τους αισθητήρες και το λογισμικό του εκάστοτε ρομπότ (αναγνώριση αντικειμένων, digital elevated χάρτες κλπ). Στην αρχή της κάθε αποστολής με το GRASP, ο χειριστής επιλέγει τα ρομπότ που θα χρησιμοποιήσει στην αποστολή και το GRASP του παρουσιάζει το ανάλογο γραφικό περιβάλλον. Προφανώς επειδή κάθε ρομπότ έχει ιδιαιτερότητες (πχ ρόβερ-βραχίονας), το GRASP θα αντανακλά τις ιδιαιτερότητες αυτές, παρέχοντας όμως πάντα ένα γνώριμο περιβάλλον στο χειριστή, πρακτικά εξαλείφοντας το χρόνο εξοικείωσης για το χειρισμό ενός καινούριου ρομπότ. Η αρχιτεκτονική του συστήματος που αναπτύχθηκε βασίστηκε στο σύστημα Qt, που είναι ένα εργαλείο δημιουργίας γραφικών περιβαλλόντων διεπαφών χρήστη για cross-platform εφαρμογές. Για την ανάπτυξη του GRASP χρησιμοποιήθηκε η C++ βιβλιοθήκη του Qt.
Μιλτιάδης Σιάββας
Σχεδίαση και ανάπτυξη πλαισίου αξιολόγησης ποιότητας έργων λογισμικού βασισμένη σε στατική ανάλυση κώδικα και ασαφείς τεχνικές πολυκριτηριακής λήψης αποφάσεων
Ως γνωστόν, η εποχή μας χαρακτηρίζεται από την ραγδαία ανάπτυξη της τεχνολογίας και τη συνεχή ψηφιοποίηση της πληροφορίας. Προϊόντα λογισμικού αναπτύσσονται συνεχώς με βασικό σκοπό να βοηθήσουν τους ανθρώπους στην επίτευξη των στόχων τους ευκολότερα, γρηγορότερα και πιο αποτελεσματικά. Αυτό έχει ως αποτέλεσμα η ποιότητα των προϊόντων λογισμικού να αποτελεί βασική παράμετρο τόσο για τους τελικούς χρήστες, όσο και για τις εταιρίες ανάπτυξης λογισμικού οι οποίες επιθυμούν να παρέχουν ποιοτικές υπηρεσίες προς τους πελάτες τους. Σκοπός της παρούσας διπλωματικής εργασίας είναι η δημιουργία ενός συστήματος που να επιτρέπει την αξιολόγηση της ποιότητας έργων λογισμικού σύμφωνα με τους στόχους σχεδίασης που έχουν τεθεί. Δημιουργήθηκε μια αλυσίδα εργαλείων η οποία επιτρέπει την εξαγωγή μοντέλων ποιότητας μέσω εφαρμογής τεχνικών στατικής ανάλυσης σε ένα επιθυμητό αποθετήριο αναφοράς, και την αξιοποίηση των μοντέλων αυτών για την αξιολόγηση προϊόντων λογισμικού υλοποιημένα σε γλώσσα προγραμματισμού Java. Ο μηχανισμός εκμεταλλεύεται τεχνικές πολυνημάτωσης για την επίσπευση της χρονοβόρας διαδικασίας της στατικής ανάλυσης. Παράλληλα, υλοποιήθηκε ένας μηχανισμός ασαφών τεχνικών πολυκριτηριακής εξαγωγής αποφάσεων για την μοντελοποίηση της αβεβαιότητας των ανθρώπινων κρίσεων. Επίσης, μέσω του συστήματος εξάγεται ένα προσεκτικά βαθμονομημένο και αξιόπιστο μοντέλο ποιότητας, το μοντέλο βάσης, το οποίο χρησιμοποιείται αφενός για την επαλήθευση του συστήματος και αφετέρου ως οδηγός για την υλοποίηση παρόμοιων μοντέλων ποιότητας. Τέλος, δημιουργήθηκε μια διαδικτυακή υπηρεσία η οποία επιτρέπει την αξιολόγηση προϊόντων λογισμικού ανοικτού κώδικα τα οποία βρίσκονται αποθηκευμένα στο GitHub, έχοντας ως απώτερο σκοπό να αποτελέσει μελλοντικά μια αξιόπιστη υπηρεσία πιστοποίησης ποιότητας κώδικα. Από τα πειράματα που διενεργήθηκαν διαπιστώθηκε η ορθή λειτουργία του συστήματος και η ανεξαρτησία των μοντέλων από το μέγεθος του υπό αξιολόγηση προϊόντος. Επίσης, εντοπίστηκε η συμβολή των μοντέλων ποιότητας στην βελτίωση της ποιότητας προϊόντων λογισμικού, έπειτα από αξιολόγηση αυτόματα παραγόμενων αλλά και υπαρκτών προϊόντων. Στη συνέχεια, πραγματοποιήθηκε σύγκριση μεταξύ της σειριακής και παράλληλης υλοποίησης η οποία οδήγησε στο συμπέρασμα πως η παράλληλη υλοποίηση συμβάλλει αισθητά στην επίσπευση της διαδικασίας της στατικής ανάλυσης. Τέλος, η σύγκριση της ασαφούς τεχνικής εξαγωγής βαρών με την ντετερμινιστική οδήγησε στο συμπέρασμα πως υπάρχει στενή συσχέτιση μεταξύ των αποτελεσμάτων των δύο αυτών μεθόδων.
Χρήστος Ζαλίδης
Επαύξηση του μοντέλου αντίληψης αυτόνομων ρομποτικών οχημάτων για εξερεύνηση και πλοήγηση σε ανώμαλο έδαφος
Το πρόβλημα που εξετάζεται στην παρούσα διπλωματική εργασία, είναι αυτό της μοντελοποίησης και απεικόνισης ενός αγνώστου εκ των προτέρων χώρου, που περιέχει μη επίπεδες επιφάνειες. Ειδικότερα, το ενδιαφέρον επικεντρώνεται σε ρομποτικά οχήματα εδάφους, που χρησιμοποιούν την παραγόμενη απεικόνιση με σκοπό την πλήρως αυτόνομη πλοήγηση και την εξερεύνηση του περιβάλλοντος. Αναπτύχθηκε ένα ενοποιημένο σύστημα που αντιμετωπίζει το πρόβλημα του εντοπισμού της θέσης στον τρισδιάστατο χώρο, κατασκευάζει την απεικόνισή του χρησιμοποιώντας χάρτες ύψους,εξάγει χαρακτηριστικά προσπελασιμότητας βάσει της απεικόνισης αυτής, και τέλος λύνει το πρόβλημα της ασφαλούς και αυτόνομης πλοήγησης. Για τον εντοπισμό της θέσης του ρομποτικού πράκτορα στον τρισδιάστατο χώρο, συνδυάζεται η πληροφορία που παράγεται από τους αισθητήρες και τους διαφορετικούς αλγορίθμους, για κάθε έναν από τους βαθμούς ελευθερίας, ώστε να εκτιμηθεί η συνολική θέση του πράκτορα στονχώρο.Ο συνδυασμός αυτός επιτυγχάνεται πιθανοτικά, με την χρήση επεκταμένων φίλτρων Kalman. Η ανάγκη για την κατασκευή απεικόνισης του χώρου, υψηλής ακρίβειας, ανθεκτική στον θόρυβο που εισάγει η κίνηση του ρομποτικού οχήματος, αλλά και οι διάφοροι αισθητήρες, οδήγησε στην ανάπτυξη μιας νέας μεθόδου χαρτογράφησης ύψους που λαμβάνει υπόψη την αβεβαιότητα του συστήματος. Βασιζόμενοι σε αισθητήρα μέτρησης αποστάσεων του ρομποτικού οχήματος και σε ένα υπάρχον σύστημα εκτίμησης της θέσης, παράγουμε έναν χάρτη ύψους που είναι τοπικός, με κέντρο την εκάστοτε θέση του ρομπότ. Η προτεινόμενη μέθοδος αντιμετωπίζει ρητά το φαινόμενο της ολίσθησης της εκτίμησης της θέσης που συναντάται συχνά σε αυτόνομα ρομπότ.Ταυτόχρονα εξάγονται χαρακτηριστικά του εδάφους, χρήσιμα για την διαδικασία της πλοήγησης, προβαίνοντας σε ανάλυση προσπελασιμότητας με βάση τον παραγόμενο χάρτη ύψους, κατασκευάζοντας έτσι ένα νέο είδος χαρτών, τους χάρτες προσπελασιμότητας. Επιπλέον, προχωρούμε σε επέκταση της κλασσικής αναπαράστασης των χαρτών ύψους, προσθέτοντας την δυνατότητα απεικόνισης περιβαλλόντων που αποτελούνται από πολλές, επικαλυπτόμενες επιφάνειες. Η νέα αυτή απεικόνιση οδηγεί στην κατασκευή πολυεπίπεδων χαρτών ύψους. Η αρχιτεκτονική του συστήματος που αναπτύχθηκε βασίζεται στο σύστημα πλοήγησης του ROS (RobotOperatingSystem),έναν από τους πιο δημοφιλείς αλγορίθμους πλοήγησης στην κοινότητα της ρομποτικής.Η μοντελοποίηση που παρέχει ο αλγόριθμος αυτός δεν είναι αρκετή για την πλοήγηση σε περιβάλλοντα που χαρακτηρίζονται από μη επίπεδες επιφάνειες ή ανώμαλο έδαφος γενικότερα. Χρησιμοποιώντας τις παραπάνω μεθόδους χαρτογράφησης ύψους και εξαγωγής προσπελασιμότητας επεκτείνουμε το σύστημα πλοήγησης ROS, αντικαθιστώντας την απεικόνιση του περιβάλλοντος που λαμβάνει ως είσοδο. Τέλος, αξιολογούμε τις δυνατότητες του προτεινόμενου συστήματος μέσω ενός αριθμού πειραμάτων, σχεδιασμένα ώστε να μοντελοποιούν πληθώρα διαφορετικών περιβαλλόντων και καταστάσεων.

2015

Βασιλείος Λώλης
Σχεδίαση και Ανάπτυξη Εφαρμογής Android Συσκευών για τη Συναισθηματική και Θεματική Ανάλυση των Περιεχομένων της Διαδικτυακής Περιήγησης του Χρήστη
Οι φορητές συσκευές έχουν γίνει πλέον μέρος της ζωής μας και μας παρέχουν τη δυνατότητα να έχουμε πρόσβαση στον παγκόσμιο ιστό σε οποιοδήποτε μέρος και αν βρισκόμαστε. Έτσι έχουμε οδηγηθεί στην όλο και εντονότερη χρήση του ιστού. Εταιρείες, όπως η Google, μαζεύουν όλο και περισσότερα στοιχεία για εμάς και πλέον αρχίζει να διαφαίνεται ότι, με κατάλληλη επεξεργασία, μπορεί να σκιαγραφήσει ένα πλήρες προφίλ για το ποιοι είμαστε και τι μας αρέσει. Ένα από τα στοιχεία που κρατάει η Google για τον κάθε χρήστη, όταν αυτός χρησιμοποιεί τον φυλλομετρητή της φορητής συσκευής του με λειτουργικό σύστημα Android, είναι το ιστορικό των επισκέψεών του στον παγκόσμιο ιστό. Τα δεδομένα αυτά αποθηκεύονται τοπικά αλλά και στο Google Cloud, δίνοντάς μας τη δυνατότητα να τα επεξεργαστούμε εμείς, αλλά και η εταιρεία. Η παρούσα διπλωματική εργασία αναπτύσσει μια εφαρμογή, η οποία εξάγει τα δεδομένα της περιήγησης του χρήστη στον παγκόσμιο ιστό από τον φυλλομετρητή της φορητής συσκευής και με κατάλληλη επεξεργασία τα αναπαράγει στον χρήστη με διαγράμματα, συσχετίσεις και στατιστικά στοιχεία ώστε να αποκτήσει μια εικόνα από τα συμπεράσματα που μπορούν να εξαχθούν από αυτά τα δεδομένα. Στα πλαίσια της διπλωματικής αυτής εργασίας, αρχικά, έγινε μια έρευνα σχετικά με το αρχιτεκτονικό στυλ REST, έπειτα σχετικά με τις RESTful διαδικτυακές υπηρεσίες που υπάρχουν για την συναισθηματική και θεματική ανάλυση κειμένων και τέλος, για το σχεδιασμό εφαρμογών για λειτουργικό σύστημα Android. Έπειτα, σχεδιάστηκε και αναπτύχθηκε το C.H.A.T. (Chrome History Analysis Tool), μια εφαρμογή για φορητές συσκευές που λειτουργούν με Android, η οποία παίρνει το ιστορικό από τον φυλλομετρητή Google Chrome, αποστέλλει τα δεδομένα για συναισθηματική και θεματική ανάλυση, τα αποθηκεύει σε μια απομακρυσμένη βάση δεδομένων ώστε να επιτευχθεί η ανωνυμία και η ασφάλεια των προσωπικών δεδομένων του κάθε χρήστη και τελικά, επιστρέφει στον χρήστη την ανάλυσή τους σε ένα φιλικό προς το χρήστη περιβάλλον, παρέχοντάς του τη δυνατότητα να επιλέξει και συγκεκριμένες χρονικές περιόδους για την ανάλυση ή απλά ολική εποπτεία. Τα αποτελέσματα και τα συμπεράσματα της χρήσης του C.H.A.T.παρατίθενται στο τέλος της παρούσης εργασίας.
Αλεξάνδρα Μπαλτζή
Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα
Μιχαήλ Παπαμιχαήλ
Σχεδίαση και Ανάπτυξη Συστήματος Αξιολόγησης Ποιότητας Πηγαίου Κώδικα με Χρήσης Μετρικών Στατικής Ανάλυσης και Τεχνικών Μηχανικής Μάθησης
Αν προσπαθήσουμε να περιγράψουμε τη σημερινή εποχή με μια φράση, η αντιπροσωπευτικότερη θα ήταν \"εποχή της πληροφορίας\". Σε αντίθεση με παλαιότερες εποχές, όπου η πρόσβαση στην πληροφορία κάθε είδους αποτελούσε μια επίπονη, χρονοβόρα και πολλές φορές ανέφικτη διαδικασία, σήμερα η πληροφορία λόγω της ραγδαίας ανάπτυξης της τεχνολογίας και του διαδικτύου απέχει μόνο μερικά click. Toγεγονός αυτό το συναντά κανείς σε κάθε τομέα της καθημερινής δραστηριότητας και όπως είναι φυσικό στην τεχνολογία λογισμικού. Η αξιοποίηση των πολυάριθμων έργων ανοικτού λογισμικού, τόσο από αποθήκες ανοικτού λογισμικού, όσο και με τη χρήση συμβατικών μηχανών αναζήτησης ή και εξειδικευμένων συστημάτων ανάκτησης κώδικα, διευκολύνει το έργο των προγραμματιστών. Ωστόσο, η επαναχρησιμοποίηση κώδικα αποφέρει οφέλη εφόσον ανταποκρίνεται στις ανάγκες του έργου του προγραμματιστή, και εφόσον πληροί κάποιες προδιαγραφές ποιότητας. Αναζητώντας σε αποθήκες λογισμικού παρατηρεί κανείς την εύρεση αν όχι χιλιάδων, τότε σίγουρα εκατοντάδων τμημάτων κώδικα που ανταποκρίνονται στο ερώτημά του. Το γεγονός αυτό οδηγεί στο εύλογο ερώτημα: «Πώς μπορούμε να επιλέξουμε τα πιο ποιοτικά τμήματα κώδικα για επαναχρησιμοποίηση;» Η παρούσα διπλωματική εργασία έχει ως στόχο να συμβάλει στην όσο το δυνατόν πιο αξιόπιστη και ολοκληρωμένη απάντηση στο παραπάνω ερώτημα προτείνοντας έναν μηχανισμό αξιολόγησης πηγαίου κώδικα με βάση χαρακτηριστικά στατικής ανάλυσης. Έτσι, σχεδιάστηκε ένα σύστημα με κύριο στόχο τη μετάφραση των μετρικών στατικής ανάλυσης ενός αρχείου κώδικα σε μια μετρική εκτίμησης ποιότητας. Η διαδικασία αυτή διενεργήθηκε μέσω της δημιουργίας ενός one class classifier με χρήση SVMs και ενός μοντέλου νευρωνικών δικτύων. Το πρώτο χρησιμοποιείται για να επιβεβαιώσει κατά πόσο το αρχεία προς εξέταση ικανοποιούν κάποια βασικά όρια ποιότητας, ενώ το δεύτερο βαθμολογεί τα αρχεία ως προς την ποιότητα τους. Τα δεδομένα που χρησιμοποιήθηκαν για την εκπαίδευση των δύο αυτών μοντέλων προήλθαν από την ανάλυση 24930 αρχείων κώδικα java, τα οποία ανήκουν στα 100 δημοφιλέστερα αποθετήρια της βάσης δεδομένων του GitHub. Τέλος, από την αξιολόγηση του συστήματος μας για τη βαθμολόγηση νέων αρχείων κώδικα, προκύπτει ότι μπορεί να αποτελέσει ένα χρήσιμο βοήθημα για τον προγραμματιστή.
Κωνσταντίνος Παπαγγέλου
Προσωποποίηση αποτελεσμάτων μηχανών αναζήτησης μέσω ενσωμάτωσης συμπεριφοράς χρηστών και σημασιολογικών δεδομένων
Ένα σημαντικό βήμα προς την κατανόηση και ικανοποίηση των αναγκών των χρηστών του διαδικτύου είναι η ανάλυση της συμπεριφοράς τους και η εκμετάλλευση των πληροφοριών που παρέχουν καθώς και των ενεργειών τους για τη δημιουργία εξατομικευμένων υπηρεσιών. Πληροφορίες όπως το φύλο, η ηλικία και η τοποθεσία των χρηστών, καθώς και πληροφορίες για τις σελίδες που επισκέπτονται χρησιμοποιούνται από εφαρμογές για την αναγνώριση των ενδιαφερόντων των χρηστών και τη βελτίωση των υπηρεσιών που τους παρέχουν. Τέτοιου είδους εφαρμογές έχουν αρχίσει να αποτελούν μέρος του διαδικτύου με το πιο ενδεικτικό παράδειγμα να είναι η παροχή εξατομικευμένων αποτελεσμάτων από τις μηχανές αναζήτησης. Στόχος της παρούσας διπλωματικής είναι η σχεδίαση και ανάπτυξη μίας μεθόδου αναγνώρισης των ενδιαφερόντων των χρηστών βάσει του ιστορικού περιήγησής τους. Γι’ αυτό το σκοπό υλοποιήθηκαν δύο συστήματα: το πρώτο είναι υπεύθυνο για τη δημιουργία προφίλ σχετικών με δημοφιλή θέματα και το δεύτερο πραγματοποιεί ανάθεση αυτών των προφίλ στους χρήστες ανάλογα με το περιεχόμενο των σελίδων που επισκέπτονται. Συγκεκριμένα, το πρώτο σύστημα συλλέγει σελίδες του διαδικτύου σχετικές με κάποιο θέμα (π.χ. είδη μουσικής) και πραγματοποιεί θεματική ανάλυση αυτών με χρήση του αλγορίθμου Latent Dirichlet Allocation(LDA). Στη συνέχεια επιλέγει τις πιο αντιπροσωπευτικές λέξεις, οι οποίες θα συνθέσουν το αντίστοιχο προφίλ. Το δεύτερο σύστημα εξάγει το ιστορικό περιήγησης του χρήστη και υπολογίζει για κάθε σελίδα ένα σκορ ως προς κάθε προφίλ ανάλογα με τον αριθμό των κοινών λέξεων και τη σημασιολογική ομοιότητα που παρουσιάζουν. Σε κάθε ελίδα ανατίθεται το πιο αντιπροσωπευτικό προφίλ, ενώ το σύνολο των προφίλ που θα προκύψει στο τέλος της ανάλυσης θα είναι και αυτό που θα περιγράφει τα ενδιαφέροντα του χρήστη. Στα πλαίσια της εργασίας γίνεται μία παρουσίαση σχετικών υλοποιήσεων και περιγράφονται λεπτομερώς τα δύο συστήματα που αναπτύχθηκαν. Επιπλέον, παρουσιάζονται ενδεικτικά αποτελέσματα του πρώτου συστήματος στα πεδία της μουσικής και του αθλητισμού καθώς και ένα παράδειγμα ανάλυσης του ιστορικού περιήγησης ενός χρήστη. Τα αποτελέσματα που προκύπτουν είναι ενθαρρυντικά και μας επιτρέπουν να εξάγουμε χρήσιμα συμπεράσματα.
Αντώνης Νούτσος
DPDHMMY -Εργαλείο Ανίχνευσης Σχεδιαστικών Προτύπων Λογισμικού
Στις μέρες μας, η σωστή σχεδίαση και ανάπτυξη λογισμικού αποτελεί ένα δύσκολο πρόβλημα τόσο για τους μηχανικούς λογισμικού όσο και για τους προγραμματιστές. Ο σκοπός της διαδικασίας ανάπτυξης λογισμικού αφορά όχι μόνο την κάλυψη της λειτουργικότητας της εκάστοτε εφαρμογής, αλλά και τη σωστή οργάνωση του κώδικα, ώστε να ικανοποιεί βασικές μη λειτουργικές απαιτήσεις. Η επεκτασιμότητα, η στιβαρότητα, η ευχρηστία, η συντηρησιμότητα, η μεταφερσιμότητα, η ελεγξιμότητα και η δυνατότητα επαναχρησιμοποίησης κώδικα είναι έννοιες που ο προγραμματιστής χρειάζεται να λαμβάνει υπόψη κατά τη δημιουργία του έργου του. Μια δεδομένη μεθοδολογία για την εξασφάλιση της καλής οργάνωσης και ποιότητας του κώδικα είναι η εφαρμογή διαφόρων προτύπων σχεδίασης που είναι αναγνωρισμένα για την αξία και την χρησιμότητά τους ανά τα χρόνια. Σε αυτό το πλαίσιο, η ανίχνευση σχεδιαστικών προτύπων σε τμήματα κώδικα μπορεί να ενισχύσει την καλύτερη κατανόηση των αρχιτεκτονικών κώδικα, να παρέχει μια μετρική για την αξιολόγηση της ποιότητας του κώδικα, καθώς και να χρησιμεύσει στην εφαρμογή μοτίβων σε υπάρχων κώδικα. Η παρούσα διπλωματική εργασία προτείνει ένα νέο τρόπο απεικόνισης προτύπων σχεδίασης. Η βασική ιδέα στηρίζεται στις συνδέσεις μεταξύ κλάσεων του κώδικα και αντιστοίχηση αυτών σε προκαθορισμένα μοτίβα αρχιτεκτονικών κώδικα. Υλοποιώντας τα παραπάνω, παρουσιάζεται το εργαλείο DPDHMMY, που αποτελεί μια αρκετά φιλική προς τον χρήστη εφαρμογή για την ανίχνευση προτύπων σχεδίασης. Ένα απότα δυνατά σημεία του DPDHMMY είναι η δυνατότητα εισαγωγής κώδικα που δεν έχει περάσει από τον compiler, καθώς εφαρμόζεται καθαρά στατική ανάλυση. Με τον τρόπο αυτό, γίνεται δυνατή η ανίχνευση μοτίβων σε κομμάτια κώδικα που δεν είναι απολύτως ολοκληρωμένα ή μεταγλωττίσιμα, έτσι ώστε ο προγραμματιστής να μπορεί να τα βελτιώσει. Έτσι, είναι δυνατή η χρήση του εργαλείου κατά τη διαδικασία της οργάνωσης του κώδικα (π.χ. κατά τη δημιουργία interfaces) ώστε να διαπιστωθεί κατά πόσο ακολουθούνται τα επιθυμητά μοτίβα. Επιπλέον, παρέχεται η δυνατότητα στο χρήστη να ορίσει τα δικά του σχεδιαστικά πρότυπα, δίνοντας, έτσι, άμεση δυνατότητα επεκτασιμότητας.
Ιωάννης Αντωνιάδης
Αλληλεπιδραστικός µηχανισµός ερωταπαντήσεων µε χρήση πιθανοτικών µοντέλων ϑεµάτων
Η γεφύρωση του χάσματος μεταξύ ανθρώπου και μηχανής με σκοπό την πρόσβαση σε πληροφορίες παραμένει ένα απαιτητικό και δύσλητο πρόβλημα. Οι πρώτες προσπάθειες για την επίλυσή του ξεκίνησαν με τη δημιουργία των μηχανών αναζήτησης, στις αρχές της δεκαετίας του 1990. Εκτοτε, ένα ολόκληρο επιστημονικό πεδίο, που ασχολείται με τεχνικές ελαχιιστοποίησης των μηχανών αναζήτησης (Search Engine Optimazation - SEO), έχει συμβάλλει τα μέγιστα σε αυτό που ονομάζεται σήμερα ως εποχή της πληροφορίας. Ωστόσο, οι κλασικές μηχανές αναζήτησης στηρίζονται σε μεθόδους που δεν επιτρέπουν την καλύτερη δυνατή εκμετάλλευση των πληροφοριακών πόρων, ενώ σε πολλές περιπτώσεις αδυνατούν να κατανοήσουν τις ακριβείς πληροφοριακές ανάγκες των χρηστών. Λύση στο συγκεκριμένο πρόβλημα καλούνται να δώσουν τα συστήματα ερωταπαντήσεων(Question Answering Systems) τα οποία προτάθηκαν αρκετές δεκαετίες πριν και, όπως όλα δείχνουν, θα απασχολήσουν αισθητά την επιστημονική κοινότητα σε παρόν και μέλλον. Τα συστήματα αυτά στοχεύουν στην καλύτερη κατανόηση των ερωτημάτων του χρήστη και στην εύρεση απαντήσεων που χαρακτηρίζονται ως ακριβείς. Χρησιμοποιούν τεχνικές επεξεργασίας φυσικής γλώσσας (γλωσσολογικές και στατιστικές τεχνικές) για την εξαγωγή πληροφορίας που σχετίζεται με το εννοιολογικό περιεχόμενο του ερωτήματος αλλά και της συλλογής εγγράφων, από την οποία αντλείται η απάντηση. Στα πλαίσια της διπλωματικής εργασίας, προτείνεται ένας μηχανισμός που κάνει χρήση στατιστικών μεθόδων, και πιο συγκεκριμένα πιθανοτικών μοντέλων θεμάτων. Τα μοντέλα αυτά εξάγουν τη λανθάνουσα θεματική πληροφορία που χαρακτηρίζει μια συλλογή εγγράφων, ενώ, στα πλαίσια του προτεινόμενου συστήματος, η πληροφορία αυτή χρησιμοποιείται σε δύο στάδια αλληλεπίδρασης με τον χρήστη, με σκοπό να καθοριστούν, με μεγαλύτερη ακρίβεια, οι πληροφοριακές του ανάγκες. Οι τελικές απαντήσεις δίνονται με τη μορφή τμημάτων κειμένου. Η αξιολόγηση του συστήματος αναδεικνύει τα πλεονεκτήματα του προτεινόμενου μηχανισμού σε σχέση με συστήματα που κάνουν χρήση διαφορετικών μεθόδων και τροφοδοτεί με σημαντικά συμπεράσματα και ανοιχτά θέματα ένα ερευνητικό πεδίο, το οποίο είναι σχετικά ανεξερεύνητο.
Εμμανουήλ Κρασανάκης
Αυτόματη Συγγραφή Κώδικα
Η εργασία αυτή έχει στόχο το να γεφυρώσει το χάσμα μεταξύ της παραγωγής λογικών μοντέλων και της λογικής δευτέρου επιπέδου. Για την ακρίβεια, αναπτύσσονται μέθοδοι για επεξεργασία προγραμματιστικά ισότιμων λογικών μοντέλων. Αφότου αναπτυχθούν όλα τα απραίτητα μαθηματικά εργαλεία, θα εμβαθύνουμε προσπαθώντας να αντικαταστήσουμε τμήματα ενός δοσμένου λογικού μοντέλου με άλλα από ένα σύνολο I χωρίς να χαθεί η προγραμματιστική ισοτιμία. Αυτή η διαδικασία δίνεται με τη μορφή αλγορίθμου βελτιστοποίησης. Αν το σύνολο I περιέχει μόνο προγραμματιστικά υλοποιήσιμα λογικάμοντέλα, πρακτικά προσεγγίζουμε την υλοποίηση του δοσμένου μοντέλου. Στη συνέχεια, αναπτύσσουμε μεθόδους για την σύγκριση (και έτσι και ερμηνεία) χαλαρά ορισμένων περιγραφών μοντέλων, καθώς και για τη χρήση βιβλιοθηκών Python για την αντιστοίχιση μεταξύ σχολίων και κώδικα. Το αποτέλεσμα είναι η αυτόματη δημιουργία κώδικα για ένα δοσμένο πρόβλημα αντικαθιστώντας παρόμοια σχόλια με τον αντίστοιχο κώδικα. Τέλος, αφού συζητήσουμε μελοντικές επεκτάσεις της θεωρίας αυτης, θα παρουσιάζουμε μια εφαρμογή που υλοποιεί τους διαφόρους αλγορίθμους που αναπτύχθηκε.
Αλαουί Τζαμαλί Ζακία
Γονιδιωματική Ανάλυση Δεδομένων με Μεθόδους Υπολογιστικής Νοημοσύνης και Εφαρμογές στο R
Στην παρούσα διπλωματική αναλύθηκαν με τη χρήση μεθόδων ομαδοποίησης δεδομένα γονιδιακής έκφρασης που προήρθαν από πειράματα με μικροσυστοιχίες που διεξήχθηκαν στο Κέντρο Γονιδιωματικής της Ιατρικής Σχολής του Πανεπιστημίου McGill του Καναδά. Από την ανάλυση προέκυψε βιολογική γνώση σε σχέση με τη ρύθμιση γονιδίων που σχετίζονται με διάφορες μορφές καρκίνου. Ειδικότερα, στο πρώτο θεωρητικό μέρος της διπλωματικής εργασίας μελετάται αρχικά η έκφραση του γονιδίου ErbB-2. Σε διάφορες μορφές καρκίνου παρατηρείται υπερέκφραση αυτού του γονιδίου που οφείλεται στην γονιδιακή ενίσχυση και/ή στην αυξημένη μεταγραφή. Επιπλέον, δεδομένου ότι ο καταστολέας όγκου p53 μεταβάλλεται συνήθως σε ανθρώπινους καρκίνους και είναι γνωστό ότι δρα ως μεταγραφικός ρυθμιστής, προσδιορίζεται αν ο καταστολέας p53 παίζει ρόλο στον ελέγχο της γονιδικής έκφραση ErbB2. Επίσης, γίνεται μια θεωρητική μελέτη των μικροσυστοιχείων. Περιγράφεται η διαδικασία απόκτησης δεδομένων γονιδιακής έκφρασης και αναλύεται ιδιαίτερα η μέθοδος affymetrix, η οποία έχει χρησιμοποιηθεί και για την παραγωγή των δεδομένων που αναλύονται στην παρούσα διπλωματική εργασία. Παρουσιάζεται επιπλέον ο συγκεκριμένος πειραματικός σχεδιασμός που οδήγησε στα δεδομένα που αναλύθηκαν στην παρούσα διπλωματική και ο οποίος αποσκοπούσε στην αναλύση της συνεργασίας μεταξύ των γονίδιων p53 και ErbB-2 και στην απόκτηση βιολογικής γνώσης που θα μπορεί να χρησιμοποιηθεί για την κατανόηση των μηχανισμών που οδηγούν σε διάφορες μορφές καρκίνου. Στο δεύτερο θεωρητικό μέρος παρουσιάζονται οι τεχνικές ομαδοποιήσης δεδομένων που χρησιμοποιήθηκαν στα πλαίσια της εργασίας με σκοπό την οργάνωση των γονίδιων σε συστάδες βάσει της γονιδιακής τους έκφρασης. Οι αλγόριθμοι ομαδοποίησης αποσκοπούν στον διαχωρισμό των συστάδων με τέτοιο τρόπο ώστε να επιτυγχάνεται η μέγιστη ομοιότητα μεταξύ των παρατηρήσεων μέσα στην κάθε ομάδα και ταυτόχρονα η μέγιστη ανομοιότητα μεταξύ των συστάδων. Ειδικότερα οι αλγόριθμοι που παρουσιάζονται είναι ο Κ-means, ο SOM (Self-OrganizingMap) και τέλος o SOTA(Self-organizing Tree Algorithm), ένας αλγόριθμος που καταφέρνει να προσδιορίσει αυτόματα τον βέλτιστο αριθμό των συστάδων, αποφεύγοντας έτσι την ανάγκη του εκ των προτέρων (αυθαίρετου) προσδιορισμού του. Στο τρίτο πρακτικό μέρος περιγράφεται η ανάλυση των δεδομένων γονιδιακής έκφρασης που πραγματοποιήθηκε στα πλαίσια της διπλωματικής εργασίας. Περιγράφονται τα αποτελέσματα που προκύπτουν από την εφαρμογή των αλγορίθμων ομαδοποίησης, η σύγκριση των αποτελεσμάτων και η βιολογική γνώση που προκύπτει. Στο τέταρτο υπολογιστικό μέρος πραγματοποιήθηκε μία πειραματική μέθοδος μελέτης της υπέρ - και της ύπο - εκφρασης γονιδίων, με σκοπό την εύρεση των μεταλλάξεωνστο γονίδιωμα, χρησιμοποιώντας τις αρχικές συνθήκες της ανάλυσης affimetrix, το μέσο όρο κάθε κέντρο συστάδας και την τυπική απόκλιση. Επίσης, δίνεται ένα παράδειγμα με τα αποτελέσμα τα affimetrix των κυττάρων HCT116 (αδενοκαρκίνωμα του παχέος εντέρου).

2014

Γεώργιος Βουλγαράκης
Λογισμικό Προσομοίωσης των Beam Position Monitors
Στην παρούσα διπλωματική εργασία, σχεδιάστηκε και αναπτύχθηκε ένα εκπαιδευτικό λογισμικό προσομοίωσης, των Beam Position Monitors. Κύριος στόχος του λογισμικού, είναι να προσομοιώσει την λειτουργία των Beam Position Monitors και της μετά-επεξεργασίας των εξόδων τους, εξοικειώνοντας έτσι τους χρήστες του, με τα βασικά χαρακτηριστικά των Beam Position Monitors και τις διαδικασίες επεξεργασίας των εξόδων τους, ώστε να μπορέσουμε να εξάγουμε χρήσιμη πληροφορία. Ο χρήστης μπορεί να ορίσει μία αλυσίδα επεξεργασίας, όπου ανάλογα με τις ιδιότητες που έχει ορίσει σε κάθε στάδιο, καταλήγει σε διάφορα συμπεράσματα –αποτελέσματα. Το σύστημα έχει υλοποιηθεί σε περιβάλλον MATLAB, λόγω της ευκολίας συγγραφής του κώδικα και των διαφόρων αλλαγών, και της ταχύτητας που προσφέρει το συγκεκριμένο περιβάλλον στις πράξεις πινάκων. (Γενικότερο πλεονέκτημα των Interpreted Γλωσσών).
Νικόλαος Κατιρτζής
Εξόρυξη Δεδομένων από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Λογισμικού Οδηγούμενη από Ελέγχους
Η ψηφιακή εποχή, που δίκαια χαρακτηρίζεται και ως εποχή της πληροφορίας, επέφερε σημαντικές αλλαγές στην καθημερινότητα. Η ευρεία διάδοση του διαδικτύου συνέβαλε στην ευκολότερη μετάδοση της πληροφορίας και πλέον, το ζήτημα που τίθεται, είναι η αποδοτική αξιοποίησή της. Μία μορφή πληροφορίας είναι και το λογισμικό που πλέον υπάρχει άφθονοστο διαδίκτυο και κυρίως σε αποθήκες λογισμικού. Όλη αυτή η πληροφορία θα ήταν σκόπιμο να μπορέσει να αξιοποιηθεί από τους προγραμματιστές με βασικό σκοπό την επαναχρησιμοποίηση τμημάτων λογισμικού. Καθώς το πρόβλημα της εξόρυξης της χρήσιμης πληροφορίας κώδικα δεν καλύπτεται από τις κλασσικές μηχανές αναζήτησης, δημιουργήθηκαν οι λεγόμενες Μηχανές Αναζήτησης Κώδικα(Code Search Engines ή CSEs). Αδυνατούν όμως και αυτές να αντιμετωπίσουν το πρόβλημα, καθώς δεν είναι εφικτό να περιγράψουν επαρκώς το ερώτημα του χρήστη, λόγω της πολύπλοκης συχνά δομής του, ενώ δεν εξασφαλίζουν με κάποιο τρόπο τη λειτουργικότητα των αποτελεσμάτων. Μία πιο πρόσφατη λύση στο πρόβλημα αποτελούν τα Συστήματα Υποδείξεων (ή Συστάσεων ή ακόμη και Προτάσεων) στην Τεχνολογία Λογισμικού (Recommendation Systems in Software Engineering ή RSSEs) και συγκεκριμένα αυτά που κάνουν χρήση της Οδηγούμενης - από - TestΑνάπτυξης λογισμικού (Test - Driven Development ή TDD). Τα συστήματα αυτά αναλαμβάνουν να δημιουργήσουν πιο πολύπλοκα ερωτήματα για το χρήστη και πολλές φορές ελέγχουν και τη λειτουργικότητα των αποτελεσμάτων. Τα περισσότερα όμως από αυτά δεν εκμεταλλεύονται δυναμικά ανανεώσιμες αποθήκες λογισμικού, όπως επίσης υστερούν σε ποιότητα αποτελεσμάτων και χρόνο απόκρισης. Η αδυναμία των παραπάνω συστημάτων να αντιμετωπίσουν το πρόβλημα που υπάρχει μας οδήγησε στην ανάπτυξη ενός RSSE συστήματος, που κάνει χρήση αναπτυσσόμενων αποθηκών λογισμικού για την αναζήτηση κώδικα. Η αναζήτηση γίνεται είτε μέσω της CSE ΑGORA, είτε με τη βοήθεια ενός υποσυστήματος που αναζητά στο GitHub (που κάνει, μεταξύ άλλων, χρήση της CSE Searchcode). Το σύστημά μας προσαρμόζεται στο ερώτημα του χρήστη, τόσο εξάγοντας το ερώτημα από τον κώδικά του, όσο και κάνοντας χρήση του Μοντέλου Διανυσματικού Χώρου(VSM) για τη σύγκριση μεταξύ του ερωτήματος και των αποτελεσμάτων. Κατά τη σύγκριση αυτή ενσωματώνεται πλήθος τεχνικών από τους κλάδους της Ανάκτησης Πληροφορίας(IR) και της Επεξεργασίας Φυσικής Γλώσσας(NLP). Τελικά, το σύστημα παρουσιάζει στο χρήστη πληροφορίες σχετικά με το αποτέλεσμα, όπως τη σχετικότητά του με το ερώτημα, την πολυπλοκότητά, καθώς και τη λειτουργικότητά του. Από τη σύγκριση του συστήματός μας με άλλες CSEs προκύπτει ότι αυτό παρουσιάζει ικανοποιητικά αποτελέσματα, τόσο ως προς την ποιότητα όσο και ως προς την ακρίβεια, ενώ η ενσωμάτωση των CSEs AGORA και GitHub στο σύστημα θεωρείται επιτυχής. Επίσης, η σύγκριση με άλλα γνωστά συστήματα RSSE αποδεικνύει για ακόμη μία φορά την αποδοτικότητά του συστήματος, ως προς την ποιότητα των αποτελεσμάτων, αλλά και τη σταθερότητα του συστήματος ως προς το χρόνο απόκρισης.
Χαρίτων Καραμήτας
Synapse, Ένα εργαλείο παρακολούθησης συσχετίσεων μεταξύ νημάτων
Ευάγγελος Καρβούνης
Βελτιστοποίηση απόδοσης του μηχανισμού διάσχισης του διαδικτύου με βάση το σημασιολογικό περιεχόμενο
Είναι γεγονός ότι το Διαδίκτυο αποτελεί πλέον αναπόσπαστο κομμάτι της ζωής του σύγχρονου ανθρώπου. Αυτό σημαίνει ότι σε καθημερινή σχεδόν βάση παρατηρείται μία συνεχής ανταλλαγή πληροφοριών ανάμεσα στους χρήστες του Διαδικτύου και τους διαδικτυακούς τόπους. Οι προσπάθειες αναγνώρισης και καταχώρησης αυτής της πληροφορίας είναι συνεχείς, και έχουν ως στόχο την εξαγωγή ποιοτικών παρατηρήσεων και την καταγραφή των δεσμών επικοινωνίας μεταξύ πηγών και χρηστών. Για να το επιτύχουν αυτό οι Μηχανές Αναζήτησης βασίζονται στους Μηχανισμούς Διάσχισης του Διαδικτύου (Web Crawlers), οι οποίοι ‘διασχίζουν’ το Διαδίκτυο ακολουθώντας τις ιστοσελίδες και τους συνδέσμους μεταξύ τους. Κατόπιν, αποθηκεύουν τις ιστοσελίδες που διέσχισαν έτσι ώστε να είναι καταχωρημένες για αποδοτικότερη εκτέλεση τυχόν ερωτημάτων των χρηστών. Συνεπώς, η εξέλιξη του Διαδικτύου και η ανάγκη για πληρέστερη κατανόηση της ποιότητας των πληροφοριών από τις μηχανές βοήθησαν στην αύξηση της επιρροής του Web 3.0 ή αλλιώς του Semantic Web. Στόχος αυτού του μοντέλου είναι να καταστήσει την πληροφορία κατανοητή όχι μόνο στους ανθρώπους, αλλά και στις μηχανές. Επίσης, στόχο αποτελεί η βελτίωση των Μηχανισμών Διάσχισης του Διαδικτύου μέσω της αυτόματης άντλησης και κατανόησης της πληροφορίας που παρέχουν οι ιστοσελίδες. Αντικείμενο της παρούσας διπλωματικής εργασίας είναι η βελτιστοποίηση της απόδοσης ενός ήδη υπάρχοντος Μηχανισμού Διάσχισης, του Apache Nutch. Ο καινούριος Μηχανισμός ονομάζεται SpiTag και διασχίζει τις ιστοσελίδες με βάση το σημασιολογικό περιεχόμενο τους. Τα πειράματα έδειξαν ότι ο SpiTag όντως παράγει ένα πιο αποδοτικό μονοπάτι διάσχισης από τον Nutch (σε σημασιολογικό επίπεδο) και παρέχει στο χρήστη ιστοσελίδες με περισσότερο και ποιοτικότερο σημασιολογικό περιεχόμενο, δηλαδή με περισσότερη και ποιοτικότερη πληροφορία.
Έλλη Κασπαρίδου
Διαδικτυακή Οπτικοποίηση Διασυνδεδεμένων Δεδομένων Από Κοινωνικά Δίκτυα
Οι πλατφόρμες κοινωνικής δικτύωσης αποτελούν αναπόσπαστο κομμάτι της καθημερινότητας για εκατομμύρια ανθρώπους ανά την υφήλιο και ταυτόχρονα το μέσο αναπαραγωγής κάθε είδους πληροφορίας. Ο όγκος των παραγόμενων δεδομένων, όπως αυτά προκύπτουν από το κοινωνικό δίκτυο κάθε χρήστη, μπορεί να υποστεί κατάλληλη επεξεργασία ώστε να παραχθούν δομές ικανές να αναπαραστήσουν σημασιολογικά το δίκτυο των χρηστών. Το βασικό ρόβλημα του εν λόγω εγχειρήματος είναι αρχικά η αναγνώριση μιας δομής των δεδομένων προς επεξεργασία και στη συνέχεια οι μέθοδοι με τις οποίες τα δεδομένα αυτά μπορούν να αποτυπώσουν κατάλληλα και με φιλικό για το χρήστη τρόπο τα αντίστοιχα δίκτυα. Πληθώρα εφαρμογών έχουν αναπτυχθεί για να δώσουν λύση στο πρόβλημα της οπτικοποίησης κοινωνικών - και όχι μόνο, δικτύων, η καθεμία προτείνοντας τη δική της προσέγγιση. Αντικείμενο της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη ενός web-based συστήματος οπτικοποίησης κοινωνικών δικτύων, ικανού να ανανεώνει αυτόματα τα δεδομένα προς οπτικοποίηση και να εξάγει τις δομές του γράφου, προσφέροντας στο χρήστη τη δυνατότητα αλληλεπίδρασης με το δίκτυο. Η εφαρμογή αυτή επιχειρεί να προσφέρει στον τελικό χρήστη ένα δομημένο ιεραρχικά δίκτυο που θα επιδέχεται της παρέμβασής του με απώτερο σκοπό τη δημιουργία εύληπτων σημασιολογικά στιγμιότυπων. Σαφώς, το θέμα της απόκρισης του συστήματος όπως και του μεγέθους του δικτύου είναι ζωτικής σημασίας περιορισμοί κατά τη σχεδίαση και την υλοποίηση της εφαρμογής.
Στυλιανός Μόσχογλου
Ανάπτυξη Πολυπρακτορικού Συστήματος Προσμοίωσης Χρηματοπιστωτικών Αγορών για την Ανεύρεση Αιτιών Χρηματιστηριακών Κρίσεων
Με την εξέλιξη της τεχνολογίας και τη διείσδυση του διαδικτύου στις ζωές όλο και περισσότερων ανθρώπων ανά τον κόσμο, η πρόσβαση στις χρηματιστηριακές αγορές κατέστη εύκολη και, ειδικά τα τελευταία χρόνια, όλο και περισσότεροι αποφασίζουν να επενδύσουν σε αυτές. Οι χρηματιστηριακές αγορές στις οποίες μέχρι πρότινος συμμετείχαν αποκλειστικά χρηματιστές, πλέον έχουν αλλάξει άρδην, με αποτέλεσμα αφενός να έχουν επεκταθεί πληθυσμιακά και αφετέρου να συμμετέχει σε αυτές ένα ευρύ φάσμα κοινωνικών ομάδων, που διαφέρουν στο μορφωτικό τους επίπεδο, συμπεριφορά τους, κ.λπ. Αυτή η ποικιλομορφία των χρηματιστηριακών αγορών είχε ως αποτέλεσμα τα κλασικά μοντέλα που άλλοτε ήταν αποδεκτά και χρησιμοποιούνταν από τους οικονομολόγους για την ανάλυσή των, να παρουσιάζουν σήμερα αποκλίσεις και να μην είναι ικανοποιητικά. Εξαιτίας τούτου, δημιουργήθηκε εκ νέου η ανάγκη προσδιορισμού του τρόπου με τον οποίον αυτές λειτουργούν. Προκειμένου τα νέα μοντέλα να αποδίδουν το δυνατόν ρεαλιστικότερα τις πραγματικές χρηματιστηριακές αγορές και για να αμβλυνθεί ο σκόπελος της πολυμορφίας των αγορών, την οποία δεν ήταν σε θέση μόνοι τους οι οικονομολόγοι να επιλύσουν, επιχειρήθηκε μία συνεργασία με άλλους επιστημονικούς τομείς, όπως αυτών της τεχνολογίας λογισμικού και των εφαρμοσμένων μαθηματικών. Αποτέλεσμα αυτής της διεπιστημονικής συνεργασίας ήταν οι χρηματιστηριακές αγορές από τα μέσα της δεκαετίας του ’90 και έπειτα να αρχίσουν να μοντελοποιούνται και σε πλατφόρμες πολυπρακτορικών συστημάτων. Οι πλατφόρμες πολυπρακτορικών συστημάτων, εξειδικευμένα λογισμικά τα οποία αναπτύχθηκαν προκειμένου να προσομοιώσουν διάφορα αναδυόμενα κοινωνικά και επιστημονικά φαινόμενα, συνετέλεσαν πολύ στη βελτιστοποίηση της μοντελοποίησης των χρηματιστηριακών αγορών. Με τη βοήθειά τους οι επιστήμονες, βασιζόμενοι στη συμπεριφορική χρηματοοικονομική, κατάφεραν να συμπεριλάβουν σε μοντέλα διάφορες κοινωνικές ομάδες με πληθώρα στρατηγικών και συμπεριφορών. Στην παρούσα διπλωματική εργασία παρουσιάζεται η μοντελοποίηση και προσομοίωση μίας πολυπρακτορικής πλατφόρμας της οποίας η ανάπτυξη βασίστηκε στο μοντέλο του SimStockExchange. Η συγκεκριμένη πλατφόρμα ενσωματώνει διάφορες συμπεριφορές και όλους εκείνους τους μηχανισμούς που καθιστούν τα αποτελέσματα των προσομοιώσεων της αρκετά ρεαλιστικά. Ιδιαίτερη έμφαση δίνεται σε εκείνες τις προϋποθέσεις που όταν ικανοποιηθούν, μπορούν δυνητικά να προκαλέσουν κρίση στις χρηματιστηριακές αγορές. Αναλυτικότερα, μελετώνται διάφοροι τύποι συμπεριφορών των επενδυτών και αξιολογούνται ανάλογα με το αν και κατά πόσο είναι σε θέση να προκαλέσουν κατάρρευση σε ένα χρηματιστήριο. Τέλος, παρουσιάζεται ένας μηχανισμός με τον οποίο οι ισχυροί «παίκτες» σε μία χρηματιστηριακή αγορά μπορούν επιτηδευμένα να προκαλέσουν μία οικονομική κρίση. Τα αποτελέσματα που προκύπτουν συνολικά είναι αρκετά κοντά στην πραγματικότητα, ενώ οι δυνατότητες επέκτασης πολλαπλές.
Μιχάλης Καρασάββας
Ανάλυση Δεδομένων Συστημάτων Αισθητήρων και Ανίχνευση Σφαλμάτων με Εφαρμογή Τεχνικών Μηχανικής Μάθησης
Η ανίχνευση ανωμαλιών αποτελεί ένα πολύ σημαντικό υποκλάδο του ελέγχου συστημάτων, καθώς ολοένα και περισσότερες δραστηριοτητες, από τις πιο απλές καθημερινές μας ασχολίες μέχρι τις πιο πολύπλοκες λειτουργίες γίνονται όλο και περισσότερο πιο αυτοματοποιημένες. Γι\' αυτό και η ανίχνευση ανωμαλιών αποτελεί συνεχές αντικείμενο διερεύνησης για τους επιστήμονες που προσπαθούν, αξιοποιώντας τα αποτελέσματα της, να ελαττώσουν τις \"αστοχίες\" των συστημάτων στο ελάχιστο, καθιστώντας την ανθρώπινη παρέμβαση όσο το δυνατό μικρότερη. Η ελαχιστοποίηση της ανθρώπινης παρέμβασης βασίζεται στο σκεπτικό ότι, με σωστό σχεδιασμό, μια μηχανή μπορεί να λειτουργεί με τη μέγιστη συνατή ακρίβεια. Στα πλαίσια της παρούσας διπλωματικής γίνεται ανάλυση και εξερεύνηση των δεδομένων που προκύπτουν κατά τη λειτουργία συγκεκριμένων λόγο από τις μετρήσεις ενός συνόλου αισθητήρων κάθε χρονική στιγμή. Τα συμπεράσματα που προκύπτουν κατά το στάδιο της ανάλυσης χρησιμοποιούνται στη συνέχεια στην κατασκευή μοντέλων μηχανικής μάθησης. Στόχος των μοντέλων είναι η πρόβλεψη και ο εντοπισμός μη αποδεκτών συμπεριφορών της μονάδας. Η μεθοδολογία που ακολουθήθηκε, καθώς επίσης και οι τεχνικές που υλοποιήθηκαν θα μπορούσαν να εφαρμοστούν σε οποιοδήποτε σύστημα αισθητήρων για τον εντοπισμό σφαλμάτων.
Βασιλική Γεροκώστα
Εμπειρική Επικύρωση των Μετρικών Μεραβολής και των Στατικών Στοιχείων Κώδικα σε Έργα Λογισμικού για την Πρόβλεψη Σφαλμάτων
Η πρόβλεψη σφαλμάτων είναι ένα σημαντικό θέμα της Τεχνολογίας Λογισμικού που έχει προκαλέσει έντονο ενδιαφέρον για μεγάλο χρονικό διάστημα. Η διόρθωση των σφαλμάτων στο λογισμικό κοστίζει όλο και περισσότερο καθώς η ανάπτυξη του λογισμικού εξελίσσεται. Η διασφάλιση της ποιότητας μέσω αυστηρών ελέγχων πριν την έκδοση του λογισμικού είναι ζωτικής σημασίας για να διατηρηθεί το κόστος σε χαμηλά επίπεδα. Ωστόσο, ο χρόνος και το ανθρώπινο δυναμικό είναι πεπερασμένοι πόροι. Έτσι, είναι σκόπιμο να εκχωρείται το προσωπικό και/ή οι πόροι στις περιοχές του λογισμικού με την υψηλότερη πιθανή ποσότητα σφαλμάτων. Διάφορα μοντέλα πρόβλεψης σφαλμάτων έχουν αναπτυχθεί από τους ερευνητές, προκειμένου να υποστηρίξουν τους διαχειριστές των πόρων για τον αξιόπιστο εντοπισμό των οντοτήτων που είναι επιρρεπείς στα σφάλματα. Το έργο της μηχανικής μάθησης δίνει λύση σε αυτό το πρόβλημα, δεδομένου πως σκοπός της είναι η δημιουργία αλγορίθμων ικανών να βελτιώσουν την απόδοσή τους αξιοποιώντας προγενέστερη γνώση και εμπειρία με σκοπό την εξαγωγή χρήσιμων συμπερασμάτων και την περιγραφή φαινομένων, μέσω της επεξεργασίας δεδομένων τεράστιου όγκου. Το ζητούμενο στην περίπτωση της πρόβλεψης σφαλμάτων είναι η κατασκευή ενός μοντέλου με βάση μετρικές που αφορούν το λογισμικό, το οποίο θα είναι ικανό στη συνέχεια να προβλέψει την ύπαρξη ή μη σφαλμάτων για κάθε τμήμα του. Στην παρούσα διπλωματική εργασία αξιοποιήσαμε την ισχύ πρόβλεψης των change metrics, μετρικών δηλαδή που εκφράζουν τις αλλαγές που συμβαίνουν στον κώδικα, οι οποίες προέρχονται από τα αποθετήρια σφαλμάτων και από τη βάση δεδομένων των εκδόσεων του Eclipse. Εφαρμόσαμε στο σύνολο των δεδομένων τα ακόλουθα μοντέλα ταξινόμησης: Λογιστική Παλινδρόμηση, Naïve Bayes ταξινομητή και Δέντρα Απόφασης και αξιολογήσαμε την αποδοτικότητα τους. Σε μια προσπάθεια να βελτιώσουμε τα αποτελέσματα που παρατηρήθηκαν εφαρμόσαμε τη θεωρία του Ensemble Learning και ειδικότερα της θεωρίας του boosting μέσω της εφαρμογής του αλγορίθμου AdaBoost. Τα αποτελέσματά μας δείχνουν ότι οι μετρικές μπορούν να είναι χρήσιμες στην πρόβλεψη σφαλμάτων, εφόσον χρησιμοποιηθούν από τον κατάλληλο αλγόριθμο.
Νίνα Ελευθεριάδου
Εμπειρκή Επικεύρωση Αντικειμενοστραφών Μετρικών σε Λογισμικό Ανοιχτού Κώδικα για την Πρόβλεψη Σφαλμάτων
Η σημασία των συστημάτων λογισμικού ανοιχτού κώδικα, έχει γίνει ιδιαίτερα αισθητή τόσο στην βιομηχανία λογισμικού όσο και στην έρευνα. Μεγάλος αριθμός λογισμικού αναπτύσσεται, χρησιμοποιώντας εργαλεία ανοιχτού κώδικα και πολλές εταιρίες επενδύουν σε τέτοιου είδους projects, με πολλές από αυτές να τα χρησιμοποιούν και στη δική τους εργασία. Μεγάλο μέρος της έρευνας πραγματοποιείται πάνω ή με τη χρήση λογισμικών ανοιχτού κώδικα, επειδή τα εν λόγω λογισμικά δεν αποτελούν μονοπώλιο και είναι ελεύθερα από θέματα αδειοδότησης. Δεδομένου ότι τα λογισμικά ανοιχτού κώδικα αναπτύσσονται με ένα στυλ διαφορετικής μορφής από το αντίστοιχο συμβατικό, προκύπτει η ανάγκη για έλεγχο της ποιότητας και αξιοπιστίας τους. Ως εκ τούτου τα χαρακτηριστικά του πηγαίου κώδικα των συγκεκριμένων projects είναι απαραίτητο να εκτιμηθούν, προκειμένου να αποκτηθεί περισσότερη πληροφορία από αυτόν. Όσον αφορά σφάλματα σε συστήματα λογισμικού, αυτά εξακολουθούν να αποτελούν ένα σημαντικό πρόβλημα στις μέρες μας. Γνωρίζοντας τα αίτια των πιθανών σφαλμάτων, όπως επίσης και τον προσδιορισμό των γενικών τομέων της διαδικασίας λογισμικού, που μπορεί να χρειάζονται προσοχή από την εκκίνηση του project, θα μπορούσε κανείς να εξοικονομήσει χρήματα, χρόνο και εργασία. Η δυνατότητα της έγκαιρης εκτίμησης της πιθανής ελαττωματικότητας του λογισμικού, θα μπορούσε να βοηθήσει στο σχεδιασμό, τον έλεγχο και την εκτέλεση των αναπτυξιακών δραστηριοτήτων του λογισμικού. Επιπλέον, υπάρχουν διαθέσιμες μετρικές για την πρόβλεψη επιρρεπών κλάσεων σε σφάλματα, οι οποίες μπορούν να βοηθήσουν τους οργανισμούς λογισμικού για τον προγραμματισμό και την εκτέλεση δραστηριοτήτων ελέγχου. Η προδιάθεση σφάλματος ενός τμήματος λογισμικού είναι η πιθανότητα το τμήμα αυτό να περιέχει σφάλματα. Αυτό μπορεί να είναι δυνατό εξαιτίας της κατανομής των πόρων σε τμήματα του σχεδιασμού και κώδικα του λογισμικού, που είναι επιρρεπή σε σφάλματα. Ως εκ τούτου, η σημασία και η χρησιμότητα τέτοιου είδους μετρικών είναι κατανοητή, ωστόσο η εμπειρική επικύρωση τους αποτελεί πάντα μία μεγάλη πρόκληση. Στην παρούσα διπλωματική εργασία, διερευνάται το ποιος αλγόριθμος πρόβλεψης είναι πιο αποδοτικός για τον καλύτερο δυνατό εντοπισμό σφαλμάτων σε κλάσεις πηγαίου κώδικα, ανοιχτού λογισμικού. Απώτερος σκοπός είναι η αξιολόγηση του εκάστοτε αλγορίθμου, οι οποίοι αλγόριθμοι υλοποιήθηκαν και εξετάστηκαν στα πλαίσια των σκοπών της παρούσας διπλωματικής εργασίας. Συγκεκριμένα, πρόκειται για τους αλγορίθμους Λογιστικής (Logistic) και Γραμμικής Παλινδρόμησης (Linear Regression), Δένδρων Απόφασης (Decision Tree) και Ενίσχυσης (AdaBoost). Η αποδοτικότητα τους αποτέλεσε σημείο αναφοράς για την εκπλήρωση των προσδοκιών της εργασίας. Επιπρόσθετα, στόχος μας υπήρξε και η αξιολόγηση της εκάστοτε κατηγορίας μετρικών, Change Metrics, Source Code Metrics, Complexity Metrics, Bug Metrics, Churn of Source Code Metrics, Entropy of Source Code Metrics, ώστε να κριθεί το ποια θεωρείται κατάλληλη και πιο αποδοτική στον εντοπισμό σφαλμάτων.
Στυλιανός Τσαμπάς
Τρωτό Σύστημα και Παιχνίδι Πολέμου
Η ολοένα αυξανόμενη εξάρτηση στην τεχνολογία έχει ωθήσει την ανθρωπότητα να επενδύει όλο και πιο πολλούς πόρους στον τομέα της Ασφάλειας Υπολογιστικών Συστημάτων. Ο κλάδος αυτός αναπτύσσεται με ταχύτατους ρυθμούς με νέες τεχνολογίες, επιθετικές ή αμυντικές. να εισάγονται ανά τακτά χρονικά διαστήματα. Αυτή η συνεχής ροή νέων τεχνολογιών καθιστά τον κλάδο ιδιαίτερα άστατο. Συστήματα τα οποία θεωρούνται σε μια χρονική στιγμή επαρκώς ασφαλή μπορούν αμέσως να αποδειχθούν διάτρητα. Μια από τις πιο ενδιαφέρουσες προσεγγίσεις στην Ασφάλεια Υπολογιστικών Συστημάτων είναι τα Συστήματα Ανίχνευσης Εισβολής (Intrusion Detection System - IDS). Σκοπός ενός τέτοιου συστήματος είναι η ανάλυση εισόδων σε υπολογιστικό σύστημα ή σύνολο συστημάτων και ο χαρακτηρισμός τους ως κακόβουλες ή ασφαλείς. Δηλαδή θεωρητικά είναι πολύ ισχυροί μηχανισμοί προστασίας, μιας και ανιχνεύουν επιθέσεις ανεξάρτητα από το είδος τους. Ένα Σύστημα Ανίχνευσης Εισβολής μπορεί να βασίζεται είτε ευριστικά είτε στην εκπαίδευση του μέσω ενός αντιπροσωπευτικού δείγματος από δεδομένα εισόδων. Ως αποτέλεσμα, στη δεύτερη περίπτωση, είναι πολύ σημαντικό το δείγμα να αντανακλά πλήρως πραγματικές συνθήκες επίθεσης. Ένα περιβάλλον που εξομοιώνει πραγματικές συνθήκες επίθεσης διευκολύνει τη διαδικασία συλλογής δεδομένων επίθεσης και κατά συνέπεια την εκπαίδευση ενός Συστήματος Ανίχνευσης Εισβολής. Όπως θα παρουσιαστεί στη συνέχεια, οι μέχρι τώρα προσπάθειες πάσχουν από μια σειρά προβλημάτων, κυρίως λόγω των τεχνολογικών περιορισμών της περασμένης δεκαετίας. Η παρούσα Διπλωματική Εργασία εστιάζει στη δημιουργία ενός ευάλωτου, εύχρηστου, απλού και εύκολα εγκαταστήσιμου συστήματος για την εξομοίωση πραγματικών συνθηκών επίθεσης. Παράλληλα, εστιάζει στην υλοποίηση ενός συνόλου από ρεαλιστικές επιθέσεις. Το αποτέλεσμα της εργασίας είναι ένα ολοκληρωμένο σύστημα, ικανό να εξομοιώνει ένα πραγματικό δίκτυο, το οποίο συνδυάζει όλες τις σύγχρονες ευπάθειες και επιθέσεις με την ευκολία στην επέκταση και προσαρμογή. Τέλος, μπορεί να χρησιμοποιηθεί πέρα από τα παραπάνω και για εκπαιδευτικούς σκοπούς.

2013

Γεώργιος Κορδοπάτης-Ζήλος
Αυτόματος Εντοπισμός Γεωγραφικής Θέσης Εικόνων και Βίντεο
Σπύρος Σκουμπάκης
Εξαγωγή της Διαδικασίας Ροής της Πληροφορίας από Εικόνες UML Διαγραμμάτων Δραστηριοτήτων
Αναστασία Ηροδότου
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Συστημάτων Λογισμικού με τη Χρήση Μεθόδων Μηχανικής Μάθησης
Χριστόφορος Ζολώτας
Leonardo Software Entity Semantic Search Engine
Ραφαήλα Γρηγορίου
Σχεδίαση και Ανάπτυξη Μηχανισμού Ερωταπαντήσεων για τη Δημιουργία Μηχανής Αναζήτησης σε Έργα Λογισμικού
Ιωάννης Γούτας
Πολυπρακτορική Πλατφόρμα Προσομοίωσης για την Κοινωνική Μοντελοποίηση και τη Μοντελοποίηση Συμπεριφορών σε Περιβάλλοντα Χρηματιστηρίου
Σωτήρης Μπέης
Ομαδοποίηση Εξελισσόμενων Κοινωνικών Δικτύων με Χρήση Τεχνικών Ανίχνευσης Κοινοτήτων
Νικόλαος Πεχλιβανίδης
Σχεδίαση και Ανάπτυξη Προσομοιωτή του Ρομπότ της Ομάδας PANDORA σε Εικονικά Περιβάλλοντα
Χριστίνα Μποϊδίδου
Συσχέτιση Χαρακτηριστικών Ποιότητας Λογισμικού με Αναφορές Σφαλμάτων Μέσα από τη Χρήση Τεχνικών Επεξεργασίας της Φυσικής Γλώσσας και Εξόρυξης Δεδομένων
Αλέξανδρος Αδάμος
Σχεδίαση και Ανάπτυξη Μηχανισμού για τη Δυναμική Ανίχνευση Αργών Επιθέσεων σε Συστήματα Ανίχνευσης Εισβολής (IDS)

2012

Σταύρος Χαμπηλομάτης
Βελτιστοποίηση απόδοσης μηχανισμού διάσχισης του διαδικτύου (Web Crawler) με βάση το προβαλλόμενο περιεχόμενο στους χρήστες
Χρυσαφένια Μαλλιά-Στολίδου και Αστέριος Βουνοτρυπίδης
Software platform for the design and development of 3d Role Playing Games
Ευαγγελία Διαμαντίδου
Ανάπτυξη αποδοτικών μηχανισμών εμπιστοσύνης και φήμης σε ανοικτά δίκτυα συναλλαγών
Δήμητρα Μίχα και Νικόλαος Χανδόλιας
Μηχανισμός Εξόρυξης Δεδομένων από κείμενο με την χρήση τεχνικών Επεξεργασίας Φυσικής Γλώσσας και απεικόνιση αυτών με την χρήση προγραμμάτων δημιουργίας Τρισδιάστατων Γραφικών
Γρηγόρης Αθανασιάδης
Χρήση Τεχνικών Υπολογιστικής Νοημοσύνης για τη Σχεδίαση και Ανάπτυξη Ευφυούς Πράκτορα Λογισμικού σε Δημοπρασίες Διαδικτυακής Διαφήμισης
Μαρίνα-Ειρήνη Σταματιάδου
Σχεδίαση και Ανάπτυξη Υπηρεσιοστρεφών Αρχιτεκτονικών για RFID Συστήματα
Νικόλαος Τσιότσκας
Virtual Project 3D: Ένα εργαλείο για τη γραφική αναπαράσταση έργων λογισμικού σε τρισδιάστατο περιβάλλον
Ιωάννης Παπαστεργίου
Περιβάλλον καταγραφής και προσομοίωσης διαδικτυακής κίνησης για τον έλεγχο συστημάτων ανίχνευσης επιθέσεων με τη χρήση αλυσίδων Markov
Άννα Αδαμοπούλου
Ανάλυση και Eπίδραση Mηχανισμών Πολυ-κριτηριακής Εμπιστοσύνης και Φήμης σε Συστήματα Ηλεκτρονικών Αγορών με Πράκτορες Λογισμικού

2011

Αναστασία Μούρκα
Εξαγωγή απαιτήσεων λογισμικού από εικόνες UML διαγραμμάτων σεναρίων χρήσης
Ιωάννα Καμπυλαυκά
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Ομαδοποίηση και το Χαρακτηρισμό Καταναλωτών Ηλεκτρικής Ενέργειας
Θεμιστοκλής Διαμαντόπουλος
Σχεδίαση και Ανάπτυξη Αλγορίθμων Δημοπρασιών με Εφαρμογή στο Διαγωνισμό Power TAC
Κωνσταντίνα Βαλογιάννη
Σχεδίαση πρακτορικής αρχιτεκτονικής για τη συμμετοχή στο Χρηματιστήριο Ενέργειας
Ιωάννης Στάμκος
Μοντελοποίηση χρηστών στον εικονικό κόσμο του Second Life με την χρήση τεχνικών εξόρυξης γνώσης
Ιωάννης Γούναρης
Ανάπτυξη Συστημάτων Πραγματικού Χρόνου με την Real-Time Java
Αναστασία Σκάντζα και Βασιλεία Τζαμτζή
Ανάπτυξη Μηχανισμού Πλειοδοσίας Σε Συστήματα Δημοπρασιών Ηλεκτρονικής Διαφήμισης
Θεμιστοκλής Μαυρίδης
Ανάπτυξη Μηχανισμού Βελτιστοποίησης της Θέσης Δικτυακών Τόπων σε Μηχανές Αναζήτησης

2010

Νικόλαος Στασινόπουλος
Μηχανισμός Εξαγωγής Σημασιολογικά Ενήμερης Γνώσης από Αποθήκες Λογισμικού
Εμμανουήλ Σπανουδάκης
ezHome – Ολοκληρωμένο Σύστημα Προσομοίωσης και Ελέγχου ενός Έξυπνου Σπιτιού με χρήση Πρακτόρων Λογισμικού