Συγκριτική Μελέτη Υβριδικών Εφαρμογών και Native Εφαρμογών Φορητών Συσκευών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Συγκριτική Μελέτη Υβριδικών Εφαρμογών και Native Εφαρμογών Φορητών Συσκευών"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών στα Προηγμένα Συστήματα Υπολογιστών Και Επικοινωνιών Κατεύθυνση: Δικτυακή υπολογιστική Ηλεκτρονικό Εμπόριο ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Συγκριτική Μελέτη Υβριδικών Εφαρμογών και Native Εφαρμογών Φορητών Συσκευών Συγγραφέας: Ακριτίδης Δημήτριος ΑΕΜ: ΔΔ311 Επιβλέπων Καθηγητής: Πρωτόγερος Νικόλαος Σεπτέμβριος 2017

2 Περίληψη Η χρήση φορητών συσκευών, όπως τα κινητά τηλέφωνα και οι ταμπλέτες, αυξάνεται ραγδαία με επακόλουθο την αλματώδη αύξηση των εφαρμογών που εκτελούνται από αυτές. Λόγω των πολλαπλών λειτουργικών συστημάτων, με κυριότερα τα Android, ios και Windows Phone, κάθε εφαρμογή πρέπει να δημιουργείται ως εκτελέσιμο του λειτουργικού συστήματος στο οποίο στοχεύει. Η υβριδική υλοποίηση εφαρμογών έρχεται να δώσει τη λύση στο συγκεκριμένο πρόβλημα, διατηρώντας μία βάση κώδικα και δημιουργώντας εφαρμογές εκτελέσιμες σε πολλαπλά λειτουργικά συστήματα. Στη συγκεκριμένη μελέτη, πραγματοποιείται μια σύγκριση μεταξύ εγγενών και υβριδικών Android εφαρμογών. Για την επίτευξη αυτής της σύγκρισης, δημιουργείται μία εγγενής και μία υβριδική εφαρμογή, οι οποίες έχουν παρόμοια εμφάνιση και λειτουργικότητα. Η υβριδική εφαρμογή υλοποιείται με τη χρήση του εργαλείου Adobe Phonegap και αξιοποιώντας το πλαίσιο Dojo Toolkit. Οι εφαρμογές αυτές αξιολογούνται ποιοτικά, ως προς το βαθμό δυσκολίας στην υλοποίηση τους, και ποσοτικά ως προς διάφορες μετρήσιμες μεταβλητές του συστήματος, όπως η κατανάλωση μνήμης και επεξεργαστικής ισχύος κατά την εκτέλεση των δύο εφαρμογών, ώστε να συγκριθούν οι δύο τρόποι υλοποίησης. Τα αποτελέσματα των μετρήσεων δείχνουν πως η υβριδική εφαρμογή σε σχέση με την εγγενή παρουσιάζει αυξημένη κατανάλωση CPU & GPU, διπλάσιο χρόνο εκκίνησης και κατώτερη εμπειρία χρήστη. Καταλήγοντας, εξάγεται το συμπέρασμα πως στην περίπτωση μίας απλής εφαρμογής, η οποία στοχεύει σε πολλαπλές πλατφόρμες, η υβριδική υλοποίηση μπορεί να αξιοποιηθεί ικανοποιητικά. Λέξεις-κλειδιά: Συγκριτική Μελέτη, Εγγενής, Υβριδική, Adobe Phonegap, Dojo Toolkit

3 Abstract The use of mobile devices, such as mobile phones and tablets, is rising rapidly, resulting in the rapid increase in the applications that are being executed by these devices. Because of the multiple operating systems, notably Android, ios and Windows Phone, every application must be created as an executable of each operating system which it targets. Hybrid application implementation comes to solve this problem by maintaining a code base and creating executable applications for multiple operating systems. In this study, a comparison between native and hybrid Android applications is made. To achieve this comparison, a native and a hybrid application, which have similar appearance and functionality, are created. The hybrid application is implemented using the tool Adobe Phonegap and utilizing the Dojo Toolkit Framework. These applications are evaluated qualitatively in terms of the degree of their implementation difficulty and quantitatively related to various measurable system variables, such as memory and processing power consumption in the execution of the two applications, in order to compare the two types of implementation. The results of the measurements show that the hybrid application has increased CPU & GPU consumption as well as double boot time as well as an inferior user experience compared to the native. Ending up, it is concluded that, in the case of a single application that targets multiple platforms, the hybrid implementation can be utilized satisfactorily. Keywords: Comparative Study, Native, Hybrid, Adobe Phonegap, Dojo Toolkit

4 Ευχαριστίες Αρχικά θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή μου κο Νικόλαο Πρωτόγερο για την πολύτιμη επιστημονική βοήθεια και τις συμβουλές που μου προσέφερε ώστε να ολοκληρωθεί η παρούσα εργασία. Τη συμμετοχή μου στο συγκεκριμένο μεταπτυχιακό οφείλω στον πατέρα μου, τον οποίο έχασα πρόωρα, και στη μητέρα μου. Θα ήθελα να τους ευχαριστήσω για την αμέριστη συμπαράστασή τους, ηθική και οικονομική, καθώς και για όσα μου έχουν προσφέρει όλα αυτά τα χρόνια. Τέλος, θα ήθελα επίσης να ευχαριστήσω τον κο Καρατζίδη Ευστράτιο από το Κέντρο Η/Υ του Πανεπιστημίου Μακεδονίας για τη βοήθεια που μου παρείχε ώστε να έχω πρόσβαση στις ανακοινώσεις του Πανεπιστημίου. ii

5 Περιεχόμενα Περίληψη Περίληψη (Αγγλική) Ευχαριστίες Περιεχόμενα Κατάλογος πινάκων Κατάλογος σχημάτων Συντομογραφίες i i ii iii v v vi 1 Εισαγωγή Σκοπός της εργασίας Ανασκόπηση της Βιβλιογραφίας Κατανόηση του τρόπου υλοποίησης υβριδικών εφαρμογών Αξιολόγηση των εργαλείων υλοποίησης υβριδικών εφαρμογών Σύγκριση υβριδικών εφαρμογών με εγγενείς Αξιολόγηση υβριδικών εφαρμογών σε βάθος Μεθοδολογία Επιλογή Μεταβλητών Αξιολόγησης Επιλογή Εφαρμογής-Προτύπου Ανάλυση Δεδομένων & Ερμηνεία Ευρημάτων Δημιουργία Εφαρμογής-Προτύπου Επιλογή Λειτουργικού Συστήματος Επιλογή Εργαλειών Ανάπτυξης Δομικά Στοιχεία Υβριδικής Εφαρμογής Υλοποίηση Native Εφαρμογής iii

6 4.1.5 Υλοποίηση Υβριδικής Εφαρμογής Εκτέλεση Εφαρμογών-Προτύπων Βαθμός Δυσκολίας Υλοποίησης Μέγεθος Εφαρμογής Χρόνος Εκκίνησης Κατανάλωση μνήμης RAM Χρήση κεντρικής μονάδας επεξεργασίας CPU Χρήση μονάδας επεξεργασίας γραφικών GPU Μέγεθος δεδομένων διεκπεραίωσης δικτυακής επικοινωνίας Συμπεράσματα και Προτάσεις Συμπεράσματα Προτάσεις Βιβλιογραφία 40 Παράρτημα 42 Α Ορισμοί 42 iv

7 Κατάλογος πινάκων 4.1 Υποστηριζόμενες εκδόσεις Android ανά έκδοση Cordova-Android Χαρακτηριστικά συσκευής πειράματος Πειραματικοί Χρόνοι Εκκίνησης Εφαρμογών Κατανάλωση μνήμης RAM (σε KB), όπως αυτή μετρήθηκε μέσω της γραμμής εντολών Μέγεθος πακέτου δεδομένων (σε KB) κατά την εκτέλεση του σεναρίου v

8 Κατάλογος σχημάτων 4.1 Ροή εκτέλεσης Native App Ροή Εκτέλεσης μέσω WebView Αρχιτεκτονική Εφαρμογής Cordova Κατανάλωση μνήμης RAM από τη Native Εφαρμογή Χρήση CPU από τη Native (πάνω) και την Υβριδική(κάτω) Εφαρμογή Χρήση GPU από τη Native (πάνω) και την Υβριδική(κάτω) Εφαρμογή vi

9 Συντομογραφίες GUI IDE OS RAM API RSS MVC SDK IP GPS CDN DOM JSON CPU GPU apk KB MB ms Graphical User Interface Integrated Development Environment Operating System Random Access Memory Application Programming Interface Rich Site Summary Model-View-Controller Software Development Kit Internet Protocol Global Positioning System Content Delivery Network Document Object Model JavaScript Object Notation Central Processing Unit Graphics Processing Unit Android Package Kit KiloByte MegaByte milliseconds vii

10 Κεφάλαιο 1 Εισαγωγή Καθώς οι ανάγκες της εποχής οδηγούν στην ολοένα και μεγαλύτερη εξάπλωση της χρήσης των έξυπνων κινητών και γενικότερα των φορητών συσκευών, όπως είναι τα tablets, η διεκπεραίωση μεγάλου πλήθους καθημερινών εργασιών γίνεται μέσω αυτών. Οι οικονομικές συναλλαγές, η ενημέρωση και η χρήση των μέσων κοινωνικής δικτύωσης είναι μόνο κάποιοι από τους λόγους για τους οποίους χρησιμοποιείται το κινητό τηλέφωνο ή το tablet σε καθημερινή βάση. Οι λειτουργίες που προαναφέρθηκαν έχουν ως κοινή προϋπόθεση την πρόσβαση στο διαδίκτυο. Οι λειτουργίες αυτές παρέχονται στο χρήστη με δύο τρόπους: μέσω του φυλλομετρητή (browser) ο χρήστης μπορεί να πλοηγηθεί στην ιστοσελίδα που τον ενδιαφέρει και να κάνει χρήση της διαδικτυακής εφαρμογής που του παρέχεται. μέσω της τοπικής εφαρμογής η οποία του παρέχει την αντίστοιχη υπηρεσία. Η συγκεκριμένη επιλογή απαιτεί αφενός την ύπαρξη αντίστοιχης εφαρμογής συμβατής με τη συσκευή του χρήστη και αφετέρου τη λήψη και εγκατάσταση αυτής από το αντίστοιχο κατάστημα του λειτουργικού συστήματος της συσκευής. Η υπηρεσία reddit αποτελεί ένα καλό παράδειγμα υλοποίησης των δύο αυτών τρόπων. Ο λόγος είναι η παράλληλη ύπαρξη εγγενούς και διαδικτυακής εφαρμογής, οι οποίες παρέχουν την ίδια υπηρεσία με μικρές διαφορές στον τρόπο αναπαράστασης, αλλά χωρίς υπερβολικές αποκλίσεις ως προς το γραφικό περιβάλλον χρήστη (GUI). Προχωρώντας ένα βήμα ακόμη και αξιοποιώντας τις δυνατότητες που μας παρέχει η εξέλιξη του διαδικτύου και των εργαλείων που το περιβάλλουν, δημιουργήθηκε μια νέα κατηγορία εφαρμογών. Οι εφαρμογές αυτές ονομάζονται υβριδικές και θα αναλυθούν στη συνέχεια. 1

11 1.1 Σκοπός της εργασίας Σκοπός της παρούσας εργασίας αποτελεί η συγκριτική μελέτη μιας εγγενούς Android εφαρμογής με μία υβριδική, η μέτρηση ορισμένων ποιοτικών και ποσοτικών μεταβλητών οι οποίες θα ορισθούν μετά τη μελέτη της υπάρχουσας βιβλιογραφίας και τέλος η ανάλυση και η αξιολόγηση των αποτελεσμάτων που θα προκύψουν. 2

12 Κεφάλαιο 2 Ανασκόπηση της Βιβλιογραφίας Η υλοποίηση εφαρμογών με υβριδικό τρόπο βρίσκεται στο προσκήνιο για ελάχιστο χρόνο σε σύγκριση με τους παραδοσιακούς τρόπους υλοποίησης εφαρμογών φορητών συσκευών. Για το λόγο αυτό δεν υπάρχουν αρκετά βιβλία τα οποία να αναφέρονται στο αντικείμενο, το οποίο πραγματεύεται η παρούσα εργασία, και να αναλύουν επαρκώς. Για την ακρίβεια εντοπίστηκαν και χρησιμοποιήθηκαν ως πηγές της παρούσας εργασίας δύο βιβλία, τα οποία θα αναλυθούν εκτενέστερα στη συνέχεια αυτού του κεφαλαίου. Επίσης μελετήθηκαν έντεκα άρθρα συναφών προγενέστερων μελετών. Λόγω της πρόσφατης ενασχόλησης του επιστημονικού κόσμου με την υβριδική τεχνολογία, ο μεγαλύτερος αριθμός πηγών εντοπίστηκε στο διαδίκτυο από όπου και μελετήθηκε. Τα στατιστικά, τα οποία χρησιμοποιήθηκαν ως δεδομένα κατά τη συγγραφή της συγκεκριμένης μελέτης, αποτελούν αποτελέσματα μετρήσεων της εταιρείας Statista ( 2.1 Κατανόηση του τρόπου υλοποίησης υβριδικών εφαρμογών Το κυριότερο σύγγραμμα, το οποίο χρησιμοποιήθηκε ώστε να γίνουν κατανοητές οι βασικές έννοιες που αφορούν τις υβριδικές εφαρμογές καθώς και η υλοποίηση αυτών, ήταν το βιβλίο του Mahesh Panhale(Panhale, 2016)[1]. Ο τρόπος με τον οποίο έχει δομηθεί δίνει στον αναγνώστη τη δυνατότητα να οπλιστεί με όλη την απαραίτητη γνώση, θεωρητική και τεχνική, ώστε να αντιληφθεί τον τρόπο λειτουργίας και δόμησης μιας υβριδικής εφαρμογής εκτελέσιμης σε πολλαπλά λειτουργικά συστήματα και συσκευές, προετοιμάζοντας τον για την υλοποίηση μιας βασικής και σχετικά απλής υβριδικής εφαρμογής. Πρόκειται για ένα ολοκληρωμένο βιβλίο, όσον αφορά το θέμα που μελετάται, καθώς καλύπτει πλήρως το θεωρητικό υπόβαθρο τόσο της λειτουργίας μιας native εφαρμογής όσο και μίας υβριδικής, γραμμένο σε απλή και κατανοητή γλώσσα ώστε να μην απαιτείται εξειδικευμένη γνώση από τον ανα- 3

13 γνώστη. Η υλοποίηση της εφαρμογής προτύπου έγινε με τη χρήση της πλατφόρμας AppBuilder και του IDE Visual Studio. Ο προγραμματισμός της εφαρμογής έγινε σε γλώσσα С# πιθανότατα λόγω της εκτέλεσης της εφαρμογής σε λειτουργικό σύστημα ios. Στη συγκεκριμένη εργασία επιλέχθηκε η μελέτη να εστιάσει στο λειτουργικό σύστημα Android όπως φαίνεται και στη συνέχεια. Κατά τη γνώμη μου, καλό θα ήταν ο συγγραφέας να παρουσίαζε και τις δύο υλοποιήσεις, δηλαδή σε Java και σε C#, καθώς το μεγαλύτερο μέρος προγραμματιστών εφαρμογών φορητών συσκευών, οι οποίοι θα ενδιαφερθούν να αξιοποιήσουν την υβριδική τεχνολογία, είναι προγραμματιστές εφαρμογών Android, του οποίου η κύρια γλώσσα είναι η Java. Οι Gok Nizamettin και Khanna Nitin (Nizamettin και Nitin, 2013)[2] επέλεξαν ως γλώσσα υλοποίησης την Java και ως λειτουργικό σύστημα το Android της Google. Γίνεται μια πολύ σύντομη αναφορά στα υπόλοιπα λειτουργικά συστήματα καταλήγοντας γρήγορα στο ζητούμενο, το οποίο είναι η υλοποίηση εφαρμογής για το λειτουργικό σύστημα Android. Σε σύγκριση με το προηγούμενο, το παρόν βιβλίο χρησιμοποιεί μία πιο επιστημονική γλώσσα και περισσότερα παραδείγματα. Η γλώσσα που χρησιμοποιείται από το συγγραφέα καθώς και ο τρόπος με τον οποίο δομείται το βιβλίο απαιτεί από τον αναγνώστη ένα βασικό υπόβαθρο σε θέματα προγραμματισμού διαδικτυακών εφαρμογών αλλά και εφαρμογών εκτελέσιμων σε λειτουργικό σύστημα Android. 2.2 Αξιολόγηση των εργαλείων υλοποίησης υβριδικών εφαρμογών Αφού κατανοήθηκε ο τρόπος υλοποίησης υβριδικών εφαρμογών, μελετήθηκαν άρθρα τα οποία αφορούν μελέτες που σκοπό είχαν την αξιολόγηση των διαφόρων εργαλείων υλοποίησης μιας υβριδικής εφαρμογής. Η «Οικονομία των εφαρμογών» είναι μία αρκετά επικερδής και ανταγωνιστική αγορά για τους ανεξάρτητους κατασκευαστές λογισμικού, διότι πιθανότατα προσφέρει μία εύκολη διέξοδο ώστε να φτάσουν σε εκατομμύρια χρήστες(ahti κ.ά., 2016)[3]. Με τον παραδοσιακό τρόπο υλοποίησης εφαρμογών οι κατασκευαστές προσανατολίζονται στη δημιουργία πολλαπλών γραμμών παραγωγής, εφόσον θέλουν να καλύψουν τις απαιτήσεις κάθε λειτουργικού συστήματος. Οι Ville Ahti, Sami Hyrynsalmi και Olli Nevalainen (Ahti κ.ά., 2016)[3] αξιολόγησαν το εργαλείο PhoneGap της Adobe. Για την αξιολόγησή του υλοποιήθηκε μια υβριδική εφαρμογή εκτελέσιμη στα περιβάλλοντα Google Android 2.3 και Windows Phone 8, καθώς και οι αντίστοιχες εγγενής εφαρμογές των παραπάνω λειτουργικών συστημάτων. Το αποτέλεσμα αξιολογήθηκε ποιοτικά και ποσοτικά. Τα κριτήρια στα οποία βασίστηκε η ποιοτική αξιολόγηση ήταν (α) ο χρόνος εκκίνησης της εφαρμο- 4

14 γής, (β) η κατανάλωση μνήμης RAM και (γ) το μέγεθος της εφαρμογής. Όσον αφορά την υβριδική Android εφαρμογή, οι τρεις παράγοντες ήταν μικρότεροι σε σχέση με την native. Στην περίπτωση του Windows Phone ισχύει το ακριβώς αντίθετο. Τα αποτελέσματα της υβριδικής εφαρμογής ήταν από δύο (χρόνος εκκίνησης και χρήση RAM) έως και τέσσερις (μέγεθος εφαρμογής) φορές μεγαλύτερα σε σύγκριση με αυτά της εγγενούς. Η ποιοτική αξιολόγηση βασίστηκε στην εμπειρία χρήστη, την εμφάνιση και την ευκολία στην ανάπτυξη της εφαρμογής. Η εμπειρία του χρήστη καθώς και η εμφάνιση της εφαρμογής στην περίπτωση της native υλοποίησης ήταν σαφώς πληρέστερη και πιο εμφανίσιμη συγκριτικά με την υβριδική προσέγγιση, στην οποία υπήρξαν κάποιες δυσκολίες. Ειδικότερα η εμφάνιση διέφερε από αυτή των εγγενών εφαρμογών, παρότι έγινε προσπάθεια να παρουσιάζει όσο το δυνατόν μεγαλύτερη ομοιότητα. Το μεγάλο πλεονέκτημα της υβριδικής υλοποίησης είναι το τελευταίο σκέλος της ποιοτικής αξιολόγησης, δηλαδή ο παράγοντας της ευκολίας ανάπτυξης. Η υβριδική υλοποίηση επιταχύνει κατά πολύ την ανάπτυξη της εφαρμογής για πολλαπλά περιβάλλοντα, από την εκμάθηση έως την ολοκλήρωση του έργου. Εντούτοις, σύμφωνα με το συγγραφέα του παραπάνω άρθρου, η υβριδική υλοποίηση υστερεί σε τεκμηρίωση σε σύγκριση με τους εγγενείς τρόπους υλοποίησης για Android και Windows Phone για τους οποίους υπάρχει πλήθος οδηγών και τεκμηρίωσης. Στη μελέτη των Arvind,Shrinidhi και Raghu Hudli (Hudli κ.ά., 2015)[4] γίνεται προσπάθεια να αξιολογηθούν τα διαθέσιμα εργαλεία υλοποίησης υβριδικών εφαρμογών βάσει τριών κύριων παραγόντων την υποστήριξη των διαφόρων πλατφορμών, τα διαθέσιμα εργαλεία υποβοήθησης της υλοποίησης καθώς και διάφορους άλλους παράγοντες που αφορούν την εκτέλεση της εφαρμογής (η διαδικασία της παραγωγής, οι διαθέσιμες βιβλιοθήκες κώδικα και το τελικό κόστος). Βαθμολογώντας υποκατηγορίες των παραπάνω παραγόντων, οι συγγραφείς καταλήγουν στο Sencha Touch ως το καλύτερο εργαλείο υλοποίησης υβριδικών εφαρμογών.το PhoneGap της Adobe έπεται υστερώντας κυρίως στη βαθμολόγηση του δεύτερου παράγοντα, αυτού δηλαδή της υποστήριξης στο περιβάλλον ανάπτυξης. Κάτι αντίστοιχο γίνεται και στη μελέτη των Matteo Ciman, Ombretta Gaggi και Nicola Gonzo (Ciman κ.ά., 2014)[5], με τη διαφορά πως υπήρχε πρότερη γνώση της γλώσσας από τους προγραμματιστές που συμμετείχαν στην αξιολόγηση. Η αξιολόγηση βασίστηκε σε εννέα παράγοντες, οι οποίοι βαθμολογήθηκαν από το 1 έως το 5. Μερικοί από τους παράγοντες είναι τα διαθέσιμα APIs και η τεκμηρίωση, η πολυπλοκότητα, οι υποστηριζόμενες συσκευές καθώς και το γραφικό περιβάλλον (όπου αυτό ήταν υπαρκτό) του εργαλείου ανάπτυξης. Για το σκοπό της παραπάνω αξιολόγησης δημιουργήθηκε ένα απλό παιχνίδι, το οποίο υλοποιήθηκε με τη χρήση των διαθέσιμων εργαλείων. Με τον τρόπο αυτό η αξιολόγηση εστίασε κυρίως στη δυνατότητα υλοποίησης υβριδικών εφαρμογών γραφικών. Η μελέτη καταλήγει στο συμπέρασμα, έχο- 5

15 ντας εντοπίσει αρκετά θετικά σημεία και στα υπόλοιπα εργαλεία, πως το καταλληλότερο εργαλείο για την υλοποίηση μιας υβριδικής εφαρμογής γραφικών είναι το Titanium της εταιρείας Appcelerator. 2.3 Σύγκριση υβριδικών εφαρμογών με εγγενείς Στο (Mesfin κ.ά., 2014)[6], αφού μελετάται η δομή και η λειτουργία των εγγενών εφαρμογών καθώς και τα πιο διαδεδομένα λειτουργικά συστήματα των φορητών συσκευών, αναλύεται η δομή της λειτουργίας των υβριδικών εφαρμογών. Στη συνέχεια γίνεται μία ανάλυση των διαθέσιμων εργαλείων υλοποίησης υβριδικών εφαρμογών, καταλήγοντας στο PhoneGap της Adobe ως το πιο διαδεδομένο. Με τη χρήση λοιπόν αυτού, καθώς και των αντίστοιχων εργαλείων ανά πλατφόρμα, δημιουργήθηκε μία κοινή δοκιμαστική εφαρμογή για τα λειτουργικά συστήματα Android, Windows Phone και Blackberry. Η εφαρμογή αυτή ουσιαστικά ήταν ένα παιχνίδι σταυρόλεξου, το οποίο αρχικά δημιουργήθηκε ως μία διαδικτυακή εφαρμογή ικανή να εκτελεστεί μέσω του φυλλομετρητή ενός υπολογιστή. Ο ίδιος κώδικας χρησιμοποιήθηκε σε συνδυασμό με πρόσθετα που παρέχονται από το PhoneGap, ώστε να εκτελεστεί ως υβριδική εφαρμογή από τις παραπάνω πλατφόρμες. Κατά την εκτέλεση όμως της υβριδικής εφαρμογής παρουσιάστηκαν διαφορετικά προβλήματα ανά πλατφόρμα, κυρίως σε θέματα που αφορούσαν την αφή και το γραφικό περιβάλλον. Η αξιολόγηση έγινε με τη μέθοδο του ερωτηματολογίου και αφορούσε στο μεγαλύτερο βαθμό την ευκολία με την οποία ο χρήστης μπορεί να μάθει και να χειριστεί την εφαρμογή καθώς και το πως νιώθει κατά τη χρήση της. Βάσει των απαντήσεων που δόθηκαν, η υβριδική εφαρμογή που δημιουργήθηκε για το Windows Phone, κέρδισε τις εντυπώσεις των περισσότερων χρηστών, με μικρή όμως διαφορά από αυτή του Android. Γενικότερα, από την πλευρά των χρηστών φαίνεται να υπάρχει ικανοποίηση ως προς τη χρήση και το περιβάλλον των υβριδικών εφαρμογών. Από την πλευρά των προγραμματιστών, η υποστήριξη πολλαπλών πλατφορμών μέσω του PhoneGap φαίνεται καλοδεχούμενη και πολλά υποσχόμενη. Κάνοντας μια εισαγωγή σχετικά με τις εγγενείς και τις υβριδικές εφαρμογές και τα εργαλεία με τα οποία αυτές υλοποιούνται, ο Seung Ho Lim(Lim, 2015)[7] επιλέγει το εργαλείο PhoneGap για την υλοποίηση της πειραματικής του εφαρμογής. Ουσιαστικά πρόκειται για μία πειραματική μελέτη μέσω της οποίας δοκιμάζονται οι δυνατότητες των υβριδικών εφαρμογών ως προς την δικτυακή επικοινωνία καθώς και την αναπαράσταση γραφικών. Για το λόγο αυτό δημιουργείται η εφαρμογή κοινωνικής δικτύωσης «SNS Application» μέσω της οποίας οι χρήστες μπορούν να επικοινωνούν, όπως γίνεται σε όλα τα δημοφιλή μέσα κοινωνικής δικτύωσης. Για την επίτευξη της επικοινωνίας είναι αναγκαία 6

16 η ύπαρξη διακομιστή, ο οποίος θα διαχειρίζεται την επικοινωνία μεταξύ των χρηστών.η επικοινωνία αυτή επιτυγχάνεται με τη χρήση τεχνολογίας JSONP. Η αξιολόγηση της εφαρμογής έγινε με τη μέτρηση των χρόνων αναπαράστασης γραφικών στοιχείων και δικτυακών διαδικασιών. Όπως φαίνεται από τη γραφική αναπαράσταση οι χρόνοι της υβριδικής εφαρμογής είναι αρκετά μεγαλύτεροι από αυτούς της εγγενούς. Συγκεκριμένα, ο χρόνος για τις δικτυακές διαδικασίες είναι σχεδόν διπλάσιος ενώ για τη γραφική αναπαράσταση γίνεται έως και τρεις φορές μεγαλύτερος. Κλείνοντας, συμπεραίνεται πως το γραφικό περιβάλλον των υβριδικών εφαρμογών είναι προτιμότερο να δημιουργείται δυναμικά και προβλέπεται να καλυφθεί το παραπάνω κενό καθώς και οι μεγάλες διαφορές των χρόνων που παρατηρήθηκαν με την εξέλιξη της τεχνολογίας στο άμεσο μέλλον. Τέλος, στο (Arsan κ.ά., 2015)[8] γίνεται αξιολόγηση των δυνατοτήτων του PhoneGap, δημιουργώντας μία υβριδική εφαρμογή ανταλλαγής ψηφιακού πληροφοριακού περιεχομένου τύπου RSS. Τονίζεται πως πλέον, με τα πολλαπλά λειτουργικά συστήματα και τις πολλαπλές πλατφόρμες που υπάρχουν, οι προγραμματιστές στοχεύουν στο να φτάσουν σε όσο το δυνατόν μεγαλύτερο πλήθος χρηστών και τύπων πλατφόρμας. Για τη δημιουργία της εφαρμογής χρησιμοποιήθηκε το λειτουργικό σύστημα Android σε συνδυασμό με το εργαλείο PhoneGap. Ο χειρισμός των δεδομένων έγινε με τη χρήση της γλώσσα προγραμματισμού Python και του framework Django. Η αποθήκευση των δεδομένων τοπικά, χωρίς την απαίτηση επικοινωνίας χρήστη - διακομιστή, έγινε πιο εύκολη με το Local Storage το οποίο εισήγαγε η HTML5 και αξιοποιείται από την εφαρμογή της προαναφερθείσας εργασίας. Συμπεραίνεται λοιπόν, πως μία εφαρμογή τύπου RSS Feed μπορεί κάλλιστα να υλοποιηθεί ως υβριδική λόγω της διαδικτυακής της φύσης. Η μη απαίτηση γνώσης εξειδικευμένης γλώσσας προγραμματισμού ανά πλατφόρμα και η δυνατότητα εκτέλεσης της εφαρμογής σε διαφορετικές συσκευές και πλατφόρμες, αποτελεί ένα μεγάλο κίνητρο για τους προγραμματιστές εφαρμογών τέτοιου τύπου, δηλαδή εφαρμογές που έχουν άμεση σχέση με το διαδίκτυο και δεν απαιτούν ιδιαίτερο γραφικό περιβάλλον. 2.4 Αξιολόγηση υβριδικών εφαρμογών σε βάθος Στην εργασία των Ivano Malavolta, Stefano Ruberto, Tommaso Soru και Valerio Terragni (Malavolta κ.ά., 2015)[9] παρουσιάζεται μια βαθύτερη ανάλυση της λειτουργικότητας των υβριδικών εφαρμογών, χρησιμοποιώντας ως δείγμα πλήθος εφαρμογών, διαθέσιμων μέσω του Google PlayStore. Η μελέτη ξεκινά με την εξόρυξη δωρεάν εγγενών και υβριδικών εφαρμογών, οι οποίες αναλύθηκαν από πλευράς τεχνικής και τελικού χρήστη και αποτέλεσαν το αντικείμενο της έρευνας. Τα ευρήματα της 7

17 εργασίας ήταν πως (α) χρειάζεται περισσότερη προσπάθεια προς τη βελτίωση των υβριδικών εφαρμογών όσον αφορά την επικοινωνία εφαρμογής-λειτουργιών συσκευής, (β) οι προγραμματιστές υβριδικών εφαρμογών αξιοποιούν σε μεγάλο βαθμό επαναχρησιμοποιήσιμο κώδικα και βιβλιοθήκες διαδικτυακών εφαρμογών και (γ) οι χρήστες αξιολογούν παρόμοια εγγενείς και υβριδικές εφαρμογές. Η έρευνα ουσιαστικά χωρίστηκε σε πέντε (5) υποομάδες με τη μορφή ερωτήσεων. Για τις ανάγκες της έρευνας έγινε αποσυμπίληση των εκτελέσιμων αρχείων (.apk) ώστε να αναλυθεί περαιτέρω ο κώδικας των εφαρμογών. Τα αποτελέσματα της έρευνας έδειξαν πως από το δείγμα που χρησιμοποιήθηκε μόλις το 3,73% ήταν υβριδικές, με το μεγαλύτερο πλήθος να έχει υλοποιηθεί με τα εργαλεία Apache Cordova και Appcelerator Titanium (κυρίως σε εφαρμογές που αφορούσαν «Οικονομικά»). Γενικότερα, το μικρότερο πλήθος υβριδικών εφαρμογών εντοπίστηκε σε κατηγορίες που είχαν άμεση σύνδεση με εξειδικευμένες ανά πλατφόρμα δυνατότητες. Οι κυριότερες βιβλιοθήκες, που χρησιμοποιούνται σε μία υβριδική εφαρμογή, σχετίζονται με το γραφικό περιβάλλον της, τη διαχείριση των δεδομένων και τη δόμηση της εφαρμογής βάσει του προτύπου MVC. Όπως είναι λογικό, οι πιο διαδεδομένες απαιτήσεις των υβριδικών εφαρμογών είναι η πρόσβαση στο διαδίκτυο και η τρέχουσα κατάσταση του δικτύου, με τις απαιτήσεις της εγγραφής σε εξωτερικό χώρο και της λήψης γεωγραφικής θέσης να έπονται. Ο μέσος όρος της βαθμολογίας για τις εγγενείς και τις υβριδικές εφαρμογές είναι 3,35 και 3,75 αντίστοιχα, ενώ οι εγγενείς εφαρμογές έχουν αξιολογηθεί 6,5 φορές περισσότερο από τις υβριδικές, κάτι που σύμφωνα με το (Hu κ.ά., 2009)[10] αποτελεί τις περισσότερες φορές ένδειξη δυσαρέσκειας προς την εφαρμογή. Έτσι εξάγεται το συμπέρασμα πως οι χρήστες των υβριδικών εφαρμογών είναι ως επί το πλείστον ικανοποιημένοι. Ένα από τα σημαντικότερα θέματα των υβριδικών εφαρμογών είναι η επικοινωνία με το λειτουργικό σύστημα. Αυτό επιτυγχάνεται με τη δημιουργία γεφυρών. Συγκεκριμένα για το Android απαιτείται η επικοινωνία της γλώσσας Java (κύρια γλώσσα εγγενών εφαρμογών Android) με τη γλώσσα JavaScript (κύρια γλώσσα υβριδικών εφαρμογών).το ζήτημα αυτό μελετάται στην εργασία των Xing Jin,Lusha Wang,Tongbo Luo και Wenliang Du(Jin κ.ά., 2015)[11]. Η μελέτη βασίστηκε στο λειτουργικό σύστημα Android και στο εργαλείο PhoneGap. Σύμφωνα με το συγγραφέα, η χρήση γεφυρών δημιουργεί κερκόπορτες για πιθανή παραβίαση της ασφάλειας του λειτουργικού συστήματος. Για το λόγο αυτό προτείνεται τη μεταβολή του τρόπου πρόσβασης των εφαρμογών HTML5 στο λειτουργικό σύστημα Android, υποστηρίζοντας πως η αλλαγή πρέπει να γίνει στο λειτουργικό σύστημα και όχι στο εργαλείο, το οποίο στην προκειμένη περίπτωση είναι το PhoneGap. Το κυριότερο πρόβλημα εντοπίζεται στη διαμονή δικαιωμάτων. Στις εγγενείς εφαρμογές κάθε 8

18 μέρος δικαιοδοτείται κατά περίπτωση, σε αντίθεση με τις υβριδικές στις οποίες όλη η εφαρμογή κατέχει τα ίδια δικαιώματα κατά τη λειτουργία της. Αυτό το κενό στην ασφάλεια αποτέλεσε τη βάση του εγχειρήματος της συγκεκριμένης μελέτης. Για τις ανάγκες της εργασίας δημιουργήθηκε μία υβριδική εφαρμογή, της οποίας τα δικαιώματα διαφέρουν ανάλογα με το πλαίσιο (οθόνη) στο οποίο βρίσκεται ο χρήστης. Συγκεκριμένα τα δικαιώματα κάθε πλαισίου βασίζονται στην παρακάτω σχέση: P effective = P app Pframe Porigin Τα αποτελέσματα αξιολογήθηκαν βάσει δύο παραγόντων της δραστικότητας και της επίδοσης. Σύμφωνα με την έρευνα ο διαχωρισμός των δικαιωμάτων επιτεύχθηκε με μικρές επιβαρύνσεις στις επιδόσεις της εφαρμογής. Τέλος, στo (Lee κ.ά., 2016)[12] πραγματοποιείται μια στατική ανάλυση των υβριδικών Android εφαρμογών, εστιάζοντας κυρίως στην επικοινωνία μεταξύ Java και JavaScript, όπως έγινε και στην προαναφερθείσα μελέτη (Jin κ.ά., 2015)[11]. Η μελέτη ξεκινά από την ανάλυση της λειτουργίας της κλάσης WebView εντός μίας δραστηριότητας (Activity) του Android. Στη συνέχεια προχωρά στη σχέση της Java και της JavaScript καταλήγοντας στον τρόπο με τον οποίο αυτές οι δύο επικοινωνούν για τις ανάγκες των υβριδικών εφαρμογών. Παρουσιάζονται οι δύο διαθέσιμες μέθοδοι επικοινωνίας, της ανάκλησης (callback) και της γέφυρας (bridge), καταλήγοντας για τις ανάγκες της συγκεκριμένης εργασίας στη δεύτερη, λόγω της αμεσότητας που παρέχει. Εμβαθύνοντας στη μέθοδο των γεφυρών αναλύεται ο τρόπος αρχικοποίησης αυτών των αντικειμένων, εξετάζεται ο χειρισμός τους από το λειτουργικό σύστημα και εξηγείται ο τρόπος αντιστοίχισης συναρτήσεων JavaScript σε συναρτήσεις Java και η εκτέλεση αυτών. Κατά τη διαδικασία της αντιστοίχισης πραγματοποιούνται οι αναγκαίες μετατροπές στους τύπους δεδομένων, λόγω αναντιστοιχίας ή μη συμβατότητας τύπων δεδομένων μεταξύ των γλωσσών. Το μεγαλύτερο μέρος μη συμβατών τύπων παρατηρείται στη μετάβαση από JavaScript σε Java. Στη συνέχεια εντοπίζονται οι πιθανές προκλήσεις οι οποίες μπορεί να εμφανιστούν κατά τη στατική ανάλυση. Η εργασία προχωρά στο μέρος της παρουσίασης του εργαλείου HybriDroid, με το οποίο θα γίνει η αξιολόγηση. Για το σκοπό της παρουσίασης του HybriDroid δημιουργήθηκαν δύο εργαλεία, τα BugDetector και Taint Analyzer. Το πρώτο εντοπίζει πιθανά προγραμματιστικά σφάλματα ενώ το δεύτερο παρακολουθεί ροές αλλοιωμένων δεδομένων. Η αξιολόγηση πραγματοποιήθηκε με τη χρήση 88 υβριδικών εφαρμογών οι οποίες ελήφθησαν μέσω του PlayStore με τη χρήση της εφαρμογής PlayDrone. Το σφάλμα που εμφανίστηκε τις περισσότερες φορές ήταν η αδυναμία εύρεσης αντίστοιχης μεθόδου Java σε JavaScript, με το μεγαλύτερο ποσοστό να οφείλεται στην έλλειψη σχολιασμού. Το δεύτερο εργαλείο εντόπισε αρκετές πλατφόρμες διαφημίσεων, ενσωματωμένες στις 9

19 υβριδικές εφαρμογές. Μερικές από αυτές μάλιστα απαιτούσαν ιδιαίτερα επιθετικά δικαιώματα, όπως η εγγραφή στον εξωτερικό δίσκο της συσκευής και η ηχογράφηση. Μία από αυτές, η InMobi, εξετάστηκε βαθύτερα από τον Taint Analyzer, μέσω μιας δοκιμαστικής εφαρμογής η οποία ενσωμάτωσε το InMobi. Όπως φάνηκε από την ανάλυση, η πλατφόρμα InMobi απαιτεί αρκετά δικαιώματα που πιθανότατα επηρεάζουν την ασφάλεια του λειτουργικού. Η μέθοδος sdkcontroller.getgalleryimage αποτελεί ένα καλό παράδειγμα καθώς λαμβάνει το δικαίωμα της χρήσης του Gallery (δηλαδή των φωτογραφιών) της συσκευής. 10

20 Κεφάλαιο 3 Μεθοδολογία Η μελέτη και η σύγκριση των δύο τύπων εφαρμογών που προαναφέρθηκαν, των native και των υβριδικών, απαιτεί αφενός τον καθορισμό των ποιοτικών και ποσοτικών μεταβλητών βάσει των οποίων θα αξιολογηθεί η εφαρμογή και αφετέρου την ύπαρξη μιας εφαρμογής-προτύπου. 3.1 Επιλογή Μεταβλητών Αξιολόγησης Αφού μελετήθηκε η υπάρχουσα βιβλιογραφία στο προηγούμενο κεφάλαιο, για τη σύγκριση και την αξιολόγηση των δύο εφαρμογών επιλέχθηκαν οι παρακάτω μεταβλητές: 1. Ο βαθμός δυσκολίας υλοποίησης της εφαρμογής 2. Το μέγεθος της εφαρμογής 3. Ο χρόνος εκκίνησης 4. Η κατανάλωση μνήμης 5. Η χρήση της κεντρικής μονάδας επεξεργασίας (CPU) 6. Η χρήση της μονάδας επεξεργασίας γραφικών (GPU) 7. Το μέγεθος των δεδομένων δικτυακής επικοινωνίας Όλες οι μεταβλητές, πλην των τριών πρώτων, θα αξιολογηθούν βάσει συγκεκριμένου σεναρίου χρήσης, το οποίο θα ορισθεί στο επόμενο κεφάλαιο. 11

21 3.2 Επιλογή Εφαρμογής-Προτύπου Καθώς, όπως αναφέρθηκε και νωρίτερα, ο σκοπός της συγκεκριμένης εργασίας είναι η σύγκριση εγγενών και υβριδικών εφαρμογών, ήταν αναγκαία η ύπαρξη δύο εφαρμογών-προτύπων, οι οποίες θα έχουν την ίδια λειτουργικότητα και εμφάνιση, όσο αυτό είναι εφικτό. Η εφαρμογή πρέπει να αξιοποιεί μία ή περισσότερες από τις βασικές λειτουργίες των εφαρμογών για λειτουργικό σύστημα Android ώστε να επιτευχθεί η σύγκριση. Η υβριδική εφαρμογή πρέπει να πλησιάζει όσο γίνεται περισσότερο στην εμφάνιση μίας εγγενούς εφαρμογής Android, δίχως όμως να υπερβάλει ως προς τα εφέ και το γραφικό περιβάλλον. Για το λόγο αυτό επιλέχθηκε η δημιουργία μίας εφαρμογής τύπου ροής ειδήσεων η οποία θα εμφανίζει τα νέα του Πανεπιστημίου Μακεδονίας ανα τμήμα και ανά κατηγορία γενικών ανακοινώσεων. Συνεπώς, δημιουργώντας τις δύο αυτές εφαρμογές, οι οποίες απαιτούν ένα βασικό γραφικό περιβάλλον αλλά παράλληλα κάνουν χρήση βασικών δυνατοτήτων των σύγχρονων κινητών συσκευών, δίνεται η δυνατότητα της σύγκρισης αυτών των δύο τύπων εφαρμογών και παράλληλα παράγεται κάτι χρηστικό για το ίδιο το πανεπιστήμιο. 12

22 Κεφάλαιο 4 Ανάλυση Δεδομένων & Ερμηνεία Ευρημάτων 4.1 Δημιουργία Εφαρμογής-Προτύπου Με βάση τα κριτήρια που επιλέχθηκαν να μελετηθούν, η σύγκριση δεν μπορεί να γίνει μόνο σε θεωρητικό επίπεδο και κατά συνέπεια είναι απαραίτητη η δημιουργία μιας εφαρμογής υλοποιημένης και με τους δύο αυτούς τρόπους, η οποία θα παρέχει την ίδια υπηρεσία μέσα από το ίδιο, ή έστω παρόμοιο, γραφικό περιβάλλον. Με τον τρόπο αυτό, τα αποτελέσματα και τα συμπεράσματα που θα εξαχθούν θα βρίσκονται αρκετά κοντά στα πραγματικά δεδομένα. Πριν ξεκινήσει η υλοποίηση της εφαρμογής που θα χρησιμοποιηθεί ως πρότυπο, είναι απαραίτητη η επιλογή δύο παραγόντων οι οποίοι θα μας οδηγήσουν στο τελικό αποτέλεσμα. Ο πρώτος παράγοντας που πρέπει να επιλεγεί είναι το λειτουργικό σύστημα για το οποίο θα δημιουργηθεί και στο οποίο θα εκτελεστεί η εφαρμογή. Παρότι οι υβριδικές εφαρμογές δημιουργούνται έτσι ώστε να εκτελούνται σε περισσότερα του ενός λειτουργικά συστήματα, περιορισμοί των κατασκευαστών μας οδηγούν στην επιλογή μόνο ενός λειτουργικού συστήματος. Ο δεύτερος παράγοντας είναι το εργαλείο με το οποίο θα γίνει η παραγωγή των δύο εφαρμογών Επιλογή Λειτουργικού Συστήματος Η επιλογή του λειτουργικού συστήματος για το οποίο θα υλοποιηθεί η εφαρμογή έχει ως βασικά κριτήρια τα εξής: Διαθέσιμοι πόροι(βιβλιοθήκες, διαθέσιμος κώδικας κ.α.) Γλώσσα προγραμματισμού Ταχύτητα δημιουργίας εφαρμογής 13

23 Κόστος υλοποίησης Δυνατότητες και κόστος δοκιμής Ένα από τα πρώτα εμπόδια που εντοπίστηκαν κατά την έρευνα σχετικά με την επιλογή ήταν το κόστος στην υλοποίηση και μετέπειτα στη δοκιμή της εφαρμογής. ios Συγκεκριμένα, για την υλοποίηση μιας εφαρμογής εκτελέσιμης σε λειτουργικό σύστημα ios απαιτείται η χρήση σταθερού υπολογιστή Intel-based Macintosh και η ετήσια συνδρομη 99 USD η οποία παρέχει το δικαίωμα στο χρήστη να δημιουργεί εφαρμογές(.app) και να τις δοκιμάζει. Windows Phone Για τη δημιουργία μια εφαρμογής τύπου xap δεν απαιτείται κάποια συνδρομη. Εφόσον όμως ο χρήστης επιθυμεί να εκτελέσει την εφαρμογή στη φορητή του συσκευή, απαιτείται η δημιουργία λογαριασμού προγραμματιστή Microsoft η οποία κοστίζει 19 USD ετησίως. Android Σε αντίθεση με τα δύο παραπάνω λειτουργικά, η δημιουργία μιας εφαρμογής για το λειτουργικό σύστημα Android δεν απαιτεί κάποια συνδρομή. Επίσης ο προγραμματιστής μπορεί ελεύθερα να μεταφέρει το αρχείο τύπου apk το οποίο έχει παραχθεί σε οποιαδήποτε συσκευή με λειτουργικό σύστημα Android επιθυμεί χωρίς κάποιο περιορισμό. Για την υλοποίηση των εφαρμογών χρησιμοποιούνται οι παρακάτω γλώσσες προγραμματισμού ανά κατασκευαστή: Android: Java (λειτουργικότητα) / XML (Γραφικό Περιβάλλον) ios: Swift Windows Phone: C#,VB.NET (λειτουργικότητα) / XAML (Γραφικό Περιβάλλον) Το εργαλείο που απαιτείται για τη δημιουργία της εκάστοτε εφαρμογής διαφέρει ανάλογα με το λειτουργικό που επιλέγεται. Στην περίπτωση της Apple χρησιμοποιείται το λογισμικό Xcode IDE το οποίο παρέχεται μόνο σε χρήστες του λειτουργικού συστήματος Macintosh και ισχύουν οι ίδιοι οικονομικοί όροι που προαναφέρθηκαν. Στις άλλες δύο περιπτώσεις, της Microsoft και της Google, τα εργαλεία Visual Studio Community Edition 2015 και Android Studio αντίστοιχα είναι αυτά που χρησιμοποιούνται για την δημιουργία εφαρμογών για τα παραπάνω λειτουργικά συστήματα και παρέχονται δωρεάν. 14

24 Συγκεκριμένα, ο αριθμός των διαθέσιμων εφαρμογών για τα τρία λειτουργικά συστήματα που προαναφέρθηκαν είναι αρκετά μεγάλος. Το λειτουργικό σύστημα Android φτάνει τις εφαρμογές,το κατάστημα της Apple περιέχει περίπου ενώ το αντίστοιχο κατάστημα και της Microsoft βρίσκεται αρκετά χαμηλότερα, στις εφαρμογές(statista, 2016)[13]. Όσον αφορά το κομμάτι της αγοράς το οποίο κατέχει κάθε κατασκευαστής, η Google κατέχει το μεγαλύτερο μέρος φτάνοντας μέσα σε μία επταετία από το 1,6% στο 84,1%, δηλαδή πάνω από τα 4/5 της αγοράς. Ακολουθεί η Apple με 14,8% ενώ τα έξυπνα κινητά τηλέφωνα με λειτουργικό σύστημα της εταιρείας Microsoft βρίσκονται μόλις στο 0,7%(Statista, 2016)[14]. Λόγω των παραπάνω πλεονεκτημάτων, προκύπτει η επιλογή του λειτουργικού συστήματος Android. Οι οικονομικοί περιορισμοί, οι διαθέσιμες βιβλιοθήκες και ο διαθέσιμος κώδικας λόγω του μεγάλου πλήθους εφαρμογών και προγραμματιστών Android εφαρμογών, καθώς και η πρότερη ενασχόληση με τη γλώσσα Java και το λειτουργικό σύστημα Android οδήγησαν στην επιλογή του συγκεκριμένου λειτουργικού συστήματος Επιλογή Εργαλειών Ανάπτυξης Περιβάλλον Ανάπτυξης Native Εφαρμογής Παρότι τα προηγούμενα χρόνια για την ανάπτυξη Android εφαρμογών χρησιμοποιούταν κατά κόρον το περιβάλλον Eclipse, η Google έχοντας αναπτύξει τη δική της πλατφόρμα για δημιουργία εφαρμογών Android από τα τέλη του 2015 διέκοψε την υποστήριξη στο περιβάλλον Eclipse σε ότι σχετίζεται με την ανάπτυξη Android εφαρμογών. Κατά συνέπεια, η χρήση της εφαρμογής Android Studio αποτελεί μονόδρομο για την ολοκληρωμένη υλοποίηση, αποσφαλμάτωση και τον έλεγχο της ανάπτυξης τέτοιων εφαρμογών. Έχοντας φτάσει στην έκδοση (Ιούνιος 2016), η πλατφόρμα παρέχει πλέον μια ολοκληρωμένη λύση για την υλοποίηση πάσης φύσεως εφαρμογών εκτελέσιμων σε λειτουργικό σύστημα Android, είτε μέσω εξομοιωτή, είτε χρησιμοποιώντας μία φυσική συσκευή. Ο εξομοιωτής, καθώς και άλλα απαραίτητα συστατικά μέρη για την ανάπτυξη της εφαρμογής όπως για παράδειγμα βιβλιοθήκες που απαιτούνται, αποτελούν μέρος του SDK του οποίου η εγκατάσταση απαιτείται για τη χρήση του Android Studio και γενικότερα για την υλοποίηση Android εφαρμογών. Περιβάλλον Ανάπτυξης Υβριδικής Εφαρμογής Για την ανάπτυξη της υβριδικής εφαρμογής θα χρησιμοποιηθούν οι γλώσσες HTML5,CSS3 και JavaScript, οι οποίες χρησιμοποιούνται εδώ και αρκετά χρόνια (παλαιότερες εκδόσεις των HTML 15

25 και CSS) για την ανάπτυξη ιστοσελίδων και διαδικτυακών εφαρμογών. Οι τελευταίες εκδόσεις των παραπάνω γλωσσών, μέσω της εύκολης πρόσβασης που παρέχεται πλέον σε βασικά μέρη των κινητών συσκευών όπως είναι για παράδειγμα η κάμερα,οι επαφές και το σύστημα αρχείων, άνοιξαν το δρόμο για περαιτέρω επέκταση της χρήσης τους και οδήγησαν σε αυτό που αποκαλείται υβριδική εφαρμογή. Η ανάπτυξη σε γλώσσες προγραμματισμού διαδικτύου δεν απαιτεί κάποιο εξειδικευμένο περιβάλλον και μπορεί να γίνει ακόμη και σε ένα απλό κειμενογράφο. Για τη διευκόλυνση όμως του προγραμματιστή χρησιμοποιείται κάποιο εξειδικευμένο περιβάλλον έτσι ώστε να επιτευχθεί η γρηγορότερη και ορθότερη υλοποίηση. Υπάρχουν αρκετές εφαρμογές οι οποίες βοηθούν στην υλοποίηση εφαρμογών με τη χρήση αυτών των γλωσσών. Για την παρούσα εργασία επιλέχθηκε η χρήση του περιβάλλοντος WebStorm (έκδοση ) της JetBrains. Οι λόγοι που επιλέχθηκε είναι οι εξής: Κορυφαίο εργαλείο ανάπτυξης για γλώσσες διαδικτύου Μεγάλος όγκος πόρων και πληροφοριών Δωρεάν άδεια πλήρους χρήσης για φοιτητές Εύχρηστο περιβάλλον που βελτιώνει την οργάνωση της εργασίας και επιταχύνει την ανάπτυξή Πρότερη εμπειρία του προγραμματιστή στο συγκεκριμένο εργαλείο Εργαλείο Αποσφαλμάτωσης Native Το εργαλείο το οποίο χρησιμοποιήθηκε για την υλοποίηση της native εφαρμογής παρέχει ένα ενσωματωμένο ολοκληρωμένο σύστημα εντοπισμού σφαλμάτων τόσο κατά τη συγγραφή του κώδικα όσο και κατά την εκτέλεση της εφαρμογής. Εφόσον γίνει ορθή χρήση των απαραίτητων εντολών στη συγγραφή του κώδικα, ο προγραμματιστής μπορεί να έχει μια πλήρη εικόνα των πιθανών λαθών κατά την εκτέλεση της εφαρμογής. Υβριδική Στην περίπτωση της υβριδικής εφαρμογής, μέσω του JavaScript Debugger ο οποίος είναι ο προεπιλεγμένος για την πλατφόρμα WebStorm, παρέχεται η δυνατότητα εντοπισμού συντακτικών λαθών αλλά παράλληλα παρέχονται και προτάσεις με τη μορφή συμβουλών σε περίπτωση που υπάρχει κάποιο λογικό σφάλμα. Κατά την εκτέλεση, σε αυτή την περίπτωση, η αποσφαλμάτωση δε γίνεται μέσω του ίδιου εργαλείου όπως στην περίπτωση της native εφαρμογής. Για την εκτέλεση της εφαρμογής χρησιμοποιήθηκε η πλατφόρμα PhoneGap η οποία έχει ως κινητήρια μηχανή την Cordova για την οποία θα γίνει εκτενέστερη αναφορά στη συνέχεια. 16

26 Για να γίνει εφικτή η αποσφαλμάτωση της εφαρμογής χρησιμοποιήθηκε αρχικά το εργαλείο Weinre το οποίο είναι και αυτό που προτείνεται στην επίσημη τεκμηρίωση του PhoneGap. Ουσιαστικά αποτελεί ένα σύστημα εξυπηρετητή-πελάτη το οποίο θεωρεί ως πελάτη την εφαρμογή. Ο εξυπηρετητής εκτελείται, ως μία τοπική δικτυακή εφαρμογή, σε μία καθορισμένη IP διεύθυνση. Η εφαρμογή-πελάτης, χρησιμοποιώντας τη συγκεκριμένη διεύθυνση, καλεί κατά την εκκίνησή της το σενάριο του εξυπηρετητή ώστε να ξεκινήσει η αποσφαλμάτωση. Εν συνεχεία, ο προγραμματιστής συνδέεται μέσω οποιουδήποτε φυλλομετρητή στο περιβάλλον αποσφαλμάτωσης. Η τεχνολογία αυτή είναι ιδιαίτερα χρήσιμη στην περίπτωση της απομακρυσμένης αποσφαλμάτωσης. Στην πορεία δοκιμάστηκε και η λύση των DevTools τα οποία είναι μέρος του φυλλομετρητή Google Chrome. Το συγκεκριμένο εργαλείο παρέχει ένα πολύ φιλικό και εύχρηστο περιβάλλον για αποσφαλμάτωση εφαρμογών που εκτελούνται πάνω σε WebView. Αποτελεί ένα ολοκληρωμένο σύστημα που παρέχει τη δυνατότητα αποσφαλμάτωσης, ελέγχου της ροής στο δίκτυο και της εφαρμογής κατά μέρη, κονσόλα, έλεγχο του αποθηκευτικού χώρου καθώς και απευθείας επεξεργασία της εμφάνισης ώστε να επιτευχθεί μεγαλύτερη ταχύτητα στην ανάπτυξη. Στην προκειμένη περίπτωση, λόγω δυσκολιών που εντοπίστηκαν κατά την αποσφαλμάτωση του κώδικα όταν η εκτέλεση γινόταν μέσω της πλατφόρμας PhoneGap με τη χρήση του Weinre, επιλέχθηκε το εργαλείο GapDebug της εταιρείας Genuitec το οποία αποτελεί ένα δωρεάν αλλά παράλληλα πλήρες εργαλείο αποσφαλμάτωσης για τοπική αποσφαλμάτωση υβριδικών εφαρμογών δομημένων με τεχνολογίες όπως το Phonegap και η Cordova. Σε σύγκριση με τα DevTools της Google, το GapDebug παρέχει μία πιο σταθερή λύση διευκολύνοντας τον προγραμματιστή στην αποσφαλμάτωση πολλαπλών εφαρμογών και πολλαπλών συσκευών παράλληλα Δομικά Στοιχεία Υβριδικής Εφαρμογής Android WebView Το Android WebView είναι ένα συστατικό του λειτουργικού συστήματος Android το οποίο επιτρέπει στις εφαρμογές Android να εμφανίζουν περιεχόμενο του διαδικτύου απευθείας μέσα σε μία εφαρμογή(bacon, 2015)[15]. Συχνά χρησιμοποιείται ώστε να φορτωθεί περιεχόμενο HTML εντός μίας native εφαρμογής. Παρέχει τη δυνατότητα να παρουσιαστεί μέσω αυτού διαδικτυακό περιεχόμενο χρησιμοποιώντας τεχνολογίες HTML5,JavaScript και CSS (Nizamettin και Nitin, 2013)[2]. Μέχρι την έκδοση 4.4 (KitKat) το WebView αποτελούσε μέρος του ίδιου του λειτουργικού συστήματος και συνεπώς ενημερωνόταν μαζί με αυτό. Για να επιτευχθεί η απεικόνιση χρησιμοποιείται η μηχανή απεικόνισης WebKit η οποία χρησιμοποιείται και σε διάφορους φυλλομετρητές όπως ο Safari και πρό- 17

27 σφατα ο Google Chrome. Το WebKit είναι μία μηχανή απεικόνισης η οποία απεικονίζει ιστοσελίδες εντός παραθύρων και όψεων. Παρέχει επίσης δυνατότητες ανάδρασης με το χρήστη όπως για παράδειγμα το κλικ του χρήστη σε κάποιο σύνδεσμο. Το WebKit αποτελεί πλέον το πρότυπο λειτουργίας για τους φυλλομετρητές των φορητών συσκευών (Nizamettin και Nitin, 2013)[2]. Αρχής γενομένης από την έκδοση 5 του Android (Lollipop) το WebView διαχωρίστηκε από το λειτουργικό σύστημα και διανέμεται πλέον από το κατάστημα εφαρμογών της Google από όπου και ενημερώνεται. Στις παρακάτω εικόνες εμφανίζονται τα στάδια εκτέλεσης για μία native εφαρμογή (Σχήμα 4.1) και μία εφαρμογή που εκτελείται μέσω του WebView (Σχήμα 4.2). Σχήμα 4.1: Ροή εκτέλεσης Native App Σχήμα 4.2: Ροή Εκτέλεσης μέσω WebView Με την εξέλιξη της γλώσσας HTML και της τεχνολογίας των WebViews παράλληλα, έγινε εφικτή η υλοποίηση υβριδικών εφαρμογών ικανών να συναγωνιστούν τις δυνατότητες και τις λειτουργίες των native, για τις οποίες δύο κατηγορίες γίνεται και η συγκεκριμένη εργασία. Δημιουργώντας εφαρμογές σε γλώσσες διαδικτυακού προγραμματισμού ικανές να εκτελεστούν μέσα από ένα φυλλομετρητή και κατά συνέπεια και μέσα από ένα WebView οδηγούμαστε σε ένα ενιαίο τρόπο δημιουργίας εφαρμογών για πολλαπλά λειτουργικά συστήματα και συσκευές. Χρησιμοποιώντας μάλιστα τις δυνατότητες της κάθε συσκευής από πλευράς υλικού, κάτι το οποίο γίνεται εφικτό μέσω της Cordova, είμαστε σε θέση να δημιουργήσουμε εφαρμογές αρκετά κοντά στις native. Apache Cordova/Adobe PhoneGap Η αξιοποίηση του υλικού των φορητών συσκευών, όπως είναι για παράδειγμα η κάμερα ή η ακριβής θέση που παρέχεται μέσω του GPS, επιτυγχάνεται όπως προαναφέρθηκε με τη χρήση μιας μηχανής που ονομάζεται Cordova. Στο σημείο αυτό θα ήταν χρήσιμο να γίνει μια σύντομη αναφορά σε κάποια στοιχεία σχετικά με την Cordova και το πως αυτή συνδέεται με την εφαρμογή PhoneGap της Adobe. Ιστορικά στοιχεία Η Cordova δημιουργήθηκε από την εταιρεία Nitobi η οποία το 2011 εξαγοράστηκε από την Adobe. Με την ονομασία PhoneGap, συνεχίστηκε με σκοπό την εξέλιξή της ως 18

28 εφαρμογή της Adobe και η Cordova παραχωρήθηκε ως λογισμικό ανοιχτού κώδικα στην Apache Software Foundation (ASF)(Offermann και Rios, 2011)[16]. Σχήμα 4.3: Αρχιτεκτονική Εφαρμογής Cordova Λειτουργικότητα Cordova/PhoneGap Η Cordova αποτελεί την κινητήρια δύναμη του ίδιου του PhoneGap. Ουσιαστικά είναι η γέφυρα που ενώνει τη διαδικτυακή εφαρμογή με το υλικό της συσκευής. Κατασκευάζοντας εφαρμογές χρησιμοποιώντας τις γλώσσες HTML5,CSS3 και JavaScript αποτελεί τον μεσάζοντα για τη χρήση της ίδιας εφαρμογής σε πολλαπλές συσκευές και πολλαπλά λειτουργικά συστήματα, δίχως την ανάγκη της υλοποίησης διαφορετικών εφαρμογών. Όπως φαίνεται και στην παραπάνω εικόνα (Σχήμα 4.3), τα μέρη που επικοινωνούν με το WebView είναι αφενός η διαδικτυακή εφαρμογή και αφετέρου τα συστατικά μέρη του πυρήνα της Cordova. Δομείται σε plugins τα οποία χωρίζονται σε δύο κατηγορίες, του πυρήνα (Core Plugins) και άλλων προγραμματιστών/εταιρειών (Custom Plugins) τα οποία δημιουργήθηκαν στη συνέχεια. Με τη χρήση αυτών των προσθέτων επιτυγχάνεται η επικοινωνία της διαδικτυακής εφαρμογής με τα αντίστοιχα δομικά μέρη του λειτουργικού συστήματος. 19

29 Η Cordova έχει παραχωρηθεί ως λογισμικό ανοιχτού κώδικα, όπως αναφέρθηκε και νωρίτερα. Με βάση όμως την Cordova, η εταιρεία συνεχίζει την ανάπτυξη του PhoneGap. Αυτό συνεπάγεται, όπως αναφέρεται στο (LeRoux, 2012)[17], την προσθήκη λειτουργιών της εταιρείας Adobe οι οποίες δε θα υποστηρίζονται από την Cordova αλλά μόνο από το Phonegap, όπως για παράδειγμα το PhoneGap Build και το Adobe Shadow. Με τη χρήση του PhoneGap Build επιτυγχάνεται η απομακρυσμένη ολοκλήρωση της εφαρμογής μέσω του «Νέφους» της εταιρείας. Αυτή είναι ίσως η σημαντικότερη διαφορά μεταξύ Cordova και PhoneGap, τουλάχιστον προς το παρόν. Κάτι τέτοιο δεν απασχολεί τη συγκεκριμένη εργασία, καθώς η ολοκλήρωση και η εκτέλεση της δοκιμαστικής εφαρμογής θα γίνει τοπικά. Συνεπώς, για την παρούσα εργασία, η χρήση της Cordova και του PhoneGap οδηγούν στο ίδιο αποτέλεσμα.για το λόγο αυτό, στο εξής θα αναφερόμαστε και στα δυο ως PhoneGap. Dojo Toolkit Στο διαδίκτυο υπάρχει διαθέσιμος ένας μεγάλος αριθμός εργαλείων και frameworks τα οποία επιταχύνουν και κάνουν ευκολότερη τη δημιουργία JavaScript εφαρμογών. Κάποια από αυτά μάλιστα έχουν δημιουργηθεί έτσι ώστε να καλύπτουν πλήρως τις ανάγκες των προγραμματιστών που κατασκευάζουν εφαρμογές εκτελέσιμες σε διαφορετικά λειτουργικά συστήματα και διαφορετικές οθόνες. Κάποια από αυτά είναι το Ionic, το Mobile Angular,το XDK της Intel, το Sencha Touch και το Dojo Toolkit. Ειδικότερα η εργαλειοθήκη Dojo, η οποία βρίσκεται σήμερα στην έκδοση 1.11 (Αύγουστος 2016), δημιουργήθηκε έτσι ώστε να καλύπτει τις ανάγκες και των δύο μερών ενός προγράμματος, δηλαδή του frontend και του backend. Όπως κάνει φανερό ο David Walsh στο άρθρο του (Walsh, 2012)[18] η παραπάνω εργαλειοθήκη παρέχει μία ολιστική λύση για κάποιον που θέλει να δημιουργήσει με ευκολία μια λειτουργική εφαρμογή JavaScript, εκτελέσιμη και παραμετροποιήσιμη στο μέγιστο ανάλογα με τη συσκευή στην οποία εκτελείται. Παρουσιάζονται παρακάτω εν συντομία οι βασικές καινοτομίες της εργαλειοθήκης Dojo. Χρήση μόνο των απαραίτητων τμημάτων: Με το διαχωρισμό των λειτουργιών σε modules και την κλήση του αντίστοιχου module όταν αυτό είναι απαραίτητο, η εφαρμογή διατηρείται ελαφριά, σταθερή και εύκολη στη συντήρηση. Κλάσεις και επεκτασιμότητα: Παρά το γεγονός πως η JavaScript δεν παρέχει ένα ουσιαστικό σύστημα κλάσεων, η εργαλειοθήκη Dojo με το module dojo/declare παρέχει ένα σύστημα που προσομοιάζει σε μεγάλο βαθμό τη λειτουργικότητα των κλάσεων άλλων γλωσσών προγραμμα- 20

30 τισμού όπως για παράδειγμα η Java. Η επεκτασιμότητα μάλιστα αυτών των κλάσεων, γίνεται πλέον δυνατή με τη χρήση των mixins που επίσης παρέχονται από την εργαλειοθήκη. Μεταφορά από συνάρτηση σε συνάρτηση: Μία αρκετά χρήσιμη δυνατότητα η οποία παρέχεται είναι αυτή της κλήσης συναρτήσεων μετά την ολοκλήρωση μίας άλλης συνάρτησης. Μπορεί έτσι να εξασφαλιστεί η σειριακή κλήση μιας συνάρτησης αλυσιδωτά αμέσως πριν ή μετά την κλήση κάποιας άλλης. Αιτήματα AJAX: Η ασύγχρονη κλήση μιας συνάρτησης και η λήψη αποτελέσματος σε περίπτωση επιτυχίας ή αποτυχίας γίνεται αρκετά ευκολότερη με τη χρήση του module που παρέχεται από την εργαλειοθήκη. Dijit UI Framework & Dojo Mobile: Η εργαλειοθήκη παρέχει ένα αρκετά μεγάλο πλήθος έτοιμων θεμάτων και widgets τα οποία οδηγούν στη δημιουργία μίας καλαίσθητης εφαρμογής ανακουφίζοντας τον προγραμματιστή από τη χρονοβόρα διαδικασία της σχεδίασης custom αρχείων εμφάνισης. Στην ίδια λογική βρίσκεται και το μέρος της εργαλειοθήκης dojox/mobile, του οποίου η κύρια εργασία είναι η βελτιστοποίηση της εμφάνισης των εφαρμογών εστιάζοντας στις εφαρμογές φορητών συσκευών. Παρέχοντας μάλιστα τη λειτουργία της αναγνώρισης συσκευής, η εργαλειοθήκη μπορεί να παραγάγει διαφορετικό γραφικό περιβάλλον ανάλογα με το λειτουργικό σύστημα της συσκευής στην οποία εκτελείται. Σε αντίθεση με άλλα frameworks, ένα ακόμα σημαντικό πλεονέκτημα της εργαλειοθήκης Dojo είναι πως δε βασίζεται στη βιβλιοθήκη jquery. Το δημοφιλές αυτό framework παρέχει μία mobile έκδοση με σκοπό τη χρήση της από προγραμματιστές εφαρμογών φορητών συσκευών, η οποία όμως απαιτεί την συμπερίληψη της βασικής βιβλιοθήκης καθώς και του αρχείου φύλλων ύφους (CSS) της. Πολλές δυνατότητες της jquery παρέχονται και από την εργαλειοθήκη Dojo, εξοικονομώντας έτσι σημαντικό αριθμό πόρων και βελτιώνοντας την ταχύτητα της εφαρμογής. Η πλήρης τεκμηρίωση που παρέχεται μέσω της επίσημης ιστοσελίδας της εργαλειοθήκης και η ορθή διατύπωση της, η πληθώρα παραδειγμάτων για κάθε συστατικό της μέρος καθώς και η μεγάλη γκάμα γραφικών στοιχείων η οποία παρουσιάζει ένα αποτέλεσμα όμοιο με αυτό των native εφαρμογών, οδήγησαν στην επιλογή της ως το βασικό εργαλείο υλοποίησης της υβριδικής εφαρμογής. 21

31 4.1.4 Υλοποίηση Native Εφαρμογής Όπως αναφέρθηκε και σε προηγούμενο κεφάλαιο, για την υλοποίηση της native εφαρμογής Android χρησιμοποιήθηκε το περιβάλλον Android Studio, και συγκεκριμένα η έκδοση Επιλέχθηκε η 5 η έκδοση του λειτουργικού συστήματος Android (Lollipop) ως βασική έκδοση στην οποία θα εκτελεστεί η εφαρμογή. Οι λόγοι που επιλέχθηκε η συγκεκριμένη έκδοση είναι δύο το μεγαλύτερο πλήθος των συσκευών σύμφωνα με τα στατιστικά της Google, χρησιμοποιούν τη συγκεκριμένη έκδοση και η 5 η έκδοση της Cordova η οποία χρησιμοποιήθηκε για την υλοποίηση της υβριδικής εφαρμογής υποστηρίζει τις εκδόσεις 4.0 έως 6.0(API-Levels 14-23). cordova-android Version Supported Android API-Levels 5.X.X X X X Πίνακας 4.1: Υποστηριζόμενες εκδόσεις Android ανά έκδοση Cordova-Android Καθώς η εφαρμογή επιτελεί μία αρκετά ξεκάθαρη εργασία, το γραφικό της περιβάλλον πρέπει να είναι όσο το δυνατόν απλούστερο ώστε να διευκολύνει το χρήστη. Για το λόγο αυτό η εφαρμογή αποτελείται από δύο μενού, (α) το κεντρικό μενού το οποίο περιλαμβάνει ως επιλογές τα τμήματα του πανεπιστημίου και (β) το μενού το οποίο περιλαμβάνει τις υπόλοιπες επιλογές πλην των τμημάτων. Τα δύο αυτά μενού υλοποιούνται από τις κλάσεις MainActivity και GeneralMenuActivity. Γενικότερα, οποιαδήποτε κλάση η οποία αποτελεί γραφικό περιβάλλον της εφαρμογής απαιτείται να εμπεριέχει(extends) τη βασική κλάση Activity σε εφαρμογές παλαιότερων εκδόσεων Android, ενώ πλέον εμπεριέχει κατά κύριο λόγο την κλάση AppCompatActivity η οποία αποτελεί απόγονο της προηγούμενης.συνηθίζεται επίσης, το όνομα κάθε τέτοιας κλάσης να καταλήγει στη λέξη Activity. Επιλέγοντας μία από τις κατηγορίες των παραπάνω μενού, ο χρήστης οδηγείται σε μία λίστα από ανακοινώσεις της κατηγορίας που έχει επιλέξει (NewsListActivity), οι οποίες παρουσιάζονται μέσα σε ένα custom πλαίσιο το οποίο στο κέντρο του εμφανίζει το βασικό τίτλο της ανακοίνωσης ενώ κάτω δεξιά σε κάθε πλαίσιο εμφανίζεται η πλήρης ημερομηνία και ώρα ανάρτησης της ανακοίνωσης. Κατά τη φόρτωση τις λίστας των ανακοινώσεων, εμφανίζεται με τη χρήση της κλάσης ProgressDialog, μήνυμα το οποίο ενημερώνει το χρήστη για τη διαδικασία. Κάθε αντικείμενο οδηγεί το χρήστη που το επιλέγει στην ανάγνωση του πλήρους κειμένου της ανα- 22

64.1% 18.8% 5.9% 5.2% 2.7%

64.1% 18.8% 5.9% 5.2% 2.7% Android (Google) 64.1% ios (Apple) 18.8% Symbian 5.9% BlackBerry (RIM) 5.2% Bada, Windows Phone 2.7% droid va lipse IDE σκευές που υποστηρίζουν droid, HTC handsets, msung, LG, Motorola, tables ww.android.com

Διαβάστε περισσότερα

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): 1. Ο Παγκόσμιος Ιστός (world wide web): a. Ταυτίζεται με το Internet b. Είναι υπηρεσία διαχείρισης και πρόσβασης σε

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

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

Διαβάστε περισσότερα

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές.

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. 13ο ΕΘΝΙΚΟ ΣΥΝΕΔΡΙΟ ΧΑΡΤΟΓΡΑΦΙΑΣ Η ΧΑΡΤΟΓΡΑΦΙΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Διαβάστε περισσότερα

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android Πτυχιακή Εργασία Φοιτητής:

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

Στοιχεία παρουσίασης. Εισαγωγή Θεωρητικό υπόβαθρο Υλοποίηση λογισμικού μέρους συστήματος Συμπεράσματα Μελλοντικές Επεκτάσεις

Στοιχεία παρουσίασης. Εισαγωγή Θεωρητικό υπόβαθρο Υλοποίηση λογισμικού μέρους συστήματος Συμπεράσματα Μελλοντικές Επεκτάσεις ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Σχεδιασμός Πληροφοριακού Συστήματος Καταγραφής μετρήσεων κοινής ωφελείας Υποβοηθούμενο από οπτική αναγνώριση μέσω Κινητού τηλεφώνου Μπούντας Δημήτρης Επιβλέπων Καθηγητής : Δασυγένης

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass. Γνωριμία με την Open eclass

Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass. Γνωριμία με την Open eclass Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass Εισαγωγή στην Open eclass Ταυτότητα της πλατφόρμας Η πλατφόρμα Open eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και

Διαβάστε περισσότερα

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5 A. EVANS, K. MARTIN, M. A. POATSY Εισαγωγή στην πληροφορική Θεωρία και πράξη 2 η έκδοση Κεφάλαιο 5 Λογισμικό συστημάτων: Το λειτουργικό σύστημα, τα βοηθητικά προγράμματα και η διαχείριση αρχείων Τα βασικά

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 3 MULTIPLE CHOICE

ΜΑΘΗΜΑ 3 MULTIPLE CHOICE ΜΑΘΗΜΑ 3 MULTIPLE CHOICE 1. Ποιa από τις πιο κάτω εργασίες είναι λειτουργία του Λειτουργικού Συστήματος; a) Προσθήκη δεδομένων σε ένα υπολογιστικό φύλλο b) Εκπόνηση έκθεσης βάσης δεδομένων c) Διαχείριση

Διαβάστε περισσότερα

Λογισμικό - Προγράμματα

Λογισμικό - Προγράμματα Λογισμικό - Προγράμματα Πρόγραμμα είναι ένα σύνολο εντολών, βάση των οποίων ο υπολογιστής εκτελεί μια συγκεκριμένη εργασία Λογισμικό (Software) Το σύνολο των προγραμμάτων Προγράμματα Προγράμματα συστήματος

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape Επιμέλεια: Γκέκα Ασπασία Ιωάννου Ελένη Κούνουπα Άννα Τμήμα Εφαρμογών Πληροφορικής Α 1 Εξάμηνο Δ.ΙΕΚ Αιγάλεω 1 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

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

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

Διαβάστε περισσότερα

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης Ενότητα: Λειτουργικά Συστήµατα, Συστήµατα Batch και Time Sharing Γεώργιος Σκιάνης Γεωλογίας και Γεωπεριβάλλοντος Σελίδα 2 1. Περιεχόµενα ενότητας...

Διαβάστε περισσότερα

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010 Python και Python και Νίκος Νοδαράκης 17 Μαΐου 2010 Python και Τι είναι το ; Περιγραφή του Ορισµός Το είναι µια στοίβα λογισµικού για ϕορητές συσκευές που περιλαµβάνει ένα λειτουργικό σύστηµα, middleware

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE)

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΣΤΟΧΟΙ: 1. Λογισμικό 2. Λογισμικό Λειτουργικού Συστήματος 3. Προσαρμοστικό Γραφικών Χρήστη 4. Λογισμικών Εφαρμογών 5. Διαφορά Μεταξύ Λογισμικού Λειτουργικού Συστήματος Και

Διαβάστε περισσότερα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

Διαβάστε περισσότερα

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Βιβλιογραφία: Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Προγραμματισμός Android Ian Clifton. AndroidTM User Interface Design, Addison-Wesley, 2013 P. Deitel. H. Deitel, A. Deitel.

Διαβάστε περισσότερα

Πειραιάς S 2 Ε Lab Ιούνιος 2012. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης

Πειραιάς S 2 Ε Lab Ιούνιος 2012. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης Πειραιάς S 2 Ε Lab Ιούνιος 2012 Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης Πνευµατικά δικαιώµατα Τα πνευµατικά δικαιώµατα χρησιµοποίησης του µη πρωτότυπου υλικού της εργασίας ανήκουν στο/στη φοιτητή/-τρια

Διαβάστε περισσότερα

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος Λογισμικό Συστήματος Λογισμικό 2 Λογισμικό Συστήματος Τα ειδικά εργαλεία χρησιμοποιούνται για την ανάπτυξη λογισμικού εφαρμογών και την εκτέλεση βοηθητικών εργασιών. Το λειτουργικό σύστημα (operating system)

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο Τι είναι ένα σύστημα διαχείρισης περιεχομένου; Παρά την μεγάλη εξάπλωση του διαδικτύου και τον ολοένα αυξανόμενο αριθμό ιστοσελίδων, πολλές εταιρείες ή χρήστες δεν είναι εξοικειωμένοι με την τεχνολογία

Διαβάστε περισσότερα

ΠΡΟΛΟΓΟΣ. Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi

ΠΡΟΛΟΓΟΣ. Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi Πίνακας Περιεχομένων ΠΡΟΛΟΓΟΣ V Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi 1η Ενότητα: Κινητός ιστός... vii 2η Ενότητα: Κινητές εφαρμογές στην πλατφόρμα Android... vii 3η Ενότητα:

Διαβάστε περισσότερα

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

Διαβάστε περισσότερα

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Κεφάλαιο 1.6: Συσκευές αποθήκευσης Κεφάλαιο 1.6: Συσκευές αποθήκευσης 1.6.1 Συσκευές αποθήκευσης Μνήμη τυχαίας προσπέλασης - RAM Η μνήμη RAM (Random Access Memory Μνήμη Τυχαίας Προσπέλασης), κρατεί όλη την πληροφορία (δεδομένα και εντολές)

Διαβάστε περισσότερα

ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ

ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ Θεσσαλονίκη, Οκτώβριος 2016 Χριστίνα Δηµητριάδου 1 Διπλωµατική εργασία: ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ Φοιτήτρια: Χριστίνα Δηµητριάδου Επιβλέπων Καθηγητής: Νικόλαος

Διαβάστε περισσότερα

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

Διαβάστε περισσότερα

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

Διαβάστε περισσότερα

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Speed-0 Web and Mobile Platform Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Version Revision History Date Version Description People 5/4/2012 Αρχικές Προδιαγραφές

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης Bread Online Σχεδιασμός και μετατροπή μιας απλής οικιακής συσκευής σε επαναπρογραμματιζόμενη συσκευή IP Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών

Διαβάστε περισσότερα

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets

Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets Διαγραφή από τη λίστα Σε αυτό το τεύχος: Φεβρουάριος 2014 Mobile e-commerce από την Altec Software Mobile e-commerce από την Altec Software Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets Ετήσια

Διαβάστε περισσότερα

ΨΗΦΙΑΚΟΣ ΓΡΑΜΜΑΤΙΣΜΟΣ

ΨΗΦΙΑΚΟΣ ΓΡΑΜΜΑΤΙΣΜΟΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΨΗΦΙΑΚΟΣ ΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 2: Software ΠΑΝΑΓΙΩΤΗΣ ΠΑΝΑΓΙΩΤΙΔΗΣ ΤΜΗΜΑ ΓΑΛΛΙΚΗΣ ΓΛΩΣΣΑΣ ΚΑΙ ΦΙΛΟΛΟΓΙΑΣ Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ 4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ Η εφαρμογή "Υδροληψίες Αττικής" είναι ένα πληροφοριακό σύστημα (αρχιτεκτονικής

Διαβάστε περισσότερα

Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι.

Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι. Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι. Πτυχιιακή Εργασίία Φοιτητής: Δημήτριος Παπαοικονόμου ΑΜ: 36712

Διαβάστε περισσότερα

Information Technology for Business

Information Technology for Business Information Technology for Business Lecturer: N. Kyritsis, MBA, Ph.D. Candidate e-mail: kyritsis@ist.edu.gr Computer System Hardware Υποδομή του Information Technology Υλικό Υπολογιστών (Hardware) Λογισμικό

Διαβάστε περισσότερα

A J A X AJAX Γιάννης Αρβανιτάκης

A J A X AJAX Γιάννης Αρβανιτάκης A J A X AJAX Γιάννης Αρβανιτάκης 04/07/08 AJAX Στην πράξη 2 Autocomplete AJAX Στην πράξη 3 Webmail (google, yahoo) AJAX Στην πράξη 4 Flickr AJAX Στην πράξη 5 Google Docs AJAX Στην πράξη 6 Google maps http://maps.google.com/

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Θεματογράφος (ή ο βοηθός του Καθηγητή)

Θεματογράφος (ή ο βοηθός του Καθηγητή) Θεματογράφος (ή ο βοηθός του Καθηγητή) Τι είναι ο Θεματογράφος; Σύντομη Περιγραφή Ο Θεματογράφος είναι μία εφαρμογή με την οποία ο χρήστης μπορεί εύκολα να δημιουργήσει, να ταξινομήσει και να αποθηκεύσει

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία AtYourService CY : Create a REST API Δημήτρης Χριστοδούλου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών Φορολογική Βιβλιοθήκη Θανάσης Φώτης Προγραμματιστής Εφαρμογών Το έργο Η φορολογική βιβλιοθήκη πρόκειται για ένα έργο που φιλοδοξεί να αποτελέσει σημαντικό βοήθημα για τον επαγγελματία λογιστή και όχι μόνο.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ ΕΡΩΤΗΣΗ 1: Σε ποιες μεγάλες κατηγορίες μπορούμε να χωρίσουμε το Λογισμικό. Μπορούμε να χωρίσουμε το Λογισμικό στις παρακάτω μεγάλες κατηγορίες: στο Λογισμικό Συστήματος (System Software),

Διαβάστε περισσότερα

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college.

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college. Χρήση της Διεπαφής Προγραμματισμού Εφαρμογής Google Maps για τη δημιουργία διαδραστικού χάρτη με τα Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς της ΟΥΝΕΣΚΟ στη Θεσσαλονίκη Εμμανουήλ Τσάμης 1, Κωνσταντίνος

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

Διαβάστε περισσότερα

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

Διαβάστε περισσότερα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

Διαβάστε περισσότερα

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι Παρτώνας Αλέξανδρος Επιβλέπων: Δρ.

Διαβάστε περισσότερα

MULTIPLE CHOICE REVISION: ΜΑΘΗΜΑ 3-4

MULTIPLE CHOICE REVISION: ΜΑΘΗΜΑ 3-4 MULTIPLE CHOICE REVISION: ΜΑΘΗΜΑ 3-4 1. Ποιa από τις πιο κάτω εργασίες είναι λειτουργία του Λειτουργικού Συστήματος; a) Προσθήκη δεδομένων σε ένα υπολογιστικό φύλλο b) Εκπόνηση έκθεσης βάσης δεδομένων

Διαβάστε περισσότερα

Παρουσίαση Θερινού Σχολείου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Παρουσίαση Θερινού Σχολείου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Παρουσίαση Θερινού Σχολείου Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας 2 Στόχος Στόχος Θερινού Σχολείου 3 η εντατική, πρακτική εκπαίδευση των συμμετεχόντων με απώτερο σκοπό τη συμμετοχή τους στη συνεργατική ανάπτυξη Έργου

Διαβάστε περισσότερα

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

Πτυχιακή Εργασία ηµιουργία Εκπαιδευτικού Παιχνιδιού σε Tablets Καλλιγάς ηµήτρης Παναγιώτης Α.Μ.: 1195 Επιβλέπων καθηγητής: ρ. Συρµακέσης Σπύρος ΑΝΤΙΡΡΙΟ 2015 Ευχαριστίες Σ αυτό το σηµείο θα ήθελα να

Διαβάστε περισσότερα

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Τι είναι το υλικό ενός υπολογιστικού συστήματος; Το σύνολο των ηλεκτρονικών και μηχανικών μερών του που έχουν

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

Διαβάστε περισσότερα

economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr Πρόγραμμα Μεταπτυχιακών Σπουδών Διοίκηση και Διαχείριση Έργων

economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr Πρόγραμμα Μεταπτυχιακών Σπουδών Διοίκηση και Διαχείριση Έργων economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr 1 Διοίκηση και Διαχείριση Έργων Τι είναι τα apps H λέξη app είναι μια λέξη που έχει μπει στο λεξικό όλων μας Λογισμικό εφαρμογή Λειτουργεί

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.

Διαβάστε περισσότερα

RobotArmy Περίληψη έργου

RobotArmy Περίληψη έργου RobotArmy Περίληψη έργου Στην σημερινή εποχή η ανάγκη για αυτοματοποίηση πολλών διαδικασιών γίνεται όλο και πιο έντονη. Συνέχεια ακούγονται λέξεις όπως : βελτιστοποίηση ποιότητας ζωής, αυτοματοποίηση στον

Διαβάστε περισσότερα

Σχεδιαστικά Προγράμματα Επίπλου

Σχεδιαστικά Προγράμματα Επίπλου Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ

Διαβάστε περισσότερα

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

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

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

Διαβάστε περισσότερα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Απόδοση των οδηγών αποθηκευτικών µέσων Μέσος χρόνος πρόσβασης (Average Access Time) Ταχύτητα µεταφοράς δεδοµένων (Data-Transfer

Διαβάστε περισσότερα

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Θέμα: «Διαδικτιακές Εφαρμογές Μελέτης Ευχρηστίας»

Θέμα: «Διαδικτιακές Εφαρμογές Μελέτης Ευχρηστίας» Θέμα: «Διαδικτιακές Εφαρμογές Μελέτης Ευχρηστίας» Επιβλέπων: Συρμακέσης Σπύρος e-mail: syrma@teimes.gr τηλ: 26310-XXXXX Στόχος είναι η εκμάθηση εργαλείων ελέγχου ευχρηστίας στο διαδίκτυο. Βιβλιογραφική

Διαβάστε περισσότερα

16PROC

16PROC ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΗΡΑΚΛΕΙΟΥ ΔΗΜΟΣ ΜΑΛΕΒΙΖΙΟΥ Tμήμα ΤΠΕ & Διαφάνειας Πληροφορίες : Μαυροκυουκουλάκη Ελένη ΠΡΟΣ: ΑΔΑΜ: Γάζι, 03/10/2016 Αρ. Πρωτ. : 17891 ERGOMEC PRIVATE COMPANY ERGOMEC P.C. Σιδηρόκαστρο

Διαβάστε περισσότερα

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

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Μεθοδολογίες Ανάπτυξης Συστημάτων Πληροφορικής Απαντούν στα εξής ερωτήματα Ποιά βήματα θα ακολουθηθούν? Με ποιά σειρά? Ποιά τα παραδοτέα και πότε? Επομένως,

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

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

Διαβάστε περισσότερα

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Τι είναι το Wordpress: To Wordpress είναι ένα δωρεάν ανοικτού κώδικα (open source) λογισμικό (εφαρμογή), με το οποίο μπορεί κάποιος να δημιουργεί

Διαβάστε περισσότερα

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

Διαβάστε περισσότερα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εργαλεία CASE Computer Assisted Systems Engineering Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2011-2012 1 Εργαλεία CASE

Διαβάστε περισσότερα

Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker»

Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker» Λειτουργικά Χαρακτηριστικά Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker» Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker» Η εφαρμογή διαχείρισης στόλου οχημάτων RouteTracker δίνει τη δυνατότητα

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Τηλ/νιών Τομέας Προγ/σμού & Τεχνολογίας Λογισμικού Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Δρ. Νικόλαος Θ. Λιόλιος Καθηγητής Φεβρουάριος 2012 1. Εισαγωγή Το Visual

Διαβάστε περισσότερα

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

ΣΤΙΓΜΙΑΙΑ ΚΑΤΑΣΚΕΥΗ ΣΤΕΡΕΟΥ ΜΕΙΓΜΑΤΟΣ ΥΛΙΚΟΥ ΜΕΣΑ ΑΠΟ ΕΛΕΓΧΟΜΕΝΗ ΦΥΣΙΚΗ ΔΙΑΔΙΚΑΣΙΑ Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΣΤΙΓΜΙΑΙΑ ΚΑΤΑΣΚΕΥΗ ΣΤΕΡΕΟΥ ΜΕΙΓΜΑΤΟΣ ΥΛΙΚΟΥ ΜΕΣΑ ΑΠΟ ΕΛΕΓΧΟΜΕΝΗ ΦΥΣΙΚΗ ΔΙΑΔΙΚΑΣΙΑ Χριστόδουλος Χριστοδούλου Λεμεσός, Μάϊος 2017 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

Internet Business Hellas

Internet Business Hellas Internet Business Hellas Περιεχόμενα Εισαγωγή email marketing IBNEWSLETTER Χαρακτηριστικά Πλεονεκτήματα Επικοινωνία Εισαγωγή email marketing «Το μάρκετινγκ μέσω ηλεκτρονικού ταχυδρομείου συνίσταται στην

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

Διαβάστε περισσότερα

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Εισαγωγή H κεντρική μονάδα επεξεργασίας (ΚΜΕ) και η κύρια μνήμη αποτελούν τα βασικά δομικά στοιχεία ενός υπολογιστικού συστήματος. Η πρώτη εκτελεί εντολές χειρισμού δεδομένων

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... xiii

Περιεχόμενα. Πρόλογος... xiii Περιεχόμενα Πρόλογος... xiii Κεφάλαιο 1 ο Εισαγωγή στις τεχνολογίες Διαδικτύου... 1 1.1 Σύντομη ιστορία του Διαδικτύου... 3 1.2 Σύνδεση στο Διαδίκτυο μέσω Παρόχου (ISP)... 6 1.3 Μοντέλα Επικοινωνίας...

Διαβάστε περισσότερα