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

Search:

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. Αυτά τα αρχεία μπορούν έπειτα να χρησιμοποιηθούν στην περεταίρω ανάλυση του προγράμματος. Το σύστημα που δημιουργήθηκε δίνει καλά αποτελέσματα παράγοντας μερικώς αρχεία εισόδου με τη μορφή που αυτά αναμένονται από τα προγράμματα προς ανάλυση αυτόματα και χωρίς καμία προηγούμενη γνώση για αυτά. Ωστόσο οι περιορισμοί της συμβολικής εκτέλεσης γίνονται γρήγορα εμφανείς καθώς η πολυπλοκότητα της ανάλυσης ανεβαίνει εκθετικά. Ως αποτέλεσμα χρειάζονται επιπλέον μέθοδοι ώστε να άρου με αυτούς τους περιορισμούς σε μεγάλα προγράμματα.

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 – Ολοκληρωμένο Σύστημα Προσομοίωσης και Ελέγχου ενός Έξυπνου Σπιτιού με χρήση Πρακτόρων Λογισμικού