ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΔΙΠΛΩΜΑΤΙΚΗ.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ομάδα Φοιτητών  Κάρουλλας Κώστας  Πολυβίου Χρυστάλλα  Στυλιανού Στέφανος  Τσιάτταλου Αγλαΐα Ομάδα Φοιτητών  Κάρουλλας Κώστας  Πολυβίου Χρυστάλλα.
Advertisements

Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Υπηρεσίες Web και Συστάδες υπολογιστών.
ΠΑΡΑΔΟΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ» ΚΕΦ.2 ΜΑΡΤΙΟΣ 2005.
Πανεπιστήμιο Αιγαίου Σχολή Επιστημών της Διοίκησης Τμήμα Μηχανικών Οικονομίας & Διοίκησης Computer applications in the modern enterprise Γ. Κούζας, PhD.
RSLP Collection Description schema Research Support Libraries Programme UKOLN, University of Bath.
Open Source από την μεριά του ΙΤ provider Μάνος Μαργαρίτης CTO EXODUS AE.
Τμήμα Πληροφορικής Πανεπιστημίου Κύπρου ΕΠΛ 371 – Προγραμματισμός Συστημάτων Ονόματα: Αντώνης Μαυρής, Γιώργος Ματθαίου, Χρίστος Κυριάκου Ταυτότητες: ,
Σχεδίαση hardware και προγραμματισμός βασικές (αλλά σύγχρονες) μεθοδολογίες Βασίλης Παλιουράς.
Drupal Themeing. Προυποθέσεις βασικές γνώσεις HTML/ CSS στοιχειώδης κατανόηση της PHP εξοικείωση με το drupal.
ΗΥ-220 Verilog HDL. Τα βασικά.... ΗΥ-220 – Ιάκωβος Μαυροειδής2 Βασική Ροή Σχεδίασης Requirements SimulateRTL Model Gate-level Model Synthesize SimulateTest.
6ο Πρόγραμμα Πλαίσιο Θεματική Προτεραιότητα Τεχνολογίες της Κοινωνίας της Πληροφορίας Αναλυτική καταγραφή της εθνικής συμμετοχής Τσιλιμπάρης Ξενοφών ΕΚΤ,
#develop The open source IDE for.NET. Τι είναι το #develop? o Διαβάζεται SharpDevelop. o Είναι ένα opensource IDE για το.ΝΕΤ platform. o Είναι μία συλλογή.
6/25/2015HY220: Ιάκωβος Μαυροειδής1 Computer Aided Design CAD tools Functional DesignSpecificationsLogic DesignCircuit DesignPhysical DesignFabrication.
Εφαρμογές Πολυμέσων: Εισαγωγή στην HTML (1)
Προηγμένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών Το εκπαιδευτικό υλικό που ακολουθεί αναπτύχθηκε στα πλαίσια του έργου «Προηγμένες Υπηρεσίες Τηλεκπαίδευσης.
Ενότητα 2 : Γεωγραφικά Συστήματα Πληροφοριών- Βασικές Έννοιες (Μέρος 1 ο ) Νικολακόπουλος Κωνσταντίνος, Επίκουρος Καθηγητής Σχολή Θετικών Επιστημών Τμήμα.
Τεχνολογία Λογισμικού (Software Engineering) Ενότητα – Σχεδιασμός Λογισμικού Κεφάλαιο – Αρχιτεκτονικός Σχεδιασμός.
Αρχιτεκτονική Λογισμικού. Αρχιτεκτονική Συστήματος Λογισμικού Η Αρχιτεκτονική περιγράφει τη γενική στατική δομή του συστήματος, τα βασικά δομικά του στοιχεία,
Ναυτικά Πληροφοριακά Συστήματα & Ηλεκτρονικό Εμπόριο Δρ. Θεόδωρος Λίλας Επίκουρος Καθηγητής Τμήμα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών Πανεπιστημίου.
Λίγα πράγματα για την. Το Όραμα μας Η Αποστολή μας AIESEC Με το να προσφέρουμε βιωματικές εμπειρίες σε νέους, δίνοντας το περιθώριo να εξερευνήσουν και.
 Βασικές έννοιες.    ΓΙΑ ΠΟΙΟ ΛΟΓΟ ΘΑ ΠΡΟΤΙΜΟΥΣΑΤΕ ΚΑΝΕΤΕ ΤΙΣ ΑΓΟΡΕΣ ΣΑΣ ΗΛΕΚΤΡΟΝΙΚΑ;
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΔΗΜΗΤΡΗΣ ΠΑΠΑΝΑΣΤΑΣΙΟΥ Δρ Σεισμολόγος ΔΙΕΥΘΥΝΤΗΣ ΕΡΕΥΝΩΝ, ΓΕΩΔΥΝΑΜΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΘΝΙΚΟ ΑΣΤΕΡΟΣΚΟΠΕΙΟ ΑΘΗΝΩΝ.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΠΜΣ Περιβαλλοντική & Οικολογική Μηχανική Μέθοδοι Έρευνας Πέμπτη 10 Μαίου 2012 Ηρακλής Πολατίδης, Δίας Χαραλαμπόπουλος.
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ "ΝΕΕΣ ΤΕΧΝΟΛΟΓΙΕΣ.
Ενότητα 2: HTML – Hypertext Markup Language. Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Προγραμματισμός Εφαρμογών.
Ανάπτυξη Εφαρμογής για τη Διερεύνηση Δυνατοτήτων Προσβασιμότητας στο Λειτουργικό Σύστημα Windows Mobile Πτυχιακή εργασία του Κωνσταντίνου Π. Τόλια Μυτιλήνη,
ΣΥΓΚΡΙΣΗ ΔΥΟ ΔΙΑΔΙΚΤΥΑΚΩΝ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ – WEB GIS ΤΕΙ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΠΡΟΓΡΑΜΜΑ ΠΤΥΧΙΑΚΩΝ.
Συνέδριο Δημιουργών ΕΛ/ΛΑΚ Εφαρμογή Ανάπτυξης Οδηγών Επίλυσης Τεχνικών Προβλημάτων Ξενοφών Παπαδόπουλος
Καλώς ήλθατε, μαθητές! Όνομα δασκάλου. Πρόγραμμα τάξης 8:15 - 9:00Το σχολείο ξεκινά, παίρνουμε παρουσίες 9: :00Ανάγνωση και έκθεση 10: :00Ορθογραφία.
“Τα πάντα ρει, μηδέποτε κατά τ' αυτό μένειν” «ΗΡΑΚΛΕΙΤΟΣ»
Βασικά Web εργαλεία και τεχνολογίες
Ασφάλεια Βιομηχανικών Συστημάτων και Κρίσιμων Υποδομών
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Ασκήσεις Κεφάλαιο 11.
Κατανεμημένα Συστήματα
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Πτυχιακή εργασία της ΤΟΠΑΛΙΔΟΥ ΠΑΥΛΙΝΑ(1459)
ΤΜΗΜΑ ΝΟΜΙΚΗΣ ΤΟΜΕΑΣ ΔΙΕΘΝΩΝ ΣΠΟΥΔΩΝ
Ποιοί είναι οι δικαστικοί σχηματισμοί του Δικαστηρίου;
Τμήμα Πληροφορικής Ημερίδα Πρακτικής Άσκησης
ΠΕΡΙΒΑΛΛΟΝΤΑ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ
HTML.
Τα Βασικά δόγματα Γιώργος Λεπίδας Γ΄2.
Εφαρμογή 1: Μια πρώτη, μινιμαλιστική ιστοσελίδα
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
ΔΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙΔΩΝ
Web development series My First CSS Steps
ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΙΚΤΥΑΚΩΝ ΕΦΑΡΜΟΓΩΝ
Διασύνδεση Νοσοκομειακής και Εξω-νοσοκομειακής Φροντίδας
Εισαγωγή στην HTML Κεφάλαιο 11.
Όνομα σχολείου Ημερομηνία
ΣΧΕΔΙΑΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ
Διαχείριση Δικτύων - Ευφυή Δίκτυα,
Τμήμα Πληροφορικής & Επικοινωνιών
εισαγωγή στην έννοια του Αλγόριθμου & Προγραμματισμού
Ορισμός της έννοιας αλγόριθμος, πρόγραμμα Σχεδιασμός απλών αλγορίθμων
Το Υλικό του Υπολογιστή
Διαβάστε τα πάντα για αυτό Ειδήσεις του Microsoft SharePoint
Αλεξάνδρα Παπάζογλου Φωτεινή Αραβανή
ΚΑΤΑΣΚΕΥΗ ΔΙΚΤΥΑΚΗΣ ΤΟΠΟΘΕΣΙΑΣ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ ΣΗΜΑΝΣΗΣ HTML 5
Εφαρμογές ιστού και δημιουργία ιστοσελίδων
ΗΜΥ-210: Λογικός Σχεδιασμός Εαρινό Εξάμηνο 2005
ΠΕΡΙΓΡΑΦΗ ΠΕΡΙΣΤΑΤΙΚΟΥ
ΤΙΤΛΟΣ ΤΗΣ ΕΚΔΗΛΩΣΗΣ ΣΑΣ
Καλώς ήλθατε, μαθητές! Όνομα δασκάλου.
ΓΕΩΜΕΤΡΙΚΕΣ ΚΑΜΠΥΛΕΣ.
ΣΤΑΣΕΙΣ ΚΑΙ ΣΥΜΠΕΡΙΦΟΡΑ
Εφαρμογές ιστού και δημιουργία ιστοσελίδων
Παράδειγμα στόχος Έμπνευση Ενέργειες/εργασίες Πόροι Σκέψεις
Μεταγράφημα παρουσίασης:

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Μιχαήλ Α. Τσιρούκης Επιβλέπων: Ευστάθιος Χατζηευθυμιάδης, Αναπληρωτής Καθηγητής ΕΚΠΑ ΑΘΗΝΑ ΟΚΤΩΒΡΙΟΣ 2016

Πλάνο παρουσίασης Εισαγωγή : Αναφορά στις γλώσσες ειδικού σκοπού και στο πλαίσιο εκτέλεσης Xtext Σκοπός της διπλωματικής εργασίας: Ανάπτυξη Γλώσσας Ειδικού Σκοπού & Εργαλείου για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Υλοποίηση : διαδικτυακή εφαρμογή που περιλαμβάνει ένα συντάκτη κειμένου και έναν οπτικό συντάκτη για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Συμπεράσματα Μελλοντικές επεκτάσεις 2

Το πρόβλημα Η σημερινή βιομηχανία λογισμικού αντιμετωπίζει μεγάλο πρόβλημα στην προσπάθεια της να υλοποιήσει μεγαλύτερα και πιο σύνθετα συστήματα λογισμικού σε μικρό χρoνικό διάστημα και με το μικρότερο δυνατό κόστος. Η συνήθης υλοποίηση των εφαρμογών, γίνεται με την χρήση γλωσσών γενικού σκοπού (GPL), αντικειμενοστραφείς και υψηλού επιπέδου αφαιρετικότητας. Μειονεκτήματα GPL δυσκολία της επικοινωνίας του προγραμματιστή με τον πελάτη για την ορθή καταγραφή των απαιτήσεων αυξημένη πολυπλοκότητα του κώδικα δυσκολία στην συντήρηση του κώδικα μείωση της παραγωγικότητας του προγραμματιστή Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 3

Τα τελευταία χρόνια παρατηρείται αυξημένη η χρήση γλωσσών ειδικού σκοπού (DSL – Domain Specific Languages) για τη δημιουργία και συντήρηση εφαρμογών σε διάφορα ερευνητικά πεδία. Οι DSL πλεονεκτούν σε σχέση με τις GPL ως προς την : αφαιρετικότητα της γλώσσας (abstraction) ευκολία εκμάθησης της γλώσσας παροχή σημασιολογικής ακρίβειας βελτιώση της επικοινωνίας μεταξύ πελάτη - ειδικού πεδίου ευελιξία - επαναχρησιμοποίηση της γλώσσας (metamodels) αυτοματοποιημένη παραγωγή κώδικα (Java, C++) ευκολία στη συντήρηση αύξηση της παραγωγικότητας υψηλή αξιοπιστία GPL DSL OR Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 4

Τι είναι η DSL ? H DSL χρησιμοποιείται για την επίλυση συγκεκριμένων προβλημάτων σε ένα πεδίο. Παράδειγματα DSL αποτελούν οι κανονικές εκφράσεις (regular expressions), οι γλώσσες επερωτήσεων για σχεσιακές βάσεις (SQL), η HTML και η css στο πεδίο του Web. Domain Specific Languages Πεδίο Χρήσης VHDL, Verilog, systemcγλώσσα περιγραφής υλικού (hardware) ANTLRγλώσσα παραγωγής parser SQLγλώσσα επερωτήσεων για σχεσιακές βάσεις Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Παράδειγμα γλωσσών ειδικού σκοπού 5

Τι είναι η DSL ? (συνέχεια...) Μια DSL μπορεί να αναπαρασταθεί με μορφή κειμένου ή οπτικά. Η οπτική αναπαράσταση των δεδομένων είναι ο πιο φυσικός τρόπος για να περιγράψουμε σενάρια σε συγκεκριμένα πεδία εφαρμογής. Αυτό συνεπώς καθιστά το εργαλείο ποιό εύχρηστο και φιλικό στη χρήση του ακόμη και από χρήστες με μικρή εμπειρία στο χώρο του συγκεκριμένου πεδίου και στον προγραμματισμό. Η αναπαράσταση μιας DSL με μορφή κειμένου, απευθύνεται κυρίως σε χρήστες με μεγαλύτερη εμπειρία. Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 6

Βασικές Κατηγορίες DSL Εξωτερική (external) DSL Εσωτερική (internal) DSL Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 7

Βασικές Κατηγορίες DSL - Εξωτερική DSL Η εξωτερική DSL εισαγάγει μια εντελώς νέα σύνταξη και σημασιολογία, είναι πιο ευέλικτη και πιο εκφραστική από ότι οι εσωτερική γλώσσα. Ο σχεδιαστής αναλαμβάνει να αναπτύξει τη γλώσσα από την αρχή. Ενσωματώνει κατάλληλα δομές και έννοιες κάνοντας την περισσότερο κατανοητή σε ειδικούς του συγκεκριμένου πεδίου. Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 8 Μειονέκτηματα Για να υλοποιηθεί μια εξωτερική DSL χρειάζεται: ένας λεκτικός αναλυτής (lexer) ένας συντακτικός αναλυτής (parser) ένας γεννήτορας κώδικα (code generator) μηχανισμός επικύρωσης (για τον έλεγχο του παραγόμενου μεταμοντέλου) μηχανισμός ελέγχου τύπων (type checker ) ένα διερμηνευτή (interpreter) ένα συνδέτη (linker) rich editor με υποστηρικτικά εργαλεία (outline view, code folding, auto editing, syntax coloring, Bracket matching, refactoring, validation )

Βασικές Κατηγορίες DSL - Εσωτερική DSL Για την υλοποίηση μιας εσωτερικής DSL δεν χρειάζονται επιπλέον υποστηρικτικά εργαλεία, μιας και παρέχονται από την περιβάλλον της GPL. Η DSL xρησιμοποιεί ένα μικρό σετ των εντολών της GPL. Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 9 Μειονέκτηματα η DSL περιορίζεται στα γλωσσικά χαρακτηριστικά της GPL δεν είναι ευέλικτη δεν είναι ιδιαίτερα εκφραστική

Xtext Το Xtext είναι ένα πλαίσιο εκτέλεσης το οποίο μας δίνει την δυνατότητα να δημιουργήσουμε μια external DSL και παρέχει όλα τα απαραίτητα εργαλείων για την ανάπτυξης της DSL. Χαρακτηριστικά του Xtext:  Αφαιρετικότητα της γλώσσας (Abstraction)  Καλύτερη διαχείριση κώδικα (reusability)  Κατανόηση των απαιτήσεων του πελάτη(understanding requirements )  Χρωματισμός Συντακτικών εννοιών (Syntax coloring)  Επικύρωση περιεχομένου (validation of content)  Βοηθός περιεχομένου (Content assistant)  Δένδρο Διάρθρωσης (outline tree) Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 10

Το Xtext αποτελεί ένα τμήμα του eclipse modeling project. Διατίθεται σε δύο εκδόσεις ( Standalone και Web Integration) Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext 11 Το πλαίσιο Xtext αποτελεί μια πλήρη υποδομή που περιλαμβάνει : έναν αναλυτή (parser) ένα συνδέτη (linker) ένα μηχανισμό ελέγχου τύπων (typechecker) EMF models (δημιουργία μεταμοντέλου ) ένα συντάκτη κειμένου (editor) Το Χtext υποστηρίζει : τα πλαίσια εκτέλεσης Eclipse και IntelliJ IDEA την ανάπτυξη GPL την ανάπτυξη DSL για διαδικτυακές εφαρμογές (firefox, chrome) continuous Integration (Maven & Gradle) πολλαπλές πλατφόρμες Ο.S.

Το Χtext χρησιμοποιεί EMF (Eclipse Modeling Framework) μοντέλα για την ανάλυση του κείμενου και την αναπαράσταση του στη μνήμη με τη μορφή γράφου (Abstract Syntax Tree - AST). Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext 12

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext Το Xtext παράγει το Ecore μεταμοντέλο του AST 13

Αρχιτεκτονική του Xtext Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 14

Αρχιτεκτονική του Xtext Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 15

Αρχιτεκτονική του Xtext Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 16

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 17

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 18

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 19

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 20

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 21

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 22

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 23

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 24

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 25

Xtext – Γραμματική της γλώσσας Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Η γραμματική της γλώσσας ακολουθεί τον φορμαλισμό του EBNF 26

Το Εcore μεταμοντέλο συμμορφώνεται με τους κανόνες της γραμματικής Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext – Αντιστοίχιση της γραμματικής της DSL με το Εcore μεταμοντέλο 27

Η επικοινωνία μεταξύ πελάτη και εξυπηρετητή υλοποιείται με ΗTTP κλήσεις. Για τη διαδικτυακή ολοκλήρωση (Web integration) το Xtext υποστηρίζει δύο καταστάσεις λειτουργίας όσον αφορά την αποστολή κειμένου προς τον εξυπηρετητή. Την πλήρη κατάσταση λειτουργίας (StateFul mode) και την μερική κατάσταση λειτουργίας (StateLess mode). Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext – Ο Εξυπηρετητής 28 StateFul mode: για κάθε αλλαγή στον συντάκτη κειμένου αποστολή αιτήματος ενημέρωσης προς τον εξυπηρετητή. λήψη ολόκληρου του κειμένου ανάλυση και την επικύρωση του κειμένου απάντηση του εξυπηρετητή στην εφαρμογή Stateless mode: για κάθε αλλαγή στον συντάκτη κειμένου αποστολή αιτήματος ενημέρωσης προς τον εξυπηρετητή. λήψη αντιγράφου του τροποποιημένου κειμένου ανάλυση και την επικύρωση του κειμένου απάντηση του εξυπηρετητή στην εφαρμογή

Το Xtext υποστηρίζει τρεις βιβλιοθήκες σε JavaScript (Orion, Ace, CodeMirror) Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext – Η Εφαρμογή του Πελάτη 29

JavaScript API Η βιβλιοθήκη της Javascript ενσωματώνει πολλές συναρτήσεις για την διαχείριση και την προσαρμογή του συντάκτη. Οι πιο βασικές συναρτήσεις είναι: xtext.createEditor (options): μπορούμε να δημιουργήσουμε ένα ή περισσότερα στιγμιότυπα του συντάκτη xtext.createServices (editor, options): αρχικοποιούμε τις υπηρεσίες του συντάκτη xtext.removeServices (editor): διαγράφουμε τις υπηρεσίες του συντάκτη Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext – Η Εφαρμογή του Πελάτη Οι βασικές λειτουργίες του API είναι:  Λήψη του περιεχομένου του κειμένου (from server Xtext or JS)  Φόρτωση κειμένου από το διακομιστή του Xtext (προσδιορισμός resourceID)  Φόρτωση κειμένου μέσω JavaScript (με χρήση services)  Καταστάσεις Λειτουργίας (statefull or stateless)  Επισήμανση Συντακτικού (keywords, tokens)  Εμπλοκή των Services (createEditor, createServices etc + options ) 30

Μελέτη Περίπτωσης Στα πλαίσια της Διπλωματικής Εργασίας, αναπτύχθηκε ένα Διαδικτυακό περιβάλλον ανάπτυξης εφαρμογών με χρήση μιας DSL για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT. Το περιβάλλον υλοποιήθηκε με τη χρήση των γλωσσών/εργαλείων OpenLayers, Xtext, JavaScript, Html και css. Με τη χρήση του πλαισίου Χtext αναπτύχθηκε μια πειραματική γλώσσα πεδίου (EDL - Experimentation Description Language), μέσω της οποίας ένας χρήστης έχει τη δυνατότητα να δημιουργήσει σενάρια πειραμάτων που πρόκειται να εκτελεστούν από τις αυτόνομες ρομποτικές συσκευές. Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 31 Πλεονεκτήματα της EDL αποτελεσματική συγγραφή σεναρίων πειραματισμού από μη έμπειρους χρήστες- ερευνητές παροχή υψηλού επιπέδου αφαιρετικότητας που προστατεύει τους ερευνητές από την πολυπλοκότητα της υποκείμενης πλατφόρμας και των διαθέσιμων συσκευών

Τα mobile IoT είναι κινητές έξυπνες συσκευές, που φέρουν διάφορα αισθητήρια, ικανοποιητική για τα σημερινά δεδομένα αυτονομία ενέργειας, μικρή επεξεργαστική ισχύ και ενσωματώνουν διάφορες τεχνολογίες επικοινωνίας (BT, Wi-Fi, GPS). Τα mobile IoT συλλέγουν, επεξεργάζονται και ανταλλάσουν πολλά δεδομένα με ομότιμους κόμβους ή με κεντρικά συστήματα. Οι εφαρμογές για τα mobile IoT, έχουν απώτερο σκοπό την διευκόλυνση της ζωής των ανθρώπων. Τομέας Πεδία Smart Cities Smart Parking Structural health Smartphone Detection Traffic Congestion Smart Lighting Smart Environment Forest Fire Detection Air Pollution Earthquake Early Detection Security & Emergencies Perimeter Access Control Radiation Levels Explosive and Hazardous Gases Domotic & Home Automation Energy and Water Use Remote Control Appliances Intrusion Detection Systems Art and Goods Preservation Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Mobile IoT Εφαρμογές 32

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Γραμματική της EDL για Εφαρμογές του mobile IoT 33

EDL Web Editors - Η web εφαρμογή για mobile IoT Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 34 Η διαδικτυακή εφαρμογή περιλαμβάνει το συντάκτη κειμένου, τον οπτικό συντάκτη και τα υποστηρικτικά εργαλεία. Οι συντάκτες υπεύθυνοι για την παροχή των απαραίτητων λειτουργιών στους ερευνητές για τη δημιουργία, την ενημέρωση και την επικύρωση των πειραμάτων. Στο συντάκτη κειμένου ο χρήστης μπορεί να συγγράψει ένα πείραμα με χρήση των εντολών που έχουν οριστεί από την γραμματική της EDL. Στον οπτικό συντάκτη o χρήστης μπορεί να δημιουργήσει ένα σενάριο χρησιμοποιώντας ένα χάρτη, πάνω στον οποίο μπορεί να ορίσει τις θέσεις και τα χαρακτηριστικά των κινητών κόμβων.

Ο συντάκτης κειμένου προσφέρει ένα πλούσιο μενού επιλογών στους ερευνητές για την εισαγωγή προκαθορισμένων μοτίβων κώδικα, και πολλές αυτοματοποιημένες διαδικασίες για τον έλεγχο της ορθής συγγραφής σεναρίων. Ανάπτυξη Συντάκτη Κειμένου για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 35 εισαγωγή ενός μοτίβου κώδικα (code template) στο συντάκτη μενού βοήθειας Εισαγωγή μοτίβων κώδικα για τα αισθητήρια, τα δεδομένα των κόμβων κ.α. συγχρονισμός των δεδομένων μεταξύ του συντάκτη κειμένου και του οπτικού συντάκτη αποθήκευση του σεναρίου καθαρισμός του σεναρίου Οι ερευνητές έχουν τη δυνατότητα να εισάγουν στο συντάκτη κειμένου μέσω του Πληκτρολογίου : Μεταδεδομένα του πειράματος τα δεδομένα της διαδρομής των κόμβων τα αισθητήρια,τους αλγόριθμους και τα μέσα επικοινωνίας που θα χρησιμοποιηθούν από τους κόμβους σε συγκεκριμένες χρονικές στιγμές

Επίσης παρέχονται μια σειρά από πρόσθετα εργαλεία για τη συντακτική και τη σημασιολογική επικύρωση. Ανάπτυξη Συντάκτη Κειμένου για mobile IoT Εφαρμογές (συνέχεια...) Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 36 η βοήθεια περιεχομένου ο χρωματισμός της σύνταξης η αυτόματη συμπλήρωση τμημάτων κώδικα η επικύρωση του περιεχομένου του συντάκτη ο έλεγχος των σφαλμάτων Μερικές από τις παρεχόμενες λειτουργίες του συντάκτη κειμένου είναι:

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Επικύρωση Περιεχομένων του συντάκτη κειμένου 37 Η στατική ανάλυση των δεδομένων μιας γλώσσας DSL παίζει πολύ σημαντικό ρόλο κατά την υλοποίηση της γλώσσας. Ο χρήστης της γλώσσας, κατά τη διάρκεια της συγγραφής ενός σεναρίου, έχει τη δυνατότητα να λαμβάνει έγκαιρα πληροφορίες από τον αναλυτή της γλώσσας. Με αυτό τον τρόπο ανατροφοδοτείται άμεσα με πληροφορίες για τυχόν συντακτικά ή εννοιολογικά λάθη που μπορεί να συμβούν.

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αναγνώριση / Αντιμετώπιση Λαθών του συντάκτη κειμένου 38 Η αναγνώριση και η αντιμετώπιση λαθών αποτελεί ένα πολύ σημαντικό προνόμιο της γλώσσας. Η διαδικασία της ταχείας ανατροφοδότησης πληροφοριών προς το χρήστη, πραγματοποιείται από ελεγκτικούς (checking) μηχανισμούς. Οι ελεκτικοί μηχανισμοί είναι συναρτήσεις που υλοπούνται στις κλάσεις Validator.xtend και CustomValidator.xtend

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Παραγωγή Κώδικα / Αρχείων 39 Ο γεννήτορας κώδικα που παρέχεται από το Xtext πλαίσιο είναι ένα εργαλείο το οποίο χρησιμοποιείται για τη μετάφραση και την παραγωγή αρχείων και κλάσεων Java. Η είσοδος του τροφοδοτείται με το σενάριο που παράγει ο ερευνητής μέσω της εφαρμογής και στην έξοδο παράγονται τα αντίστοιχα αρχεία εξόδου και οι αντίστοιχες κλάσεις Java. Τα αρχεία εξόδου περιλαμβάνουν εντολές και δεδομένα που θα χρησιμοποιήθουν για την τροφοδοσία των εισόδων των αντίστοιχων mobile ΙοΤ συσκευών. Oι κλάσεις Java μπορούν να χρησιμοποιηθούν από τον προγραμματιστή για να επεκτείνουν την λειτουργικότητα της DSL.

Παράδειγμα σεναρίου EDL για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 40 Περιέχει γενικές πληροφορίες που σχετίζονται με κάθε πείραμα: όνομα, ημερομηνία έκδοση γενική περιγραφή Περιέχει γενικές πληροφορίες που σχετίζονται με κάθε πείραμα: όνομα, ημερομηνία έκδοση γενική περιγραφή Execution section (τμήμα εκτέλεσης) Declarations section (τμήμα δηλώσεων) Requirements section (τμήμα απαιτήσεων) Metadata section (τμήμα μεταδεδομένων)

Παράδειγμα σεναρίου EDL για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 41 Περιέχει πληροφορίες που σχετίζονται με τις απαιτήσεις του κάθε πειράματος όσον αφορά : τον αριθμό των κόμβων που θα εμπλακούν στο πείραμα τα δεδομένα της πλατφόρμας δοκιμών τη θέση, τη διάρκεια ή την απόσταση που οι κόμβοι πρέπει να καλύψουν κατά την εκτέλεση ενός πειράματος Περιέχει πληροφορίες που σχετίζονται με τις απαιτήσεις του κάθε πειράματος όσον αφορά : τον αριθμό των κόμβων που θα εμπλακούν στο πείραμα τα δεδομένα της πλατφόρμας δοκιμών τη θέση, τη διάρκεια ή την απόσταση που οι κόμβοι πρέπει να καλύψουν κατά την εκτέλεση ενός πειράματος Execution section (τμήμα εκτέλεσης) Declarations section (τμήμα δηλώσεων) Requirements section (τμήμα απαιτήσεων) Metadata section (τμήμα μεταδεδομένων)

Παράδειγμα σεναρίου EDL για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 42 Περιέχει τις απαραίτητες δηλώσεις όπως οι σταθερές και οι μεταβλητές που θα χρησιμοποιηθούν για την αποθήκευση των δεδομένων κατά τη διάρκεια της εκτέλεσης του πειράματος Execution section (τμήμα εκτέλεσης) Declarations section (τμήμα δηλώσεων) Requirements section (τμήμα απαιτήσεων) Metadata section (τμήμα μεταδεδομένων)

Παράδειγμα σεναρίου EDL για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 43 Περιλαμβάνει εντολές που σχετίζονται με τη διαχείριση της λογικής του κάθε πειράματος. H διαχείριση αυτή αφορά τον ορισμό: των σημείων των διαδρομών που εκτελούν οι κόμβοι της γραμμής του χρόνου (π.χ., διαδοχική ή παράλληλη εκτέλεση) του συντονισμού των κόμβων του ελέγχου των κόμβων (π.χ. ενεργοποίηση / απενεργοποίηση των αισθητήρων) των δεδομένων σε κάθε κόμβο της επικοινωνίας (π.χ. αλλαγή στις διεπαφές του δικτύου) Περιλαμβάνει εντολές που σχετίζονται με τη διαχείριση της λογικής του κάθε πειράματος. H διαχείριση αυτή αφορά τον ορισμό: των σημείων των διαδρομών που εκτελούν οι κόμβοι της γραμμής του χρόνου (π.χ., διαδοχική ή παράλληλη εκτέλεση) του συντονισμού των κόμβων του ελέγχου των κόμβων (π.χ. ενεργοποίηση / απενεργοποίηση των αισθητήρων) των δεδομένων σε κάθε κόμβο της επικοινωνίας (π.χ. αλλαγή στις διεπαφές του δικτύου) Execution section (τμήμα εκτέλεσης) Declarations section (τμήμα δηλώσεων) Requirements section (τμήμα απαιτήσεων) Metadata section (τμήμα μεταδεδομένων) Execution section (τμήμα εκτέλεσης)

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Ανάπτυξη Γραφικού Περιβάλλοντος για mobile IoT Εφαρμογές Το περιβάλλον αναπτύχθηκε με τη χρήση των γλωσσών/εργαλείων OpenLayers, Xtext, JavaScript, Html και css. Το OpenLayers χρησιμοποιήθηκε για την απεικόνιση των χαρτών στον οπτικό συντάκτη (Visual editor). 44 Στον οπτικό συντάκτη o χρήστης μπορεί να δημιουργήσει ένα σενάριο χρησιμοποιώντας τον χάρτη, πάνω στον οποίο μπορεί : να ορίσει τις θέσεις των κινητών κόμβων να ορίσει τα χαρακτηριστικά των κινητών κόμβων να μετακινήσει τους κινητούς κόμβους να διαγράψει ένα κινητό κόμβο

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Ανάπτυξη Γραφικού Περιβάλλοντος για mobile IoT Εφαρμογές 45 Ο οπτικός συντάκτης προσφέρει ένα πλούσιο μενού επιλογών με την χρήση κουμπιών και αναδυόμενων μενού επιλογών όπως: Επιλογή των αισθητηρίων, των αλγορίθμων και των επικοινωνιών που θα χρησιμοποιηθούν από κάθε κόμβο Συγχρονισμός των δεδομένων μεταξύ του συντάκτη κειμένου και του οπτικού συντάκτη Προβολή/απόκρυψη πληροφοριών των σημείων διαδρομής των κόμβων (id, lon, lat, height, time) Εμφάνιση του ενεργού κόμβου, με στιγμιαίο χρωματισμό των σημείων διαδρομής που ανήκουν στο ενεργό κόμβο Καθαρισμός όλων των σημείων διαδρομής του τρέχοντος ενεργού κόμβου από το χάρτη Διαγραφή του τρέχοντος ενεργού κόμβου από το χάρτη Πρόσθεση ενός επιπλέον κόμβου στο χάρτη

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Συγχρονισμός δεδομένων μεταξύ του συντάκτη κειμένου και του οπτικού συντάκτη 46 Για την ταύτιση των δεδομένων του συντάκτη κειμένου και του οπτικού συντάκτη απαιτείται να υπάρχει συγχρονισμός. Σημαντικός παράγοντας επιτυχούς συγχρονισμού αποτελεί η συντακτική και η σημασιολογική ορθότητα των δεδομένων κυρίως από την μεριά του συντάκτη κειμένου. Ο αλγόριθμος που υλοποιήθηκε βασίζεται στην επεξεργασία συμβολοσειρών του περιεχομένου του συντάκτη κειμένου.

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 47 Συγχρονισμός δεδομένων μεταξύ του συντάκτη κειμένου και του οπτικού συντάκτη

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 48 Συμπεράσματα Η διαδικτυακή εφαρμογή για τον πειραματισμό σε Κινητές Ρομποτικές Διατάξεις ΙοΤ αποτελεί ένα σημαντικό εργαλείο για τους πειραματιστές Η συγγραφή σεναρίων στο συντάκτη κειμένου είναι πλέον μια απλή διαδικασία ΟΙ μηχανισμοί επικύρωσης και αναγνώρισης λαθών συντελούν στην αύξηση της παραγωγικότητας των ερευνητών κατά την διάρκεια συγγραφής σεναρίων Η διαδικασία για την δημιουργία σεναρίων με την χρήση του οπτικού συντάκτη είναι απλή και γρήγορη

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 49 Μελλοντικές Επεκτάσεις Yλοποίηση επεκτάσεων του οπτικού συντάκτη για τη δημιουργία της ροής εκτέλεσης (workflow) των πειραμάτων.

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 50 Μελλοντικές Επεκτάσεις Simulator 2D/3D: για την προσομοίωση των πειραματικών σεναρίων

Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 51

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Μιχαήλ Α. Τσιρούκης Επιβλέπων: Ευστάθιος Χατζηευθυμιάδης, Αναπληρωτής Καθηγητής ΕΚΠΑ ΑΘΗΝΑ ΟΚΤΩΒΡΙΟΣ 2016