ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

Download "ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ"

Transcript

1 Θ.Ε. ΠΛΗ24 ΑΚΑΔ. ΕΤΟΣ ΤΡΙΤΗ ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΕΙΣΑΓΩΓΗ Σας ζητείται να αναπτύξετε λογισμικό ελέγχου για τον Πίνακα Αναχωρήσεων ενός αεροδρομίου ακολουθώντας τη διεργασία ανάπτυξης λογισμικού ICONIX. Η πληροφορία ενημέρωσης των επιβατών που θα διαθέτει ο Πίνακας Αναχωρήσεων αποτυπώνεται ενδεικτικά στην παρακάτω εικόνα. Νο Α1 Α2 Περιγραφή μη λειτουργικής απαίτησης Αποθήκευση προγραμματισμένων αναχωρήσεων Οι προγραμματισμένες αναχωρήσεις (δηλαδή αυτές που ανακοινώνονται στο πρόγραμμα πτήσεων ενός αερομεταφορέα) αποθηκεύονται σε βάση δεδομένων (ΒΔ). Για κάθε πτήση αποθηκεύονται εκείνα τα πεδία που είναι απαραίτητα ώστε να είναι δυνατή η ορθή διαχείριση του Πίνακα Αναχωρήσεων και η λειτουργία του προγράμματος. Περιορισμοί πτήσεων Κάθε πτήση μπορεί να βρίσκεται σε μια από τις ακόλουθες καταστάσεις: OnTime (δηλαδή πρόκειται να αναχωρήσει σύμφωνα με τον προγραμματισμό συνήθως εμφανίζεται με πράσινο χρώμα), Delayed (σημειώνει καθυστέρηση ή αναβολή συνήθως εμφανίζεται με πορτοκαλί χρώμα και αναγράφεται η νέα ώρα αναχώρησης), Cancelled (ακυρώθηκε, δε θα πραγματοποιηθεί οριστικά συνήθως εμφανίζεται με κόκκινο χρώμα), Boarding (οι επιβάτες επιβιβάζονται συνήθως η λέξη αναβοσβήνει), Departed (έχει αναχωρήσει συνήθως εμφανίζεται με λευκό χρώμα). Μισή ώρα πριν την προγραμματισμένη αναχώρηση, μια πτήση μεταβαίνει στην κατάσταση Boarding. Για τις καθυστερημένες πτήσεις, ως χρόνος προγραμματισμένης αναχώρησης θεωρείται ο νέος χρόνος μετά τον υπολογισμό της καθυστέρησης (ο οποίος μπορεί να αλλάξει περισσότερες από μια φορές) και όχι ο αρχικός. Από τη στιγμή που θα βρεθεί σε κατάσταση επιβίβασης, η πτήση επιτρέπεται μόνο να αναχωρήσει ή να ακυρωθεί. Μια καθυστερημένη πτήση δεν 1

2 Α3 Α4 επιστρέφει σε κατάσταση OnTime, αλλά μπορεί να πραγματοποιηθεί (αφού περάσει από κατάσταση επιβίβασης, σύμφωνα με τα ανωτέρω αναφερόμενα) ή να ακυρωθεί (είτε περνώντας από κατάσταση επιβίβασης είτε όχι). Μακροσκοπικά, η πιθανότητα μια πτήση να αναχωρήσει στην ώρα της έχει συγκεκριμένη τιμή (ενδεικτική τιμή 85%), η πιθανότητα καθυστέρησης είναι μικρότερη από 5% (ενδεικτική τιμή 4%) και η πιθανότητα ακύρωσης της πτήσης είναι 1% αν δεν έχει αλλάξει η ώρα αναχώρησης και 3% αν σημειώθηκε καθυστέρηση. Το διάστημα κατά το οποίο αναβάλλεται μια πτήση δε μπορεί να είναι μικρότερο των 30 λεπτών και μεγαλύτερο των 110 λεπτών (εάν στο διάστημα αυτό υπάρχει και άλλη προγραμματισμένη πτήση του ίδιου αερομεταφορέα προς τον ίδιο προορισμό, η πρώτη πτήση ακυρώνεται). Η ακριβής καθυστέρηση θα υπολογίζεται με τυχαίο τρόπο. Το αεροδρόμιο λειτουργεί κατά τις ώρες 05:00 01:00. Θεωρούμε ότι ποτέ δεν είναι δυνατό να αναχωρούν περισσότερες από δύο πτήσεις την ίδια ακριβώς χρονική στιγμή (το αεροδρόμιο διαθέτει μόνο δύο αεροδιαδρόμους). Επίσης, θεωρούμε ότι ανάμεσα σε δύο διαδοχικές αναχωρήσεις πρέπει να παρεμβάλλεται χρόνος τουλάχιστον τριών λεπτών. Συνεπώς από την έναρξη λειτουργίας του αεροδρομίου το πρωί (ώρα 5.00), όλες οι πτήσεις προγραμματίζονται σε χρονικές θυρίδες (time slots) που είναι πολλαπλάσια των 3 λεπτών (π.χ. 5:03, 8:09 κλπ). Δεν είναι φυσιολογικό να καλύπτονται όλες οι διαθέσιμες θυρίδες, καθώς το αεροδρόμιο (αλλά όχι η ζητούμενη εφαρμογή) θα πρέπει να δίνει θυρίδες και στις αφικνούμενες πτήσεις. Κάθε αερομεταφορέας είναι υπεύθυνος για τη διαχείριση των πτήσεών του. Ο Πίνακας Αναχωρήσεων είναι κοινός. Περιορισμοί Πίνακα Αναχωρήσεων Ο Πίνακας Αναχωρήσεων διαθέτει μόνο δέκα γραμμές, στις οποίες προβάλλονται οι λεπτομέρειες των άμεσα προγραμματισμένων πτήσεων σε σχέση με την τρέχουσα χρονική στιγμή, αλλά και οι πτήσεις που έχουν αναχωρήσει κατά την τελευταία ώρα ή ακυρωθεί κατά τις τελευταίες έξι ώρες. Εάν ο αριθμός των πτήσεων που έχουν αναχωρήσει είναι μεγάλος, προβάλλονται το πολύ οι δύο πιο πρόσφατες. Εάν ο αριθμός των ακυρωμένων πτήσεων είναι μεγάλος, προβάλλονται το πολύ οι τρεις πιο πρόσφατα ακυρωμένες, με βάση την τελευταία προγραμματισμένη ώρα αναχώρησης (δηλαδή, μια πτήση μπορεί αρχικά να εμφανίσει καθυστέρηση, οπότε προγραμματίζεται σε μια νέα χρονοθυρίδα, και μετά να ακυρωθεί). Σε κάθε γραμμή του Πίνακα Αναχωρήσεων προβάλλονται πληροφορίες για μια μόνο πτήση και μάλιστα μόνο όσες είναι απαραίτητες (άρα κάποια πεδία μπορεί να είναι κενά). Η κατάσταση μιας πτήσης εμφανίζεται με αντίστοιχη ένδειξη. Στη στήλη Via εμφανίζεται ο ενδιάμεσος σταθμός (αν υπάρχει) και στη στήλη Expected Departure εμφανίζεται η αναμενόμενη ώρα αναχώρησης, αν αυτή έχει αλλάξει. Τέλος, στη στήλη Scheduled Departure εμφανίζεται η αρχικά προγραμματισμένη ώρα αναχώρησης για όλες τις πτήσεις του πίνακα. Καταγραφή αρχείου κατάστασης πτήσεων Για κάθε ημέρα λειτουργίας, δημιουργείται ένα αρχείο, στο οποίο καταγράφεται το ιστορικό κάθε πτήσης, ως εξής: Αρχικά για κάθε πτήση καταγράφεται ο αριθμός της, ο αερομεταφορέας, ο τελικός προορισμός (και ο ενδιάμεσος, αν υπάρχει με τη λέξη via) και η αρχικά προγραμματισμένη ώρα αναχώρησης. Στη συνέχεια, για κάθε μεταβολή, αναγράφεται η λέξη status: και ακολουθεί 2

3 περιγραφή και χρόνος της μεταβολής (δεν καταγράφονται οι καταστάσεις OnTime και Boarding). Παραδείγματα καταγραφών στο αρχείο είναι: status: Departed 13:30, status: Delayed 09:03, status: Cancelled 17:21, Σε μια πτήση μπορεί να καταγραφούν περισσότερες από μια μεταβολές (π.χ. αν αναβληθεί περισσότερες από μία φορές ή αν αρχικά αναβληθεί και μετά ακυρωθεί). Υποδείξεις: 1. Όταν ξεκινά η εφαρμογή θα πρέπει να διαβάζονται αυτόματα όλες οι πληροφορίες των προγραμματισμένων αναχωρήσεων από τη ΒΔ και, για όσες είναι απαραίτητο, να δημιουργούνται τα κατάλληλα αντικείμενα 2. Τα στοιχεία όλων των πτήσεων διατηρούνται σε κατάλληλη δομή δεδομένων, όπου οι πτήσεις είναι ταξινομημένες με σειρά αναχώρησης. Η δομή αυτή είναι κοινή για όλους τους αερομεταφορείς. 3. Η διαχείριση των πτήσεων γίνεται από τους αερομεταφορείς, συνεπώς θα πρέπει να δηιουργήσετε παράλληλα νήματα ελέγχου (threads) ανά αερομεταφορέα. Αν και υπάρχουν περισσότερες από μία λύσεις διαχείρισης των πτήσεων, που πληρούν τις απαιτήσεις του προβλήματος, στη συνέχεια υποδεικνύεται μία τέτοια δυνατότητα. Κάθε thread θα πέφτει σε ύπνωση για 0,5 sec (Thread.sleep(500)), προσομοιώνοντας έτσι μία χρονική θυρίδα τριών λεπτών. Έτσι, σε κάθε thread προσομοιώνεται η παρέλευση του χρόνου από τις 05:00 το πρωί και κάθε φορά που ένα thread γίνεται εκτελέσιμο αποφασίζονται οι νέες κατάστασεις για όλες τις πτήσεις του αερομεταφορέα, που έχουν προγραμματισμένη μεταβολή μέσα στην αντίστοιχη χρονική θυρίδα. Για κάθε αλλαγή που αποφασίζεται, θα ενημερώνονται τα στοιχεία της πτήσης στη δομή δεδομένων με τις πτήσεις σε σειρά αναχώρησης. Ο Πίνακας Αναχωρήσεων θα ενημερώνεται από ένα επιπλέον thread, που επίσης πέφτει σε ύπνωση για 0,5 sec, αλλά όταν επανέρχεται θα γίνονται οι απαραίτητες αλλαγές στα στοιχεία των πτήσεων, που εμφανίζονται σε αυτόν. 4. Προσέξτε τους περιορισμούς στον χρονοπρογραμματισμό των πτήσεων που αναβάλλονται. Χρησιμοποιήστε γεννήτρια τυχαίων αριθμών για την αρχική κατανομή των χρόνων και την κατανομή των καθυστερήσεων. Περίπτωση Χρήσης: Ενημέρωση του Πίνακα Αναχωρήσεων (GUI) Κύριος Χειριστής: Αερομεταφορέας (thread) Σύντομη περιγραφή: Η ΠΧ αφορά την ενημέρωση του Πίνακα Αναχωρήσεων για μία μεταβολή στην κατάσταση πτήσης του Αερομεταφορέα Κύριο Σενάριο (ή Βασική Ροή): 1. Για κάθε αλλαγή κατάστασης σε πτήση, εντοπίζεται η γραμμή του Πίνακα για την πτήση που μεταβάλλεται η κατάστασή της. 2. Αν η κατάσταση μεταβάλλεται σε Boarding, τότε ενημερώνεται η ένδειξη στη στήλη Remarks της γραμμής. Αν η κατάσταση γίνεται Delayed, τότε εκετελείται η Εναλλακτική Ροή 1. Αν η κατάσταση γίνεται Cancelled, τότε εκτελείται η Εναλλακτική Ροή Όταν η κατάσταση μεταβάλλεται σε Departed, εντοπίζονται όλες οι πτήσεις που εμφανίζονται στον Πίνακα με ένδειξη Departed. 3

4 4. Αλλάζει η ένδειξη Remarks της πτήσης σε Departed και σβήνει η ένδειξη Expected Departure (αν υπάρχει). 5. Η ενημερωμένη γραμμή συμπεριλαμβάνεται στο ανανεωμένο σύνολο των πτήσεων του Πίνακα με ένδειξη Departed. 6. Αν υπάρχουν μεταβολές κατάστασης για τις οποίες δεν έχει ενημερωθεί ο πίνακας ο έλεγχος μεταφέρεται στο βήμα Οι προγραμματισμένες πτήσεις του Πίνακα, μαζί με το σύνολο των πτήσεων Departed και το σύνολο των πτήσεων Cancelled επανεμφανίζονται στον Πίνακα, ταξινομημένες ως προς την (προγραμματισμένη) ώρα αναχώρησης. 8. Τέλος Π.Χ. Εναλλακτικές Ροές: 1η Εναλλακτική ροή: Καθυστέρηση πτήσης 1. Η κατάσταση της πτήσης έχει μεταβληθεί σε Delayed. 2. Αλλάζει η ένδειξη Expected Departure της πτήσης, ώστε να απεικονίζει την προγραμματισμένη ώρα αναχώρησης που συμπεριλαμβάνει την καθυστέρηση. 3. Αλλάζει η ένδειξη Remarks της πτήσης σε Delayed. 4. Ο έλεγχος επιστρέφει στο βήμα 6 της βασικής ροής. η 2 Εναλλακτική ροή: Ακύρωση πτήσης 1. Η κατάσταση της πτήσης έχει μεταβληθεί σε Canceled. 2. Eντοπίζονται όλες οι πτήσεις που εμφανίζονται στον Πίνακα με ένδειξη Canceled. 3. Αλλάζει η ένδειξη Remarks της πτήσης σε Canceled. 4. Η ενημερωμένη γραμμή συμπεριλαμβάνεται στο ανανεωμένο σύνολο των πτήσεων του Πίνακα με ένδειξη Canceled. 5. Ο έλεγχος επιστρέφει στο βήμα 6 της βασικής ροής. Προϋποθέσεις: Οι πτήσεις όλων των αερομεταφορέων εμφανίζονται στον Πίνακα Αναχωρήσεων με χρονική σειρά ως προς την ώρα αναχώρησης. Υπάρχει τουλάχιστο μία πτήση με μεταβολή κατάστασης που δεν έχει εμφανιστεί στον Πίνακα Αναχωρήσεων. Κατάσταση εξόδου: Οι πτήσεις όλων των αερομεταφορέων εμφανίζονται στον Πίνακα Αναχωρήσεων με χρονική σειρά ως προς την ώρα αναχώρησης. Όλες οι πτήσεις βρίσκονται στην κατάσταση που τις εμφανίζει ο Πίνακας. Ειδικές απαιτήσεις: Όχι 4

5 Περίπτωση Χρήσης: Αλλαγή Κατάστασης Πτήσης Κύριος Χειριστής: Αερομεταφορέας (thread) Σύντομη περιγραφή: Η ΠΧ αφορά στις μεταβολές κατάστασης μιας πτήσης Κύριο Σενάριο (ή Βασική Ροή): 1. Το σύστημα ανακαλεί την πτήση 2. Γίνεται καταγραφή των στοιχείων της στο αρχείο κατάστασης πτήσεων 3. Ενημερώνεται ο Πίνακας Αναχωρήσεων 4. Αν δεν υπάρχει πρόβλημα, η κατάσταση της πτήσης αλλάζει σε Boarding. Αλλιώς, εάν υπάρχει καθυστέρηση, εκτελείται η Εναλλακτική Ροή 1. Αλλιώς, εάν η πτήση αναβάλλεται, εκτελείται η Εναλλακτική Ροή Αν δεν εμφανιστεί πρόβλημα, η κατάσταση της πτήσης αλλάζει από Boarding σε Departed. Αλλιώς, εάν η πτήση αναβληθεί, τότε εκτελείται η Εναλλακτική Ροή Γίνεται καταγραφή της μεταβολής στο αρχείο κατάστασης πτήσεων. Εναλλακτικές Ροές: 1η Εναλλακτική ροή: Καθυστέρηση πτήσης 1. Η κατάσταση της πτήσης αλλάζει σε Delayed. 2. Το σύστημα επιλέγει το χρονικό διάστημα της καθυστέρησης και η πτήση προγραμματίζεται ξανά 3. Γίνεται καταγραφή της μεταβολής στο αρχείο κατάστασης πτήσεων. 4. Ο έλεγχος επιστρέφει στο βήμα 4 της βασικής ροής 2η Εναλλακτική ροή: Ακύρωση πτήσης 1. Η κατάσταση της πτήσης αλλάζει σε Cancelled. 2. Ο έλεγχος επιστρέφει στο βήμα 7 της βασικής ροής Προϋποθέσεις: Η πτήση βρίσκεται αρχικά σε κατάσταση OnTime. Κατάσταση εξόδου: Οι μεταβολές καταγράφηκαν στο αρχείο κατάστασης πτήσεων. Ειδικές απαιτήσεις: Όχι ΕΡΩΤΗΣΗ 1 5

6 Με βάση τις μη λειτουργικές απαιτήσεις και την περιγραφή των ΠΧ, να σχεδιάσετε το διάγραμμα περιπτώσεων χρήσης του συστήματος, να καταγράψετε τους χειριστές και να συσχετίσετε βήματα των περιγραφών των ΠΧ με την οθόνη διεπαφής (τον Πίνακα Αναχωρήσεων). Προσέξτε να μην υπερβείτε τα όσα αναφέρονται στις απαιτήσεις και τις ΠΧ. ΑΠΑΝΤΗΣΗ 1 1α. To διάγραμμα περιπτώσεων χρήσης του συστήματος Οι αναφερόμενες Π.Χ. και οι μη λειτουργικές απαιτήσεις εισάγουν δύο Π.Χ., δηλαδή αυτή της Αλλαγής Κατάστασης και της Ενημέρωσης του Πίνακα Αναχωρήσεων. Η πρώτη σχετίζεται με τη δεύτερη με τη σχέση «include», αφού κάθε αλλαγή κατάστασης περιλαμβάνει και την ενημέρωση της αντίστοιχης ένδειξης του Πίνακα Αναχωρήσεων. Ως μοναδικός χειριστής αναγνωρίζεται το FlightCompany (Αερομεταφορέας), που ρητά αναφέρεται ότι είναι υπεύθυνος για κάθε αλλαγή κατάστασης σε πτήση του Πίνακα Αναχωρήσεων. 1β. Συσχέτιση των Π.Χ. με την οθόνη διεπαφής Ο χειριστής FlightCompany αλληλεπιδρά με το σύστημα μέσω διεπαφής χρήστη, που του επιτρέπει να αλλάζει κατάσταση στις πτήσεις που αυτός διαχειρίζεται. Παρόλα αυτά, η εκφώνηση της άσκησης δε ζητά την κατασκευή αυτής της διεπαφής και άρα η ζητούμενη συσχέτιση μπορεί να περιοριστεί στη δοθείσα οθόνη διεπαφής, που δείχνει τη μορφή του Πίνακα Αναχωρήσεων και τις πληροφορίες που αυτός απεικονίζει. Στον παρακάτω πίνακα αναφέρονται τα βήματα της Π.Χ. Ενημέρωση του Πίνακα Αναχωρήσεων (βασική ροή) και συσχετίζονται με τις αλλαγές στην οθόνη διεπαφής. Οι συγκεκριμένες αλλαγές είναι μία ενδεικτική προσέγγιση υλοποίησης της Π.Χ. 1. Για κάθε αλλαγή κατάστασης σε πτήση, εντοπίζεται η πτήση που μεταβάλλεται. 2. Εξετάζεται η ενημερωμένη ένδειξη Remarks στα στοιχεία της πτήσης. 3. Καταμετρώνται οι πτήσεις που εμφανίζονται με την ένδειξη Departed (και αυτές με την ένδειξη Cancelled για τη 2η εναλλακτική ροή). 4. Καθαρίζεται ο Πίνακας για να εμφανιστούν οι νέες ενδείξεις. 5. Αν η πτήση έχει μεταβληθεί σε Departed τότε εμφανίζεται στον Πίνακα ενημερωμένη γραμμή με Δεν υπάρχει αλλαγή στην οθόνη διεπαφής. Δεν υπάρχει αλλαγή στην οθόνη διεπαφής. Δεν υπάρχει αλλαγή στην οθόνη διεπαφής. Σβήνουν όλες οι ενδείξεις και ο πίνακας προετοιμάζεται για την εμφάνιση των ενημερωμένων ενδείξεων ταξινομημένων σύμφωνα με τα κριτήρια των μη λειτουργικών απαιτήσεων. Κατά την επανεμφάνιση γραμμής για πτήση, που η κατάστασή της έχει μεταβληθεί, εμφανίζεται γραμμή 6

7 6. τα στοιχεία της. Αν υπάρχουν και άλλες πτήσεις για τις οποίες δεν έχει ενημερωθεί ο Πίνακας η διαδικασία επαναλαμβάνεται. με ενημερωμένα τα στοιχεία της πτήσης. Για κάθε πτήση, αν δεν έχει συμβεί σε αυτή αλλαγή κατάστασης, τότε η γραμμή επανεμφανίζεται στη σωστή σειρά, ενώ αν έχει συμβεί αλλαγή τότε εμφανίζεται νέα γραμμή με ενημερωμένα τα στοιχεία της πτήσης. Η εναλλακτική ροή 1 (καθυστέρηση πτήσης) διαφοροποιείται ως προς τα πεδία της πτήσης που πρέπει να ενημερωθούν (αλλάζει και η ένδειξη Expected Departure). Η εναλλακτική ροή 2 (ακύρωση πτήσης) διαφοροποιείται ως προς το ότι κάποιες άλλες γραμμές πτήσεων που έχουν ακυρωθεί ανάλογα με τη νέα σειρά ταξινόμησης δεν πρόκειται να επανεμφανιστούν. ΕΡΩΤΗΣΗ 2 Με βάση την περιγραφή του συστήματος, να σχεδιάσετε το αρχικό διάγραμμα κλάσεων, το οποίο θα αποτελέσει το μοντέλο του πεδίου εφαρμογής (domain model). Για το σκοπό αυτό, θα χρειαστεί να εντοπίσετε τα αντικείμενα που συνιστούν τις βασικές αφαιρέσεις του πεδίου εφαρμογής. Προσέξτε, το μοντέλο πεδίου εφαρμογής δεν είναι το μοντέλο του υπό ανάπτυξη συστήματος (συνήθως είναι ευρύτερο). ΑΠΑΝΤΗΣΗ 2 Το μοντέλο του πεδίου εφαρμογής προκύπτει από το κείμενο των Π.Χ. και των μη λειτουργικών απαιτήσεων μέσα από μια διαδικασία καταγραφής και επεξεργασίας των ουσιαστικών και των ρημάτων: Τα ουσιαστικά που εντοπίζονται μπορεί να αντιστοιχούν σε κλάσεις ή πεδία κλάσεων. Τα ρήματα ή οι φράσεις που δηλώνουν ενέργεια μπορεί να αντιστοιχούν σε μεθόδους ή συσχετίσεις των οντοτήτων. Οι κτητικές φράσεις συνήθως περιγράφουν ιδιότητες/πεδία των κλάσεων και συσχετίσεις. Εφαρμόζοντας τους προαναφερόμενους κανόνες στην περιγραφή των Π.Χ. και των μη λειτουργικών απαιτήσεων καταλήγουμε στο διάγραμμα κλάσεων του σχήματος, που αποτελεί το μοντέλο του πεδίου εφαρμογής. Χρησιμοποιήθηκαν αγγλικά ονόματα για τις κλάσεις που εντοπίστηκαν στο κείμενο για να διατηρηθεί η συνέπεια ως προς την ονοματολογία τόσο στην αναλυτική σχεδίαση του συστήματος, όσο και στην τελική του υλοποίηση. Για τις συσχετίσεις, που τα ονόματά τους δεν επηρεάζουν την υλοποίηση του συστήματος χρησιμοποιήθηκαν ρήματα στα ελληνικά. 7

8 ΕΡΩΤΗΣΗ 3 Με βάση τις μη λειτουργικές απαιτήσεις να σχεδιάσετε το διάγραμμα καταστάσεων της κλάσης ΠΤΗΣΗ που με ακρίβεια θα περιγράφει όλες τις πιθανές μεταβολές κατάστασης που μπορεί να συμβούν από τη στιγμή που η πτήση εισάγεται στο σύστημα από τη ΒΔ με αρχική κατάσταση OnTime (να αποτυπώσετε με ακρίβεια πάνω στο διάγραμμα καταστάσεων τις συνθήκες που προκαλούν κάθε μεταβολή). ΑΠΑΝΤΗΣΗ 3 Στο διάγραμμα καταστάσεων του σχήματος αποτυπώνονται η αρχική και οι τελικές καταστάσεις που μπορεί να βρεθεί ένα αντικείμενο της κλάσης Flight. Κάθε μεταβολή μπορεί να προκαλείται είτε από ένα γεγονός (π.χ. ανάκληση πτήσης, καθυστέρηση), είτε όταν εκπληρώνεται κάποια συνθήκη (σημειώνεται στο διάγραμμα ανάμεσα σε [ και ]). Το curtime εκφράζει την τρέχουσα ώρα, το fl_scheduled_time εκφράζει την προγραμματισμένη ώρα αναχώρησης και το fl_expected_time εκφράζει την αναμενόμενη ώρα αναχώρησης της πτήσης μετά από μία ή περισσότερες καθυστερήσεις. 8

9 ΕΡΩΤΗΣΗ 4 Με βάση την περιγραφή των περιπτώσεων χρήσης «Ενημέρωση του Πίνακα Αναχωρήσεων» και «Αλλαγή Χρονοδιαγράμματος Πτήσης» να κάνετε ανάλυση ευρωστίας με σκοπό τον εντοπισμό κενών στο μοντέλο του πεδίο εφαρμογής. Το ζητούμενο είναι ένα διάγραμμα ευρωστίας, που με εύληπτο τρόπο θα αναπαριστά τον τρόπο με τον οποίο η στατική δομή (διάγραμμα κλάσεων) υλοποιεί τη δοθείσα περίπτωση χρήσης του συστήματος. Θα χρειαστεί να κατασκευάσετε ένα διάγραμμα ευρωστίας για κάθε βασική και εναλλακτική ροή. ΑΠΑΝΤΗΣΗ 4 Κάθε διάγραμμα ευρωστίας αναπαριστά τα αντικείμενα του συστήματος, που συμμετέχουν στη βασική ή σε μία εναλλακτική ροή της Π.Χ. και τον τρόπο με τον οποίο αυτά αλληλεπιδρούν. Διαπερνούμε το κείμενο που περιγράφει τις Π.Χ., μία ροή τη φορά και σχεδιάζουμε του χειριστές, τις κλάσεις και τις συνδέσεις ανάμεσα στα στοιχεία του διαγράμματος. Οι κλάσεις που επιλέγουμε μπορεί να ανήκουν σε ένα από τα παρακάτω είδη: κλάσεις οντοτήτων συνοριακές κλάσεις, οι οποίες είναι οι φόρμες που αναφέρονται ή υπονοούνται και σε κάποιες περιπτώσεις το αποτέλεσμα της λειτουργίας τους υποκαθίσταται από τα threads, που αναφέρονται στις απαιτήσεις αλλά και στην εκφώνηση των Π.Χ. κλάσεις ελέγχου, οι οποίες υλοποιούν σημεία των περιπτώσεων χρήσης που εκτιμούμε ότι απαιτούν κάποια λογική, επεξεργασία, λήψη απόφασης κλπ. Οι χειριστές μπορεί να επικοινωνούν μόνο με αντικείμενα συνοριακών κλάσεων. Τα συνοριακά αντικείμενα επικοινωνούν μόνο με χειριστές και αντικείμενα ελέγχου. Τα αντικείμενα των κλάσεων οντοτήτων επικοινωνούν μόνο με αντικείμενα ελέγχου, ενώ τα αντικείμενα ελέγχου επικοινωνούν με συνοριακά αντικείμενα, αντικείμενα οντοτήτων και άλλα αντικείμενα ελέγχου, αλλά σε καμία περίπτωση δεν μπορεί να επικοινωνούν με χειριστές. Ελέγχουμε την ορθότητα και πληρότητα ενός διαγράμματος ευρωστίας ως εξής: για κάθε ακολουθία ενεργειών της Π.Χ. πρέπει να μπορούμε διατρέχοντας το διάγραμμα να εντοπίσουμε πάνω στις ακμές του μια διατεταγμένη σειρά από αριθμημένα βέλη, η οποία αντιστοιχίζεται στα βήματα της ακολουθίας. Διάγραμμα ευρωστίας για την Π.Χ.: Ενημέρωση του Πίνακα Αναχωρήσεων (βασική ροή) Ο χειριστής FlightCompany αλληλεπιδρά με το σύστημα μέσω διεπαφής χρήστη (UIFlightCompany), που όμως δε ζητείται από την εκφώνηση η κατασκευή της, αλλά η προσομοίωση της λειτουργίας της από ένα κατάλληλο thread (ThreadFC), που εκφράζεται από ένα αντικείμενο ελέγχου επειδή εμπεριέχει επεξεργασία και λήψη αποφάσεων. Κάθε πτήση ελέγχεται αν αυτή είναι πτήση του Αερομεταφορέα (GetAirline) και αν αυτή πράγματι είναι, τότε μπορεί να γίνει σε αυτή αλλαγή κατάστασης (Make Changes), που έχει ως συνέπεια την ενημέρωση του σχετικού πεδίου της κλάσης οντότητας Flight (SetRemarks). Τα βήματα αυτά εκφράζουν την αλλαγή κατάστασης μιας πτήσης, ενώ η βασική ροή της Π.Χ. αναφέρεται σε κάθε αλλαγή κατάστασης. 9

10 σημείωση α. το getglightinfo δεν αντιστοιχεί σε ένα αλλά σε πολλά μηνύματα που αποστέλλονται σε αντικείμενο της κλάσης Flight για να αντληθούν πληροφορίες για την πτήση β. το setvalueat επαναλαμβάνεται όσες φορές χρειάζεται για την εκτύπωση των στοιχείων της πτήσης στον Πίνακα Ένα άλλο thread (ThreadAT) θα είναι υπεύθυνο για την ενημέρωση του πίνακα (Draw), που καταρχήν περιλαμβάνει την ταξινόμηση των καταχωρήσεων στο αντικείμενο οντότητας AnnounceTable (sort). Στη συνέχεια, για κάθε πτήση ανακτώνται από το αντίστοιχο αντικείμενο οντότητας όλες οι πληροφορίες που χρειάζονται για την απεικόνιση των ενημερωμένων στοιχείων της πτήσης στον Πίνακα Αναχωρήσεων (JTable). Διάγραμμα ευρωστίας για την Π.Χ.: Ενημέρωση του Πίνακα Αναχωρήσεων (εναλλακτική ροή 1) Το διάγραμμα ευρωστίας δε διαφέρει από αυτό της βασικής ροής. Διαφοροποιείται η λογική της λειτουργίας ελέγχου Draw και αυτή εφαρμόζεται για τις περιπτώσεις που η GetRemarks επιστρέφει την τιμή Delayed. Διάγραμμα ευρωστίας για την Π.Χ.: Ενημέρωση του Πίνακα Αναχωρήσεων (εναλλακτική ροή 2) Το διάγραμμα ευρωστίας δε διαφέρει από αυτό της βασικής ροής. Διαφοροποιείται η λογική της λειτουργίας ελέγχου Draw, καθώς αυτή θα πρέπει να αντικατοπτρίζει τις μη λειτουργικές 10

11 απαιτήσεις ως προς την εμφάνιση ή μη εμφάνιση μιας πτήσης Cancelled στον Πίνακα Αναχωρήσεων. Επίσης, η λογική αυτή θα εφαρμόζεται για τις περιπτώσεις που η GetRemarks επιστρέφει την τιμή Cancelled. Διάγραμμα ευρωστίας για την Π.Χ.: Αλλαγή Κατάστασης Πτήσης (βασική ροή) Η πτήση ανακαλείται από τη Β.Δ. μέσω του αντικειμένου ελέγχου DBConnector. Γίνεται καταγραφή των στοιχείων της πτήσης (LogLine) στο αρχείο κατάστασης πτήσεων (LogWriter) και ενημερώνεται ο Πίνακας Αναχωρήσεων (βήματα 4-7). Κάθε αλλαγή κατάστασης είναι συνέπεια της αλληλεπίδρασης του χειριστή FlightCompany με τη διεπαφή UIFlightCompany, που δε ζητείται η υλοποίησή της, αλλά οι συνέπειες της λειτουργίας της προσομοιώνονται από ένα thread (ThreadFC). Το διάγραμμα ευρωστίας για την εναλλακτική ροή 1 (καθυστέρηση πτήσης) δεν περιλαμβάνει καταγραφή της μεταβολής στο αρχείο, όπως στην περίπτωση της βασική ροής, δηλαδή υπάρχει μια διαφορά στο βήμα 17 (γίνεται μεταβολή σε Delayed), ενώ δεν υπάρχουν τα βήματα 18 και 19. Τέλος, το διάγραμμα ευρωστίας για την εναλλακτική ροή 2 (ακύρωση πτήσης) μοιάζει με αυτό του σχήματος με μια διαφορά στο βήμα 17, όπου γίνεται μεταβολή σε Cancelled. Και σε αυτή την περίπτωση έχουμε καταγραφή της μεταβολής στο αρχείο. 11

12 ΕΡΩΤΗΣΗ 5 Να συσχετίσετε με λεπτομέρεια τη δυναμική συμπεριφορά με τη στατική δομή του συστήματος αναπτύσσοντας ένα διάγραμμα ακολουθίας για κάθε ΠΧ. Προσέξτε, κάθε διάγραμμα ακολουθίας πρέπει να είναι συνεπές ως προς την περιγραφή της ΠΧ και των σχετικών με αυτή διαγραμμάτων ευρωστίας. ΑΠΑΝΤΗΣΗ 5 Το επόμενο βήμα σύμφωνα με την ICONIX είναι η επεξεργασία των διαγραμμάτων ακολουθίας. Ακολουθούμε μια επαναληπτική διαδικασία, επανεξετάζοντας λεπτομερώς τον αρχικό σχεδιασμό μέσα από τα σενάρια χρήσης και προσπαθώντας τώρα να περιγράψουμε επακριβώς πώς συνεργάζονται τα αντικείμενα που εντοπίσαμε. Ο στόχος είναι να πραχθεί το πλήρες μοντέλο της στατικής δομής (που ζητείται στο επόμενο ερώτημα) και της δυναμικής συμπεριφοράς του συστήματος με διαγράμματα ακολουθίας. Τα διαγράμματα αυτά πρέπει να δείχνουν με τη μεγαλύτερη δυνατή λεπτομέρεια τον τρόπο με τον οποίο συνεργάζονται τα αντικείμενα που δημιουργούμε από τις κλάσεις του διαγράμματος ευρωστίας, ώστε να υλοποιούνται τα βήματα των περιπτώσεων χρήσης. Παρουσιάζεται τόσο η κύρια ροή όσο και οι εναλλακτικές ροές. Αν η εναλλακτική ροή δημιουργεί πρόβλημα παρουσίασης της κύριας ροής, μπορούμε να έχουμε ξεχωριστό διάγραμμα. Τα διαγράμματα θα πρέπει να βρίσκονται σε πλήρη συμφωνία με τις προδιαγραφές των αντίστοιχων περιπτώσεων χρήσης, για αυτό τον λόγο, στην αριστερή πλευρά του διαγράμματος παραθέτουμε συνοπτικά τα βήματα της αναλυτικής περιγραφής. Βάση της μεθοδολογίας ICONIX, οι κλάσεις ελέγχου στο διάγραμμα ευρωστίας δεν είναι απαραίτητο να αντιστοιχούν πάντα σε κλάσεις της υλοποίησης της εφαρμογής. Ένα αντικείμενο μίας κλάσης ελέγχου, μπορεί να μεταφραστεί ως μία μέθοδος συνεργαζόμενης κλάσης, αν από μόνο του δεν έχει νόημα αυτόνομης ύπαρξης. Στο πρώτο σχήμα απεικονίζεται το διάγραμμα ακολουθίας για τη βασική ροή της Π.Χ. Ενημέρωση Πίνακα Αναχωρήσεων. Το διάγραμμα ακολουθίας για την εναλλακτική ροή 1 διαφέρει μόνο στην τελευταία φάση (alt block), η οποία εφαρμόζεται για πτήση που έχει περιέλθει σε κατάσταση Delayed. Εμφανίζεται η ενημερωμένη γραμμή στον Πίνακα σε κάθε περίπτωση, δηλαδή δεν εξαρτάται από το πόσες πτήσεις έχουν γίνει Delayed). Τέλος, το διάγραμμα ακολουθίας για την εναλλακτική ροή 2 διαφέρει επίσης στην τελευταία φάση (alt block), η οποία εφαρμόζεται για πτήση που έχει περιέλθει σε κατάσταση Cancelled και ανήκει στις τρεις πιο πρόσφατα ακυρωμένες, με βάση την τελευταία προγραμματισμένη ώρα αναχώρησης. Στη συνέχεια δίνεται με ανάλογο τρόπο το διάγραμμα ακολουθίας για τη βασική ροή της Π.Χ. Αλλαγή Κατάστασης Πτήσης, καθώς και τα διαφοροποιημένα σημεία που αφορούν την εναλλακτική ροή 1 (καθυστέρηση πτήσης) και την εναλλακτική ροή 2 (ακύρωση πτήσης). 12

13 Π. Χ.: ΕΝΗΜΕΡΩΣΗ ΠΙΝΑΚΑ ΑΝΑΧΩΡΗΣΕΩΝ (Βασική ροή) Για κάθε αλλαγή κατάστασης σε πτήση, εντοπίζεται η πτήση που μεταβάλλεται. Εξετάζεται η ενημερωμένη ένδειξη Remarks στα στοιχεία της πτήσης. Καταμετρώνται οι πτήσεις που εμφανίζονται με την ένδειξη Departed (και αυτές με την ένδειξη Cancelled για τη 2η εναλλακτική ροή). Καθαρίζεται ο Πίνακας για να εμφανιστούν οι νέες ενδείξεις. Αν η πτήση έχει μεταβληθεί σε Departed τότε εμφανίζεται στον Πίνακα ενημερωμένη γραμμή με τα στοιχεία της. Αν υπάρχουν και άλλες πτήσεις για τις οποίες δεν έχει ενημερωθεί ο Πίνακας η διαδικασία επαναλαμβάνεται. 13

14 14

15 Π. Χ.: ΑΛΛΑΓΗ ΚΑΤΑΣΤΑΣΗΣ 1. Το σύστημα ανακαλεί την πτήση 2. Γίνεται καταγραφή των στοιχείων της στο αρχείο κατάστασης πτήσεων 3. Ενημερώνεται ο Πίνακας Αναχωρήσεων 4. Αν δεν υπάρχει πρόβλημα, η κατάσταση αλλάζει σε Boarding. 5. Αν δεν εμφανιστεί πρόβλημα, η κατάσταση αλλάζει από Boarding σε Departed. 15

16 Εναλλακτική Ροή 1 1. Η κατάσταση της πτήσης αλλάζει σε Delayed. 2. Η πτήση προγραμματίζεται ξανά. 3. Γίνεται καταγραφή της μεταβολής στο αρχείο κατάστασης πτήσεων. Εναλλακτική Ροή 2 1. Η κατάσταση της πτήσης αλλάζει σε Cancelled. 2. Γίνεται καταγραφή της μεταβολής στο αρχείο κατάστασης πτήσεων. 16

17 ΕΡΩΤΗΣΗ 6 Να ενημερώσετε, με βάση όσα προέκυψαν κατά το σχεδιασμό των διαγραμμάτων ευρωστίας και ακολουθίας, το αρχικό διάγραμμα κλάσεων, ώστε στο τέλος να απεικονίζει τη δομή του συστήματος διαχειρισης του Πίνακα Αναχωρήσεων. Οι κλάσεις θα πρέπει να είναι πλήρεις, δηλαδή να περιλαμβάνουν κατηγορήματα και μεθόδους. Προσέξτε να μην αποκλίνετε από τις αρχικές απαιτήσεις. ΑΠΑΝΤΗΣΗ 6 Για την ολοκλήρωση του λεπτομερούς σχεδιασμού χρησιμοποιούμε το μοντέλο του πεδίου προβλήματος (αρχικό διάγραμμα κλάσεων), το διαγράμματα περιπτώσεων χρήσης μαζί με τις περιγραφές τους, τα διαγράμματα ευρωστίας που σχεδιάσαμε για κάθε ροή των Π.Χ. και τα λεπτομερή διαγράμματα ακολουθίας. Επιβεβαιώνουμε ότι για κάθε Π.Χ. η ροή μηνυμάτων στο διάγραμμα ακολουθίας ταιριάζει με την ακολουθία ενεργειών στην περιγραφή της Π.Χ. για τη βασική και όλες τις εναλλακτικές ακολουθίες ενεργειών και αποκρίσεων. Ελέγχουμε την ορθότητα της ροής ελέγχου σε κάθε διάγραμμα ακολουθίας, επαληθεύοντας την ορθότητα της κατεύθυνσης των μηνυμάτων και τη διασφάλιση της συνεχούς λειτουργίας του συστήματος. Πρέπει να είναι εμφανές ποιο αντικείμενο στέλνει και ποιο λαμβάνει κάθε μήνυμα, ενώ δεν πρέπει να υπάρχει μεταφορά ελέγχου εκτέλεσης ανάμεσα σε αντικείμενα χωρίς την ανταλλαγή αντίστοιχου μηνύματος. Θα πρέπει να γίνει αναλυτικός ορισμός των πεδίων των κλάσεων και των μεθόδων των κλάσεων. Ελέγχουμε την καλή κατανομή μεθόδων σε κλάσεις χρησιμοποιώντας τα ακόλουθα κριτήρια: Επαναχρησιμοποιησιμότητα (reusability): όσο πιο γενική είναι μια κλάση, τόσο πιο εύκολα μπορούμε να την επαναχρησιμοποιήσουμε. Εφαρμοσιμότητα (applicability): πρέπει κάθε φορά να εξετάζουμε κατά πόσο μια μέθοδος «ταιριάζει» με την κλάση στην οποία σκεφτόμαστε να την κατανείμουμε. Πολυπλοκότητα (complexity): εξετάζουμε το βαθμό δυσκολίας υλοποίησης μιας μεθόδου μέσα σε μια ή σε άλλη κλάση, προσπαθώντας να μειώσουμε την πολυπλοκότητα της υλοποίησης. Εξετάζουμε εάν η υλοποίηση μια μεθόδου μέσα σε μια κλάση απαιτεί τη γνώση εσωτερικών λεπτομερειών υλοποίησης της κλάσης. Κάνουμε έλεγχο της ποιότητας των κλάσεων, δηλαδή το βαθμό στον οποίο ο σχεδιασμός τους ικανοποιεί τα ακόλουθα κριτήρια: o σύζευξη o συνοχή o επάρκεια o πληρότητα o πρωτογένεια Το διάγραμμα κλάσεων που ακολουθεί δίνει τη λεπτομερή σχεδίαση του συστήματος, όπως αυτή προέκυψε με την εφαρμογή της διαδικασίας που περιγράφηκε. 17

18 18

19 ΕΡΩΤΗΣΗ 7 Με τη χρήση της μεθόδου Use Case Points εκτιμήστε την προσπάθεια που απαιτείται από εσάς για την κατασκευή του συστήματος πριν ξεκινήσετε την ανάπτυξη. Στη συνέχεια να χρονομετρήσετε με όσο το δυνατό μεγαλύτερη ακρίβεια την προσπάθεια που θα καταβάλλετε για την υλοποίηση της εφαρμογής. Μετά το πέρας της υλοποίησης να συγκρίνετε την εκτίμηση με την πραγματική προσπάθεια. Είναι πιθανό να υπάρχει σημαντική απόκλιση. Αυτό όμως δε σημαίνει απαραίτητα ότι έχετε κάνει κάποιο λάθος. Στην περίπτωση αυτή να αιτιολογήσετε αυτή την απόκλιση. Υπόδειξη: Ακολουθείστε το παράδειγμα εφαρμογής της μεθόδου που θα βρείτε στην περίπτωση μελέτης Μισθοδοσία Υπαλλήλων (βλ. στο portal της ΠΛΗ24 στο βοηθητικό υλικό του Τόμου Β). Επίσης μπορείτε να επισκεφθείτε και τις διευθύνσεις για μία εναλλακτική επεξήγηση της μευθόδου. ΑΠΑΝΤΗΣΗ 7 Για να εφαρμόσουμε τη μέθοδο ακολουθούμε τα εξής βήματα (υπάρχει αρκετή υποκειμενικότητα στην απόδοση τιμών και η απάντησή σας μπορεί να είναι αρκετά διαφορετική από την ενδεικτική): 1. Χαρακτηρισμός Χειριστών Αερομεταφορέας: Βάρος Χειριστή UAW1 = 2 (Μέτρια πολυπλοκότητα, είναι λιγότερο πολύπλοκος από ένα GUI, αλλά η υλοποίησή του απαιτεί σκέψη και ανάλυση) Πίνακας Πτήσεων: Βαρος Χειριστή UAW2 = 1 (Απλός, πρόκειται για μία καλά ορισμένη και απλή δομή δεδομένων) 2. Χαρακτηρισμός Π.Χ. Βάρος Π.Χ. Ενημέρωση Πίνακα Αναχωρήσεων UUCW1 = 3 (Σύνθετη Π.Χ., πολλά βήματα, λαμβάνονται υπόψη και τα βήματα των εναλλακτικών ροών) Βάρος Π.Χ. Αλλαγή Κατάστασης Πτήσης UUCW2 = 3 (Σύνθετη Π.Χ., πολλά βήματα, λαμβάνονται υπόψη και τα βήματα των εναλλακτικών ροών) 3.Υπολογισμός συνολικού αριθμού αστάθμητων σημείων ΠΧ UUCP = UAW1 + UAW2 + UUCW1 + UUCW2 = 9 4.Απόδοση Τιμής σε Παράγοντες Τεχνικής Πολυπλοκότητας και σε Παράγοντες Περιβάλλοντος (βλ. άρθρο Clemmons στο Διαδίκτυο). Τεχνικοί παράγοντες Παράγοντας Βάρος Τιμή Τελική Τιμή Σχόλιο 19

20 Κατανεμημένο Σύστημα Απαιτήσεις Απόδοσης Αποδοτικότητα Τελικών Χρηστών Σύνθετη Εσωτερική Επεξεργασία Επαναχρησιμοποιήσιμο ς Κώδικας Ευκολία Εγκατάστασης Ευχρηστία ,5 0, ,5 Ευκολία αλλαγής Ταυτόχρονη λειτουργία Ασφάλεια Πρόσβαση σε τρίτους Εκπαίδευση χρηστών Παράγοντες Περιβάλλοντος Παράγοντας Βάρος Τιμή Τελική Τιμή Οικειότητα με τη UML 1,5 1,5 2,25 Εργασία part time Ικανότητα ανάλυσης 0,5 1 0,5 Εμπειρία Εφαρμογής Εμπειρία στην Αντικειμενοστρέφεια Κίνητρο 0, ,5 0 1, Δυσκολία Γλώσσας Προγραμματισμού Σταθερές Απαιτήσεις πρέπει να υπάρξει μέριμνα για καλή διεπαφή με το Χειριστή Αερομεταφορέα Ανάγκη για ικανοποίηση πολλών περιορισμών υποτίθεται ότι θα πρέπει να υπάρχει μία στοιχειώδης ευχρηστία της εφαρμογής, π.χ. ευκολία ανάγνωσης του πίνακα υποτίθεται ότι ο κώδικάς μας πρέπει ούτως ή άλλως να διευκολύνει μελλοντικές αλλαγές πολλές απαιτήσεις ταυτοχρονισμού δεν υπάρχουν εξωτερικές διεπαφές με άλλα συστήματα Σχόλιο Θεωρώντας ότι έχετε εκπονήσει και τις δύο προηγούμενες γραπτές εργασίες Θεωρώντας ότι ασχολείστε ευκαιριακά με την παρούσα εργασία Υπάρχει κάποια γνώση αλλά όχι επαγγελματική άγνωστη εφαρμογή Υπάρχει κάποια εμπειρία αλλά όχι επαγγελματική μέση τιμή εξαρτάται από τον κάθε προγραμματιστή ξεχωριστά Η Java δεν θεωρείται εύκολη γλώσσα Πλήρως ορισμένες απαιτήσεις. Τυχόν ασάφειες επιλύθηκαν με ερωτήσεις στο φόρουμ και στους ΣΕΠ 5.Υπολογισμός αθροίσματος παραγόντων τεχνικής πολυπλοκότητας Συνολικά Tfactor = 11,5 6.Υπολογισμός παράγοντα τεχνικής πολυπλοκότητας 20

21 TCF = 0,6 + 0,01 * 11,5 = 0,72 7.Υπολογισμός αθροίσματος παραγόντων περιβάλλοντος Συνολικά Efactor = 9,25 8.Υπολογισμός παράγοντα περιβάλλοντος ΕCF = 1,4 (0,03 * 9,25) = 1,12 9.Υπολογισμός σταθμισμένων στοιχείων Π.Χ. ΑUCP = UUCP * TCF * EF = 9 * 11,5 * 1,12 = 7,26 10.Υπολογισμός συνολικής απαιτούμενης προσπάθειας Θεωρούμε ότι απαιτούνται 20 ώρες εργασίας ανά AUCP Effort = 20 * 7,26 = 145,15 ώρες εργασίας Σχολιασμός Η εκπόνηση μίας εργασίας από ένα φοιτητή είναι διαφορετική από την επαγγελματική ανάπτυξη λογισμικού από την οποία προέρχεται η μέθοδος των Use Case Points (π.χ απαιτείται πολύ καλή τεκμηρίωση του κώδικα, συγγραφή εγχειριδίων τεκμηρίωσης και εξονυχιστικός έλεγχος). Επομένως η εκτίμηση με τη μέθοδο δίνει μία υπερεκτίμηση σε σχέση με την προσπάθεια που αφιερώσατε εσείς για την εργασία σας Άλλοι λόγοι που μπορεί να οδηγούν σε αποκλίσεις μπορεί να οφείλονται: - Στην υποκειμενικότητα στην απόδοση τιμών Στο περιθώριο λάθους που εμπεριέχει η μέθοδος Στο γεγονός ότι μέρος της ανάλυσης (π.χ. διαγράμματα) έχει γίνει πριν από την εφαρμογή της μεθόδου 21

22 ΕΡΩΤΗΣΗ 8 Να δημιουργήσετε τη ΒΔ των πτήσεων για μια συγκεκριμένη ημέρα λειτουργίας του αεροδρομίου (φροντίστε ώστε ο συνολικός αριθμός των πτήσεων να είναι το πολύ 50). Παραθέστε το σχήμα της βάσης και τον κώδικα με τον οποίο τη διαχειρίζεται η εφαρμογή. ΑΠΑΝΤΗΣΗ 8 Η βάση δεδομένων δημιουρθήκε με την Derby μέσα από το Netbeans. Το σχήμα φαίνεται στην παρακάτω εικόνα. 22

23 Οι πτήσεις καταχωρούνται στον πίνακα FLIGHT. Για την καλύτερη οργάνωση δημιουργήθηκε και ο πίνακας COMPANY που κρατά τις αεροπορικές εταιρείες. Αρχικά εισάγουμε στον πίνακα COMPANY τις αεροπορικές εταιρείες με τις παρακάτω εντολές SQL: INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO COMPANY COMPANY COMPANY COMPANY COMPANY COMPANY COMPANY VALUES VALUES VALUES VALUES VALUES VALUES VALUES ('Olympic Airlines') ('Aegean Airlines') ('Baboo') ('British Airways') ('Delta Airlines') ('Athens Airways') ('Cyprus Airways') Στην παρακάτω οθόνη φαίνεται το αποτέλεσμα: 23

24 Στη συνέχεια εισάγουμε τις πτήσεις στον πίνακα FLIGHT με τις παρακάτω εντολές SQL: VALUES ('Larnaca','Cyprus Airways','CY 322','05:45:00',NULL) VALUES ('London','Cyprus Airways','CY 324','05:48:00',NULL) VALUES ('Geneva','Baboo','BBO 294','05:51:00','Nice') VALUES ('Milos','Olympic Airlines','OA 048','06:00:00',NULL) VALUES ('London','British Airways','BA 031','06:12:00',NULL) VALUES ('Milos','Olympic Airlines','OA 049','07:00:00',NULL) VALUES ('New York','Delta Airlines','DL 001','07:15:00','London') VALUES ('Boston','Delta Airlines','DL 002','07:21:00',NULL) VALUES ('Kerkyra','Athens Airways','ZF 130','07:24:00',NULL) VALUES ('Ioannina','Athens Airways','ZF 132','07:27:00',NULL) VALUES ('Milos','Aegean Airlines','A3 049','07:30:00',NULL) VALUES ('Heraklio','Olympic Airlines','OA 149','08:00:00',NULL) VALUES ('Rodos','Olympic Airlines','OA 250','08:09:00',NULL) VALUES ('Rodos','Aegean Airlines','A3 250','08:15:00',NULL) VALUES ('Heraklio','Aegean Airlines','A3 149','08:30:00',NULL) VALUES ('Thessaloniki','Olympic Airlines','OA 300','09:21:00',NULL) VALUES ('Thessaloniki','Aegean Airlines','A3 300','09:42:00',NULL) VALUES ('London','British Airways','BA 032','10:00:00',NULL) VALUES ('Larnaca','Cyprus Airways','CY 334','10:09:00',NULL) VALUES ('Rodos','Olympic Airlines','OA 251','11:30:00',NULL) VALUES ('Rodos','Aegean Airlines','A3 251','11:54:00',NULL) VALUES ('Heraklio','Olympic Airlines','OA 150','12:00:00',NULL) 24

25 VALUES ('Heraklio','Aegean Airlines','A3 150','12:12:00',NULL) VALUES ('Paris','British Airways','BA 033','13:09:00',NULL) VALUES ('Larnaca','Cyprus Airways','CY 336','13:15:00',NULL) VALUES ('Ioannina','Athens Airways','ZF 134','14:00:00',NULL) VALUES ('Alexandroupoli','Athens Airways','ZF 136','14:03:00',NULL) VALUES ('Kavala','Athens Airways','ZF 138','14:06:00',NULL) VALUES ('Amsterdam','British Airways','BA 034','14:15:00',NULL) VALUES ('Thessaloniki','Olympic Airlines','OA 301','16:42:00',NULL) VALUES ('Thessaloniki','Aegean Airlines','A3 301','16:57:00',NULL) VALUES ('Heraklio','Olympic Airlines','OA 151','17:00:00',NULL) VALUES ('Heraklio','Aegean Airlines','A3 151','17:30:00',NULL) VALUES ('Geneva','Baboo','BBO 494','17:51:00','Nice') VALUES ('London','British Airways','BA 134','18:03:00','Paris') VALUES ('Berlin','Olympic Airlines','OA 1006','18:30:00',NULL) VALUES ('Milos','Olympic Airlines','OA 349','19:00:00',NULL) VALUES ('Rome','Olympic Airlines','OA 1004','19:03:00',NULL) VALUES ('Heraklio','Olympic Airlines','OA 449','20:00:00',NULL) VALUES ('Larnaca','Cyprus Airways','CY 354','20:03:00',NULL) VALUES ('London','Cyprus Airways','CY 454','20:06:00',NULL) VALUES ('Rodos','Olympic Airlines','OA 350','20:09:00',NULL) VALUES ('Liverpool','British Airways','BA 035','21:00:00',NULL) VALUES ('Kavala','Athens Airways','ZF 140','21:03:00',NULL) VALUES ('Thessaloniki','Olympic Airlines','OA 400','21:21:00',NULL) 25

26 VALUES ('Rodos','Olympic Airlines','OA 351','21:30:00',NULL) VALUES ('Heraklio','Olympic Airlines','OA 550','22:00:00',NULL) VALUES ('New York','Delta Airlines','DL 003','22:03:00',NULL) VALUES ('Thessaloniki','Olympic Airlines','OA 401','23:42:00',NULL) VALUES ('Heraklio','Olympic Airlines','OA 451','23:45:00',NULL) Στην παρακάτω οθόνη φαίνεται το αποτέλεσμα: 26

27 Για τη διαχείριση της βάσης δεδομένων δημιουργήθηκε η κλάση DBConnector, ο κώδικας της οποίας φαίνεται παρακάτω: package airpr; import import import import java.sql.*; java.util.*; javax.swing.jtable; javax.swing.jtextfield; /* * To change this template, choose Tools Templates * and open the template in the editor. */ /** * UKXD */ public class DBConnector { final private String database = "AIRDB"; final private String user = "plh24"; final private String password = "plh24"; final private String driver = "org.apache.derby.jdbc.clientdriver"; final private String connstring = "jdbc:derby://localhost:1527/"; private Connection connection; private Statement statement; private AnnounceTable board; private LogWriter lw; public DBConnector() { try { // load database driver class Class.forName(driver); // connect to database connection = DriverManager.getConnection(connString + database, user, password); catch (Exception ex) { System.out.println("Exception: " + ex); public void closefile() { lw.outfile.close(); public void loaddb(jtable jt, JTextField jtf) { try { lw = new LogWriter(); 27

28 ResultSet rscom = connection.createstatement().executequery("select * FROM COMPANY"); ResultSet rs = connection.createstatement().executequery("select DEPARTURES,AIRLINE,FLIGHT,SCHED_TIME,VIA FROM FLIGHT"); ArrayList AllFlights = new ArrayList(); while (rs.next()) //DEPARTURES,AIRLINE,FLIGHT,SCHED_TIME,VIA AllFlights.add(new Flight(rs.getString(1), rs.getstring(2), rs.getstring(3), rs.gettime(4), rs.getstring(5))); board = new AnnounceTable(jt,jtf,AllFlights); while (rscom.next()) new FlightCompany(rscom.getString(1),AllFlights,board,lw); catch (SQLException ex) { System.out.println("Exception: " + ex); Η μέθοδος loaddb: α) διαβάζει τα δεδομένα των προγραμματισμέων πτήσεων από τον πίνακα FLIGHT και για κάθε εγγραφή του πίνακα (δηλαδή για κάθε πτήση) δημιουργεί ένα αντικείμενο της κλάσης Flight το οποίο το προσθέτει στη λίστα AllFlights που είναι τύπου ArrayList, β) διαβάζει τα δεδομένα των αεροπορικών εταιρειών από τον πίνακα COMPANY και για κάθε εγγραφή του πίνακα (δηλαδή για κάθε αεροπορική εταιρεία) δημιουργεί ένα αντικείμενο της κλάσης FlightCompany, γ) δημιουργεί το αντικείμενο board του πίνακα ανακοινώσεων (κλάση AnnounceTable) και δημιουργεί το αντικείμενο lw του καταγραφέα των αλλαγών κατάστασης των πτήσεων (κλάση LogWriter). Το αντικείμενο AllFlights περνά σαν πληροφορία στο αντικείμενο του πίνακα ανακοινώσεων. Τα αντικείμενα board και lw περνούν σαν πληροφορία στα αντικείμενα των αεροπορικών εταιρειών. Με την κλάση DBConnector υλοποιείται η μη λειτουργική απαίτηση Α1. ΕΡΩΤΗΣΗ 9 Να δημιουργήσετε και να ενημερώνετε τον Πίνακα Αναχωρήσεων του αεροδρομίου, σύμφωνα με τις περιπτώσεις χρήσης και τις μη λειτουργικές απαιτήσεις. Παραθέστε τον κώδικα με τον οποίο η εφαρμογή διαχειρίζεται τον πίνακα (ως γραφική διεπαφή) και την αντίστοιχη δομή δεδομένων. Παραθέστε πέντε στιγμιότυπα του πίνακα κατά τη διάρκεια εκτέλεσης της εφαρμογής (βλ. πιο κάτω) ΑΠΑΝΤΗΣΗ 9 Για τη δημιουργία της εφαρμογής επιλέχθηκε η δυνατότητα του Netbeans για τη δημιουργία desktop applications (βλέπε παρακάτω οθόνη). 28

29 Στην οθόνη που δημιούργησε το Netbeans προστέθηκε το αντικείμενο jtable1 τύπου JTable για τον πίνακα ανακοινώσεων και τα αντικείμενα jlabel1 τύπου JLabel και jtexfield1 τύπου JTextField για την προβολή της τρέχουσας ώρας. Το όνομα της σχετικής κλάσης είναι AirPrView και παραθέτουμε μόνο το τμήμα του κώδικα που εισαγάγαμε. public class AirPrView extends FrameView { public JTable jt; public JTextField jtf; public DBConnector db = new DBConnector();... Για την καλύτερη κατανόηση του κώδικα της κλάσης AirPrView παραθέτουμε τον κώδικα της βασικής κλάσης (main), χωρίς τα σχόλια. package airpr; import org.jdesktop.application.application; 29

30 import org.jdesktop.application.singleframeapplication; public class AirPrApp extends SingleFrameApplication { static public DBConnector db = new DBConnector(); static AirPrView protected void startup() { a=new AirPrView(this); show(a); db.loaddb(a.jt, protected void configurewindow(java.awt.window root) { public static AirPrApp getapplication() { return Application.getInstance(AirPrApp.class); public static void main(string[] args) { launch(airprapp.class, args); Στη μέθοδο startup δημιουργούμε ένα αντικείμενο για την οθόνη της εφαρμογής, καλούμε τη μέθοδο show για την εμφάνιση της οθόνης και στη συνέχεια έχοντας δημιουργήσει το αντικείμενο db τύπου DBConnector στον κώδικα της κλάσης της οθόνης, καλούμε τη μέθοδο loaddb της κλάσης DBConnector, η οποία και ουσιαστικά ενεργοποιεί την εκτέλεση της εφαρμογής. Με αυτό τον τρόπο επιτυγχάνουμε την εκτέλεση της εφαρμογής χωρίς την παρέμβαση του χρήστη. Σε αντίθετη περίπτωση θα έπρεπε να προστεθεί κάποιο πλήκτρο εκκίνησης στο μενού της οθόνης της εφαρμογής. Τρεις από τις βασικές κλάσεις της εφαρμογής είναι ο πίνακας ανακοινώσεων AnnounceTable, η αεροπορικής εταιρεία FlightCompany και η πτήση Flight. Παραθέτουμε τον κώδικα των σχετικών κλάσεων: package airpr; import java.sql.time; import javax.swing.jtable; import javax.swing.jtextfield; import java.util.*; import java.util.arraylist; //import java.io.*; /** * user */ class FlightComparator implements Comparator{ public int compare(object fl1, Object fl2){ //parameter are of type Object, so we have to downcast it to Employee objects String flighttime1 = ( (Flight) fl1).getscheduledtime().tostring(); String flighttime2 = ( (Flight) fl2).getscheduledtime().tostring(); if (! ((Flight)fl1).GetExpectedtime().equals(new Time(0,0,0)) ) flighttime1 = ( (Flight) fl1).getexpectedtime().tostring(); if (!( (Flight)fl2).GetExpectedtime().equals(new Time(0,0,0))) flighttime2 = ( (Flight) fl2).getexpectedtime().tostring(); return ( flighttime1.compareto(flighttime2)); 30

31 public class AnnounceTable implements Runnable{ private JTable jt; private JTextField jtf; private ArrayList lf; public Time curtime; static static static static final final final final int SLEEPDELAY=500; int ROWCOUNT=10; int COLUMNCOUNT=7; Time endtime = new Time(24,0,0); private void cleartable(){ int i,j; for(i=0;i<rowcount;i++) for(j=0;j<columncount;j++) jt.setvalueat((string)"", i, j); public AnnounceTable(JTable jt, JTextField jtf, ArrayList lf) { this.jt=jt; this.jtf=jtf; this.lf=lf; this.curtime=new Time(5,0,0); new Thread(this).start(); public void run() { while (true){ try { Draw(); Thread.sleep(SLEEPDELAY); curtime.setminutes(curtime.getminutes()+3); jtf.settext(curtime.tostring()); if (curtime.equals(endtime)) { break; catch (InterruptedException e) { System.err.println("interrupted"); public static int DiffInMinutes(Time a, Time b) { int ha=a.gethours(); int hb=b.gethours(); int ma=a.getminutes(); int mb=b.getminutes(); int diff=60*(hb-ha-1)+(60-ma)+mb; return(diff); public void Draw (){ int cancelledno=0; int departedno=0; int notdispcancelledno=0; int notdispdepartedno=0; int displayscheduledno=0; Collections.sort(lf, new FlightComparator()); int row=-1; Iterator itr2 = lf.iterator(); Time boardtime=new Time(0,0,0); while (itr2.hasnext()){ Flight f=(flight)itr2.next(); if (!f.getexpectedtime().equals(new Time(0,0,0))) 31

32 boardtime=f.getexpectedtime(); else boardtime=f.getscheduledtime(); if ((f.getremarks().equals("cancelled")) && (DiffInMinutes(boardtime,curtime)<=180)) cancelledno++; else if ((f.getremarks().equals("departed")) && (DiffInMinutes(boardtime,curtime)<=60)) departedno++; if (cancelledno>3) notdispcancelledno=cancelledno-3; if (departedno>2) notdispdepartedno=departedno-2; displayscheduledno=10-(cancelledno-notdispcancelledno)-(departedno-notdispdepartedno); cleartable(); Iterator itr = lf.iterator(); boolean gotonext; while (itr.hasnext()){ gotonext=true; Flight f=(flight)itr.next(); if (!f.getexpectedtime().equals(new Time(0,0,0))) boardtime=f.getexpectedtime(); else boardtime=f.getscheduledtime(); if ((f.getremarks().equals("cancelled")) && (DiffInMinutes(boardtime,curtime)<=180)) { if (notdispcancelledno>0) notdispcancelledno--; else gotonext=false; else if ((f.getremarks().equals("departed")) && (DiffInMinutes(boardtime,curtime)<=60)) { if (notdispdepartedno>0) notdispdepartedno--; else gotonext=false; else if ((boardtime.compareto(curtime)>=0)) { if (displayscheduledno>0) { displayscheduledno--; gotonext=false; if (!gotonext) { row++; if (row>rowcount-1) break; jt.setvalueat(f.getdepartures(), row, 0); jt.setvalueat(f.getairline(), row, 1); jt.setvalueat(f.getflightno(), row, 2); jt.setvalueat(f.getvia(), row, 3); jt.setvalueat("", row, 4); if (!f.getexpectedtime().equals(new Time(0,0,0))) jt.setvalueat(f.getexpectedtime().tostring(), row, 4); jt.setvalueat(f.getscheduledtime().tostring(), row, 5); jt.setvalueat(f.getremarks(), row, 6); 32

33 Η κλάση AnnounceTable υλοποιεί το interface Runnable, με την υλοποίηση της μεθόδου run. Συγκεκριμένα, κατά τη δημιουργία ενός αντικειμένου τύπου AnnounceTable (στην περίπτωση της εφαρμογής αυτό το αντικείμενο είναι μόνο ένα) δημιουργείται εάν thread με την εντολή new Thread(this).start(). Με το που δημιουργείται το thread εκτελείται ο κώδικας της μεθόδου run. Η συνθήκη τερματισμού της μεθόδου run και άρα και του thread είναι η τρέχουσα ώρα (υλοποιείται με το δεδομένο curtime, το οποίο αρχικοποιείται στην ώρα 5:00) να γίνει ίση με την ώρα τερματισμού (υλοποιείται με το στατικό δεδομένο endtime). Αρχικά το thread καλεί τη μέθοδο Draw (προβάλλει τα δεδομένα του πίνακα ανακοινώσεων), και στη συνέχεια περιμένει ένα «κβάντο» χρόνου. Με την αφύπνηση του thread αλλάζει η τρέχουσα ώρα κατά 3 sec. Η μέθοδος Draw χρησιμοποιεί τη λίστα των πτήσεων lf για την ανάγνωση των δεδομένων των πτήσεων και εμφανίζει στην οθόνη τις πτήσεις που πληρούν τη μη λειτουργική απαίτηση Α3. Για την ταξινόμηση των πτήσεων στη λίστα lf χρησιμοποιείται η κλάση FlightComparator που υλοποιεί το interface Comparator. Συγκεκριμένα υλοποιεί τη μέθοδο compare στην οποία καταγράφεται ο τρόπος ταξινόμησης των αντικειμένων στη λίστα στην οποία θα χρησιμοποιηθεί. Η ταξινόμηση γίνεται με την εντολή Collections.sort(lf, new FlightComparator()). package airpr; import java.util.*; import java.sql.time; /** * UKXD */ public class FlightCompany implements Runnable{ private String name; private ArrayList allflights; private AnnounceTable board; private LogWriter lw; public void FlightUpd(Flight f, String newstate){ f.setremarks(newstate); lw.logline(f.getairline()+" "+f.getflightno()+" "+f.getdepartures()+" "+f.getvia()+" "+f.getscheduledtime()); lw.logline(" status: "+newstate+" "+board.curtime.tostring()); public boolean FindOtherFlight(Flight f) { Iterator itr = allflights.iterator(); while (itr.hasnext()){ Flight fi=(flight)itr.next(); String flname=fi.getairline(); if ( (flname.equals(name)) && (f.getdepartures().equals(fi.getdepartures())) && (!f.getflightno().equals(fi.getflightno())) && ( ((fi.getremarks().equals("")) (fi.getscheduledtime().compareto(f.getexpectedtime())<=0 )) ((fi.getremarks().equals("delayed")) (fi.getexpectedtime().compareto(f.getexpectedtime())<=0 )) ) ) { return(true); return (false); && && 33

34 public int MakeChanges(Flight f) { double i,j; int delay; Time boardtime=new Time(0,0,0); Random generator = new Random(); boolean isdelayed=false; if (!f.getexpectedtime().equals(new Time(0,0,0))) { boardtime=f.getexpectedtime(); isdelayed=true; else boardtime=f.getscheduledtime(); //εάν έχει ακυρωθεί ή αναχωρήσει δεν γίνεται καμία αλλαγή if ((f.getremarks().equals((string)"cancelled")) (f.getremarks().equals((string)"departed"))) return(0); if ((boardtime.compareto(board.curtime)<=0)) { //εάν έχει περάσει η χσ αναχώρησης, τότε πάντα είναι departed FlightUpd(f,"Departed"); return(1); i=generator.nextdouble(); if (((!isdelayed) && (i>0.99)) ((isdelayed) && (i>0.97))) //0.95, 0.90 //cancel FlightUpd(f,"Cancelled"); else if ((i>0.96) && (!f.getremarks().equals((string)"boarding"))) { //new time 0.8 // FlightUpd(f,"Delayed"); j=generator.nextdouble(); //from 30 min to 6 hours are 330 minutes delay=30+3*(int)math.round(j*330)/6; if (!isdelayed) f.setexpectedtime(new Time(f.GetScheduledtime().getHours(),f.GetScheduledtime().getMinutes(),0)); if ( (delay+ board.diffinminutes(f.getexpectedtime(),f.getscheduledtime()) ) >180) { FlightUpd(f,"Cancelled"); return(1); if (FindOtherFlight(f)) { FlightUpd(f,"Cancelled"); return(1); f.getexpectedtime().setminutes(boardtime.getminutes()+delay); if ( board.diffinminutes(board.curtime,boardtime)<=30 ) FlightUpd(f,"Boarding"); return(1); public FlightCompany(String name, ArrayList allflights, AnnounceTable board, LogWriter lw) { this.name = name; this.allflights=allflights; this.board=board; this.lw = lw; new Thread(this).start(); public String GetName(){ return name; public void run() { 34

35 while (true){ try { Thread.sleep(board.SLEEPDELAY); Iterator itr = allflights.iterator(); while (itr.hasnext()){ Flight f=(flight)itr.next(); String flname=f.getairline(); if (flname.equals(name)) { MakeChanges(f); if (board.curtime.equals(board.endtime)) { lw.outfile.close(); break; catch (InterruptedException e) { System.err.println("interrupted"); Η κλάση FlightCompany υλοποιεί το interface Runnable, με την υλοποίηση της μεθόδου run. Συγκεκριμένα, κατά τη δημιουργία ενός αντικειμένου τύπου FlightCompany (στην περίπτωση της εφαρμογής θα δημιουργηθούν από την DBConnector τόσα αντικείμενα όσες είναι και οι αεροπορικές εταιρείες) δημιουργείται εάν thread με την εντολή new Thread(this).start(). Με το που δημιουργείται το thread εκτελείται ο κώδικας της μεθόδου run. Η συνθήκη τερματισμού της μεθόδου run και άρα και του thread είναι η τρέχουσα ώρα (λαμβάνεται μέσω του αντικειμένου board) να γίνει ίση με την ώρα τερματισμού (λαμβάνεται μέσω του αντικειμένου board). Το κάθε thread, χρησιμοποιώντας ένα iterator στη λίστα allflights σαρώνει όλες τις πτήσεις και εάν μία πτήση ανήκει στην αεροπορική εταιρεία του τρέχοντος αντικειμένου, καλεί τη μέθοδο MakeChanges, η οποία υλοποιεί τη μη λειτουργική απαίτηση Α2. package airpr; import java.sql.time; /** * UKXD */ public class Flight { private String fl_departures; private String fl_airline; private String fl_flightno; private String fl_via; private Time fl_expected_time; private Time fl_scheduled_time; private String fl_remarks; //DEPARTURES,AIRLINE,FLIGHT,SCHED_TIME,VIA public Flight(String departure, String airline, String flightno, Time scheduled_time, String via) { this.fl_departures = departure; this.fl_airline = airline; this.fl_flightno = flightno; this.fl_via = via; this.fl_expected_time = new Time(0,0,0); this.fl_scheduled_time = scheduled_time; this.fl_remarks = ""; 35

36 public String GetDepartures(){ return fl_departures; public String GetAirline(){ return fl_airline; public String GetFlightno(){ return fl_flightno; public String GetVia(){ return fl_via; public Time GetExpectedtime(){ return fl_expected_time; public void SetExpectedtime(Time expectedtime){ fl_expected_time=expectedtime; public Time GetScheduledtime(){ return fl_scheduled_time; public void SetScheduledtime(Time scheduledtime){ fl_scheduled_time=scheduledtime; public String GetRemarks(){ return fl_remarks; public void SetRemarks(String remarks){ fl_remarks=remarks; Στις παρακάτω οθόνες φαίνονται 5 στιγμιότυπα του πίνακα κατά τη διάρκεια εκτέλεσης της εφαρμογής: 36

37 37

38 38

39 ΕΡΩΤΗΣΗ 10 Να δημιουργήσετε και να ενημερώνετε το αρχείο μεταβολών των πτήσεων. Παραθέστε τον κώδικα με τον οποίο η εφαρμογή διαχειρίζεται το αρχείο και τα περιεχόμενα του αρχείου στο τέλος εκτέλεσης της εφαρμογής (βλ. πιο κάτω) ΑΠΑΝΤΗΣΗ 10 Το ερώτημα αναφέρεται στη μη λειτουργική απαίτηση Α4 και υλοποιείται με την κλάση LogWriter και τον κώδικα που έχει χρώμα κόκκινο (βλέπε προηγούμενες κλάσεις). Ο κώδικας της κλάσης LogWriter φαίνεται παρακάτω: package airpr; import java.io.*; /** * ukxd */ public class LogWriter { public PrintWriter outfile = null; public LogWriter () { try { File f; f=new File("airlog.txt"); if(!f.exists()) f.createnewfile(); outfile = new PrintWriter(new BufferedWriter(new FileWriter("airlog.txt"))); catch (IOException ex) { System.err.println("IO error"); public void LogLine(String msg){ 39

40 outfile.println(msg); Το αποτέλεσμα της καταγράφεται στο αρχείο airlog.txt. Η μέθοδος LogLine χρησιμοποείται για την προσθήκη μιας γραμμής στο αρχείο. ΕΡΩΤΗΣΗ 11 Να υλοποιήσετε την εφαρμογή που αντιστοιχεί στα διαγράμματα κλάσεων και ακολουθίας που σχεδιάσατε. Να τεκμηριώσετε γιατί η δομή του κώδικα του συστήματος αντιστοιχεί στα διαγράμματα κλάσεων και πώς ο κώδικας υλοποιεί τις σχέσεις ανάμεσα στις κλάσεις και τις συμπεριφορές (γεγονότα αποκρίσεις) που περιγράφουν τα διαγράμματα ακολουθίας ΑΠΑΝΤΗΣΗ 11 ΕΡΩΤΗΣΗ 12 Να εκτελέσετε την εφαρμογή για μια ημέρα λειτουργίας του αεροδρομίου. ΑΠΑΝΤΗΣΗ 12 Το αποτέλεσμα της εκτέλεσης για μια ημέρα λειτουργίας του αεροδρομίου είναι ο πίνακας αναχωρήσεων που φαίνεται στην παρακάτω οθόνη: και το αρχείο airlog.txt. 40

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

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

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

Διάγραμμα Κλάσεων. Class Diagram

Διάγραμμα Κλάσεων. Class Diagram Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά

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

Μοντελοποίηση Συστημάτων

Μοντελοποίηση Συστημάτων Εργασία για το μάθημα Μοντελοποίηση Συστημάτων 29 Οκτωβρίου 204 Α. Στόχος Στην εργασία αυτή θα εξοικειωθείτε με τα πρώτα στάδια σχεδιασμού λογισμικού. Συγκεκριμένα, μετά την εκπόνηση της εργασίας θα πρέπει

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

Ηλεκτρονικό Κατάστημα

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

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται

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

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

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

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

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 MySQL + Γλώσσα Προγραμματισμού Ευαγγελία Πιτουρά 1 Database drivers Για να χρησιμοποιήσουμε μια βάση δεδομένων από μια γλώσσα προγραμματισμού χρειαζόμαστε έναν driver. JDBC είναι το API για τη Java και

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

4 Συλλογές Αντικειμένων

4 Συλλογές Αντικειμένων 4 Συλλογές Αντικειμένων Πώς χειριζόμαστε αντικείμενα σε ομάδες με επανάληψη Η Απαίτηση Συλλογών Αντικειμένων Πολλές εφαρμογές χρειάζονται πλήθος αντικειμένων: Κατάλογος βιβλίων Φοιτητολόγιο Πελατολόγιο

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ TΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (6ο) Διδάσκων: Κων/νος Στεργίου 6/4/2014 Σύστημα Κράτησης Αεροπορικών Θέσεων Εργασία

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

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 1 Περιεχόμενα Εισαγωγή...2

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

Ανάπτυξη συστήματος λογισμικού βάσει της μεθοδολογίας ICONIX

Ανάπτυξη συστήματος λογισμικού βάσει της μεθοδολογίας ICONIX Αλέξανδρος Ν. Χατζηγεωργίου Ανάπτυξη συστήματος λογισμικού βάσει της μεθοδολογίας ICONIX Διαχείριση Παραγγελιών ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Θεματική Ενότητα ΠΛΗ 24 2008

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

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

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

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

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

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ C Προγραμματιστικές Ασκήσεις, Φυλλάδιο Εκφώνηση: 9/3/0 Παράδοση: 5/4/0,.59 Άσκηση 0 η : Το πρόβλημα της βελόνας του Buffon Θέμα της εργασίας

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

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

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

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

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

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

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

Generics και ArrayLists

Generics και ArrayLists ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Generics και ArrayLists Προσοχή!!! Να εκτελεστούν πρώτα όλες οι ασκήσεις τις Θεωρίας

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

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα

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

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

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

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

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

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο ) Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Εισαγωγή στον Προγραµµατισµό των Υπολογιστών Καθηγητής Ι. Κάβουρας Εξεταστική περίοδος Φεβρουαρίου 2004 Τετάρτη 10/3/2004, ώρα 8.00 Στοιχεία εξεταζόµενου

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

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

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

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

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012 Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-252 Αντικειµενοστρεφής Προγραµµατισµός Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012 Θέμα 1 Θέμα 2 Θέμα 3 Θέμα 4 Θέμα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε

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

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2006 ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Φροντιστήριο 5 Ημερομηνία: 01/12/2006 Θεματική

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

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

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

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

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

ΠΕΡΙΠΤΩΣΕΙΣ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΞΙΔΙΩΤΙΚΟΥ ΠΡΑΚΤΟΡΕΙΟΥ ΠΕΡΙΠΤΩΣΕΙΣ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΞΙΔΙΩΤΙΚΟΥ ΠΡΑΚΤΟΡΕΙΟΥ Αναγνώριση Χειριστών Πρωτεύοντες Χειριστές Πελάτης Διαχειριστής Δευτερεύοντες Χειριστές Γραφείο Ενοικίασης Αυτοκινήτων Ξενοδοχειακός Πράκτορας Αναγνώριση

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

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

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

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

ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΠΛΗ24 «ΣΧΕΔΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ»

ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΠΛΗ24 «ΣΧΕΔΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ» Εκφώνηση της εργασίας 3 η ΕΡΓΑΣΙΑ ΟΜΑΔΙΚΗ Ομαδική Εργασία Εφαρμογή Super Market Η ομαδική εργασία αποτελεί συνέχεια της 2 ης άσκησης της 2 ης εργασίας και έχει στόχο τη δημιουργία ενός γραφικού περιβάλλοντος,

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

Περίπτωση Χρήσης Use case

Περίπτωση Χρήσης Use case Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2007 HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Use Cases & Use Case Diagrams Περίπτωση Χρήσης

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER

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

ΤΟ WEB 2.0 ΚΑΙ Η ΤΕΧΝΟΛΟΓΙΑ AJAX. ΧΡΗΣΗ ΤΟΥΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΡΓΩΝ.

ΤΟ WEB 2.0 ΚΑΙ Η ΤΕΧΝΟΛΟΓΙΑ AJAX. ΧΡΗΣΗ ΤΟΥΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΡΓΩΝ. ΤΟ WEB 2.0 ΚΑΙ Η ΤΕΧΝΟΛΟΓΙΑ AJAX. ΧΡΗΣΗ ΤΟΥΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΡΓΩΝ. ΤΣΑΠΛΑΡΗΣ ΠΑΝΑΓΙΩΤΗΣ Α.Μ. : Μ15/06 ΕΞΑΜΗΝΟ 4ο 2007-2008 ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΜΗΜΑ : Δ.Π.Μ.Σ. ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Προπτυχιακό Πρόγραμμα Σπουδών Πληροφορική - ΠΛΗ 11-2005 - 06 ΕΠΑΝΑΛΗΠΤΙΚΗ ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ 8 ΙΟΥΛΙΟΥ 2006 ΜΕΡΟΣ Α'. ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ [ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 45 ] Σε κάθε ερώτηση απαντάτε επιλέγοντας

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

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

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

Οδηγό ς Σχ. Έτόυς 2014-2015

Οδηγό ς Σχ. Έτόυς 2014-2015 Οδηγό ς Σχ. Έτόυς 2014-2015 Σχολικό Έτος Στο ΠΣ myschool υλοποιείται πλήρης ιστορικότητα και τα δεδομένα σας είναι διαθέσιμα για κάθε Σχολικό Έτος. Μέσα από την ΑΡΧΙΚΗ σελίδα μπορείτε κάθε φορά να ορίζετε

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

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

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

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

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

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

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

Σενάριο 16: Ο κόσμος του Robby

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

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015 ΛΥΚΕΙΟ ΑΡΧ. ΜΑΚΑΡΙΟΥ Γ - ΔΑΣΟΥΠΟΛΗ ΣΧΟΛΙΚΟ ΕΤΟΣ 2014-2015 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΗΜΕΡΟΜΗΝΙΑ: 10 /6 / 2015 ΒΑΘΜΟΣ:... ΤΑΞΗ: Β ΧΡΟΝΟΣ: 2 ώρες ΥΠ. ΚΑΘΗΓΗΤΗ:...

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

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

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

1. Εισαγωγή...3 Συμβατότητα Browser...3 Διεύθυνση πρόσβασης...3 LoginScreen...3 Κύρια Εφαρμογή...4 2. Οδηγίες Χρήσης...5 Αρχική Σελίδα...

1. Εισαγωγή...3 Συμβατότητα Browser...3 Διεύθυνση πρόσβασης...3 LoginScreen...3 Κύρια Εφαρμογή...4 2. Οδηγίες Χρήσης...5 Αρχική Σελίδα... ΕΓΧΕΙΡΙ ΙΟ Ο ΗΓΙΩΝ Ηλεκτρονική Υπηρεσία Ενηµέρωσης Ιατρών Ειδικού Σώµατος Υγειονοµικών Επιτροπών ΚΕ.Π.Α 1 Πίνακας Περιεχομένων 1. Εισαγωγή...3 Συμβατότητα Browser...3 Διεύθυνση πρόσβασης...3 LoginScreen...3

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

Εργαστήριο #10 (Ε10) 1

Εργαστήριο #10 (Ε10) 1 Εργαστήριο #10 Από τα προηγούμενα εργαστήρια......θα χρειαστείτε ορισμένες από τις οδηγίες μορφοποίησης CSS (ανατρέξτε στις εκφωνήσεις του 8 ου και 9 ου εργαστηρίου).! Οδηγίες Στη δυναμική δημιουργία ιστοσελίδων

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

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

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

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

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

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΥΠΟΔΕΙΓΜΑΤΟΣ ΓΙΑ ΤΟΝ ΙΣΟΛΟΓΙΣΜΟ ΚΑΙ ΤΗΝ ΚΑΤΑΣΤΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΧΡΗΣΕΩΝ (BSD16) ΙΟΥΛΙΟΣ 2008 Ηλεκτρονική υποβολή στοιχείων

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

Περι-γράφοντας... κλωνάρια

Περι-γράφοντας... κλωνάρια Όνομα(τα): Όνομα Η/Υ: Σ Τμήμα: Ημερομηνία: Περι-γράφοντας... κλωνάρια Ξεκινήστε το Χώρο ραστηριοτήτων, επιλέξτε τη θεματική ενότητα: ΘΕ03: Απλή επιλογή και επιλέξτε την πρώτη δραστηριότητα (Περι-γράφοντας...

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Εργασία στην Oracle ΔΙΑΧΕΙΡΙΣΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΡΑΤΗΣΕΩΝ ΘΕΣΕΩΝ ΜΙΑΣ ΑΕΡΟΠΟΡΙΚΗΣ ΕΤΑΙΡΙΑΣ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Οδηγίες Συμπλήρωσης της Έκθεσης Ολοκλήρωσης

Οδηγίες Συμπλήρωσης της Έκθεσης Ολοκλήρωσης -0 Οδηγίες Συμπλήρωσης της Έκθεσης Ολοκλήρωσης H διαδικασία συνοπτικά Κάθε επιχείρηση της οποίας η πρόταση βρίσκεται σε κατάσταση «Σε υλοποίηση», έχει το δικαίωμα να υποβάλει ηλεκτρονικά Έκθεση ολοκλήρωσης.

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

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Φροντιστήριο 4/2/2009 Δικαιώματα χρηστών - Προβολές (Views) ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ MYSQL queries results mysql host DB server queries results Client host Β Δ Ηχρήσητηςmysql βασίζεται

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

Περιγραφή Παραδείγματος. Σκοπός του Παραδείγματος. Περίπτωση Χρήσης και Σενάρια. Σύντομο Παράδειγμα μιας συνοπτικής μεθοδολογίας ανάπτυξης

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

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

Εισαγωγή στον Προγ/μό Η/Υ

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

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

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

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

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

Περιεχόμενα. Πρόλογος 11 Περιεχόμενα Πρόλογος 11 1 Εισαγωγή 19 1.1 Πριν από την ανάγνωση αυτού του βιβλίου 20 1.2 Μια θεώρηση του υπολογιστή 22 1.3 Εφαρμογές και μικροεφαρμογές Java 24 1.4 JavaScript και JSP 26 1.5 Η δομή του

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

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου Ιωάννης Γ. Τσούλος Εργασία Πρώτη - Αριθμομηχανή Με την χρήση του περιβάλλοντος AWT ή του SWING θα πρέπει να δημιουργηθεί αριθμομηχανή για την εκτέλεση

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στην επιλογή «Κενή βάση δεδομένων» στο Παράθυρο Εργασιών. Θα εμφανιστεί το

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

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΕΝΟΤΗΤΑ 1.1 ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΔΙΔΑΚΤΙΚΟI ΣΤOΧΟΙ Στο τέλος της ενότητας αυτής πρέπει να μπορείτε: να επεξηγείτε τις έννοιες «βάση δεδομένων» και «σύστημα διαχείρισης βάσεων δεδομένων» να αναλύετε

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

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

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

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

Οδηγίες Χρήσης Εφαρμογής Βελτίωσης Περιεχομένου δήλωσης Ε9

Οδηγίες Χρήσης Εφαρμογής Βελτίωσης Περιεχομένου δήλωσης Ε9 Οδηγίες Χρήσης Εφαρμογής Βελτίωσης Περιεχομένου δήλωσης Ε9 1. Οθόνη εισόδου στην εφαρμογή βελτίωσης περιεχομένου Δηλώσεων Ε9 Για την είσοδο στην εφαρμογή απαιτείται να συμπληρωθούν (Εικόνα 1): Ο Α.Φ.Μ.

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

Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου

Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου Bee Group Α.Ε. [Type the company name] [Pick the date] Εγχειρίδιο λειτουργίας Τράπεζας Χρόνου 2 ΠΕΡΙΕΧΟΜΕΝΑ 1. Αρχική Σελίδα... 3 2. Δημιουργία Λογαριασμού... 3 3.

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Εισαγωγικά ΘΕ ΠΛΗ 204-5 ONLINE ΕΡΓΑΣΙΑ E2- Η Online Εργασία Ε2- αποτελεί (όπως περιγράφεται αναλυτικότερα και στον Οδηγό Σπουδών της Θ.Ε. που σας έχει διατεθεί) συμπληρωματική άσκηση στα πλαίσια της Γραπτής

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

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

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

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

Οι περιπτώσεις χρήσης

Οι περιπτώσεις χρήσης 1 Ελληνικό Ανοικτό Πανεπιστήµιο Οι περιπτώσεις χρήσης ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Το µοντέλο των περιπτώσεων χρήσης Τα διαγράµµατα των περιπτώσεων χρήσης Λεκτική περιγραφή των περιπτώσεων χρήσης Τρόπος

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

ΛΟΓΟΙ ΚΑΙ ΑΝΑΛΟΓΙΕΣ ΟΔΗΓΟΣ ΟΡΓΑΝΩΣΗΣ ΤΗΣ ΔΙΔΑΣΚΑΛΙΑΣ. Μιχάλης Αργύρης

ΛΟΓΟΙ ΚΑΙ ΑΝΑΛΟΓΙΕΣ ΟΔΗΓΟΣ ΟΡΓΑΝΩΣΗΣ ΤΗΣ ΔΙΔΑΣΚΑΛΙΑΣ. Μιχάλης Αργύρης ΛΟΓΟΙ ΚΑΙ ΑΝΑΛΟΓΙΕΣ ΟΔΗΓΟΣ ΟΡΓΑΝΩΣΗΣ ΤΗΣ ΔΙΔΑΣΚΑΛΙΑΣ Μιχάλης Αργύρης 1 Λόγοι και αναλογίες Περίληψη Οι μαθητές έχουν στη διάθεσή τους μια υπολογιστική οντότητα, ένα καγκουρό του οποίου το μέγεθος μπορούν

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

Document Scanning System Ιανουάριος, 2014

Document Scanning System Ιανουάριος, 2014 Document Scanning System Ιανουάριος, 2014 Το DSS, είναι ένα ολοκληρωμένο συστημα διαχείρισης ψηφιοποίησης εγγράφων, αφού εκτός από την διαδικασία ψηφιοποίησης των εγγράφων, αρχειοθετεί και μία σειρά δεδομένων

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

Εγχειρίδιο Χρήστη ECAS

Εγχειρίδιο Χρήστη ECAS ΕΥΡΩΠΑΪΚΗ ΕΠΙΤΡΟΠΗ Γενική Διεύθυνση Παιδείας και Πολιτισμού Δια Βιου Μάθηση: Πολιτικές και Πρόγραμμα Συντονισμός του Προγράμματος για τη Δια Βίου Μάθηση Εγχειρίδιο Χρήστη ECAS Το Σύστημα Διαπίστευσης της

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

ΗΥ-252 Οντοκεντρικός Προγραµµατισµός Βασίλης Χριστοφίδης. Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 12 Σεπτεµβρίου 2002

ΗΥ-252 Οντοκεντρικός Προγραµµατισµός Βασίλης Χριστοφίδης. Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 12 Σεπτεµβρίου 2002 Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-252 Οντοκεντρικός Προγραµµατισµός Βασίλης Χριστοφίδης Ονοµατεπώνυµο: Αριθµός Μητρώου: Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 12 Σεπτεµβρίου 2002 Άσκηση

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

Αναγγελία Εισιτηρίων - εξιτηρίων ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Ηλεκτρονικές Υπηρεσίες. Αναγγελία Εισιτηρίων - Εξιτηρίων. Σελίδα 1

Αναγγελία Εισιτηρίων - εξιτηρίων ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Ηλεκτρονικές Υπηρεσίες. Αναγγελία Εισιτηρίων - Εξιτηρίων. Σελίδα 1 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Ηλεκτρονικές Υπηρεσίες Αναγγελία Εισιτηρίων - Εξιτηρίων Σελίδα 1 Πίνακας περιεχομένων 1.Εισαγωγή... 4 1.1 Συμβατότητα Browser... 4 1.2 Διεύθυνση πρόσβασης... 4 2 ΑΝΑΓΓΕΛΙΑ ΕΙΣΙΤΗΡΙΩΝ

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Κουμπί Κενή βάση δεδομένων Κουμπί του Office Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στο κουμπί «Κενή βάση δεδομένων»

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

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

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

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΑΝΕΠΙΣΤΗΜΙΟ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΑΝΕΠΙΣΤΗΜΙΟ Επιχειρησιακό Πρόγραμμα: Εθνικό Στρατηγικό Πλαίσιο Αναφοράς (ΕΣΠΑ) 2007-2013 Έργο: Ελληνικό Ανοικτό Πανεπιστήμιο με κωδικό ΟΠΣ296121 Υπο-έργο 5: Εργαστήριο Εκπαιδευτικού Υλικού

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

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

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

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012 HY-252 Αντικειμενοστραφής Προγραμματισμός Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης 2 η Σειρά Ασκήσεων Ημερομηνία Παράδοσης: 16/11/2012 Παρακάτω σας δίνονται οι ορισμοί τεσσάρων διαφορετικών

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

Atlantis - Νέο user interface

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

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

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

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

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

Εγχειρίδιο Χρήστη. Ιούνιος 2009. Σελίδα - 1 -

Εγχειρίδιο Χρήστη. Ιούνιος 2009. Σελίδα - 1 - Εγχειρίδιο Χρήστη Ιούνιος 2009 Σελίδα - 1 - 1 Γενικά Η εφαρμογή Intelsoft Hotel (IS HOTEL) αφορά τη διαχείριση μίας μικρής ξενοδοχειακής μονάδας και επιτρέπει τη διαχείριση : των δωματίων και των πελατών

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