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

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

Download "ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ Διπλωματική Εργασία του Θωμά Σέγκουλη (ΑΕΜ: 1224) Επιβλέπων Καθηγητής: Ιωάννης Σταμέλος ΘΕΣΣΑΛΟΝΙΚΗ ΙΟΥΛΙΟΣ 2014

2 -ii-

3 Ευχαριστίες Η εκπονηση της εργασιας εγινε στο εργαστηριο Γλωσσων Προγραμματισμου και Τεχνολογιας Λογισμικου (Programming Languages and Software Engineering Laboratory PLaSE Laboratory) του Τμηματος Πληροφορικης του Α.Π.Θ., σε συνεργασια με την ομαδα Τεχνολογιας Λογισμικου (Software Engineering Group SWENG Group), υπο την επιβλεψη του καθηγητη Ιωαννη Σταμελου. Θα ηθελα να τον ευχαριστησω για την υποστηριξη και την εμπιστοσυνη που μου εδειξε ολο αυτο το διαστημα. Θα ηθελα επισης να ευχαριστησω τον Αποστολο Κριτικο για την πολυτιμη βοηθεια του στα προβληματα που παρουσιαστηκαν κατα την εκπονηση της εργασιας αυτης αλλα και για την εμπνευση που μου εδωσε. Τελος θελω να ευχαριστησω την οικογενεια μου αλλα και οσους σταθηκαν διπλα μου ολο αυτο το διαστημα, για την ανυπολογιστη υποστηριξη και υπομονη που μου εδειξαν. -iii-

4 -iv-

5 Περιεχόμενα ΕΥΧΑΡΙΣΤΙΕΣ...IIΙ ΠΕΡΙΕΧΟΜΕΝΑ...V 1 ΕΙΣΑΓΩΓΗ Δομη Εργασιας...I 2 COPE Περιγραφη COPE Επιπεδα COPE Αναλυτες (Analyzers) Εισηγητες Συστατικων (Component Recommenders) Δημιουργοι Συστατικων (Component Makers) Προσαρμογη για Android εργα Σεναριο Χρησης ANDROID DEVELOPMENT Βασικα συστατικα Activities Services Content Providers Broadcast Receivers Ενεργοποιηση βασικων συστατικων Ενεργοποιηση Activities Μεταφορα δεδομενων μεταξυ Activities Ενεργοποιηση Services Αποστολη broadcast γεγονοτων Fragments Κυκλος ζωης ενος Fragment Συμβατοτητα με παλαιοτερες εκδοσεις Android Επικοινωνια των Fragment με την εφαρμογη Android Manifest Υποστηριξη Ποικιλων Οθονων Μετρικες Οθονης v-

6 3.5.2 Σχεδιαση ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΣΥΣΤΑΤΙΚΩΝ Επαναχρησιμοποιησιμα Android συστατικα Αναλυση μεθοδολογιας Βασικα βηματα προσαρμογης Ενσωματωση επαναχρησιμοποιησιμων συστατικων Αναλυση εξαχθεντων συστατικων απο το COPE Database Manager Horizontal ListView Http-Request Handler ImagePager Activity ConfirmDialog + AsyncTask ΑΝΑΠΤΥΞΗ ANDROID ΕΡΓΟΥ Απαιτησεις Σχεδιαση Υλοποιηση ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ ΒΙΒΛΙΟΓΡΑΦΙΑ ΠΑΡΑΡΤΗΜΑ Ι vi-

7 1. ΕΙΣΑΓΩΓΗ Παρα την αλματωδη αναπτυξη της βιομηχανιας εξυπνων κινητων συσκευων (smartphones), βρισκομαστε μολις στο ξεκινημα της. Η ταχυτατη ενσωματωση των συσκευων αυτων, στην καθημερινοτητα των ανθρωπων τα τελευταια χρονια, προμηνυει μεγαλες αλλαγες στην ηδη υπαρχουσα τεχνολογια. Έτσι λοιπον κρινεται αναγκαια η επανεξεταση των ηδη υπαρχοντων μοντελων αναπτυξης λογισμικου, οι οποιες δεν καλυπτουν επαρκως την αναπτυξη εφαρμογων για κινητες συσκευες και μπορει να αποδειχθουν προβληματικες. Οι συνεχεις αλλαγες στην τεχνολογια των κινητων συσκευων πρεπει να μπορουν να διαχειριζονται απο τα επιλεγμενα μοντελα αναπτυξης, προσφεροντας ευελιξια στις απαιτησεις, επαναληπτικες διαδικασιες αναπτυξης καθως και στερεες μεθοδους ελεγχου. Η πτυχιακη αυτη, πραγματευεται τη βελτιστοποιηση των μοντελων αναπτυξης λογισμικου για κινητες συσκευες, εφαρμοζοντας μεθοδους επαναχρησιμοποιησης συστατικων λογισμικου. Η επαναχρησιμοποιηση λογισμικου μπορει να επιταχυνει σε μεγαλο ποσοστο την αναπτυξη εργων, παρεχοντας κωδικα καλυτερης ποιοτητας, κατι που μπορει να ωθησει την αναπτυξη μικροτερων επιχειρησεων και να τις καταστησει ανταγωνισιμες μπροστα σε μεγαλυτερες. 1.1 Δομή Εργασίας Ακολουθει συντομη περιγραφη του περιεχομενου των επομενων κεφαλαιων αυτης της εργασιας: Δεύτερο κεφάλαιο: COPE Σε αυτο το κεφαλαιο μελεταται η διαδικασια εντοπισμου και της εξαγωγης επαναχρησιμοποιησιμων συστατικων Android λογισμικου απο πηγαιο κωδικα ανοικτου λογισμικου κανοντας χρηση του COPE εργαλειου. -1-

8 Τρίτο κεφάλαιο: Android development Περιγραφη του Android συστηματος, αναλυοντας τα βασικα συστατικα του καθως και τροπους υποστηριξης διαφορετικων συσκευων. Τέταρτο κεφάλαιο: Επαναχρησιμοποίηση Συστατικών Στο κεφαλαιο αυτο παρουσιαζονται τα επαναχρησιμοποιησιμα συστατικα λογισμικου που εξηχθησαν με το εργαλειο COPE απο Android κωδικα ανοικτου λογισμικου, οπως επισης και μια μεθοδολογια προσαρμογης και χρησης τους. Πέμπτο κεφάλαιο: Ανάπτυξη Android Έργου Στο κεφαλαιο αυτο, παρουσιαζεται η αναπτυξη ενος Android εργου, ενσωματωνοντας τα επαναχρησιμοποιησιμα συστατικα που παρουσιαστηκαν στο προηγουμενο κεφαλαιο. Έκτο κεφάλαιο: Συμπεράσματα Και Μελλοντική Εργασία Γινεται μια συντομη ανασκοπηση του τι υλοποιηθηκε και τι αποτελει μελλοντικη εργασια, καθως και μια μικρη αναφορα στα προβληματα και στις δυσκολιες που αντιμετωπιστηκαν. -2-

9 2. COPE Η διαδικασια επαναχρησιμοποιησης λογισμικου αποτελειται απο τα εξης τρια βασικα σταδια: Εντοπισμος πιθανων επαναχρησιμοποιησιμων συστατικων Εξαγωγη επαναχρησιμοποιησιμων συστατικων Χρηση επαναχρησιμοποιησιμων συστατικων Σε αυτο το κεφαλαιο γινεται η μελετη του πρωτου και του δευτερου σταδιου, δηλαδη του εντοπισμου και της εξαγωγης επαναχρησιμοποιησιμων συστατικων λογισμικου απο πηγαιο κωδικα ανοικτου λογισμικου (Free/Libre Open Source Software F/LOSS). 2.1 Περιγραφή COPE Η επαναχρησιμοποιηση συστατικων λογισμικου αποτελει ενα πολυ σημαντικο κομματι κατα τη διαδικασια αναπτυξης ενος εργου λογισμικου, αλλα δεν λαμβανει χωρα παντα. Πολλες εταιρειες που παραγουν λογισμικο εχουν υιοθετησει το δικο τους μοντελο επαναχρησιμοποιησης με βαση τις απαιτησεις τους, αλλα κωλυονται στην εφαρμογη του τις περισσοτερες φορες, λογω ελλειψης χρονου, κακου προγραμματισμου η απουσιας βοηθητικων εργαλειων. Στα πλαισια αυτης της πτυχιακης, παρουσιαζεται το COPE περιβαλλον (Component Adaptation Environment), που κυριο στοχο εχει τον ευκολο εντοπισμο και εξαγωγη συστατικων λογισμικου, μεσω των αυτοματων διεργασιων του. Προς το παρον υποστηριζονται μονο Java εφαρμογες, ομως λογω της ουδετεροτητας του μοντελου του, ειναι δυνατη η επεκταση του για την υποστηριξη διαφορετικων γλωσσων προγραμματισμου και τεχνολογιων. To COPE αναπτυχθηκε στα πλαισια του ευρωπαϊκου ερευνητικου εργου OPEN-SME, που εχει ως στοχο την παροχη ετοιμων και αυτονομων συστατικων λογισμικου απο εργα ανοικτου κωδικα (Open Source Software). -3-

10 2.2 Επίπεδα COPE Το COPE ειναι δομημενο σε τρια επιπεδα, τα οποια εκτελουνται ακολουθιακα για την εξαγωγη συστατικων λογισμικου απο τον Μηχανικο Επαναχρησιμοποιησης, το ατομο δηλαδη που ασχολειται με τον εντοπισμο και τη χρηση των συστατικων λογισμικου. Τα επιπεδα αυτα (βλεπε εικονα 2.1) παρουσιαζονται στην συνεχεια. Πριν την δημιουργια του επαναχρησιμοποιησιμου εργου στο COPE, υπαρχει ενα προπαρασκευαστικο σταδιο κατα το οποιο ο Μηχανικος Επαναχρησιμοποιησης συγκεντρωνει ενα συνολο αντικειμενων (artifacts), του υποψηφιου εργου που προκειται να εισαχθει στο COPE. Τα αντικειμενα αυτα ειναι απαραιτητα για την λειτουργια του COPE και εισαγονται σε αυτο σε αρχικο σταδιο κατα τη δημιουργια του επαναχρησιμοποιησιμου εργου. Τα αντικειμενα αυτα ειναι τα εξης: Δυαδικο αρχειο του μεταγλωττισμενου εργου (JAR αρχειο) Εξωτερικες βιβλιοθηκες που χρησιμοποιουνται στο εργο (JAR αρχεια) Προαιρετικα, URL του συστηματος ελεγχου εκδοσης του εργου (Version Control System) -4- Πηγαιος κωδικας του εργου

11 Εικόνα 2.1: Επιπεδα COPE Αναλυτές (Analyzers) Στο αρχικο επιπεδο γινεται η αναλυση του εισαχθεντος στο COPE, εργου και επειτα αποθηκευση των αποτελεσματων στη βαση δεδομενων του COPE. Σε αυτο το σταδιο υποστηριζονται τα ακολουθα: -5-

12 Στατική Ανάλυση Γινεται υπολογισμος διαφορων μετρικων και εξαρτησεων, αναλυοντας τον πηγαιο κωδικα με στατικο τροπο, δηλαδη χωρις να ειναι απαραιτητη η εκτελεση του εργου. Ευρετηρίαση Πηγαίου Αρχείου Δημιουργια ευρετηριου των πηγαιων αρχειων, καταλληλο για αναζητηση ελευθερου κειμενου (free-text searching). Παραγωγή Τεκμηρίωσης Δημιουργια εγγραφου τεκμηριωσης του πηγαιου κωδικα (Javadoc), με επιπλεον UML διαγραμματα για καθε κλαση και πακετο. Δυναμική Ανάλυση Αναλυση του εργου, εκτελωντας δυναμικη αναλυση (δηλαδη εκτελωντας το). Ο Μηχανικος Επαναχρησιμοποιησης χρησιμοποιει δυναμικη αναλυση μετα το σταδιο εξαγωγης του συστατικου, ετσι ωστε να κατανοησει την λειτουργια του, να καθορισει την καλυψη της αναλυσης αυτης, και να το επικυρωσει, κανοντας χρηση τεχνικων ελεγχου, βασιζομενων στο μοντελο. Ανάλυση Ιστορικού Αποθηκευση αλλαγων που συνεβησαν στο ιστορικο αναπτυξης του εργου, για χρηση στα Subversion αποθετηρια (Subversion repositories). Προς το παρον αυτο το χαρακτηριστικο δεν χρησιμοποιειται για την εισηγηση συστατικων, ομως προβλεπεται η χρηση του στο μελλον. Ανάλυση Προτύπων Χρηση τεχνικων ανιχνευσης, οπως για παραδειγμα ανιχνευση του προσαρμογεα (Adapter) η προτυπων σχεδιασης πληρεξουσιου [4], για τον εντοπισμο κλασεων που συμμετεχουν σε προτυπα σχεδιασης. -6-

13 2.2.2 Εισηγητές Συστατικών (Component Recommenders) Αυτο το επιπεδο περιλαμβανει ενα συνολο μεθοδων, οι οποιες ειναι διαθεσιμες αφοτου αναλυθει το εργο απο το COPE, και σκοπος τους ειναι η προταση συσταδων κλασεων, οι οποιες θα μπορουσαν να σχηματισουν ανεξαρτητα συστατικα λογισμικου. Το COPE περιεχει τις εξης μεθοδους για την εισηγηση τετοιων συσταδων κλασεων: Εισηγητής εξάρτησης (Dependencies Recommender) Η μεθοδος αυτη, χρησιμοποιει ενα γενετικο αλγοριθμο για το σχηματισμο συσταδων κλασεων. Εισηγητής προτύπων (Pattern Recommender) Αυτη η μεθοδος σχηματιζει συσταδες κλασεων απο προτυπα σχεδιασης που εντοπιζονται στον πηγαιο κωδικα. Η ανιχνευση και ο εντοπισμος των προτυπων αυτων επιτυγχανεται με τη μεθοδο και τα εργαλεια που περιγραφονται στο [3]. Εισηγητής επαναχρησιμοποίησης (Reusability Recommender) Εξαγαγει και προτεινει μια συσταδα κλασεων, επειτα απο την επιλογη μιας κλασης. Το επαναχρησιμοποιησιμο συστατικο που παραγεται σαν αποτελεσμα αυτης της μεθοδου, θα περιεχει μια διεπαφη των δημοσιων μεθοδων της κλασης αυτης οπως επισης και το συνολο των απαραιτητων κλασεων, απο τις οποιες εξαρταται Δημιουργοί συστατικών (Component Makers) Αυτο το επιπεδο περιλαμβανει τις απαραιτητες μεθοδους για την εξαγωγη επαναχρησιμοποιησιμου συστατικου απο το εργο που εχει εισαχθει στο COPE. Η -7-

14 εξαγωγη μπορει να γινει ειτε επειτα της χρησης ενος εισηγητη συστατικων του προηγουμενου επιπεδου η επιλεγοντας μια κλαση χειροκινητα, η οποια εξαγεται μαζι με τις κλασεις με τις οποιες συσχετιζεται. Υπαρχουν τεσσερις διαθεσιμες μεθοδοι, δημιουργιας συστατικων, στο COPE: Δημιουργός διεπαφής (Interface Maker) Δημιουργια συστατικου επειτα απο την επιλογη μιας κλασης του εργου και προσθεση ολων των εξαρτησεων της. Δημιουργός εξάρτησης (Dependency Maker) Για την δημιουργια του συστατικου, χρησιμοποιει τις συσταδες που παραχθηκαν απο τον Εισηγητη εξαρτησης. Δημιουργός προτύπου προσαρμογέα (Adapter Pattern Maker) Για τη δημιουργια του συστατικου, χρησιμοποιει κλασεις που υλοποιουν το προτυπο σχεδιασης προσαρμογεα (Adapter design pattern). Δημιουργός προτύπου πληρεξούσιου (Proxy Pattern Maker) Για τη δημιουργια του συστατικου, χρησιμοποιει κλασεις που υλοποιουν το προτυπο σχεδιασης πληρεξουσιου (Proxy design pattern). 2.3 Προσαρμογή για Android έργα Όπως αναφερθηκε προηγουμενως, η ροη εργασιων του COPE εργαλειου, εφαρμοζεται για εργα λογισμικου, των οποιων ο πηγαιος κωδικας ειναι γραμμενος σε JAVA. Έτσι ειναι δυνατον να εφαρμοστoυν ολες οι μεθοδοι του COPE, εισαγοντας Android εργα που και αυτα ειναι κωδικοποιημενα σε JAVA. Υπαρχει ομως μια σημαντικη διαφορα για τα Android εργα, καθοτι εκτος απο πηγαιο κωδικα σε JAVA, συμπεριλαμβανουν υποχρεωτικα και αλλα αρχεια (XML για παραδειγμα), που οριζουν την γραφικη διεπαφη χρηστη καθως και αλλους πορους η ρυθμισεις του συστηματος. Οποτε η υπαρξη αυτων των αρχειων προσθετει επιπλεον -8-

15 πολυπλοκοτητα και εξαρτησεις για τον Μηχανικο Επαναχρησιμοποιησης, που ειναι αναγκασμενος να τις συμπεριλαβει στα εξαχθεντα συστατικα. Επισης για Έργα Android δεν ειναι απαραιτητη η υπαρξη ενος αρχειου Interface και συνεπως δεν απαιτειται η δημιουργια ενος τετοιου αρχειου. 2.4 Σενάριο Χρήσης Παρουσιαζεται ενα σεναριο χρησης του COPE, για την εξαγωγη συστατικου απο Android εργο, το οποιο χρησιμοποιειται επειτα στα πλαισια αυτης της πτυχιακης και περιγραφεται στην παραγραφο. Βήμα 1. Δημιουργια νεου εργου επαναχρησιμοποιησης και εισαγωγη απαραιτητων αντικειμενων (artifacts) του Android εργου, ετσι ωστε να ειναι δυνατη η εισαγωγη και αναλυση του. Εικόνα 2.2: Δημιουργια νεου εργου επαναχρησιμοποιησης -9-

16 Βήμα 2. Εκτελεση Στατικης Αναλυσης Εικόνα 2.3: Εκτελεση Στατικης Αναλυσης Βήμα 3. Αποτελεσματα Στατικης Αναλυσης. Στο παραθυρο αυτο παρουσιαζονται ολες οι κλασεις απο τις οποιες μπορουν να προκυψουν επαναχρησιμοποιησιμα συστατικα, καθως και διαφορες μετρικες που προσφερουν επιπλεον πληροφορια σχετικα με την κλαση αυτη καθως και εναν δεικτη επαναχρησιμοποιησης της. Εικόνα 2.4: Αποτελεσματα Στατικης Αναλυσης -10-

17 Βήμα 4. Επιλογη και εξαγωγη συστατικου, επιλεγοντας την κλαση HttpRequest Εικόνα 2.5: Εξαγωγη Επαναχρησιμοποιησιμου Συστατικου Βήμα 5. Εμφανιση φακελου που περιεχει τα επαναχρησιμοποιησιμα συστατικα ενος εργου στο COPE. Στον φακελο generated βρισκεται ο πηγαιος κωδικας των συστατικων και στον φακελο l i b, οι εξωτερικες βιβλιοθηκες (JAR files) που χρησιμοποιηθηκαν κατα της εισαγωγη του εργου. Εικόνα 2.6: Φακελος που περιεχει τα Επαναχρησιμοποιησιμα Συστατικα -11-

18 3. ANDROID DEVELOPMENT Το Αndroid ειναι ενα λειτουργικο συστημα για κινητες συσκευες, βασισμενο σε τροποποιημενο πυρηνα linux. Η αναπτυξη του ξεκινησε το 2005 απο μια νεα ομωνυμη εταιρεια, την Android Inc. και στην συνεχεια αγοραστηκε απο την Google η οποια ειχε μολις εισχωρησει στο πεδιο των εφαρμογων για κινητες συσκευες. Το εργο για την αναπτυξη του Android λειτουργικου συστηματος ονομαζεται Android Open Source Project (AOSP) και καθοδηγειται κυριως απο την Google, η οποια επιθυμει το συστημα να ειναι ανοικτου κωδικα και δωρεαν και ως εκτουτου το διανεμει υπο τους ορους της Apache License, μιας ελευθερης αδειας λογισμικου. Πολλοι κατασκευαστες κινητων συσκευων εκμεταλλευομενοι αυτη τη δυνατοτητα, προσθετουν τις δικες τους ιδιοκτητες επεκτασεις πανω στο Android συστημα και δημιουργουν ενα προσαρμοσμενο στις αναγκες τους οικοσυστημα διεπαφης χρηστη, ωστε να διαφοροποιηθουν απο τους ανταγωνιστες τους. Αυτη η χρηση του Android λειτουργικου συστηματος εδωσε πλεονεκτημα σε πολλες εταιρειες που κατασκευαζουν εξυπνες κινητες συσκευες εναντι της Apple, που κατειχε το μεγαλυτερο μεριδιο της αγορας, αναζωογονωντας τα προϊοντα τους. Η τρεχουσα εκδοση του Android ειναι η 4.4 (KitKat) και η ελαχιστη που υποστηριζεται απο το Google Play Store ειναι η 2.2 (Froyo). Το Android συστημα ειναι δυνατον να ενσωματωθει σε πληθωρα συσκευων περα των εξυπνων κινητων τηλεφωνων και αξιζει να σημειωθει οτι η εκδοση 3.0 (Honeycomb) δημιουργηθηκε και εκδοθηκε εχοντας ως στοχο τη βελτιστη υποστηριξη συσκευων με μεγαλες οθονες και συγκεκριμενα των tablets. Έκδοση Κωδικη ονομασια API Κατανομη 2.2 Froyo 8 0.8% Gingerbread % Ice Cream Sandwich %

19 4.1.x % 4.2.x % % % 4.4 Jelly Bean KitKat Πινακας 3.1: Κατανομη των εγκατεστημενων εκδοσεων Android σε συσκευες, βαση δεδομενων που συλλεχθηκαν μεχρι και τις 4 Ιουνιου, Βασικά συστατικά Η αναπτυξη μιας Αndroid εφαρμογης βασιζεται σε τεσσερα θεμελιωδη συστατικα. Τα συστατικα αυτα παρεχουν τις απαραιτητες διασυνδεσεις με το συστημα, εχοντας καθενα απο αυτα συγκεκριμενο ρολο καθολη τη διαρκεια ζωης της εφαρμογης. Δεν ειναι απαραιτητη η χρηση ολων αυτων των συστατικων σε καθε εφαρμογη και καποια απο αυτα δεν ειναι απαραιτητα για τη διασυνδεση με το χρηστη, ομως καθε ενα απο αυτα εξυπηρετει μοναδικο σκοπο με τον διαφορετικο κυκλο ζωης του Activities Ένα Activity συστατικο αναπαριστα ενα παραθυρο σε μια εφαρμογη και περιεχει τις λειτουργικοτητες που απαιτουνται για τη διεπαφη με το χρηστη. Μια εφαρμογη μπορει να περιεχει μηδεν η παραπανω Activities, ομως ειναι κοινη τακτικη να υπαρχει τουλαχιστον ενα Activity και κυριος σκοπος του ειναι η αλληλεπιδραση με το χρηστη. Απο την στιγμη που πυροδοτειται ενα Activity και εμφανιζεται το αντιστοιχο παραθυρο, ξεκινα και ο κυκλος ζωης του, ο οποιος αποτελειται απο εναν αριθμο σταδιων. Η κατανοηση του κυκλου ζωης ενος Activity ειναι ζωτικης σημασιας για τον προγραμματιστη για την εξασφαλιση της σωστης λειτουργιας της εφαρμογης, που δεν θα ειναι επιρρεπης σε σφαλματα. Οι εφαρμογες για εξυπνα κινητα τηλεφωνα ειναι απο τη φυση τους πιο απαιτητικες συγκριτικα με τις desktop εφαρμογες, καθως οι κινητες συσκευες προσφερουν μια πληθωρα διασυνδεσεων με το χρηστη και ταυτοχρονα εχουν περιορισμενους πορους. Επιπλεον βασικη τους -13-

20 προτεραιοτητα ειναι η ομαλη εμπειρια και πλοηγηση του χρηστη με τις εφαρμογες, και για να επιτευχθει αυτο θα πρεπει να χρησιμοποιουνται τα Activities με συνεση, καταναλωνοντας οσο το δυνατον λιγοτερους πορους και παρεχοντας γρηγορη και σωστη αποκριση επειτα απο ενεργειες του χρηστη. Ένα Activity αποτελει μια θυγατρικη κλαση και για να την χρησιμοποιησουμε ειναι απαραιτητη η δημιουργια μιας κλασης που την κληρονομει. Η θυγατρικη κλαση Activity οριζει ενα συνολο απο μεθοδους οι οποιες αποτελουν γεγονοτα του κυκλου ζωης της. Καθε μεθοδος της ενεργεια Activity πυροδοτειται επειτα απο αλλαγη καταστασης της εφαρμογης. Μια κλαση Activity οριζει τις παρακατω μεθοδους που αντικατοπτριζουν τον κυκλο ζωης της: oncreate() - Καλειται οταν δημιουργειται η Activity onstart() - Καλειται οταν η Activity γινεται ορατη στον χρηστη onresume() - Καλειται οταν η Activity ξεκινα την αλληλεπιδραση με το χρηστη onpause() - Καλειται οταν η Activity περνα στο παρασκηνιο η αναστελλεται onstop() - Καλειται οταν η Activity δεν ειναι πλεον ορατη στο χρηστη ondestroy Καλειται πριν η Activity καταστραφει, ειτε λογω συμπεριφορας του προγραμματος η απο το συστημα προσπαθωντας να εξοικονομησει μνημη onrestart Καλειται οταν μια Activity εχει σταματησει (μετα την κληση onstop()) και κανει επανεκκινηση Ακολουθει διαγραμμα καταστασεων που αναπαριστα τον κυκλο ζωης μιας Activity παρουσιαζοντας την ακολουθια κλησεων των γεγονοτων. -14-

21 Εικόνα 3.1: Κυκλος ζωης μιας Activity κλασης Services Ένα Service ειναι ενα συστατικο που χρησιμοποιειται για εκτελεση στο παρασκηνιο της εφαρμογης χωρις αμεση αλληλεπιδραση με την διεπαφη χρηστη. Επομενως δεν συσχετιζεται με τον κυκλο ζωης της εφαρμογης και την εκτελεση μιας Activity που περιγραφηκε στην προηγουμενη παραγραφο. Σκοπος του ειναι η εκτελεση εργασιων που απαιτουν μεγαλο χρονικο διαστημα διεκπεραιωσης οπως για παραδειγμα προσβαση σε web-services η μεταφορα δεδομενων απο και προς τη βαση δεδομενων. Τα Services εχουν μεγαλυτερη προτεραιοτητα συγκριτικα με ανενεργα Activities και επομενως ειναι λιγοτερο πιθανο να τερματιστουν απο το Android -15-

22 συστημα, που επιδιωκει να διατηρει στην κυρια μνημη μονο τις απαραιτητες διεργασιες για τον χρηστη. Σε περιπτωση που καποιο Service τερματιστει απο το συστημα, ειναι δυνατη η επαναφορα του οταν βρεθουν διαθεσιμοι ποροι για την εκτελεση του, με τον ιδιο τροπο που καλειται η OnRestart() μεθοδος στα Activities, για επανεκκινηση τους. Τα Services εκτελουνται στην ιδια διεργασια με το κυριως νημα της εφαρμογης, ως εκ τουτου θα μπορουσαν να υπερφορτωσουν την λειτουργια της και να προκαλεσουν καθυστερησεις στην αλληλεπιδραση με τον χρηστη. Επομενως συνισταται η χρηση μεθοδων ασυγχρονης εκτελεσης σε ξεχωριστο νημα και εμφανιση καταλληλης ειδοποιησης προς τον χρηστη οταν το Service τελειωσει την διεργασια του, στο κυριως νημα της εφαρμογης. Υπαρχουν διαφοροι τροποι ασυγχρονης εκτελεσης διεργασιων σε παραλληλο νημα απο το κυριως της εφαρμογης, στο Android συστημα και θα αναλυθουν σε επομενο κεφαλαιο. Η δημιουργια δικης μας υλοποιησης ενος Service, ειναι δυνατη και γινεται κληρονομωντας την θυγατρικη κλαση Service η την IntentService. Ο κυκλος ζωης ενος Service συστατικου, μπορει να ακολουθησει δυο μονοπατια, τα οποια σχετιζονται με το βαθμο ανεξαρτησιας του σε σχεση με τα συστατικα που το πυροδοτησαν. Οι δυο μορφες που μπορει να παρει ενα Service ειναι οι εξης: Started Service Το Service συστατικο δημιουργειται οταν καποιο αλλο συστατικο (ενα Activity) καλει την startservice() μεθοδο. Σε αυτην την περιπτωση το Service εκτελειται επ 'αοριστον στο παρασκηνιο και ειναι το ιδιο υπευθυνο για τον τερματισμο του, καλωντας την stopself() μεθοδο. Ειναι δυνατον να τερματιστει απο αλλο συστατικο οταν αυτο καλει την stopservice() μεθοδο. Ειναι ομως ειναι συνηθες να εκτελει μια λειτουργια ανεξαρτητα απο το συστατικο που το καλεσε, χωρις την επιστροφη αποτελεσματος. Όταν το Service σταματησει τη λειτουργια του, το συστημα το καταστρεφει. Bound Service Το Service αυτο δημιουργειται οταν καποιο αλλο συστατικο, ονομαζομενο client καλει την bindservice() μεθοδο. Ένα bound Service προσφερει client-server διεπαφη -16-

23 η οποια επιτρεπει την αλληλεπιδραση με αλλα συστατικα, δινοντας τους τη δυνατοτητα να στελνουν requests, να παιρνουν αποτελεσματα, οπως επισης να το επιτυγχανουν αυτο διαμεσου διαφορετικων διεργασιων με ενδοεπικοινωνια (IPC). Ένα bound Service εκτελειτε οσο ενα αλλο συστατικο, client ειναι δεμενο μαζι του και το οποιο μπορει να τερματισει την επικοινωνια, καλωντας την unbindservice() μεθοδο. Πολλαπλα συστατικα, clients, μπορουν να ειναι δεμενα την ιδια χρονικη στιγμη με το Service συστατικο, το οποιο καταστρεφεται οταν ολα αυτα αποδεσμευτουν. Μια κλαση Service οριζει τα παρακατω γεγονοτα που αντικατοπτριζουν τον κυκλο ζωης της: onstartcommand() - Καλειται οταν ενα αλλο συστατικο, οπως ενα Activity, πυροδοτει το Service, με την startservice() μεθοδο και ξεκινα τη λειτουργια του. Για τις Bounded Services δεν ειναι απαραιτητη η υλοποιηση αυτης της μεθοδου. onbind() - Καλειται οταν ενα συστατικο δενεται(bind) με το Service καλωντας την bindservice() μεθοδο(π.χ.για την εκτελεση RPC). Για την υλοποιηση αυτης της μεθοδου ειναι απαραιτητη η παροχη μιας διεπαφης, για την επικοινωνια clientservice, επιστρεφοντας μια IΒinder παραμετρο. οncreate() - Καλειται κατα τη δημιουργια του Service συστατικου. ondestroy() - Καλειται κατα τον τερματισμο του Service συστατικου. Ακολουθει διαγραμμα καταστασεων που αναπαριστα τον κυκλο ζωης ενος Started Service και ενος Bound Service παρουσιαζοντας την ακολουθια κλησεων των γεγονοτων. -17-

24 Εικόνα 3.2: Κυκλος ζωης μιας Service κλασης Content Providers Ένα Content Provider συστατικο οριζει μια δομημενη διεπαφη για την προσβαση σε δεδομενα της εφαρμογης και μπορει να χρησιμοποιηθει για τον διαμερισμο δεδομενων με αλλες εφαρμογες. Συχνα χρησιμοποιειται σε συνδυασμο με την SQLite βαση δεδομενων που παρεχεται απο το Android συστημα. Μια SQLite βαση δεδομενων αποθηκευει δεδομενα που παρεχονται απο ενα Content Provider. Η προσβαση σε δεδομενα διαμεσου του Content Provider επιτυγχανεται με χρηση του ContentResolver αντικειμενου μεσα στην εφαρμογη. Το ContentResolver αντικειμενο επικοινωνει με το αντικειμενο του Provider, ενα στιγμιοτυπο της κλασης που υλοποιει το Content Provider συστατικο. Το Provider αντικειμενο λαμβανει αιτησεις για αποστολη δεδομενων απο clients, εκτελει την απαιτουμενη -18-

25 ενεργεια και επιστρεφει τα αποτελεσματα. Εικόνα 3.3: Content Provider Broadcast Receivers Ένα Broadcast Receiver (Receiver) συστατικο, χρησιμοποιειται για τη ληψη και τον χειρισμο γεγονοτων του συστηματος η της εφαρμογης. Για την ληψη ενος γεγονοτος, ειναι απαραιτητο να δηλωσει αρχικα ο Receiver οτι το προσμενει. Τη στιγμη που θα συμβει το γεγονος, αυτοματα στελνεται ειδοποιηση απο το Android συστημα σε ολους τους Receiver που εχουν δηλωθει για αυτο και περιμενουν να ενημερωθουν. Ένα Receiver συστατικο δηλωνεται αρχικα στο AndroidManifest.XML αρχειο και επειτα περιμενει στο παρασκηνιο, ανενεργο, μεχρι να συμβει το γεγονος που προσμενει, επειτα να ξεκινησει τη λειτουργια του και να το χειριστει. Η δημιουργια δικης μας υλοποιησης ενος Broadcast Receiver, ειναι δυνατη και γινεται κληρονομωντας την θυγατρικη κλαση BroadcastReceiver η μια απο τις υποκλασεις της, που παρεχονται απο το Android συστημα και προσφερουν προσθετες λειτουργικοτητες αναλογως το πεδιο εφαρμογης, οι οποιες ειναι οι εξης: -19-

26 AppWidgetProvider, DeviceAdminReceiver, WakefulBroadcastReceiver. Το Broadcast Receiver συστατικο ειναι ενεργο μονο κατα τη διαρκεια κλησης της onreceive(context, Intent) μεθοδου του, η οποια καλειται οταν ληφθει το γεγονος για το οποιο ειχε δηλωθει. Σε αυτο το χρονικο διαστημα που ειναι ενεργο, ειναι δυνατον να χρησιμοποιηθουν και οι υπολοιπες μεθοδοι του συστατικου αυτου ωστε να εμφανιστει και να επεξεργαστει το αποτελεσμα που ληφθηκε. Κατα τη διαρκεια που ο Broadcast Receiver εκτελειται στο κυριως νημα της εφαρμογης, δεν επιτρεπεται η εναρξη χρονοβορων διεργασιων απο αυτον, διοτι το συστημα επιτρεπει ενα παραθυρο δεκα δευτερολεπτων για την ολοκληρωση του, μετα το οποιο ειναι πιθανον αυτος να τερματιστει. Σαν παραδειγμα ακολουθει μια υλοποιηση ενος Broadcast Receiver που χρησιμοποιειται για την υποδοχη Notification απο τον GCM (Google Cloud Messaging) διακομιστη. public class GcmBroadcastReceiver extends WakefulBroadcastReceiver public void onreceive(context context, Intent intent) { // Explicitly specify that GcmIntentService will handle the intent. ComponentName comp = new ComponentName(context.getPackageName(),GcmIntentService.class.getName()); // Start the service, keeping the device awake while it is launching. startwakefulservice(context, (intent.setcomponent(comp))); setresultcode(activity.result_ok); } } Σε αυτο το παραδειγμα γινεται χρηση της WakefulBroadcastReceiver κλασης. Αυτη αποτελει μια υποκλαση της θυγατρικης BroadcastReceiver οπως αναφερθηκε προηγουμενως και λαμβανει γεγονοτα αφυπνισης συσκευης (device wakeup event). Όταν λαβει το γεγονος θετει σε λειτουργια ενα Service συστατικο το οποιο αναλαμβανει τη διεκπεραιωση μιας διεργασιας. Σημαντικο χαρακτηριστικο ενος WakefulBroadcastReceiver ειναι οτι δεν επιτρεπει την συσκευη να κλειδωσει, -20-

27 περνωντας σε ανενεργη κατασταση (sleep), κατα τη διαρκεια της λειτουργιας του, δηλαδη ενω καλει το Service συστατικο. Η εναρξη λειτουργιας του Service γινεται με κληση της μεθοδου startwakefulservice(context context, Intent intent) με περασμα των εξης παραμετρων: Context Αποτελει την διεπαφη που παρεχει καθολικες πληροφοριες σχετικα με το περιβαλλον αναπτυξης της εφαρμογης. Intent Ένα Intent συστατικο ειναι μια αφαιρετικη περιγραφη μιας διεργασιας που προκειται να εκτελεστει. Χρησιμοποιειται κυριως για την πυροδοτηση Activity και Service συστατικων. Όταν το Service ολοκληρωσει τη διεργασια που εκτελει, επιτρεπει στην συσκευη να μπορει να κλειδωσει (sleep) καλωντας τη συναρτηση completewakefulintent(intent). Η Intent παραμετρος ειναι η ιδια Intent που περασε αρχικα στο Service o WakefulBroadcastReceiver. Για να ξεκινησει ο κυκλος ζωης του παραπανω Receiver, ειναι απαραιτητο να εχει δηλωθει προηγουμενως στο AndroidManifest.XML αρχειο οπως παρουσιαζεται στο κομματι κωδικα που ακολουθει. <receiver Android:name="pushNotification.GcmBroadcastReceiver" Android:permission="com.google.Android.c2dm.permission.SEND" > <intent-filter> <action Android:name="com.google.Android.c2dm.intent.RECEIVE"/> <category Android:name="net.testproject.test" /> </intent-filter> </receiver> -21-

28 3.2 Ενεργοποίηση βασικών συστατικών Τα βασικα συστατικα του Android συστηματος (εκτος των content providers), οπως περιγραφηκαν παραπανω ενεργοποιουνται με τη χρηση μιας διεπαφης που ονομαζεται intent. Οι intent διεπαφες αποτελουν ουσιαστικα, ασυγχρονα μηνυματα τα οποια συγχρονιζουν και ενεργοποιουν τα αυτονομα βασικα συστατικα μιας εφαρμογης, σε χρονο εκτελεσης. Μπορουν να χαρακτηριστουν σαν διαβιβαστες μηνυματων που αιτουνται ενεργειες αλλων συστατικων. Επισης εχουν τη δυνατοτητα κλησης λειτουργιων συστατικων απο εξωτερικες εφαρμογες. Υπαρχουν δυο τυποι intents: Explicit intents (σαφείς intents) Τα intent συστατικα αυτου του τυπου προσδιοριζουν το συστατικο που προκειται να ενεργοποιηθει, παρεχοντας το ονομα του, οπως καθοριζεται απο το ονομα της κλασης του. Συνηθως χρησιμοποιειται για την ενεργοποιηση συστατικων εντος της εφαρμογης, γνωριζοντας το ονομα της κλασης που επιθυμουμε να καλεσουμε. Implicit intents (υπονοούμενοι intents) Τα intent συστατικα αυτου του τυπου δεν προσδιοριζουν με συγκεκριμενο τροπο το συστατικο που προκειται να ενεργοποιηθει με το ονομα του, αλλα δηλωνουν γενικα μια ενεργεια προς εκτελεση. Με αυτον τον τροπο επιτρεπεται η κληση ενος συστατικου εξωτερικης εφαρμογης, ωστε να διαχειριστει την επιθυμητη ενεργεια Ενεργοποίηση Activities Υπαρχουν δυο τροποι με τους οποιους μπορουμε να ενεργοποιησουμε Activities μεσω Intents και αυτοι αντικατοπτριζονται στις εξης δυο μεθοδους: -22-

29 startactivity(intent intent, Bundle options) ή startactivity(intent intent) Πυροδοτει ενα νεο Activity χωρις την επιστροφη πληροφοριας οταν αυτη τερματιστει. Παράμετροι intent: Η διεπαφη που παρεχει περιγραφη της υποψηφιας για εκτελεση Activity. options(προαιρετική): Επιπλεον πληροφοριες που καθοριζουν τον τροπο εναρξης του Activity. startactivityforresult(intent intent, int requestcode) ή startactivityforresult(intent intent, int requestcode, Bundle options) Πυροδοτει ενα νεο Activity για το οποιο επιστρεφει πληροφορια σαν αποτελεσμα τερματισμου της λειτουργιας του. Παράμετροι intent: Η διεπαφη που παρεχει περιγραφη της υποψηφιας για εκτελεση Activity. requestcode: Ακεραια τιμη, η οποια αν ειναι μεγαλυτερη η ιση του μηδενος, θα επιστραφει αποτελεσμα μολις τερματιστει η καλουμενη Activity. options (προαιρετική): Επιπλεον πληροφοριες που καθοριζουν τον τροπο εναρξης του Activity. -23-

30 Εικόνα 3.4: Ενεργοποιηση Activity με χρηση ενος intent. Πηγή: Στην εικονα 3.5 παρουσιαζεται διαγραμματικα η εκκινηση ενος Activity συστατικου απο ενα αλλο, με χρηση ενος intent. Στο διαγραμμα αυτο γινεται κατανοητη η λειτουργια ενος intent καθως και τα σταδια απο τα οποια περναει μεσα στο συστημα. Αρχικα το Activity A δημιουργει ενα intent, οριζοντας την ενεργεια που θα εκπληρωσει αυτο, και στη συνεχεια καλει την startactivity() μεθοδο περνωντας το intent σαν παραμετρο. Στη συνεχεια το Android συστημα αναζητει σε ολες τις εφαρμογες ενα intent που να ταιριαζει με αυτο που καλειται ελεγχοντας τα φιλτρα. Τελος το συστημα πυροδοτει το καταλληλο Activity συστατικο (Activity B) καλωντας την oncreate() μεθοδο του και περνωντας σαν παραμετρο το αρχικο intent. -24-

31 Εικόνα 3.5: Απεικονιση χρησης ενος explicit intent για την ενεργοποιηση ενος νεου Activity συστατικου Πηγή: Μεταφορά δεδομένων μεταξύ Activities Η μεταφορα δεδομενων αναμεσα σε Activities επιτυγχανεται ξανα με τη χρηση των intents. Οι intent διεπαφες μπορουν να περιεχουν επιπλεον δεδομενα, τα οποια μεταφερονται στο νεο Activity που ενεργοποιειται και μπορουν να εξαχθουν, χρησιμοποιωντας τις καταλληλες μεθοδους. Για την εισαγωγη δεδομενων καλειται η putextra() μεθοδος του intent αντικειμενου η οποια περιεχει δυο παραμετρους, που αντιπροσωπευουν ενα ζευγος κλειδιου/τιμης. Το κλειδι ειναι παντα τυπου String και αποτελει το αναγνωριστικο του δεδομενου που μεταφερεται. Η τιμη αποτελει την τιμη του δεδομενου το οποιο μπορει να ειναι πρωταρχικος τυπος δεδομενων (int, float, ) οπως επισης αντικειμενο τυπου String, Bundle, Parceable και Serializable. Έτσι δινεται η δυνατοτητα μεταφορας, ακομα και αντικειμενου αναμεσα σε Activities, με την προϋποθεση οτι η κλαση του αντικειμενου αυτου υλοποιει την αφηρημενη κλαση, Serializable. Το Activity συστατικο που καλειται μεσω ενος intent, μπορει να αποκτησει προσβαση στις πληροφοριες που μεταφερει αυτο καλωντας τις μεθοδους getaction() -25-

32 και getdata() του intent αντικειμενου. Το intent αντικειμενο λαμβανεται μεσω της getintent() μεθοδου. Όσο αφορα τα επιπλεον δεδομενα που εχουν σταλει μεσω της putextra() μεθοδου, μπορουν να ληφθουν απο το νεο Activity με την getintent().getextras() μεθοδο. Ακολουθει ενα κομματι κωδικα, σαν παραδειγμα, παρουσιαζοντας την ενεργοποιηση ενος Activity απο ενα αλλο, τη μεταφορα ενος πινακα απο αλφαριθμητικα (String), με χρηση της putextra() μεθοδου, καθως και τη ληψη και τον χειρισμο των δεδομενων απο το νεο Activity. Μεσα σε ενα Activity πυροδοτειται ενα νεο Activity, με ονομα PagerActivity κανοντας χρηση της intent διεπαφης και στελνοντας επιπλεον δεδομενα με την putextra() μεθοδο. Τα επιπλεον δεδομενα (fetchedimages), ειναι ενας πινακας αλφαριθμητικων, τα οποια απαιτουνται για την λειτουργια του νεου Activity και αντιστοιχουν στο κλειδι, Extra.IMAGES. Intent intent = new Intent(this, ImagePagerActivity.class); intent.putextra(extra.images, fetchedimages); startactivity(intent); Στο παρακατω κομματι κωδικα γινεται η ληψη των επιπλεον δεδομενων (πινακας αλφαριθμητικων) απο το μολις ενεργοποιημενο Activity, PagerActivity και αποθηκευση τους σε τοπικη μεταβλητη. Η διαχειριση των δεδομενων που μεταφερονται απο το intent συστατικο, λαμβανει χωρα στην oncreate() μεθοδο του νεου Activity, η οποια οπως αναφερθηκε σε προηγουμενη παραγραφο καλειται κατα την δημιουργια του και ειναι το καταλληλο σημειο. Bundle bundle = getintent().getextras(); assert bundle!= null; String[] imageurls = bundle.getstringarray(extra.images); -26-

33 3.2.3 Ενεργοποίηση Services Ένα Service συστατικο, οπως περιγραφηκε σε προηγουμενη παραγραφο, εκτελει διεργασιες στο παρασκηνιο της εφαρμογης και δεν παρεχει διασυνδεση με τη διεπαφη χρηστη. Ένα Service ενεργοποιειται, καλωντας την startservice() μεθοδο και περνωντας ενα intent συστατικο ως παραμετρο. Στην περιπτωση που υλοποιειται client-server διεπαφη με το Service, τοτε μπορει να δεθει (bind) με το συστατικο που το ενεργοποιει καλωντας την bindservice() μεθοδο και περνωντας ενα intent συστατικο σαν παραμετρο Αποστολή broadcast γεγονότων Ένα Broadcast Receiver συστατικο, οπως περιγραφηκε παραπανω χρησιμοποιειται για τη ληψη και τον χειρισμο broadcast γεγονοτων του συστηματος η της εφαρμογης. Η αποστολη ενος broadcast μηνυματος προς αλλες εφαρμογες απο ενα Activity γινεται περνωντας ενα intent συστατικο σαν παραμετρο σε μια απο τις ακολουθες μεθοδους: sendbroadcast(intent intent) Αποστολη broadcast της intent παραμετρου προς ολους τους Receivers που εχουν δηλωθει για το συγκεκριμενο γεγονος. Η κληση αυτης της μεθοδου ειναι ασυγχρονη και επιστρεφει αμεσα αποτελεσμα. Ενω εχει ολοκληρωθει η κληση της και η εκτελεση της εφαρμογης συνεχιζει, οι αντιστοιχοι Receivers εκτελουνται ταυτοχρονα. Δεν ειναι δυνατη η επιστροφη καποιας αναφορας απο τους Receivers, σχετικα με τη ληψη του γεγονοτος και επισης αυτοι δεν μπορουν να ματαιωσουν την broadcast μεταδοση. SendOrderedBroadcast(Intent intent, String receiverpermission) Αποστολη broadcast της intent παραμετρου προς ολους τους Receivers που -27-

34 εχουν δηλωθει για το συγκεκριμενο γεγονος. Με αυτη τη μεθοδο εξυπηρετειται ενας απο τους Receivers καθε στιγμη, ετσι ωστε να επιτραπει σε αυτους που εχουν μεγαλυτερη βαρυτητα να καταναλωσουν το μεταδιδομενο μηνυμα πριν αυτο αποσταλει σε λιγοτερο σημαντικους Receivers. Η κληση αυτης της μεθοδου ειναι ασυγχρονη, επιστρεφει αμεσα αποτελεσμα και η εκτελεση της εφαρμογης, που διεκπεραιωσε την μεταδοση, συνεχιζει ταυτοχρονα με αυτη των Receivers. Η receiverpermission παραμετρος ειναι προαιρετικη και σκοπος της ειναι να επιβαλει περιορισμο στις επιτρεπομενες αδειες (permissions) που θα πρεπει να δηλωνει ο Receiver στο AndroidManifest.XML αρχειο. sendstickybroadcast(intent intent) Παρεχει την ιδια λειτουργικοτητα με την sendbroadcast(intent) μεθοδο, με τη διαφορα οτι η διαρκεια ζωης της intent παραμετρου συμπιπτει με αυτη του Receiver, περιμενοντας να ολοκληρωθει η broadcast μεταδοση. Με αυτον τον τροπο ο αποστολεας ενος γεγονοτος, που την καλει, μπορει να εχει τη δυνατοτητα ληψης αποτελεσματος, μεσω της registerreceiver(broadcastreceiver, IntentFilter) μεθοδου, οταν εχει ολοκληρωθει η brοadcast αποστολη. -28-

35 3.3 Fragments Ένα Fragment συστατικο, παρομοια με ενα Activity, παρεχει λειτουργικοτητα που σχετιζεται με τη διεπαφη του χρηστη. Έχει πολλες ομοιοτητες με ενα Activity, ομως αποτελει ενα ανεξαρτητο και ευκολα επαναχρησιμοποιησιμο συστατικο, το οποιο περιλαμβανεται μεσα σε ενα Activity. Ένα Activity μπορει να αποτελειται απο ενα συνολο απο Fragments που συνδυαζονται μεταξυ τους, συνθετοντας τη συνολικη διεπαφη του, δημιουργωντας ετσι μια αρθρωτη σχεδιαση. Παρομοιαζοντας ενα Activity με ενα puzzle, τα Fragments αποτελουν τα διαφορα κομματια που το συνθετουν. Καθε Fragment εχει το δικο του κυκλο ζωης, την δικια του αναπαρασταση μιας διεπαφης, λειτουργει σαν αυτονομος δεκτης γεγονοτων και μπορει να προστεθει η να αφαιρεθει σε ενα Activity ενω αυτο εκτελειται. Ο κυκλος ζωης ενος Fragment ειναι αμεσα συνδεδεμενος με τον κυκλο ζωης του Activity που το φιλοξενει και ειναι υποχρεωτικη απαιτηση να ειναι το Fragment ενσωματωμενο σε αυτο. Για παραδειγμα οταν ενα Activity περναει σε αδρανη κατασταση (paused) η τερματιστει, το ιδιο συμβαινει και στα Fragments που περιεχει. Ωστοσο, κατα τη διαρκεια εκτελεσης ενος Activity, υπαρχει η δυνατοτητα να χειριστουμε το καθε Fragment ξεχωριστα, αλλαζοντας την κατασταση λειτουργιας του. Ο χειρισμος των Fragment απο την θυγατρικη Activity επιτυγχανεται με τη χρηση μιας διεπαφης που παρεχεται απο το συστημα, την FragmentManager. Αυτη η διεπαφη επιτρεπει την αλληλεπιδραση των Activities με τα ενσωματωμενα σε αυτα Fragments. Δεν ειναι τυχαιο που η λογικη των Fragments παρουσιαστηκε στην εκδοση 3.0 του Android συστηματος με την ονομασια HoneyComb, που δημιουργηθηκε αποκλειστικα για χρηση σε συσκευες με μεγαλες οθονες (tablets). Χρησιμοποιουνται κυριως για την υποστηριξη μιας δυναμικης και ευελικτης διεπαφης χρηστη κατι που συμβαδιζει με τον τροπο σχεδιασης συστηματων με μεγαλες οθονες. Σχεδιαζοντας ενα αρθρωτο συστημα αποτελουμενο απο μικροτερες και αυτονομες οντοτητες, που αναλαμβανουν τη διαχειριση της διεπαφης με τον χρηστη, ελαχιστοποιειται η πολυπλοκοτητα του συνολικου συστηματος. Επισης καθισταται δυνατη η επαναχρησιμοποιηση συστατικων λογισμικου, που αποτελει κυριο θεμα αυτης της εργασιας. Ειναι σημαντικο κατα τη σχεδιαση του συστηματος, να υλοποιουνται τα Fragments συστατικα ως αυτονομες και επαναχρησιμοποιησιμες -29-

36 μοναδες, εκτελωντας το καθε ενα ως μια ανεξαρτητη διεργασια. Αυτο ειναι επιθυμητο διοτι καθε Fragment οριζει τη δικη του διεπαφη, οπως επισης την συμπεριφορα και τον κυκλο ζωης του και θα μπορουσαμε να χρησιμοποιησουμε το ιδιο συστατικο Fragment σε πολλαπλα Activity. Τελος μια τετοια σχεδιαση βοηθα σημαντικα στην υποστηριξη διαφορετικων συνδυασμων λειτουργιων για διαφορετικα μεγεθη οθονων. Εικόνα 3.6: Παραδειγμα συνδυασμου δυο διεπαφων σε ενα Activity, οριζομενες απο δυο αντιστοιχα Fragment, για σχεδιαση σε tablet και ξεχωριστη τους υλοποιηση σε δυο διαφορετικα Activity, για σχεδιαση σε κινητη συσκευη. Πηγή: -30-

37 3.3.1 Κύκλος ζωής ενός Fragment Ο κυκλος ζωης ενος Fragment συστατικου, ακολουθει την ιδια λογικη με αυτη των Activities και παρουσιαζει αρκετες ομοιοτητες με αυτα. Μια κλαση Fragment οριζει ενα συνολο απο μεθοδους οι οποιες αποτελουν γεγονοτα του κυκλου ζωης της. Καθε μεθοδος του ενεργεια Fragment, πυροδοτειται επειτα απο αλλαγη καταστασης της εφα ρμογης. Μια κλασ η Fragment οριζει τα παρακατω γεγονοτα που αντικατοπτριζουν τον κυκλο ζωης της: onattach(): Καλειται οταν ενα στιγμιοτυπο ενος Fragment συσχετιζεται με ενα στιγμιοτυπο Activity που δεν εχει αρχικοποιηθει ακομα. οncreate(): Καλειται κατα τη δημιουργια ενος Fragment. oncreateview(): Καλειται οταν δημιουργειται η γραφικη αναπαρασταση ενος στιγμιοτυπου Fragment. Η γραφικη αυτη αναπαρασταση αποτελει μερος της διεπαφης του Activity που το περιεχει. onactivitycreated(): Καλειται οταν εχουν δημιουργηθει τα στιγμιοτυπα των Fragment και Activity καθως και οι διεπαφες τους. onresume(): Καλειται οταν το Fragment γινεται ενεργο και ορατο. onpause(): Καλειται οταν ενα Fragment κανει παυση και περναει σε αδρανη κατασταση ενω συνεχιζει να ειναι ορατο. OnStop(): Καλειται οταν ενα Fragment σταματησει να ειναι ορατο. -31-

38 3.3.2 Συμβατότητα με παλαιότερες εκδόσεις Android Τα Fragments δεν αποτελουν μερος των παλαιοτερων Android εκδοσεων πριν την HoneComb εκδοση (3.0) και δεν μπορουν να χρησιμοποιηθουν απο τα Activity συστατικα. Η υποστηριξη τους σε αυτες τις παλαιοτερες εκδοσεις, ειναι δυνατη με την εγκατασταση ενος επιπροσθετου πακετου που ονομαζεται Πακετο Υποστηριξης (Support Package). Το πακετο αυτο οριζει νεα συστατικα, τα FragmentActivity, τα οποια εχουν την ιδια λειτουργικοτητα με τα Activity, με τη διαφορα οτι μπορουν να υποστηριξουν Fragments σε παλαιοτερες εκδοσεις. Αν ενα υπο αναπτυξη εργο υποστηριζει ελαχιστη εκδοση Android, την εκδοση HoneyComb, τοτε συνισταται η χρηση των Activity συστατικων για την ενσωματωση Fragments και οχι των FragmentActivity Επικοινωνία των Fragment με την εφαρμογή Για να επιτευχθει ο μεγιστος βαθμος επαναχρησιμοποιησης των Fragments, θα πρεπει να αποφευγεται η αμεση επικοινωνια μεταξυ τους. Καθε επικοινωνια μεταξυ τους θα πρεπει να συμβαινει μεσω του Activity συστατικου που τα φιλοξενει και τα διαχειριζεται. Για αυτο το σκοπο, θα πρεπει καθε Fragment συστατικο να οριζει μια διεπαφη (interface) και να απαιτει απο το Activity συστατικο που το χρησιμοποιει, να υλοποιει αυτη τη διεπαφη. Έτσι το Fragment δεν θα μπορει και δεν θα χρειαζεται να εχει γνωση για το Activity συστατικο, που το δημιουργησε. -32-

39 3.4 Android Manifest Καθε εφαρμογη σε Android συστημα θα πρεπει να περιεχει ενα αρχειο που ονομαζεται AndroidManifest.XML. Σε αυτο το αρχειο οριζονται βασικα στοιχεια της εφαρμογης που ειναι απαραιτητα για την εκτελεση της και παρεχονται πριν την εκκινηση της, δηλαδη πριν αρχισει να εκτελειται ο κωδικας. Βασικες εργασιες του AndroidManifest αρχειου ειναι: Ονομασια του Java πακετου της εφαρμογης. Το ονομα αυτου του πακετου αποτελει ενα μοναδικο αναγνωριστικο για την εφαρμογη ετσι ωστε να διακρινεται απο τις υπολοιπες. Οριζει και περιγραφει τα βασικα συστατικα της εφαρμογης, τα Activities, Services, Broadcast Receivers, και Content Providers, τα οποια περιγραφτηκαν σε προηγουμενες παραγραφους. Ονομαζει τις κλασεις, οι οποιες υλοποιουν καθε ενα απο τα βασικα αυτα συστατικα και οριζει τις δυνατοτητες τους (capabilities). Μια δυνατοτητα, για παραδειγμα, ειναι τα intent γεγονοτα που ειναι σε θεση να διαχειριστει ενα συστατικο. Αυτες οι δηλωσεις επιτρεπουν στο συστημα να γνωριζει ποια ειναι τα βασικα συστατικα που αποτελουν την εφαρμογη και υπο ποιες συνθηκες ειναι δυνατον να πυροδοτηθουν. Καθοριζει ποιες διεργασιες θα περιλαμβανουν τα βασικα συστατικα της εφαρμογης. Δηλωνει τις απαραιτητες αδειες (permissions) που θα πρεπει να εχει η εφαρμογη, ωστε να της δινεται η προσβαση σε προστατευομενα μερη του android API και να μπορει να αλληλεπιδρα με αλλες εφαρμογες. Δηλωνει επισης τις αδειες που θα πρεπει να εχουν εξωτερικα συστατικα, οπως χρηστες για παραδειγμα, ωστε να χρησιμοποιουν τα συστατικα της εφαρμογης. -33-

40 Παραθετει μια λιστα με τις Instrumentation κλασεις που παρεχουν profiling και αλλες πληροφοριες κατα τη διαρκεια εκτελεσης της εφαρμογης. Χρησιμοποιουνται μονο κατα τη διαρκεια αναπτυξης και ελεγχου της εφαρμογης και αφαιρουνται πριν την παραδοση της. Δηλωνει το ελαχιστο επιπεδο του Android API που απαιτειται για την εγκατασταση της εφαρμογης. Παραθετει τις, απαιτουμενες για την μεταγλωττιση, εξωτερικες βιβλιοθηκες. Στην εικονα που ακολουθει (Εικονα 3.7), παρουσιαζεται η γενικη δομη ενος AndroidManifest αρχειου καθως και καθε στοιχειο που μπορει να περιεχει. Εικόνα 3.7: AndroidManifest.XML Πηγή: -34-

41 3.5 Υποστήριξη Ποικίλων Οθονών To Android λειτουργικο συστημα εχει πλεον γινει μαζικα αποδεκτο απο το μεγαλυτερο ποσοστο κατασκευαστων κινητων συσκευων και οχι μονο. Το μεριδιο της αγορας κινητων συσκευων παγκοσμιως, με εγκατεστημενο το Android λειτουργικο συστημα, ξεπερνα το πενηντα τις εκατο [1], εδραιωνοντας τη θεση του. Έτσι προεκυψε η απαιτηση υποστηριξης ολων αυτων των διαφορετικων συσκευων απο το Android λειτουργικο συστημα, παρεχοντας μια γενικη και αφαιρετικη προσεγγιση σχεδιασης της διεπαφης με τον χρηστη. Η καθε συσκευη διαθετει το δικο της υλικο παρεχοντας ενα πληθος απο ποικιλες οθονες, συμφωνα με τα προτυπα σχεδιασης της, γεγονος που μπορει να δυσκολευει τη διαδικασια αναπτυξης διαλειτουργικων, ανεξαρτητων πλατφορμας εφαρμογων αλλα προσφερει τη δυνατοτητα στους κατασκευαστες κινητων συσκευων να προσαρμοζουν το συνολικο συστημα στις αναγκες τους. Αυτη η προσαρμογη του Android συστηματος σε συσκευες κατασκευαστων ειναι σημαντικη γιατι προσφερει ευελιξια και μπορει να τους καταστησει πιο ανταγωνιστικους, ομως θα μπορουσε να φερει τα εξης μειονεκτηματα: Λιγοτερο διαισθητικα οικοσυστηματα. Αυξηση της πολυπλοκοτητας του συστηματος. Συστηματα επιρρεπη σε σφαλματα και κινδυνους. Συστηματα χαμηλης αποδοσης. Προβληματα ενσωματωσης νεων εκδοσεων Android. Αργη ενσωματωση νεων εκδοσεων Android. Έτσι λοιπον τα πλεονεκτηματα χρησης του Android συστηματος μπορει να αποτελεσουν και μειονεκτηματα υπο ορισμενες συνθηκες. Το Android συστημα ομως προσφερει τη δυνατοτητα αποφυγης ολων των παραπανω, δημοσιευοντας ανανεωμενες εκδοσεις, προσθετες βιβλιοθηκες καθως και μεθοδους σχεδιασης που υποστηριζουν την προσαρμογη της διεπαφης χρηστη σε ποικιλες οθονες. Σε αυτην -35-

42 την παραγραφο θα επικεντρωθουμε στο τελευταιο. Κυριος στοχος ειναι η αναπτυξη αποδοτικων και στερεων εφαρμογων που εχουν τα θεμελια να υποστηριξουν ολα τα σεναρια χρησης σε συσκευες διαφορετικων οθονων, χαρακτηριστικων κατασκευαστη και διαφορετικης εκδοσης Android. Αυτο επιτυγχανεται κυριως διαχωριζοντας τον κωδικα που υλοποιει την λογικη της εφαρμογης απο τον κωδικα υπευθυνο για την αναπαρασταση της λογικης αυτης, στο χρηστη. Αυτο ομως εχει να κανει κυριως με τη σχεδιαση της εφαρμογης, οπως παρουσιαζεται στο [5] Μετρικές Οθόνης Η διαφορετικοτητα των ποικιλων οθονων οριζεται απο τα παρακατω χαρακτηριστικα: Μέγεθος Οθόνης (Screen Size) Το μεγεθος της οθονης καθοριζεται απο το πραγματικο μεγεθος της, οπως μετραται απο την διαγωνιο της, χρησιμοποιωντας ιντσες σαν μοναδα μετρησης. Για απλοτητα, το Android συστημα εχει ομαδοποιησει τα διαφορα μεγεθη οθονων σε τεσσερις γενικες κατηγοριες: μικρη (small), κανονικη (normal), μεγαλη (large), και πολυ μεγαλη (extra large). Εικόνα 3.8: Κατηγοριες μεγεθους οθονης. Πηγή: -36-

43 Πυκνότητα Οθόνης (Screen Density) Η πυκνοτητα της οθονης καθοριζεται απο την ποσοτητα των pixels που υπαρχουν μεσα σε μια περιοχη της οθονης και αναφερεται ως dpi (dots per inch) δηλαδη pixels ανα ιντσα. Για απλοτητα, το Android συστημα εχει ομαδοποιησει τις διαφορες πυκνοτητες οθονων σε τεσσερις γενικες κατηγοριες: χαμηλη (low), μετρια (medium), υψηλη (high), και πολυ υψηλη (extra high). Εικόνα 3.9: Κατηγοριες πυκνοτητας οθονης. Πηγή: Ανάλυση Οθόνης (Resolution) Τα συνολικα pixel της οθονης. Για την υποστηριξη ποικιλων οθονων, οι εφαρμογες δεν χρησιμοποιουν την αναλυση οθονης, παρα μονο το μεγεθος της οθονης και την πυκνοτητα της, οπως οριζονται στις αντιστοιχες ομαδες Σχεδίαση Η πυκνοτητα της οθονης δεν σχετιζεται με το μεγεθος της. Έτσι για παραδειγμα, αν επρεπε να υποστηριξουμε δυο η παραπανω οθονες, ιδιου μεγεθους αλλα διαφορετικης πυκνοτητας σε pixel, τοτε η σχεδιαση του συστηματος θα ηταν ιδιαιτερα δυσκολη και επιρρεπης σε σφαλματα. Σε ενα τετοιο σεναριο χρησης θα επιθυμουσαμε να δουλευουμε με ενα γενικο τροπο, οριζοντας και χρησιμοποιωντας μια μοναδα μετρησης ανεξαρτητης του pixel. Η σχεδιαση της διεπαφης χρηστη με -37-

44 τροπο ανεξαρτητο της πυκνοτητας ειναι σημαντικη, διοτι ενα στοιχειο της εφαρμογης που εμφανιζεται στην οθονη, οπως ενα κουμπι (button) για παραδειγμα, εμφανιζεται μεγαλυτερο σε μια οθονη χαμηλης πυκνοτητας, ενω μικροτερο σε μια υψηλης αναλυσης. Αυτο προκαλει συγχυση στο χρηστη και δεν συμβαδιζει με τους κανονες που αφορουν τη σχεδιαση της εφαρμογης και της εμπειριας του χρηστη απο τη χρηση της. Στις εικονες 3.10 και 3.11 φαινεται η διαφορα αναμεσα σε μια εφαρμογη που δεν παρεχει σχεδιαση ανεξαρτητης πυκνοτητας και σε μια ανεξαρτητης αντιστοιχα. Εικόνα 3.10: Παραδειγμα εφαρμογης χωρις την υποστηριξη για διαφορετικες πυκνοτητες, οπως φαινεται σε οθονες χαμηλης, μετριας και υψηλης πυκνοτητας. Πηγή: Εικόνα 3.11: Παραδειγμα εφαρμογης με υποστηριξη για διαφορετικες πυκνοτητες, οπως φαινεται σε οθονες χαμηλης, μετριας και υψηλης πυκνοτητας. Πηγή: Το Android συστημα παρεχει τη δυνατοτητα για την υλοποιηση γραφικης διεπαφης χρηστη, ανεξαρτητης της πυκνοτητας της οθονης. Αυτο επιτυγχανεται με τους εξης -38-

45 δυο τροπους: Το συστημα παρεχει μια γενικη μοναδα μετρησης των γραφικων συστατικων, ανεξαρτητης των pixel. Αυτη η μοναδα μετρησης ονομαζεται dp (density-independent pixel) και αποτελει μια εικονικη μοναδα που συνισταται να χρησιμοποιειται αντι των pixel κατα τον ορισμο της γραφικης διεπαφης, ετσι ωστε να εκφραζονται οι διαστασεις της η η θεση της με εναν ανεξαρτητο της πυκνοτητας, τροπο. Μια μοναδα dp, εχει οριστει ως ενα pixel σε μια οθονη 160 dpi και κατα την εκτελεση της εφαρμογης, το συστημα την μετατρεπει με διαφανη τροπο, στα αντιστοιχα και πραγματικα pixel της οθονης. Η μετατροπη αυτη γινεται με βαση την εξης εξισωση: px = dp * (dpi / 160) Το συστημα μετατρεπει τα γραφικα συστατικα που ειναι μερος της συνολικης διεπαφης χρηστη στο καταλληλο μεγεθος, με βαση την πυκνοτητα της οθονης. Για να επιτευχθει αυτο, δινεται η δυνατοτητα εισαγωγης ενος γραφικου συστατικου (εικονα bitmap για παραδειγμα), για τις τεσσερις διαφορετικες βασικες πυκνοτητες, χαμηλη (ldpi), μετρια (mdpi), υψηλη (hdpi), πολυ υψηλη ( xhdpi) καθως και μια ακομα μεγαλυτερης πυκνοτητας (xxhdpi). Έτσι μπορουμε να τοποθετησουμε το ιδιο γραφικο συστατικο σε πεντε διαφορετικες αναλυσεις, εισαγοντας το σε καταλληλο φακελο κατω απο την res (resources) κατηγορια, οπως οριζεται απο το συστημα για τη διαχειριση των πορων. Έπειτα, επιλεγεται το καταλληλο συστατικο σε χρονο εκτελεσης, αναλογως την πυκνοτητα της οθονης. Στην εικονα 3.12 παρουσιαζονται οι πεντε αυτοι φακελοι. -39-

46 Εικόνα 3.12: Φακελοι για την χρηση γραφικων συστατικων, διαφορετικης αναλυσης, αναλογως την πυκνοτητα οθονης. To Android συστημα ειναι σχεδιασμενο για την υποστηριξη ολων των ειδων οθονων, προσαρμοζοντας δυναμικα το περιεχομενο που εμφανιζεται στην οθονη της καθε συσκευης. Τα βηματα που θα πρεπει να ακολουθησουμε ωστε να το εκμεταλλευτουμε με τον καλυτερο δυνατο τροπο ειναι τα εξης: Δήλωση των υποστηριζόμενων μεγεθών οθόνης, από την εφαρμογή Δηλωνοντας, στο AndroidManifest αρχειο, τα υποστηριζομενα μεγεθη οθονης, επιτρεπεται η εγκατασταση της εφαρμογης μονο σε συσκευες που πληρουν τις προδιαγραφες αυτες. Επισης μπορει να επηρεασει τον τροπο που διαχειριζεται το συστημα, την σχεδιαση της γραφικης διεπαφης χρηστη σε μεγαλυτερες οθονες. Στην εικονα 3.13 παρουσιαζεται ενα κομματι κωδικα που εκτελει αυτη τη δηλωση, και επισης οριζει οτι επιτρεπονται οθονες οποιασδηποτε πυκνοτητας με την Android:anyDensity= true εντολη, καθως και το ελαχιστο πλατος οθονης Android:requiresSmallestWidthDp= 600 εντολη με την

47 Εικόνα 3.13: Δηλωση των υποστηριζομενων μεγεθων οθονης στο AndroidManifest αρχειο Παροχή διαφορετικών γραφικών διεπαφών για τα διάφορα μεγέθη οθόνης To Android συστημα προσαρμοζει την γραφικη διεπαφη χρηστη και τα συστατικα της, ετσι ωστε να εμφανιζονται με τον ιδιο τροπο σε οθονες διαφορων μεγεθων, με διαφανεια και συνεπεια. Σε πολυ μεγαλες οθονες ομως, οπως αυτες των tablet, θα ηταν πιο αποδοτικο και θα παρειχε καλυτερη εμπειρια χρηστη, αν εκμεταλλευομασταν τον επιπλεον χωρο. Για παραδειγμα σε μια μικροτερη κινητη συσκευη διαιρουμε την επιθυμητη λειτουργικοτητα σε πολλαπλες οθονες, αντιστοιχιζοντας την καθε μια σε ενα Activity συστατικο. Σε μια συσκευη μεγαλυτερης οθονης θα ηταν δυνατο να συμπεριλαβουμε ολες αυτες τις λειτουργικοτητες σε μια μονο οθονη, με χρηση των Fragment συστατικων. Έτσι καθε Fragment θα ηταν υπευθυνο για τη διαχειριση ενος λειτουργικου κομματιου της οθονης και ολα μαζι θα συνεθεταν τη συνολικη γραφικη διεπαφη. Το Android συστημα παρεχει τη δυνατοτητα επιλογης και πυροδοτησης διαφορετικης γραφικης διεπαφης χρηστη, οπως οριζεται μεσα στον layout φακελο, αναλογως το μεγεθος της οθονης. Έτσι για καθε υποστηριζομενο μεγεθος οθονης, θα μπορουσαμε να αναπτυξουμε την γραφικη διεπαφη χρηστη που επιθυμουμε και το συστημα θα αναλαμβανε την πυροδοτηση της καταλληλης, αναλογως του μεγεθους της. -41-

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

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

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Android Grid Application Θωμάς Αντώνιος (3050073) Καραβέλλας Θεμιστοκλής (3050055) 1. Εισαγωγή Το Android αποτελεί ένα λειτουργικό σύστημα για κινητές συσκευές. Το λειτουργικό αυτό

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

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

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

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

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

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

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

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

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

Περιεχόμενο του μαθήματος

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

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

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 22 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Εισαγωγή στην Ανάπτυξη Εφαρμογών Android

Εισαγωγή στην Ανάπτυξη Εφαρμογών Android Εισαγωγή στην Ανάπτυξη Εφαρμογών Android Σημειώσεις σεμιναρίου Επιμέλεια: Βασίλης Κόλιας Ενότητα 2 Εισαγωγή στις εφαρμογές Graphical User Interfaces Πίνακας Περιεχομένων 4 Εισαγωγή στις εφαρμογές... 2

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

Κινητά και Διάχυτα Συστήματα. Ενότητα # 4: Απομακρυσμένα αντικείμενα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 4: Απομακρυσμένα αντικείμενα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κινητά και Διάχυτα Συστήματα Ενότητα # 4: Απομακρυσμένα αντικείμενα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

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

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

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

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

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

Εγχειρίδιο Χρήσης Slide Recorder

Εγχειρίδιο Χρήσης Slide Recorder Εγχειρίδιο Χρήσης Slide Recorder Αναπτύχθηκε στο Κέντρο Λειτουργίας Διαχείρισης Δικτύου, Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Προγραμματιστής: Γιώργος Φράγκος Περιεχόμενα Εγχειρίδιο Χρήσης Slide

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

Σενάριο 18: Ραβδογράμματα Πληθυσμού

Σενάριο 18: Ραβδογράμματα Πληθυσμού Σενάριο 18: Ραβδογράμματα Πληθυσμού Φύλλο Εργασίας Τίτλος: Ραβδογράμματα Πληθυσμού Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

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

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

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

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend Εργαστήριο Διοίκησης Παραγωγής & Έργων Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Το Extend είναι ένα λογισμικό εικονικής προσομοίωσης που μπορεί να

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

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

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ Χαρίτων Ευσταθιάδης Σοφία Γεωργιάδου Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής ΕΠΛ 425

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

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

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

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

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Σενάριο 17: Παιχνίδι μνήμης με εικόνες Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

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

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

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

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

Σκοπός του μαθήματος

Σκοπός του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Βασικές Έννοιες Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Σκοπός του μαθήματος Η απόκτηση των γνώσεων

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

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

Οδηγός γρήγορης εκκίνησης του PowerSuite

Οδηγός γρήγορης εκκίνησης του PowerSuite Το PowerSuite είναι η ολοκληρωμένη λύση απόδοσης για τον υπολογιστή σας. Ενσωματώνοντας το RegistryBooster, το DriverScanner και το SpeedUpMyPC σε ένα ενιαίο περιβάλλον εργασίας σάρωσης, το PowerSuite

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

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

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Περιεχόµενα 1. Εγκατάσταση 2. Εισαγωγή 3. Σύνδεση 4. Ρυθµίσεις 2.1 Περιοχή εργασιών και πλοήγησης 2.2 Περιοχή απεικόνισης "Λεπτοµέρειες" 2.3 Περιοχή απεικόνισης "Στατιστικά" 4.1 Προφίλ 4.2 ίκτυο 4.2.1

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

Σενάριο 15: Ενεργός Μετεωρολογικός Χάρτης

Σενάριο 15: Ενεργός Μετεωρολογικός Χάρτης Σενάριο 15: Ενεργός Μετεωρολογικός Χάρτης Ταυτότητα Σεναρίου Τίτλος : Ενεργός Μετεωρολογικός Χάρτης Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω,

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 7ο X Window System Μιχαηλίδης Παναγιώτης Tι είναι παραθυρικό σύστημα; Ένα παραθυρικό σύστημα (window system) είναι μια γραφική διεπαφή χρήστη (Graphical

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

Android Studio για Windows

Android Studio για Windows Android Studio για Windows 1. Οδηγίες Εγκατάστασης: 1. Κατεβάστε το Android Studio από εδώ (τελευταία έκδοση 0.4.6, 496 MB): http://developer.android.com/sdk/installing/studio.html 2. Εγκαταστήστε το αρχείο

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

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες... 17 Εισαγωγή... 19

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες... 17 Εισαγωγή... 19 Περιεχόµενα Ευχαριστίες... 17 Εισαγωγή... 19 Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional 1 Εισαγωγή στη διαχείριση των Microsoft Windows XP Professional... 25 Ξεκίνηµα µε τα Windows XP

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

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

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

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

Asset Management Software Client Module. Οδηγός χρήσης

Asset Management Software Client Module. Οδηγός χρήσης Asset Management Software Client Module Οδηγός χρήσης Μονάδα-πελάτης Kodak Asset Management Software Κατάσταση και ρυθμίσεις πόρων... 1 Μενού κατάστασης πόρων... 2 Μενού ρυθμίσεων πόρων... 3 Διαχείριση

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

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

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

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

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

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

Εγχειρίδιο Χρήσης Φορέα Πιστοποίησης

Εγχειρίδιο Χρήσης Φορέα Πιστοποίησης Εγχειρίδιο Χρήσης Φορέα Πιστοποίησης ΕΙΣΟΔΟΣ ΣΤΗΝ ΕΦΑΡΜΟΓΗ Για την είσοδο στην εφαρμογή απαιτείται, 1. Πλοηγός ιστοσελίδων (Internet Explorer, Mozilla Firefox, Google Chrome, Netscape Navigator), 2. Όνομα

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

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

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

Linux Terminal Server Project

Linux Terminal Server Project Linux Terminal Server Project Ένα κεντρικό σύστημα διαχείρισης των τερματικών κοινού της Βιβλιοθήκης & Κέντρου Πληροφόρησης του Πανεπιστημίου Μακεδονίας Κολοβός Φίλιππος filippos@uom.gr Ευάγγελος Μπάνος

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

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

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

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

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ 1 Λειτουργικές απαιτήσεις Το σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών στοχεύει στο να επιτρέπει την πλήρως ηλεκτρονική υποβολή αιτήσεων από υποψήφιους

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

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

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

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

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

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. POWERPOINT 2003 1. Τι είναι το PowerPoint (ppt)? Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. 2. Τι δυνατότητες έχει? Δημιουργία παρουσίασης. Μορφοποίηση παρουσίασης. Δημιουργία γραφικών. Δημιουργία

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

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr Εγχειρίδιο Χρήσης Μελών ΔΕΠ Αναζήτηση Δημόσιου Περιεχομένου Η διεύθυνση ιστού της νεάς πλατφόρμας διαχείρισης βιντεοδιαλέξεων Δήλος είναι: http://delos.uoa.gr

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

BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ BOMIS-V1-2012

BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ BOMIS-V1-2012 BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ 1 - ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ Το σύστημα διαχείρισης

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

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Γκεζερλής Σπύρος Επιβλέπων Δημήτριος Καλλές Εξεταστική Επιτροπή Δημήτρης Καλλές Λοΐζος Μιχαήλ Αρτίκης Αλέξανδρος Παρουσίαση

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

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή Προγραμματισμός Βασικές έννοιες Ιστορική αναδρομή Η έννοια του προγράμματος Η περιγραφή της λύσης ενός προβλήματος, ως γνωστόν, γίνεται με τη βοήθεια ενός αλγορίθμου. Έτσι οι εντολές ενός προγράμματος

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

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

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

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

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΜΕΣΟΛΟΓΓΙ ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ ΕΡΓΑΣΤΗΡΙΟ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2014-2015. Διαδικασία Κατάρτησης Επιχειρηματικού Σχεδίου

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΜΕΣΟΛΟΓΓΙ ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ ΕΡΓΑΣΤΗΡΙΟ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2014-2015. Διαδικασία Κατάρτησης Επιχειρηματικού Σχεδίου ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΜΕΣΟΛΟΓΓΙ ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ ΕΡΓΑΣΤΗΡΙΟ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2014-2015 ΕΡΓΑΣΤΗΡΙΑΚO ΜΕΡΟΣ B Eπιχειρηματικό Σχέδιο και Σχεδίαση 1 ης Σελίδας Σκοπός: σκοπός του Β εργαστηριακού

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

Προσαρμογή λειτουργιών Δικτύου Κινητής Τηλεφωνίας

Προσαρμογή λειτουργιών Δικτύου Κινητής Τηλεφωνίας Αυτόματο Σύστημα Κλήσης Έκτακτης Ανάγκης Προσαρμογή λειτουργιών Δικτύου Κινητής Τηλεφωνίας Κωνσταντίνος Φίλης, COSMOTE ΕΥΡΩΠΑΪΚΗ ΕΝΩΣΗ ΕΥΡΩΠΑΪΚΟ ΤΑΜΕΙΟ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΑΝΑΠΤΥΞΗΣ Υφιστάμενη Διαχείριση Κλήσεων

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Δημητρίου Σωτήρης 6417

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

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

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Γκεζερλής Σπύρος Επιβλέπων Δημήτριος Καλλές Εξεταστική Επιτροπή Δημήτρης Καλλές Λοΐζος Μιχαήλ Αρτίκης Αλέξανδρος Παρουσίαση

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 20130510 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εγκατάσταση προγράμματος DCAD 2 2. Ενεργοποίηση Registration 2 3. DCAD 3 3.1 Εισαγωγή σημείων 3 3.2 Εξαγωγή σημείων 5 3.3 Στοιχεία ιδιοκτησίας

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

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

ΕΡΓΟ: ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2. Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011

ΕΡΓΟ: ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2. Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011 ΕΡΓΟ: «ΠΟΛΙΤΙΣΤΙΚΟΣ ΠΛΟΗΓΟΣ ΤΗΣ ΑΘΗΝΑΣ ΣΕ ΣΥΣΤΗΜΑΤΑ GPS ΚΑΙ ΚΙΝΗΤΑ ΤΗΛΕΦΩΝΑ» ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2 Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011 Σύμφωνα με το άρθρο 9.3. της προκήρυξης του

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

Πολυτεχνείο Κρήτης Διεύθυνση Τηλεπικοινωνιών, Δικτύων και Υπολογιστικής Υποδομής Τμήμα Εκπαιδευτικής Υπολογιστικής Υποδομής. Υπηρεσία Ερωτηματολογίου

Πολυτεχνείο Κρήτης Διεύθυνση Τηλεπικοινωνιών, Δικτύων και Υπολογιστικής Υποδομής Τμήμα Εκπαιδευτικής Υπολογιστικής Υποδομής. Υπηρεσία Ερωτηματολογίου Πολυτεχνείο Κρήτης Διεύθυνση Τηλεπικοινωνιών, Δικτύων και Υπολογιστικής Υποδομής Τμήμα Εκπαιδευτικής Υπολογιστικής Υποδομής Υπηρεσία Ερωτηματολογίου Περιεχόμενα Εισαγωγή... 3 Βήματα δημιουργίας ερωτηματολογίου...

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ 1.1 Να δοθεί ο ορισμός του προβλήματος καθώς και τρία παραδείγματα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΛΟΓΙΣΜΙΚΟ CISCO JABBER ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΣ-ΕΔ/76

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΛΟΓΙΣΜΙΚΟ CISCO JABBER ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΣ-ΕΔ/76 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΛΟΓΙΣΜΙΚΟ CISCO JABBER ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΣ-ΕΔ/76 31/07/2014 ΠΕΡΙΕΧΟΜΕΝΑ ΕΓΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 ΛΕΙΤΟΥΡΓΙΑ

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

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1) Αντικείμενα (Objects) στην Java Αντικείμενα στη Java Παύλος Εφραιμίδης Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας μηνύματα το ένα στο άλλο

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

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

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

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

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

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

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή Τι είναι ένα CMS CMS ή Σύστημα Διαχείρισης Περιεχομένου (Content Management System) ονομάζουμε ένα λογισμικό που μας βοηθά να ελέγχουμε και να διαχειριζόμαστε έναν ιστότοπο δημόσιας ή περιορισμένης πρόσβασης.

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

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

Γεώργιος Φίλιππας 23/8/2015

Γεώργιος Φίλιππας 23/8/2015 MACROWEB Προβλήματα Γεώργιος Φίλιππας 23/8/2015 Παραδείγματα Προβλημάτων. Πως ορίζεται η έννοια πρόβλημα; Από ποιους παράγοντες εξαρτάται η κατανόηση ενός προβλήματος; Τι εννοούμε λέγοντας χώρο ενός προβλήματος;

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

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Ταυτότητα Σεναρίου Τίτλος: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή

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

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

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

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

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

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE...2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ...3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ...4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)...5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ...6 Κεντρικό μενού

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη mobile εφαρμογής διεπαφής χρήστη, για τις υπηρεσίες

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

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα» ΚΡΕΜΑΛΑ Project 7 1 Εκφώνηση άσκησης Υλοποίηση του παιχνιδιού «Κρεμάλα» Το Project αυτό συνίσταται στην κατασκευή ενός προγράμματος σεναρίου κελύφους, που θα υλοποιεί το γνωστό παιχνίδι «Κρεμάλα» με δυνατότητα

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