Ανάλυση / Σχεδίαση και Υλοποίηση Εφαρμογής Υποβοήθησης Καθηγητών



Σχετικά έγγραφα
Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

Ε Κ Θ Ε Σ Η. του Διοικητικού Συμβουλίου της Ανωνύμου Εταιρίας με την επωνυμία. «Unibios Ανώνυμος Εταιρία Συμμετοχών»

Βασικά σημεία διάλεξης

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Η συμβολή του Πλάτωνα στα Μαθηματικά

Υποψήφιοι Σχολικοί Σύμβουλοι

Η Υγεία είναι ο παράγοντας που μετράει την φυσική, ψυχολογική ή ακόμα και την πνευματική κατάσταση ενός ζώντος οργανισμού.

ΠΡΟΣΩ ΟΛΟΤΑΧΩΣ! ΑΝΑΓΕΝΝΗΣΗ ΤΗΣ ΕΛΛΑΔΑΣ

Ενότητα. Μεθοδολογικά ζητήµατα διδασκαλίας της ξένης λογοτεχνίας από µετάφραση Κείµενα για το Ανθολόγιο Νεότερης Ευρωπαϊκής Λογοτεχνίας

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΕΣΩΤΕΡΙΚΩΝ ΑΝΑΠΛΗΡΩΤΗΣ ΥΠΟΥΡΓΟΣ Προς: Δημάρχους της Χώρας Αθήνα, 16 Δεκεμβρίου 2013 Α.Π.:2271. Αγαπητέ κ.

Ο Υφυπουργός κατά την επίσκεψή του στο νέο κτίριο, ανακοίνωσε τα

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

ΑΓΡΟΤΙΚΗ ΖΩΗ ΚΑΙ ΚΥΠΡΙΑΚΗ ΠΑΡΑΔΟΣΗ

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

Σηµειώσεις στο ταξινοµούµε

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

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

ΑΠΑΝΤΗΣΕΙΣ ΣΤΟ ΔΙΔΑΓΜΕΝΟ ΚΕΙΜΕΝΟ

Η αξιολόγηση των εκπαιδευτικών το Π.Δ 152/2013, του Γιώργου Καλημερίδη

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΓΙΑ ΤΗΝ ΚΩΔΙΚΟΠΟΙΗΣΗ ΤΗΣ ΝΟΜΟΘΕΣΙΑΣ. Α. Αντικείμενο του εγχειριδίου

Ιανουάριος 2014 (φύλλο 2 ο ) Τιμή φύλλου 1

Έλλειψη εσωτερικής ελευθερίας

Ο τίτλος της εργασία μας για αυτό το τετράμηνο ήταν «Πολίτες της πόλης μου, πολίτες της οικουμένης». Κλιθήκαμε λοιπόν να γνωρίσουμε καλύτερα την πόλη

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

Ο κόσμος των επιχειρήσεων, τησ οικονομιασ και των αγορών: επιχειρηματικές δραστηριότητες, επιχειρηματικοί κίνδυνοι και επιχειρηματικές πρακτικές

Αξιολόγηση του Εκπαιδευτικού Έργου. Διαδικασία Αυτοαξιολόγησης στη Σχολική Μονάδα

Η ΑΥΤΕΠΑΓΓΕΛΤΗ ΑΝΑΖΗΤΗΣΗ ΔΙΚΑΙΟΛΟΓΗΤΙΚΩΝ ΜΙΑ ΚΡΙΤΙΚΗ ΑΠΟΤΙΜΗΣΗ. ( Διοικητική Ενημέρωση, τ.51, Οκτώβριος Νοέμβριος Δεκέμβριος 2009)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΔΙΔΑΣΚΑΛΕΙΟ ΔΗΜΟΤΙΚΗΣ ΕΚΠΑΙΔΕΥΣΗΣ «ΑΛΕΞΑΝΔΡΟΣ ΔΕΛΜΟΥΖΟΣ» «ΠΑΙΔΙΚΗ ΛΟΓΟΤΕΧΝΙΑ ΚΑΙ ΕΙΔΙΚΗ ΑΓΩΓΗ» ΔΙΔΑΣΚΩΝ: ΔΗΜΗΤΡΗΣ ΚΟΚΚΙΝΟΣ

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

Ενότητα 2. Γενικά Οργάνωση Ελέγχου (ΙΙ) Φύλλα Εργασίας Εκθέσεις Ελέγχων

ΑΚΡΟΒΑΤΗΣ-ΧΑΪΝΗΔΕΣ Οι Χαΐνηδες Ο Δημήτρης Αποστολάκης

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

Στο άγαλμα της ελευθερίας που φωτίζει τον κόσμο

ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ. Η ολοκληρωμένη προσέγγιση θα εφαρμοστεί με τα παρακάτω Εργαλεία

Του Σταύρου Ν. PhD Ψυχολόγου Αθλητικού Ψυχολόγου

Κεφάλαιο 4 ο Η αριστοτελική φυσική

Από το ξεκίνημά του ο ΤΙΤΑΝ εκφράζει

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,»

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

ΕΘΙΜΑ ΤΟΥ ΚΟΣΜΟΥ. Αγγελική Περιστέρη Α 2

ΟΙΚΟΝΟΜΙΚΗ ΚΡΙΣΗ ΚΑΙ ΤΡΑΠΕΖΙΚΟ ΣΥΣΤΗΜΑ

ΘΕΜΑ: «Καλλιέργεια προφορικών δεξιοτήτων των νηπίων: Διδακτικές δραστηριότητες του προφορικού λόγου στο νηπιαγωγείο»

ΕΚΠΟΝΗΣΗ ΕΡΓΑΣΙΑΣ: Δημοκώστα Καλλιόπη ΕΠΙΒΛΕΠΟΝΤΕΣ ΚΑΘΗΓΗΤΕΣ: Ισπικούδης Ιωάννης Πολίζου Ευαγγελία

ΠΡΑΚΤΙΚΑ ΣΥΝΕΔΡΙΑΣΕΩΣ ΔΗΜΟΤΙΚΟΥ ΣΥΜΒΟΥΛΙΟΥ ΤΡΙΠΟΛΗΣ ΣΥΝΕΔΡΙΑΣΗ ΤΗΣ 23 ης ΣΕΠΤΕΜΒΡΙΟΥ 2013 ΑΠΟΦΑΣΗ ΜΕ ΑΡΙΘΜΟ 787/2013

ΠΟΛΗ ΚΑΙ ΧΩΡΟΣ ΑΠΟ ΤΟΝ 20 Ο ΣΤΟΝ 21 Ο ΑΙΩΝΑ

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

στο ΕΣΠΑ του έργου ανέγερσης του 4ου Λυκείου Κέρκυρας.

Όμιλος Λογοτεχνίας. Δράκογλου Αναστασία, Κιννά Πασχαλίνα

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

Trans. D.A/Koss/LLM (EU Law) (UKC), MA (Soc. Sciences) (OU) 17 Ιουνίου

Ίδρυση και μετονομασία Υπουργείων, μεταφορά και κατάργηση υπηρεσιών

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ Σ.Δ.0. ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ. ΘΕΜΑ: Πόσο εφικτή είναι η προσχώριση της Τουρκίας στην Ευρωπαϊκή Ένωση;

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

ΑΠΟΦΑΣΗ 34750/2006 (Αριθμός καταθέσεως πράξεως 43170/2006) ΤΟ ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑ ΕΚΟΥΣΙΑΣ ΔΙΚΑΙΟΔΟΣΙΑΣ ΣΥΓΚΡΟΤΗΘΗΚΕ από

Αξιολόγηση Προγράμματος Αλφαβητισμού στο Γυμνάσιο Τρίτο Έτος Αξιολόγησης

Ο ΠΡΟΕΔΡΟΣ ΤΗΣ ΒΟΥΛΗΣ ΤΩΝ ΕΛΛΗΝΩΝ. Άρθρο πρώτο.

ΠΡΑΚΤΙΚΑ ΤΗΣ ΒΟΥΛΗΣ ΠΑΡΑΣΚΕΥΗ 30 ΑΠΡΙΛΙΟΥ

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

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

ΟΜΙΛIΑ ΠΡΩΤΟΠΡΕΣΒΥΤΕΡΟΥ ΠΑΝΑΓΙΩΤΟΥ ΜΟΣΧΟΝΑ

ΤΜΗΜΑ ΦΙΛΟΣΟΦΙΑΣ ΚΑΙ ΠΑΙΔΑΓΩΓΙΚΗΣ Πρόγραμμα Μεταπτυχιακών Σπουδών Φιλοσοφίας ΕΣΩΤΕΡΙΚΟΣ ΚΑΝΟΝΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ

ΠΡΟΜΗΘΕΙΑ ΠΡΟΫΠΟΛΟΓΙΣΜΟΣ ΧΡΗΣΗ 2015

1. Ειδικοί Επιστήμονες 2. Επιστημονικοί Συνεργάτες Τηλέφωνο

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

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

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

ΘΕΜΑ: «Παραθεριστικοί Οικοδοµικοί Συνεταιρισµοί. Μελέτη Περίπτωσης του «Βραχόκηπου» ήµου Γουβών Ηρακλείου Κρήτης»

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

«Συλλογή, μεταφορά και διαχείριση επικίνδυνων στερεών αποβλήτων της Γ.Μ.Μ.Α.Ε. ΛΑΡΚΟ»

/νση: ΧΑΡΑΚΟΠΟΥΛΟΣ ΧΡΗΣΤΟΣ Μ. Αλεξάνδρου 49, 66100, ράµα Τηλ&φαξ: , κιν.: info@akademia.

Η παρακμή του εργατικού κινήματος είναι μια διαδικασία που έχει ήδη διαρκέσει. πολλά χρόνια, τώρα ζούμε τα επεισόδια του τέλους της.

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

Πρότυπο Σχέδιο Δράσης για τα Συμβούλια Ένταξης Μεταναστών

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΠΕΡΙΦΕΡΕΙΑ ΣΤΕΡΕΑΣ ΕΛΛΑ ΑΣ ΓΡΑΦΕΙΟ ΠΕΡΙΦΕΡΕΙΑΡΧΗ ΥΨΗΛΑΝΤΗ ΛΑΜΙΑ. Λαµία ΠΡΟΣ: Μ.Μ.Ε.

ΣΥΛΛΟΓΟΣ ΕΥΖΩΝΩΝ ΠΡΟΕΔΡΙΚΗΣ ΦΡΟΥΡΑΣ ΣΕΠΦ «Ο ΕΥΖΩΝ» Α.Μ. Σωματείου: Φιλίππου 26, Γέρακας Αττική Ε-MAIL:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΕΡΙΦΕΡΕΙΑ ΘΕΣΣΑΛΙΑΣ ΟΙΚΟΝΟΜΙΚΗ ΕΠΙΤΡΟΠΗ ΠΡΑΚΤΙΚΟ 38 ο /

ΠΡΑΚΤΙΚΟΥ 10 /

Oδηγία 94/33/ΕΚ του Συµβουλίου της 22ας Ιουνίου 1994 για την προστασία των νέων κατά την εργασία

Κωδικός: ΕΜΦ2 Αρ. Έκδοσης: 1 Ημ/νία: Σελ. 1 από 15

ΣΧΟΛΙΚΟ ΕΤΟΣ

Βουλευτικές Εκλογές 2011

Ο συγγραφέας χρησιμοποιεί συνδυασμό μεθόδων για την ανάπτυξη της έβδομης παραγράφου.

συνήλθε στην Αίθουσα των συνεδριάσεων του Βουλευτηρίου η Βουλή σε ολομέλεια για να συνεδριάσει υπό την προεδρία του Ε Αντιπροέδρου αυτής κ.

Α. Πολιτιστικοί φορείς Πλήθος φορέων Έδρα Γεωγραφική κατανομή φορέων Νομική μορφή Έτος ίδρυσης...

ΕΠΙΤΡΟΠΗ ΜΟΡΦΩΤΙΚΩΝ ΥΠΟΘΕΣΕΩΝ

ΠΕΡΙΕΧΟΜΕΝΑ ΒΙΑ ΚΑΙ ΚΑΚΟΠΟΙΗΣΗ ΠΑΙΔΙΩΝ...!

Σε ποιες κατηγορίες μειώνεται η σύνταξη από 1/1/2009 (σε εφαρμογή του Ν.3655/2008)

μεταπτυχιακός σπουδαστής : Λάζαρος Η. Κενανίδης σύμβουλος καθηγητής: κ. Aθανάσιος Ε. Καραθανάσης

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

Όταν το μάθημα της πληροφορικής γίνεται ανθρωποκεντρικό μπορεί να αφορά και την εφηβεία.

Τ. Ε. I. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΑΟΠΚίΙΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΟΑΟΓΙΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

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

Τοποθέτηση Δημάρχου Γ. Πατούλη. για τεχνικό πρόγραμμα 2010

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

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

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΧΑΪΔΑΡΗΣ ΧΡ. ΝΙΚΟΛΑΟΣ ΑΜ:6805. Εισηγητής: Σωτηρόπουλος Ιωάννης

Ομιλία του ημάρχου Αμαρουσίου, Προέδρου Ιατρικού Συλλόγου Αθηνών. Γιώργου Πατούλη, στην εκδήλωση μνήμης στον Ιωάννη Πασαλίδη

Transcript:

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

-ii-

«Εγώ ο/η <Καστανάρα Βασιλική>, δηλώνω υπεύθυνα ότι η παρούσα Πτυχιακή Εργασία με τίτλο < Ανάλυση / Σχεδίαση και Υλοποίηση Εφαρμογής Υποβοήθησης Καθηγητών > είναι δική μου και βεβαιώνω ότι: Σε όσες περιπτώσεις έχω συμβουλευτεί δημοσιευμένη εργασία τρίτων, αυτό επισημαίνεται με σχετική αναφορά στα επίμαχα σημεία. Σε όσες περιπτώσεις μεταφέρω λόγια τρίτων, αυτό επισημαίνεται με σχετική αναφορά στα επίμαχα σημεία. Με εξαίρεση τέτοιες περιπτώσεις, το υπόλοιπο κείμενο της πτυχιακής αποτελεί δική μου δουλειά. Αναφέρω ρητά όλες τις πηγές βοήθειας που χρησιμοποίησα. Σε περιπτώσεις που τμήματα της παρούσας πτυχιακής έγιναν από κοινού με τρίτους, α- ναφέρω ρητά ποια είναι η δική μου συνεισφορά και ποια των τρίτων. Γνωρίζω πως η λογοκλοπή αποτελεί σοβαρότατο παράπτωμα και είμαι ενήμερος(-η) για την επέλευση των νομίμων συνεπειών» < υπογραφή > < ονοματεπώνυμο >

Εγκρίθηκε από την τριμελή εξεταστική επιτροπή Τόπος: Ημερομηνία: ΕΠΙΤΡΟΠΗ ΑΞΙΟΛΟΓΗΣΗΣ 1. 2. 3.

Περίληψη Στόχος της εργασίας είναι η ανάλυση, σχεδίαση και υλοποίηση εφαρμογής υποβοήθησης εκπαιδευτικών δευτεροβάθμιας και τριτοβάθμιας εκπαίδευσης, και εκπαιδευτικών που πιθανών διδάσκουν σε άλλες σχολές. Με την εφαρμογή "TeacherApp", όλοι οι καθηγητές πλέον μπορούν να ρυθμίσουν εύκολα και συμμαζεμένα όλη τους την εργασία σε μία εφαρμογή. Σε αυτή την εργασία θα αναλυθούν οι δυνατότητες και λειτουργίες της εφαρμογής "TeacherApp", το πως και γιατί αυτή η εφαρμογή είναι χρήσιμη. Θα αναλυθούν τα εργαλεία που χρησιμοποιήθηκαν για την ανάπτυξη της εφαρμογής και για την UML (Unified Modeling Language) ανάλυση που γίνεται στα κεφάλαια 3 και 4. Θα γίνει UML ανάλυση του Διαγράμματος Κλάσεων της εφαρμογής και του Διαγράμματος Οντοτήτων - Συσχετίσεων της βάσης δεδομένων της εφαρμογής. Τέλος θα γίνει ανάλυση της εφαρμογής "TeacherApp", θα αναπτυχθεί βήμα, βήμα το πως λειτουργεί στη χρήση της και θα φανεί το πόσο εύκολο είναι από την μεριά του χρήστη χωρίς να διαθέτει ιδιαίτερες γνώσεις από υπολογιστές. -i-

Ευχαριστίες Θα ήθελα να ευχαριστήσω κυρίως την μητέρα μου για την συμπαράσταση της καθ 'όλη την διάρκεια των σπουδών μου. Χωρίς εκείνη δεν θα ήταν δυνατόν να σπουδάσω καν. Τον Tiago Novo, Πορτογάλο συμφοιτητής που μου έμαθε τα βασικά της Java και έτσι επέλεξα να κάνω την εργασία πάνω σε Java. Τον καθηγητή μου κ. Κακαρόντζα για τις συμβουλές του κατά την διάρκεια της πτυχιακής εργασίας μου. Τελευταία αλλά εξίσου σημαντική η αδερφή μου, που με βοήθησε να προετοιμαστώ για τις σπουδές μου και για την βοήθειά της κατά την διάρκεια των σπουδών μου. Καστανάρα Βασιλική 29/11/2014 -iii-

Περιεχόμενα ΠΕΡΙΛΗΨΗ... I ΕΥΧΑΡΙΣΤΙΕΣ... III ΠΕΡΙΕΧΟΜΕΝΑ... V 1 ΕΙΣΑΓΩΓΗ... 1 2 ΑΠΑΙΤΗΣΕΙΣ ΕΦΑΡΜΟΓΗΣ ΚΑΙ ΕΠΙΛΕΧΘΕΙΣΕΣ ΤΕΧΝΟΛΟΓΙΕΣ... 3 2.1 ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΗΣ... 3 2.1.1 Eclipse Kepler... 3 2.1.2 Η Βάση Δεδομένων... 6 2.2 ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗΣ ΔΙΑΓΡΑΜΜΑΤΩΝ... 10 3 ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΜΕ UML... 15 3.1 ΤΟ ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ... 15 3.2 ΑΝΑΛΥΣΗ ΤΩΝ ΚΛΑΣΕΩΝ... 16 4 Η ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ... 23 4.1 ΤΑ ΣΥΜΒΟΛΑ... 23 4.2 ΟΙ ΟΝΤΟΤΗΤΕΣ... 24 4.3 ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ... 32 5 ΧΡΗΣΗ ΤΗΣ ΕΡΓΑΣΙΑΣ... 39 5.1 ΞΕΚΙΝΩΝΤΑΣ ΤΗΝ ΕΦΑΡΜΟΓΗ... 39 5.2 ΔΗΜΙΟΥΡΓΙΑ ΜΑΘΗΜΑΤΟΣ... 40 5.3 ΔΗΜΙΟΥΡΓΙΑ ΤΜΗΜΑΤΟΣ... 41 5.4 ΔΗΜΙΟΥΡΓΙΑ ΜΑΘΗΤΗ... 42 5.5 ΕΠΕΞΕΡΓΑΣΙΑ ΜΑΘΗΜΑΤΟΣ... 44 5.6 ΕΠΕΞΕΡΓΑΣΙΑ ΤΜΗΜΑΤΟΣ... 45 5.7 ΕΠΕΞΕΡΓΑΣΙΑ ΜΑΘΗΤΗ... 47 5.8 ΠΑΡΟΥΣΙΟΛΟΓΙΟ... 49 -v-

5.9 ΔΙΑΓΩΝΙΣΜΑΤΑ... 52 5.10 ΔΗΜΙΟΥΡΓΙΑ - ΑΛΛΑΓΗ ΠΡΟΓΡΑΜΜΑΤΟΣ... 55 5.11 ΠΡΟΒΟΛΗ ΣΤΟΙΧΕΙΩΝ... 57 5.11.1 Προβολή Μαθημάτων... 57 5.11.2 Προβολή Μαθητή... 58 5.11.3 Προβολή Τμήματος... 59 6 ΣΥΜΠΕΡΑΣΜΑΤΑ... 61 ΒΙΒΛΙΟΓΡΑΦΙΑ... 63 ΠΑΡΑΡΤΗΜΑ Α... 65 ΠΑΡΑΡΤΗΜΑB... 67 -vi-

1 Εισαγωγή Η εργασία αυτή περιλαμβάνει την ανάλυση, σχεδίαση και ανάπτυξη μιας εφαρμογής υποβοήθησης εκπαιδευτικών. Η ανάλυση της εφαρμογής καταγράφεται με περιπτώσεις χρήσης με δομημένο κείμενο. Η σχεδίαση γίνεται με UML (Unified Modeling Language). Τέλος η ανάπτυξη της εφαρμογής έχει πραγματοποιηθεί σε Java Eclipse Standard όπου για βάση δεδομένων έχει χρησιμοποιηθεί η "Apache Derby Embedded Database". Το όνομα της εφαρμογής είναι "TeacherApp". Κίνητρο Μέχρι πριν μερικά χρόνια, οι εκπαιδευτικοί χρησιμοποιούσαν καρτέλες και σημειωματάρια για να κρατήσουν στοιχεία για όλους τους μαθητές, ατζέντα για να γράψουν το πρόγραμμά τους και τετράδια για να φτιάξουν πρόγραμμα διδασκαλίας για το κάθε μάθημά τους. Πλέον, οι περισσότεροι εκπαιδευτικοί έχουν προσωπικό υπολογιστή όπου και κρατάνε όλα ή τα περισσότερα από αυτά τα στοιχεία. Ωστόσο δεν μπορούνε να τα κρατήσουν όλα σε ένα αρχείο ή μια εφαρμογή και έτσι δυσκολεύονται να οργανωθούνε σωστά με αποτέλεσμα, η προετοιμασία και εργασία τους στο σπίτι να είναι δύσκολη ως προς την οργάνωση. Δυνατότητες της Εφαρμογής Η εφαρμογή "TeacherApp" έχει στόχο να κάνει την εργασία των εκπαιδευτικών πιο εύκολη και παραγωγική. Με την εφαρμογή "TeacherApp" θα μπορεί ο κάθε εκπαιδευτικός να κάνει τα παρακάτω: Να καταχωρεί το εβδομαδιαίο του πρόγραμμα, το οποίο περιλαμβάνει και το Σαββατοκύριακο καθώς κάποιες σχολές λειτουργούν και Σαββατοκύριακα ή ο καθηγητής μπορεί να κάνει και ιδιαιτέρα. Ο χρήστης αφού επιλέξει μέρα και ώρα, έχει την δυνατότητα να εισάγει μάθημα, τμήμα και σχόλια, ή οποιοδήποτε από τα προαναφερθέντα. Να δημιουργεί και να επεξεργάζεται το δικό του χρονοδιάγραμμα για το πρόγραμμα διδασκαλίας του κάθε μαθήματός του. Υπάρχει η δυνατότητα να προσθέσει ύλη για έως σαράντα διδακτικές εβδομάδες για το κάθε μάθημα. Τα μαθήματα πρέπει να αντιστοιχιστούνε με τα επιλεγμένα τμήματα έτσι ώστε να γίνεται χρήση του παρουσιολογίου -1-

και των διαγωνισμάτων. Η αντιστοίχιση δεν είναι απαραίτητη αν δεν απαιτείται χρήση του παρουσιολογίου και των διαγωνισμάτων. Να δημιουργεί τμήματα για τους μαθητές, όπου μπορεί να βλέπει ή να επεξεργάζεται ομαδικά τις παρουσίες και βαθμολογίες των μαθητών και να βλέπει στατιστικά στοιχεία για τις παρουσίες και βαθμολογίες των τμημάτων. Επίσης υπάρχει η δυνατότητα να προστεθούν σχόλια για το κάθε τμήμα. Αν για παράδειγμα, δεν γίνει μάθημα σε ένα τμήμα τη μια εβδομάδα, ο καθηγητής μπορεί να το γράψει στα σχόλια του τμήματος για να ξέρει ότι το τμήμα αυτό είναι μία εβδομάδα πίσω στα μαθήματα. Να δημιουργεί για τον κάθε μαθητή ξεχωριστή καρτέλα με τα στοιχεία του, απουσίες, βαθμολογίες, σχόλια και στατιστικά στοιχεία. Ο καθηγητής μπορεί να βλέπει και να επεξεργάζεται τους μαθητές μεμονωμένα και να γράφει σχόλια για τον καθέναν. Για παράδειγμα μπορεί να σημειώσει αν κάποιος μαθητής έχει πρόβλημα σε κάποιον τομέα, αν έχει κάποιο πρόβλημα όπως δυσλεξία, ή αν είναι σε κάποια ομάδα εργασίας. Τα στατιστικά στοιχεία αφορούν τον μέσο όρο των διαγωνισμάτων του μαθητή, το μέσο όρο από τη συμμετοχή του στη τάξη, και το ποσοστό παρακολούθησης (απουσίες). Ε- πίσης στην καρτέλα επεξεργασίας του μαθητή μπορεί να διορθώνει βαθμολογίες από διαγωνίσματα και να αλλάζει παρουσίες. Όπως αναφέρθηκε και πιο πάνω, η εφαρμογή έχει παρουσιολόγιο και διαγωνίσματα. Στα διαγωνίσματα υπάρχει μόνο δυνατότητα για το πέρασμα της βαθμολογίας. Στο παρουσιολόγιο εκτός από το πέρασμα των παρουσιών, υπάρχει δυνατότητα να περαστεί βαθμός της ημέρας αν ο μαθητής εξεταστεί στο μάθημα ή απαντήσει σε κάποια ερώτηση. Υπάρχει και η δυνατότητα πρόσθεσης σχολίων που πηγαίνουν στα σχόλια του μαθητή. -2-

2 Απαιτήσεις Εφαρμογής και Επιλεχθείσες Τεχνολογίες Σε αυτό το κεφάλαιο αναφέρονται οι τεχνολογίες που χρησιμοποιήθηκαν για την δημιουργία της εφαρμογής TeacherApp και για την δημιουργία των UML διαγραμμάτων που αναλύονται παρακάτω. Αυτό που θα αναπτυχθεί περισσότερο σε αυτό το κεφάλαιο είναι το περιβάλλον εργασίας των τεχνολογιών όπως χρησιμοποιήθηκε κατά την δημιουργία της εφαρμογής και κατά την δημιουργία των διαγραμμάτων. 2.1 Περιβάλλον Ανάπτυξης Εφαρμογής Η εφαρμογή αναπτύχθηκε σε περιβάλλον Java Eclipse Standard 4.3.2 (Kepler) με Java Development Kit (JDK) 1.8.0_05. Η βάση δεδομένων που χρησιμοποιήθηκε είναι η "Apache Derby Embedded Database 10.10.1.2". 2.1.1 Eclipse Kepler Το Eclipse είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE). Περιέχει ένα βασικό χώρο εργασίας (workspace) και ένα επεκτάσιμο σύστημα για πρόσθετα (plugin) για την προσαρμογή του περιβάλλοντος. Με τη βοήθεια των διαφόρων plugins, το Eclipse μπορεί επίσης να χρησιμοποιηθεί για την ανάπτυξη εφαρμογών σε άλλες γλώσσες προγραμματισμού εκτός από την Java όπως το Apache Derby. Το Eclipse Standard 4.3 Kepler εκδόθηκε 26 Ιουνίου 2013. Για να τρέξει, ο υπολογιστής χρειάζεται να έχει ενσωματωμένο JDK 1.6 ή άνω. Πλέον το Eclipse Kepler αντικαταστάθηκε από το Eclipse Luna στης 25 Ιουνίου 2014, και η νέα έκδοση Eclipse Mars ετοιμάζεται να κυκλοφορήσει στης 24 Ιουνίου 2015. Στη συνέχεια θα αναλυθεί το περιβάλλον εργασίας του Eclipse Kepler όπως χρησιμοποιήθηκε κατά την δημιουργία της εφαρμογής. Για περεταίρω πληροφορίες πάνω στην Java και στο Eclipse, απευθυνθείτε στο Παράρτημα Β που έχει χρήσιμους συνδέσμους. Κατά την εκκίνηση και φόρτωση του Eclipse εμφανίζεται το λογότυπο του Eclipse Kepler (εικόνα 2.1). -3-

Εικόνα 2.1 Λογότυπο του Eclipse Kepler Μόλις ανοίξει το Eclipse φαίνεται η αρχική οθόνη του περιβάλλοντος (εικόνα 2.2). Στο πάνελ Package Explorer στο αριστερό μέρος της οθόνης, φαίνονται διάφορα project που έχουν δημιουργηθεί. Το project που αφορά αυτήν την εργασία είναι το "TeacherApp". Το εικονίδιο δείχνει πως η προβολή της οθόνης που φαίνεται αυτή τη στιγμή είναι από άποψη "Java", δηλαδή δείχνει το Package Explorer και όλα τα εργαλεία που επιλέχθηκαν να φαίνονται από αυτήν την οπτική. Εικόνα 2.2 Άποψη Java View Επεκτείνοντας το "TeacherApp" στο "Package Explorer" (εικόνα 2.3), φαίνεται έ- νας φάκελος "src" ο οποίος περιλαμβάνει τον πηγαίο κώδικα της εφαρμογής. Επεκτείνοντας και τον φάκελο src φαίνονται όλες οι κλάσεις της εφαρμογής και ένα "Thumbs.db" που έχει να κάνει με την βάση δεδομένων. Ο φάκελος "Referenced Li- -4-

braries" αναφέρεται στις πρόσθετες βιβλιοθήκες και μεταβλητές περιβάλλοντος του Eclipse. Ο φάκελος "JRE System Libraries" είναι ένας κατάλογος που περιέχει μια καταχώρηση που αντιπροσωπεύει τη βιβλιοθήκη της Java η οποία τρέχει κατά τον χρόνο εκτέλεσης. Οι φάκελοι "Derby Embedded JDBC Driver", "codejava", "New folder", "TeacherAppDB" και τα "derby.log", "teacherappdbsql.sql", και "Thumbs.db" αφορούν όλα την Βάση Δεδομένων. Τα "info.png", "redo.png" και "undo.png" είναι εικόνες που χρησιμοποιούνται μέσα στην εφαρμογή. Εικόνα 2.3 Επέκταση του TeacherApp Επεξήγηση των ενεργειών της Μπάρας Εργαλειών Για να γίνει ευκολότερος ο προγραμματισμός με το Eclipse, υπάρχουν μπάρες εργαλειών πάνω, αριστερά και δεξιά. Εδώ θα αναλυθούν τα εικονίδια στην πάνω μπάρα εργαλειών. Όλες οι ίδιες επιλογές υπάρχουν και στο κεντρικό μενού. Όλα τα παρακάτω εικονίδια φαίνονται και στην εικόνα 2.2. Δημιουργία νέου project ή κλάσης. Δημιουργία νέας κλάσης ή κάποιο Swing Component. Αποθήκευση του κώδικα που φαίνεται στην τρέχουσα οθόνη. Αποθήκευση του κώδικα όλων των ανοιχτών κλάσεων, και ας μην φαίνονται στην τρέχουσα οθόνη. -5-

Εκτύπωση του κώδικα. Αν έχουν προστεθεί Breakpoints, επιλέγοντας αυτό το εικονίδιο γίνεται παράλειψη όλων των Breakpoints. (Skip All Breakpoints). Εντοπισμός σφαλμάτων μέσα στοκ κώδικα (debug). Διαμόρφωση εξωτερικών εργαλείων. Δημιουργία νέου πακέτου (package) Java, δηλαδή νέο πακέτο κλάσεων. Εκτέλεση του πηγαίου κώδικα. Με την εκτέλεση του κώδικα γίνεται και αποθήκευση. Δημιουργία νέας κλάσης Java. Γρήγορο ευρετήριο. Ευρετήριο με βάση χαρακτηριστικών. Επόμενα σχόλια μέσα στην κλάση. Προηγούμενα σχόλια μέσα στη κλάση. Τελευταίο σημείο που επεξεργάστηκε. Προηγούμενη κλάση που επεξεργάστηκε. Πίσω στην τελευταία κλάση που επεξεργάστηκε. Επιλογή νέας άποψης. Η άποψη "Java" αναλύθηκε προηγουμένως και "Database Development" θα αναλυθεί παρακάτω. Υπάρχουν όμως και άλλες απόψεις που μπορούν να επιλεχθούν. Τα τρία αυτά εικονίδια έχουν να κάνουν με Android Development. 2.1.2 Η Βάση Δεδομένων Η Apache Derby Embedded Database 10.10.1 εκδόθηκε 17 Απριλίου 2013. Η Derby είναι μια σχεσιακή βάση δεδομένων ανοιχτού κώδικα που εφαρμόζεται σε Java. Έχει ένα μικρό αποτύπωμα που του επιτρέπει εύκολα να ενσωματωθεί σε οποιαδήποτε ε- φαρμογή Java. Υποστηρίζει επίσης και το πιο γνωστό μοντέλο πρόσβασης πελάτη / ε- ξυπηρετητή, αλλά σε αυτήν την εργασία χρησιμοποιήθηκε η ενσωματωμένη έκδοση. Για περεταίρω πληροφορίες πάνω στην Apache Derby, απευθυνθείτε στο Παράρτημα Β που έχει χρήσιμους συνδέσμους. -6-

Επιλέγοντας το εικονίδιο από το πάνελ Package Explorer (εικόνα 2.3), ανοίγει παράθυρο όπως στην εικόνα 2.4 για κωδικοποίηση της βάσης δεδομένων. Αφού γραφτεί ο επιθυμητός κώδικας, με δεξί κλικ πάνω στο παράθυρο εμφανίζεται ένα μενού ενεργειών και με την επιλογή "Execute All" πραγματοποιείται η ε- κτέλεση του κώδικα. Η Apache Derby είναι υπερβολικά εύκολη στη χρήση της! Εικόνα 2.4 Προγραμματισμός με την Derby Με το εικονίδιο πραγματοποιείται η εφαρμογή της άποψης "Database Development" στο Eclipse (εικόνα 2.5). Στο πάνελ "Data Source Explorer" Εικόνα 2.5 Άποψη Database Development -7-

στο αριστερό μέρος της οθόνης, κάτω από το "Database Connections" φαίνονται οι βάσεις δεδομένων που έχουν δημιουργηθεί. Η μοναδική βάση δεδομένων που υπάρχει είναι η "TeacherAppDB". Για να τρέξει ο Derby κώδικας, πρέπει να υπάρχει σύνδεση με την επιθυμητή βάση δεδομένων. Η σύνδεση πραγματοποιείται απλά πατώντας δεξί κλικ στην επιθυμητή βάση και επιλέγοντας "connect" από το μενού ενεργειών που εμφανίζεται. Το εικονίδιο στην εικόνα 2.6, δείχνει ότι τώρα υπάρχει σύνδεση στη βάση (σε σύγκριση με το της εικόνας 2.5 που δεν υπήρχε σύνδεση με την βάση), άρα η εκτέλεση του Derby κώδικα είναι δυνατή. Όταν όμως υπάρχει σύνδεση στη βάση, δεν είναι δυνατόν να τρέξει σωστά η εφαρμογή που αφορά την συνδεδεμένη βάση δεδομένων. Αν πραγματοποιηθεί εκτέλεση της εφαρμογής, στην κονσόλα παρουσιάζεται σφάλμα java.sql.sqlexception: Failed to start database. Για να μπορεί να τρέξει η εφαρμογή χωρίς σφάλματα, η αποσύνδεση γίνεται απλά επιλέγοντας "disconnect" με τον ίδιο τρόπο που έγινε σύνδεση στη βάση. Εικόνα 2.6 Σύνδεση στη βάση δεδομένων και αποτελέσματα Για να φανεί αν ο κώδικας που εκτελέστηκε έτρεξε με επιτυχία, γίνεται η επιλογή του εικονιδίου SQL Results στην δεξιά μπάρα εργαλείων (εικόνα 2.6). Έτσι εμφανίζεται η κατάσταση της τελευταίας εκτέλεσης αλλά και οι καταστάσεις όλων των προηγουμένων εκτελέσεων. -8-

Επεκτείνοντας το "teacherappdb" στο "Data Source Explorer" (εικόνα 2.7), είναι ορατοί όλοι οι πίνακες μέσα στην βάση δεδομένων. Για να γίνει επέκταση της βάσης πρέπει να υπάρχει σύνδεση στη βάση δεδομένων. Τα δεδομένα εμφανίζονται με δεξί κλικ στον επιθυμητό πίνακα και κατόπιν γίνεται επιλογή του "data" και "Sample Contents" από το μενού ενεργειών που εμφανίζεται. Εικόνα 2.7 Επέκταση της βάσης δεδομένων Στο παράθυρο SQL Results εμφανίζονται τα δεδομένα (εικόνα 2.8). Για την επεξεργασία των περιεχομένων του πίνακα εκτός εφαρμογής και εντολών, πρέπει να γίνει η επιλογή του επιθυμητού πίνακα με δεξί κλικ και από το μενού ενεργειών που εμφανίζεται να γίνει η επιλογή "data" και "Edit". Εικόνα 2.8 Περιεχόμενα του πίνακα CLASS (Τμήμα) Ο πίνακας εμφανίζεται στο παράθυρο (εικόνα 2.9) σε νέα καρτέλα. Εκεί μπορεί να πραγματοποιηθεί αλλαγή δεδομένων, προσθήκη νέων καταχωρήσεων, και διαγραφή καταχωρίσεων που ήδη υπάρχουν. -9-

Εικόνα 2.9 Περιεχόμενα του πίνακα TESTS (Διαγωνίσματα) 2.2 Περιβάλλον Ανάπτυξης Διαγραμμάτων Τα διαγράμματα Κλάσεων και διαγράμματα Οντοτήτων - Συσχετίσεων που ακολουθούν στα κεφάλαια 3 και 4 δημιουργηθήκαν σε περιβάλλον StarUML 5.0.2. Το StarUML είναι μια πλατφόρμα ανοιχτού κώδικα για UML/MDA (Unified Modeling Language / Model Driven Architecture). Οι τύποι διαγραμμάτων που μπορούν να πραγματοποιηθούν με StarUML είναι τα: Use Case Diagram - Διάγραμμα Περιπτώσεων Χρήσης Class Diagram - Διάγραμμα Κλάσεων Sequence Diagram - Διάγραμμα Ακολουθίας Collaboration Diagram - Διάγραμμα Συνεργασίας Statechart Diagram - Διάγραμμα Καταστάσεων Activity Diagram - Διάγραμμα Δραστηριοτήτων Component Diagram - Διάγραμμα Συστατικών Deployment Diagram - Διάγραμμα Διάταξης Για το Διάγραμμα Οντοτήτων - Συσχετίσεων - Entity Relation Diagram, χρειάστηκε ένα πρόσθετο (plugin) το οποίο υπάρχει στην σελίδα: http://staruml.sourceforge.net/v1/. Από αυτή τη σελίδα γίνεται η επιλογή "modules" και κάτω από το "Notation Extension Example - ER Diagram" υπάρχει το πρόσθετο staruml-erd.zip. -10-

Κατά την εκκίνηση και φόρτωση του StarUML εμφανίζεται το λογότυπο του StarUML (εικόνα 2.10). Εικόνα 2.10 Λογότυπο του StarUML Μόλις ανοίξει το StarUML, γίνεται η επιλογή προσέγγισης Default Approach για να ξεκινήσει νέα εργασία με διάγραμμα κλάσεων (εικόνα 2.11). Εικόνα 2.11 Επιλογή προσέγγισης Το πρόγραμμα θα ανοίξει με άποψη Diagram Explorer (εικόνα 2.12). Από αυτήν την άποψη δημιουργηθήκαν τα διαγράμματα κλάσεων. Για την εισαγωγή νέας κλάσης, πρέπει να γίνει η επιλογή του που βρίσκεται στην αριστερή εργαλειοθήκη ενώ για την σύνδεση δύο κλάσεων επιλογή του (συσχέτιση) που επίσης βρίσκεται στην αριστερή εργαλειοθήκη. Υπάρχουν και άλλοι τρόποι σύνδεσης όπως φαίνεται και στην εικόνα, αλλά για τα διαγράμματα κλάσεων χρησιμοποιήθηκε μόνο η συσχέτιση. -11-

Εικόνα 2.12 Αρχική οθόνη StarUML, άποψη Diagram Explorer Για την δημιουργία διαγράμματος Οντοτήτων - Συσχετίσεων, ο χρήστης πρέπει να επιλέξει το εικονίδιο που είναι δίπλα στο Diagram Explorer στο δεξί μέρος του παραθύρου (εικόνα 2.12). Το Model Explorer φαίνεται όπως απεικονίζεται στην εικόνα 2.13. Με δεξί κλικ πάνω στο Design Model εμφανίζεται ένα μενού ενεργειών όπου πρέπει να γίνει η επιλογή του Add Diagram και έπειτα ER(IE) Diagram, όπως φαίνεται στην εικόνα 2.14. Εικόνα 2.13 Model Explorer Στο νέο περιβάλλον εργασίας (εικόνα 2.15) το νέο διάγραμμα, που μόλις δημιουργήθηκε - δηλαδή το ER(IE)Diagram1, υποδεικνύεται από το εικονίδιο κάτω από το Design Model στο Model Explorer. Με το εικονίδιο Πίνακας στην αριστερή εργαλειοθήκη γίνεται εισαγωγή νέου πίνακα στον χώρο εργασίας. Ακριβώς κάτω από το εικονίδιο Table υπάρχουν δύο εικονίδια για συσχετίσεις. Οι δύο επιλογές των συσχε- -12-

τίσεων είναι "identifying" (αναγνωρίσιμη) και "non-identifying" (Μη- αναγνωρίσιμη). Στα διαγράμματα που δημιουργηθήκαν για αυτήν την εργασία, χρησιμοποιήθηκε μόνο αναγνωρίσιμη συσχέτιση. Εικόνα 2.14 Για δημιουργία ER Diagram Εικόνα 2.15 ER Diagram Άποψη -13-

3 Ανάλυση και Σχεδίαση με UML Σε αυτό το κεφάλαιο θα πραγματοποιηθεί ανάλυση UML (Unified Modeling Language - Ενοποιημένη Γλώσσα Μοντελοποίησης) του διαγράμματος κλάσεων της εφαρμογής TeacherApp. Στο διάγραμμα κλάσεων, δεν ακολουθήθηκε αντικειμενοστραφής σχεδιασμός, αλλά περισσότερο σχεδιασμός διαδικασίας (procedural) προκειμένου να επιτευχθεί με ευκολία και ταχύτητα η κωδικοποίηση της εφαρμογής λόγου περιορισμένου χρόνου της πτυχιακής εργασίας. Στο μέλλον όμως, είναι δυνατόν να γίνει επεξεργασία της εφαρμογής και να σχεδιαστεί με αντικειμενοστραφή τρόπο. 3.1 Το Διάγραμμα Κλάσεων Στην εικόνα 3.1 φαίνεται το Διάγραμμα Κλάσεων ολόκληρης της εφαρμογής με τις κεφαλίδες των κλάσεων. Για πιο καθαρή εικόνα, τα βασικά χαρακτηριστικά και οι μέθοδοι των κλάσεων φαίνονται παρακάτω στην ανάλυση των κλάσεων, κεφάλαιο 3.2. Εικόνα 3.1 UML - Διάγραμμα Κλάσεων -15-

Είναι φανερό ότι οι περισσότερες κλάσεις συνδέονται με την κλάση "Main" (Κεντρική), που είναι η αρχική και στατική κλάση όταν γίνεται εκκίνηση της εφαρμογής. Αυτό οφείλεται στο ότι όλες οι κλάσεις που καλεί η "Main" εκτός από την "TextAreaCellRenderer", ανοίγουν η κάθε μία νέο παράθυρο. Αυτά τα νέα παράθυρα μπορούν να ανοίξουν μόνο όταν η Main καλεί την συγκεκριμένη κλάση. 3.2 Ανάλυση Των Κλάσεων Για καλύτερη κατανόηση, οι κλάσεις του διαγράμματος κλάσεων θα αναλυθούν σε μικρές ομάδες. Οι ιδιότητες που φαίνονται, είναι μόνο οι απαραίτητες ώστε να γίνει η α- νάλυση. Κλήσεις της Κεντρικής Εδώ θα αναλυθούν όλες οι κλάσεις που συσχετίζονται με την "Main" (Κεντρική) κλάση και θα αναλυθούν οι ιδιότητες και οι λειτουργίες τους. Στην εικόνα 3.2 φαίνονται οι κλάσεις Main (Κεντρική), CreateClass (Δημιουργία Τμήματος), CreateStudent (Δημιουργία Μαθητή) και CreateSubject (Δημιουργία Μαθήματος). Όταν ο χρήστης της εφαρμογής θελήσει να δημιουργήσει νέο τμήμα, η Main καλεί την κλάση CreateClass. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία CreateClass(). Με την ιδιότητα update, εξετάζεται εάν ο χρήστης έχει κάνει αναίρεση κάποιας αποθήκευσης ώστε να μπορεί να κάνει διόρθωση από αυτό το σημείο αντί να χρειαστεί να πάει στην Επεξεργασία Τμήματος. Όταν ο χρήστης θελήσει να προσθέσει νέο μαθητή, η Main καλεί την κλάση CreateStudent. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία CreateStudent(). Κατά την διαδικασία της αποθήκευσης, καλείται η μέθοδος Check- DOB() για έλεγχο της ημερομηνίας γέννησης. Με την ιδιότητα update, εξετάζεται εάν ο χρήστης έχει κάνει αναίρεση κάποιας αποθήκευσης ώστε να μπορεί να κάνει διόρθωση από αυτό το σημείο αντί να χρειαστεί να πάει στην Επεξεργασία Μαθητή. Όταν ο χρήστης θελήσει να δημιουργήσει νέο μάθημα, η Main καλεί την κλάση CreateSubject. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία CreateSubject(). Με την ιδιότητα update, εξετάζεται εάν ο χρήστης έχει κάνει αναίρεση κάποιας αποθήκευσης ώστε να μπορεί να κάνει διόρθωση από αυτό το σημείο αντί να χρειαστεί -16-

να πάει στην Επεξεργασία Μαθήματος. Το χαρακτηριστικό table θα αναλυθεί παρακάτω στο Κλήσεις Μαθήματος. Εικόνα 3.2 Οι κλάσεις Main, CreateClass, CreateStudent και CreateSubject Στην εικόνα 3.3 φαίνονται οι κλάσεις Main (Κεντρική), ProcessClass (Επεξεργασία Τμήματος), ProcessStudent (Επεξεργασία Μαθητή) και ProcessSubject (Επεξεργασία Μαθήματος). Όταν ο χρήστης θελήσει να επεξεργαστεί κάποιο υπάρχον τμήμα, η Main καλεί την κλάση ProcessClass. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία ProcessClass(). Κατά την εκκίνηση της λειτουργίας ProcessClass() και μετά από κάθε αποθήκευση που κάνει ο χρήστης, η λειτουργία ProcessClass() καλεί την λειτουργία FillInCombos(). Με την ιδιότητα deletes, κάθε φορά που ο χρήστης επιθυμεί να διαγράψει κάποιο τμήμα, δεν γίνεται πραγματική διαγραφή από την Βάση Δεδομένων, αλλά ο κωδικός του τμήματος αποθηκεύεται στον πίνακα deletes. Κατά το κλείσιμο του παραθύρου Επεξεργασία Τμήματος καλείται η λειτουργία DoDeletes(), η οποία διαγράφει από την Βάση Δεδομένων τους κωδικούς των τμημάτων που βρίσκονται στον πίνακα deletes. Όταν ο χρήστης θελήσει να επεξεργαστεί κάποιον υπάρχον μαθητή, η Main καλεί την κλάση ProcessStudent. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία ProcessStudent(). Κατά την εκκίνηση της λειτουργίας ProcessStudent() και μετά από κάθε αποθήκευση που κάνει ο χρήστης, η λειτουργία ProcessStudent() καλεί τις λειτουργίες FillInPanel() και FillInStudentCombo(). Κατά την διαδικασία της αποθήκευσης, καλείται η λειτουργία CheckDOB() για έλεγχο της ημερομηνίας γέννησης. Με την ιδιότητα deletes, κάθε φορά που ο χρήστης επιθυμεί να διαγράψει κάποιο μαθητή, -17-

δεν γίνεται πραγματική διαγραφή από την Βάση Δεδομένων, αλλά ο αριθμός μητρώου του μαθητή αποθηκεύεται στον πίνακα deletes. Κατά το κλείσιμο του παραθύρου Επεξεργασία Μαθητή καλείται η λειτουργία DoDeletes(), η οποία διαγράφει από την Βάση Δεδομένων τους μαθητές που βρίσκονται στον πίνακα deletes. Όταν ο χρήστης θελήσει να επεξεργαστεί κάποιο υπάρχον μάθημα, η Main καλεί την κλάση ProcessSubject. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία ProcessSubject(). Κατά την εκκίνηση της λειτουργίας ProcessSubject() και μετά από κάθε αποθήκευση που κάνει ο χρήστης, η λειτουργία ProcessSubject() καλεί την λειτουργία FillInCombo(). Με την ιδιότητα deletes, κάθε φορά που ο χρήστης επιθυμεί να διαγράψει κάποιο μάθημα, δεν γίνεται πραγματική διαγραφή από την Βάση Δεδομένων, αλλά ο κωδικός μαθήματος αποθηκεύεται στον πίνακα deletes. Κατά το κλείσιμο του παραθύρου Επεξεργασία Μαθήματος, καλείται η λειτουργία DoDeletes(), η οποία διαγράφει από την Βάση Δεδομένων τα μαθήματα που βρίσκονται στον πίνακα deletes. Η ιδιότητα table θα αναλυθεί παρακάτω στο Κλήσεις Μαθήματος. Εικόνα 3.3 Οι κλάσεις Main, ProcessClass, ProcessStudent και ProcessSubject Στην εικόνα 3.4 φαίνονται οι κλάσεις Main (Κεντρική), CreateTest (Δημιουργία Διαγωνίσματος), Parousiologio (Παρουσιολόγιο) και Program (Πρόγραμμα). Όταν ο χρήστης θελήσει να περάσει βαθμολογίες διαγωνισμάτων, η Main καλεί την κλάση CreateTest. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία CreateTest().Κατά την εκκίνηση της λειτουργίας CreateTest() και μετά από κάθε απο- -18-

θήκευση που κάνει ο χρήστης, η λειτουργία CreateTest() καλεί την λειτουργία FillIn- ComboClasses(). Η ιδιότητα btnoldtest θα αναλυθεί παρακάτω στο Κλήσεις Διαγωνίσματος. Όταν ο χρήστης θελήσει να περάσει παρουσίες, η Main καλεί την κλάση Parousiologio. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία Parousiologio(). Κατά την διαδικασία της αποθήκευσης, καλείται η λειτουργία CheckDate() για έλεγχο της ημερομηνίας. Με την ιδιότητα update, εξετάζεται εάν ο χρήστης έχει κάνει αναίρεση κάποιας αποθήκευσης ώστε να μπορεί να κάνει διόρθωση από αυτό το σημείο αντί να χρειαστεί να πάει στην Παλαιές Παρουσίες. Οι ιδιότητες table και btnchanges θα αναλυθούν παρακάτω στο Κλήσεις Παρουσιολογίου. Όταν ο χρήστης θελήσει να δημιουργήσει ή να επεξεργαστεί το εβδομαδιαίο του πρόγραμμα, η Main καλεί την κλάση Program. Όλη η επεξεργασία της κλάσης γίνεται μέσα στην λειτουργία Program(). Κατά την εκκίνηση της λειτουργίας Program() και μετά από κάθε αποθήκευση ωρών που κάνει ο χρήστης, η λειτουργία Program() καλεί την λειτουργία SetTimes(). Άμα ο χρήστης αλλάξει της ώρες στο εβδομαδιαίο του πρόγραμμα, καλείται η λειτουργία SaveTimes(). Η αποθήκευση του εβδομαδιαίου προγράμματος, δηλαδή για μαθήματα και τμήματα, γίνεται μέσα στη λειτουργία Program() και δεν επηρεάζει ούτε την λειτουργία SetTimes() ούτε την λειτουργία SaveTimes(). Εικόνα 3.4 Οι κλάσεις Main, CreateTest, Parousiologio και Program Στην εικόνα 3.5 φαίνονται οι κλάσεις Main (Κεντρική), HelpWindow (Βοήθεια) και TextAreaCellRenderer. Όταν ο χρήστης είναι στο κεντρικό παράθυρο και πατήσει το κουμπί βοήθεια, η Main καλεί την κλάση HelpWindow. Όταν γίνεται αυτό, η ιδιότητα -19-

HelpOpen της Main παίρνει την τιμή "αληθής" για να μην μπορεί να ανοίξει πολλές φορές ταυτόχρονα η βοήθεια. Μόλις κλείνει η βοήθεια, η ιδιότητα HelpOpen γίνεται "ψευδής". Το αρχικό παράθυρο της Main, όπως φαίνεται και παρακάτω στην εικόνα 5.1, περιλαμβάνει το βασικό μενού και έναν πίνακα για το εβδομαδιαίο πρόγραμμα. Κάθε φορά που ο χρήστης πατάει ένα από τα κελιά του πίνακα με το εβδομαδιαίο πρόγραμμα, η Main καλεί την κλάση TextAreaCellRenderer. Ο πίνακας αυτός φαίνεται στη Main ως το χαρακτηριστικό table. Εικόνα 3.5 Οι κλάσεις Main, HelpWindow και TextAreaCellRenderer Κλήσεις Παρουσιολογίου Στην εικόνα 3.6 φαίνονται οι κλάσεις Parousiologio (Παρουσιολόγιο), OldParousies (Παλαιές Παρουσίες) και TablePopupEditor. Όταν ο χρήστης βρίσκεται στο παρουσιολόγιο, για να επεξεργαστεί παλαιές παρουσίες πατάει το κουμπί btnchanges και η κλάση Parousiologio καλεί την κλάση OldParousies. Το btnchanges είναι μια ιδιότητα της κλάσης Parousiologio. Όλη η επεξεργασία της κλάσης OldParousies γίνεται μέσα στην λειτουργία OldParousies(). Κατά την εκκίνηση της λειτουργίας OldParousies() και μετά από κάθε αποθήκευση που κάνει ο χρήστης, η λειτουργία OldParousies() καλεί την λειτουργία FillTable(). Κατά την διαδικασία της αποθήκευσης, καλείται η λειτουργία IsValidDate() για έλεγχο της ημερομηνίας. Στο παράθυρο του παρουσιολογίου όπως φαίνεται και παρακάτω στην εικόνα 5.21, υπάρχει ένας κεντρικός πίνακας με έξι στήλες. Κάθε φορά που ο χρήστης πατάει κά- -20-

ποιο κελί που βρίσκεται στην τελευταία στήλη, η κλάση Parousiologio καλεί την κλάση TablePopupEditor. Ο πίνακας αυτός είναι η ιδιότητα table της κλάσης Parousiologio. Εικόνα 3.6 Οι κλάσεις Parousiologio, OldParousies και TablePopupEditor Κλήσεις Διαγωνίσματος Στην εικόνα 3.7 φαίνονται οι κλάσεις CreateTest (Δημιουργία Διαγωνίσματος) και OldTests (Παλαιά Διαγωνίσματα). Όταν ο χρήστης βρίσκεται στα διαγωνίσματα, για να επεξεργαστεί στοιχεία παλαιών διαγωνισμάτων πατάει το κουμπί btnoldtests και η κλάση CreateTest καλεί την κλάση OldTests. Το btnoldtests είναι μια ιδιότητα της κλάσης CreateTest. Όλη η επεξεργασία της κλάσης OldTests γίνεται μέσα στην λειτουργία OldTests(). Κατά την εκκίνηση της λειτουργίας OldTests() και μετά από κάθε αποθήκευση που κάνει ο χρήστης, η λειτουργία OldTests() καλεί την λειτουργία FillInTable(). Εικόνα 3.7 Οι κλάσεις CreateTest και OldTests Κλήσεις Μαθημάτων Στην εικόνα 3.8 φαίνονται οι κλάσεις CreateSubject (Δημιουργία Μαθήματος), ProcessSubject (Επεξεργασία Μαθήματος) και TablePopup. Οι κλάσεις CreateSubject και -21-

ProcessSubject όπως φαίνεται και παρακάτω στις εικόνες 5.3 και 5.4 για Δημιουργία Μαθήματος, και στην εικόνα 5.10 για Επεξεργασία Μαθήματος, έχουν από έναν παρόμοιο πίνακα για το ακαδημαϊκό πρόγραμμα των μαθημάτων. Έτσι μπορούν και μοιράζονται την κλάση TablePopup. Όταν ο χρήστης βρίσκεται είτε στην δημιουργία μαθήματος, είτε στην επεξεργασία μαθήματος, κάθε φορά που πατάει κάποιο κελί που βρίσκεται στην τελευταία στήλη των δύο αυτών πινάκων, η κλάση CreateSubject ή η κλάση ProcessSubject καλεί την κλάση TablePopup. Οι πίνακες αυτοί φαίνονται στη ProcessSubject και στη CreateSubject ως οι ιδιότητες table. Εικόνα 3.8 Οι κλάσεις ProcessSubject, CreateSubject και TablePopup -22-

4 Η Βάση Δεδομένων Σε αυτή την ενότητα θα εξεταστεί η βάση δεδομένων της εφαρμογής TeacherApp. Η βάση δεδομένων της εφαρμογής είναι πολύ απλή και φαίνεται αναλυτικά στο Διάγραμμα Οντοτήτων - Συσχετίσεων (ERD - Entity Relation Diagram) στην εικόνα 4.1. Εικόνα 4.1Διάγραμμα ER της βάσης δεδομένων της εφαρμογής 4.1 Τα Σύμβολα Πριν προχωρήσουμε στην επεξήγηση των οντοτήτων και των συσχετίσεων, ας εξηγήσουμε πρώτα τα σύμβολα που φαίνονται στην εικόνα 4.1. Στις εικόνες 4.2, 4.3, 4.4 και 4.5, φαίνονται όλα τα σύμβολα και οι γραμμές από την εικόνα 4.1. -23-

Εικόνα 4.2 ΠΚ Εικόνα 4.3 ΞΚ Εικόνα 4.4 Χαρακτηριστικό Εικόνα 4.5 Συσχέτιση Η εικόνα 4.2 συμβολίζει Πρωτεύον Κλειδί (ΠΚ), δηλαδή το πεδίο ή το σύνολο πεδίων της οντότητας που παρέχουν ένα μοναδικό αναγνωριστικό για το κάθε στοιχείο της οντότητας. Η εικόνα 4.3 συμβολίζει Ξένο Κλειδί (ΞΚ), ή όπως φαίνεται στα αγγλικά στην εικόνα 4.1 Foreign Key (FK). Το ΞΚ είναι απλά ένα πρωτεύον κλειδί μιας άλλης οντότητας. Η εικόνα 4.4 συμβολίζει Χαρακτηριστικό της οντότητας, δηλαδή κάτι που προσδιορίζει την οντότητα. Η εικόνα 4.5 συμβολίζει Συσχέτιση, δηλαδή την σύνδεση δύο οντοτήτων. Η κάθε συσχέτιση έχει όρια και ονομασία τα οποία θα αναλυθούν παρακάτω στην επεξήγηση των συσχετίσεων στο κεφάλαιο 4.3 4.2 Οι Οντότητες Οι οντότητες της βάσης δεδομένων της εφαρμογής είναι "SUBJECT" (Μάθημα), "CLASS" (Τμήμα), "STUDENT" (Μαθητής), "SUBJECT_CLASS" (Μάθημα_Τμήμα), "PROGRAM" (Πρόγραμμα), "ACCADEMICPROGRAM" (Ακαδημαϊκό_Πρόγραμμα), "TESTS" (Διαγωνίσματα) και "ATTENDANCE_GRADE" (Παρουσία_Βαθμολογία). Θα αναλυθούν λεπτομερώς παρακάτω. Η Οντότητα ΜΑΘΗΜΑ Η οντότητα "SUBJECT" έχει μόνο δύο πεδία και είναι η πιο απλή οντότητα στη βάση δεδομένων. Τα δύο της πεδία είναι το CODE (κωδικός) και το TITLE (τίτλος). Στο CODE μπαίνει ο κωδικός του μαθήματος και είναι το Πρωτεύων Κλειδί της οντότητας. Στο TITLE μπαίνει ο τίτλος του μαθήματος και είναι απλό Χαρακτηριστικό της οντότητας. Και τα δύο πεδία είναι συμβολοσειρές και είναι υποχρεωτικά, δηλαδή απαγορεύεται η κενή αξία (not null). Το CODE δέχεται έως είκοσι χαρακτήρες και το -24-

TITLE δέχεται έως σαράντα χαρακτήρες. Το CODE χρησιμοποιείται ως ξένο κλειδί και μέρος πρωτεύοντος κλειδιού από τις οντότητες "SUBJECT_CLASS" και "ACCADEMICPROGRAM". Επίσης χρησιμοποιείται και ως ξένο κλειδί στην οντότητα "PROGRAM". Χρησιμοποιείται και στις οντότητες "TESTS" και "ATTENDANCE_GRADE" αλλά αυτό ελέγχεται από την Java και όχι από την βάση δεδομένων με την Derby για περισσότερη ευελιξία, και για αυτό το λόγο δεν φαίνεται η συσχέτιση στο ER διάγραμμα. Η εικόνα 4.6 δείχνει το πως φαίνεται η οντότητα "ΜΑΘΗΜΑ" μέσα στο Eclipse. Το κίτρινο κλειδί πάνω στο CODE δείχνει πως είναι πρωτεύον κλειδί, ενώ το TITLE είναι απλό χαρακτηριστικό. Εικόνα 4.6 Η Οντότητα ΜΑΘΗΜΑ Η Οντότητα ΤΜΗΜΑ Τα πεδία της οντότητας "CLASS" είναι τα CLASS_CODE (κωδικός τμήματος), CLASSNAME (όνομα τμήματος), SCHOOL (σχολείο), CLASSROOM (αίθουσα) και COMMENTS (σχόλια). Πρωτεύον Κλειδί είναι το CLASS_CODE και τα υπόλοιπα τέσσερα είναι απλά Χαρακτηριστικά. Το CLASS_CODE όμως δεν το βάζει ο χρήστης και ούτε καν γνωρίζει ότι υπάρχει αλλά παράγεται αυτόματα από το σύστημα κάθε φορά που γίνεται νέα εισαγωγή τμήματος από τον χρήστη. Η Java ελέγχει αν το Όνομα Τμήματος και Σχολείο είναι μοναδικά, δηλαδή αν θα μπορούσαν να είναι πρωτεύον κλειδί, και αν είναι τα α- ποθηκεύει. Με την αποθήκευση η Apache Derby τα δίνει έναν κωδικό και το πως γίνεται αυτό φαίνεται παρακάτω στην δεύτερη γραμμή του Derby κώδικα στην εικόνα 4.7. Εικόνα 4.7 Δημιουργία Οντότητας ΤΜΗΜΑ -25-

Όπως φαίνεται και στην εικόνα 4.7, μόνο το CLASS_CODE είναι ακέραιος αριθμός ενώ όλα τα απλά χαρακτηριστικά της οντότητας είναι συμβολοσειρές. Τα CLASS_CODE, CLASSNAME και SCHOOL είναι υποχρεωτικά πεδία, ενώ τα υπόλοιπα πεδία είναι μη-υποχρεωτικά. Το CLASSNAME δέχεται έως δέκα χαρακτήρες, το SCHOOL έως εικοσιπέντε χαρακτήρες, το CLASSROOM έως δέκα χαρακτήρες, και το COMMENTS έως πεντακόσιους χαρακτήρες. Το CLASS_CODE χρησιμοποιείται ως ξένο κλειδί και μέρος πρωτεύοντος κλειδιού για την οντότητα "SUBJECT_CLASS", όπως επίσης και ως ξένο κλειδί για τις οντότητες "STUDENT" και "PROGRAM". Χρησιμοποιείται και στις οντότητες "TESTS" και "ATTENDANCE_GRADE" αλλά αυτό ελέγχεται από την Java και όχι από την βάση δεδομένων με την Derby για περισσότερη ευελιξία, και για αυτό το λόγο δεν φαίνεται η συσχέτιση στο ER διάγραμμα. Η εικόνα 4.8 δείχνει το πως φαίνεται η οντότητα "ΤΜΗΜΑ" μέσα στο Eclipse. Εικόνα 4.8 Η Οντότητα ΤΜΗΜΑ Η Οντότητα ΜΑΘΗΜΑ_ΤΜΗΜΑ Η οντότητα "SUBJECT_CLASS" έχει μόνο δύο πεδία και είναι και τα δύο ξένα κλειδιά. Αυτά είναι το SUBJECT_CODE (κωδικός μαθήματος) και το CLASS_CODE (κωδικός τμήματος). Ο συνδυασμός των δύο πεδίων είναι το Σύνθετο Πρωτεύον Κλειδί της οντότητας. Η οντότητα αυτή έχει δημιουργηθεί για την αντιστοίχηση τμημάτων και μαθημάτων. Το SUBJECT_CODE είναι πρωτεύον κλειδί της οντότητας ΜΑΘΗΜΑ, και το CLASS_CODE είναι πρωτεύον κλειδί της οντότητας ΤΜΗΜΑ. Και τα δύο πεδία είναι υποχρεωτικά, δηλαδή απαγορεύεται η κενή αξία. Το SUBJECT_CODE δέχεται έως είκοσι χαρακτήρες ενώ το CLASS_CODE είναι ακέραιος αριθμός. Η εικόνα 4.9 δείχνει το πως φαίνεται η οντότητα "ΜΑΘΗΜΑ_ΤΜΗΜΑ" μέσα στο Eclipse. Τα μπλε κλειδιά κάτω από το "Columns" δείχνουν πως τα πεδία είναι ξένα -26-

κλειδιά. Τα μπλε κλειδιά κάτω από το "Constraints" δείχνουν από ποιά οντότητα εξαρτάται το κάθε πεδίο. Εικόνα 4.9 Η Οντότητα ΜΑΘΗΜΑ_ΤΜΗΜΑ Η Οντότητα ΑΚΑΔΗΜΑΪΚΟ_ΠΡΟΓΡΑΜΜΑ Η οντότητα "ACCADEMICPROGRAM" έχει τρία πεδία από τα οποία ο συνδυασμός των δύο είναι το Σύνθετο Πρωτεύον Κλειδί της οντότητας και το τρίτο είναι απλό Χαρακτηριστικό. Για το σύνθετο πρωτεύον κλειδί χρησιμοποιούνται το WEEK (εβδομάδα) και το SUBJECT_CODE (κωδικός μαθήματος), ενώ το ACADEMICPROGRAM (πρόγραμμα διδασκαλίας) είναι απλό χαρακτηριστικό. Το WEEK είναι ακέραιος αριθμός ενώ τα υ- πόλοιπα πεδία της οντότητας είναι συμβολοσειρές. Το SUBJECT_CODE δέχεται έως είκοσι χαρακτήρες ενώ το ACADEMICPROGRAM έως χίλιους χαρακτήρες. Τα WEEK και SUBJECT_CODE είναι υποχρεωτικά πεδία, ενώ το ACADEMICPROGRAM είναι μη-υποχρεωτικό. Το SUBJECT_CODE είναι ξένο κλειδί που είναι πρωτεύον κλειδί της οντότητας ΜΑΘΗΜΑ. Η εικόνα 4.10 δείχνει το πώς φαίνεται μέσα στο Eclipse η οντότητα "ΑΚΑΔΗΜΑΪΚΟ_ΠΡΟΓΡΑΜΜΑ". Εικόνα 4.10 Η Οντότητα ΑΚΑΔΗΜΑΪΚΟ_ΠΡΟΓΡΑΜΜΑ -27-

Η Οντότητα ΠΡΟΓΡΑΜΜΑ Η οντότητα "PROGRAM" έχει πέντε πεδία από το οποία τα δύο χρησιμοποιούνται ως Σύνθετο Πρωτεύον Κλειδί και τα υπόλοιπα τρία είναι απλά Χαρακτηριστικά. Για το σύνθετο πρωτεύον κλειδί χρησιμοποιούνται το DAY (μέρα) και το TIME_DAY (ώρα μέρας). Και τα δύο πεδία είναι συμβολοσειρές, το DAY δέχεται έως δέκα χαρακτήρες ενώ το TIME_DAY έως δεκαπέντε χαρακτήρες. Και τα δύο πεδία είναι υποχρεωτικά. Τα τρία χαρακτηριστικά της οντότητας είναι το SUBJECT_CODE (κωδικός μαθήματος), το CLASS_CODE (κωδικός τμήματος) και το COMMENTS (σχόλια). Το CLASS_CODE δέχεται ακέραιο αριθμό, ενώ το SUBJECT_CODE δέχεται συμβολοσειρά είκοσι χαρακτήρων και το COMMENTS δέχεται συμβολοσειρά εκατό χαρακτήρων. Τα SUBJECT_CODE και CLASS_CODE είναι ξένα κλειδιά, όπου το SUBJECT_CODE είναι πρωτεύον κλειδί της οντότητας ΜΑΘΗΜΑ, και το CLASS_CODE είναι πρωτεύον κλειδί της οντότητας ΤΜΗΜΑ. Και τα τρία χαρακτηριστικά είναι μη-υποχρεωτικά. Η εικόνα 4.11 δείχνει το πώς φαίνεται η οντότητα "ΠΡΟΓΡΑΜΜΑ" μέσα στο Eclipse. Εικόνα 4.11 Η Οντότητα ΠΡΟΓΡΑΜΜΑ Η Οντότητα ΜΑΘΗΤΗΣ Η οντότητα "STUDENT" έχει δέκα πεδία από το οποία το ένα είναι Πρωτεύον Κλειδί και τα υπόλοιπα εννιά είναι απλά Χαρακτηριστικά. Ένα από τα χαρακτηριστικά είναι ξένο κλειδί. Πρωτεύον κλειδί είναι το ID (κωδικός μητρώου) το οποίο είναι συμβολοσειρά, δέχεται έως δεκαπέντε χαρακτήρες και είναι φυσικά υποχρεωτικό. -28-

Τα εννιά χαρακτηριστικά της οντότητας είναι το CLASS_CODE (κωδικός τμήματος), το SURNAME (επίθετο), το FIRSTNAME (μικρό όνομα), το DOB (ημερομηνία γέννησης), το FATHERNAME (όνομα πατρός), το MOTHERNAME (όνομα μητρός), το PHONE (τηλέφωνο), το EMAIL (ηλεκτρονική διεύθυνση) και το COMMENTS (σχόλια). Το CLASS_CODE είναι ακέραιος αριθμός και είναι ξένο κλειδί που ανήκει στην οντότητα "ΤΜΗΜΑ". Είναι υποχρεωτικό πεδίο και ελέγχεται από της οντότητες "TESTS" και "ATTENDANCE_GRADE" αλλά αυτό γίνεται από την Java και όχι από την Derby. Τα υπόλοιπα πεδία είναι όλα συμβολοσειρές. Τα SURNAME και FIRSTNAME δέχονται έως 30 χαρακτήρες και είναι υποχρεωτικά, ενώ όλα τα υπόλοιπα πεδία είναι μη-υποχρεωτικά. Το DOB δέχεται έως 8 χαρακτήρες, τα FATHERNAME, MOTHERNAME και PHONE έως 15 χαρακτήρες, το EMAIL έως 50 χαρακτήρες και το COMMENTS έως 1000 χαρακτήρες. Η εικόνα 4.12 δείχνει το πώς φαίνεται η οντότητα "ΜΑΘΗΤΗΣ" μέσα στο Eclipse. Εικόνα 4.12 Η Οντότητα ΜΑΘΗΤΗΣ Η Οντότητα ΔΙΑΓΩΝΙΣΜΑΤΑ Η οντότητα "TESTS" έχει πέντε πεδία από τα οποία τα τρία χρησιμοποιούνται ως Σύνθετο Πρωτεύον Κλειδί και τα υπόλοιπα δύο ως απλά Χαρακτηριστικά. Για το σύνθετο πρωτεύον κλειδί χρησιμοποιούνται το SUBJECT_CODE (κωδικός μαθήματος), το TEST (διαγώνισμα) και το STUDENT_ID (μητρώο μαθητή). Το STUDENT_ID είναι ξένο κλειδί που είναι πρωτεύον κλειδί της οντότητας "ΜΑΘΗΤΗΣ". Το SUBJECT_CODE θα μπορούσε να είναι ξένο κλειδί αλλά ελέγχεται από την Java και όχι από τη Derby για περισσότερη ευελιξία και ευκολία. Και τα τρία -29-

πεδία είναι συμβολοσειρές, το SUBJECT_CODE δέχεται είκοσι χαρακτήρες, το TEST σαράντα χαρακτήρες, και το STUDENT_ID δεκαπέντε χαρακτήρες. Τα χαρακτηριστικά της είναι τα CLASS_CODE (κωδικός τμήματος) και το GRADE (βαθμός), όπου το CLASS_CODE είναι ακέραιος αριθμός και το GRADE είναι πραγματικός αριθμός. Το CLASS_CODE και SUBJECT_CODE θα μπορούσανε να είναι ξένα κλειδιά αλλά ελέγχονται από το Eclipse με την Java και όχι με τη Derby. Όλα τα πεδία της οντότητας είναι υποχρεωτικά. Το CLASS_CODE δεν θεωρείται απαραίτητο στοιχείο σε αυτή την οντότητα γι' αυτό και στην αρχική δημιουργία της βάσης δεδομένων δεν ήταν μέρος της οντότητας ε- πειδή υπάρχει το STUDENT_ID. Για το κάθε STUDENT_ID (που όπως αναφέρθηκε είναι πρωτεύον κλειδί της οντότητας "ΜΑΘΗΤΗΣ"), υπάρχει υποχρεωτικά το CLASS_CODE μέσα στην οντότητα "ΜΑΘΗΤΗΣ". Επειδή όμως υπάρχουν αρκετοί έλεγχοι για το CLASS_CODE του μαθητή σε αυτό το σημείο, και αφού δεν βαραίνει ιδιαιτέρως την βάση δεδομένων, προστέθηκε στην πορεία για ταχύτητα και ευκολία. Η εικόνα 4.13 δείχνει το πώς φαίνεται η οντότητα "ΔΙΑΓΩΝΙΣΜΑΤΑ" μέσα στο Eclipse. Εικόνα 4.13 Η Οντότητα ΔΙΑΓΩΝΙΣΜΑΤΑ Η Οντότητα ΠΑΡΟΥΣΙΑ_ΒΑΘΜΟΛΟΓΙΑ Η οντότητα "ATTENDANCE_GRADE" έχει εφτά πεδία από τα οποία τα τρία χρησιμοποιούνται ως Σύνθετο Πρωτεύον Κλειδί και τα υπόλοιπα τέσσερα ως απλά Χαρακτηριστικά. Για το σύνθετο πρωτεύον κλειδί χρησιμοποιούνται το DATE_ (ημερομηνία), το TIME_ (ώρα) και το STUDENT_ID (μητρώο μαθητή). Το DATE_ δέχεται μόνο ημερομηνία, ενώ το TIME_ είναι συμβολοσειρά και δέχεται έως δεκαπέντε χαρακτήρες. Το STUDENT_ID είναι ξένο κλειδί το οποίο είναι πρωτεύον κλειδί της οντότητας -30-

"ΜΑΘΗΤΗΣ". Είναι συμβολοσειρά που δέχεται έως δεκαπέντε χαρακτήρες. Και τα τρία πεδία είναι φυσικά υποχρεωτικά. Χαρακτηριστικά είναι το CLASS_CODE (κωδικός τμήματος), το SUBJECT_CODE (κωδικός μαθήματος), το APPEARANCE (παρουσία) και το GRADE (βαθμός). Το CLASS_CODE είναι ακέραιος αριθμός, το SUBJECT_CODE είναι συμβολοσειρά που δέχεται έως είκοσι χαρακτήρες και τα δύο πεδία είναι υποχρεωτικά. Το CLASS_CODE και SUBJECT_CODE θα μπορούσανε να είναι ξένα κλειδιά αλλά ελέγχονται από το Eclipse με την Java και όχι με τη Derby. Το APPEARANCE παίρνει μόνο λογικές τιμές (true/false) και το GRADE είναι πραγματικός αριθμός Αυτά τα δύο πεδία είναι μη-υποχρεωτικά. Όπως και στην οντότητα "ΔΙΑΓΩΝΙΣΜΑΤΑ", το CLASS_CODE δεν θεωρείται απαραίτητο στοιχείο σε αυτή την οντότητα γι' αυτό και στην αρχική δημιουργία της βάσης δεδομένων δεν ήταν μέρος της οντότητας επειδή υπάρχει το STUDENT_ID. Για το κάθε STUDENT_ID υπάρχει υποχρεωτικά το CLASS_CODE μέσα στην οντότητα "ΜΑΘΗΤΗΣ". Επειδή όμως υπάρχουν αρκετοί έλεγχοι για το CLASS_CODE του μαθητή σε αυτό το σημείο, και αφού δεν βαραίνει ιδιαιτέρως την βάση δεδομένων, προστέθηκε στην πορεία για ταχύτητα και ευκολία. Η εικόνα 4.14 δείχνει το πώς φαίνεται η οντότητα "ΠΑΡΟΥΣΙΑ_ΒΑΘΜΟΛΟΓΙΑ" μέσα στο Eclipse Εικόνα 4.14 Η Οντότητα ΠΑΡΟΥΣΙΑ_ΒΑΘΜΟΛΟΓΙΑ -31-

4.3 Οι Συσχετίσεις Πριν την ανάλυση των συσχετίσεων των οντοτήτων της βάσης δεδομένων, θα αναλυθεί λίγο το τί σημαίνει συσχέτιση, και τους τύπους των συσχετίσεων που υπάρχουν στο διάγραμμα της εικόνας 4.1 Έννοια της Συσχέτισης Η εικόνα 4.5 συμβολίζει Συσχέτιση η οποία είναι μια απλή γραμμή που δείχνει ότι δύο οντότητες συσχετίζονται μεταξύ τους, δηλαδή την σύνδεση των δύο αυτών οντοτήτων με κάποιον τρόπο. Η κάθε συσχέτιση έχει Ονομασία, αυτή η ονομασία δηλώνει το τί σχέση έχουν αυτές οι δύο οντότητες μεταξύ τους. Η κάθε συσχέτιση έχει και Όρια, δηλαδή αριθμούς ή σύμβολα στα δύο άκρα της γραμμής που δείχνουν την πληθικότητα που συσχετίζεται με κάθε μέλος της σχέσης, δηλαδή στις δύο οντότητες. Η Πληθικότητα αφορά τον ελάχιστο και μέγιστο αριθμό τον εμφανίσεων που μια οντότητα μπορεί να συσχετιστεί με το στιγμιότυπο μίας άλλης οντότητας. Το Στιγμιότυπο μίας οντότητας είναι μία μοναδική εμφάνιση της οντότητας. Οι τέσσερις τύποι ορίων στο ER διάγραμμα φαίνονται στις εικόνες 4.15, 4.16, 4.17 και 4.18. Μία οντότητα που συσχετίζεται με το όριο της εικόνας 4.15 μπορεί να έχει πληθικότητα μόνο ένα. Μία οντότητα που συσχετίζεται με το όριο της εικόνας 4.16 μπορεί να έχει πληθικότητα από ένα έως άπειρο. Μία οντότητα που συσχετίζεται με το όριο της εικόνας 4.17 μπορεί να έχει πληθικότητα από μηδέν έως άπειρο. Μία οντότητα που συσχετίζεται με το όριο της εικόνας 4.18 μπορεί να έχει πληθικότητα μηδέν ή ένα. Εικόνα 4.15 όριο 1 Εικόνα 4.16 όριο 1...* Εικόνα 4.17 όριο 0...* Εικόνα 4.18 όριο 0...1 Οι τρεις τύποι συσχετίσεων που υπάρχουν στο ER διάγραμμα φαίνονται στις εικόνες 4.19, 4.20 και 4.21. Στις δύο πρώτες περιπτώσεις δείχνει συσχέτιση τύπου "ένα προς άπειρο". Η μόνη τους διαφορά είναι η πληθικότητα ως προς την μεριά του άπειρου. Η εικόνα 4.19 δείχνει ότι η οντότητα για την οποία ισχύει το άπειρο (την δεξιά ο- ντότητα), πρέπει να έχει πληθικότητα τουλάχιστον ένα, δηλαδή τουλάχιστον μία αναφορά στο κάθε στιγμιότυπο της οντότητας. Ενώ η εικόνα 4.20 δείχνει ότι η οντότητα -32-

για την οποία ισχύει το άπειρο, μπορεί να έχει πληθικότητα μηδέν, δηλαδή μπορεί να μην υπάρχει ούτε μία αναφορά στην οντότητα. Στην τρίτη περίπτωση η εικόνα 4.21 δείχνει συσχέτιση τύπου "ένα ή μηδέν προς άπειρο". Για την δεξιά οντότητα που ισχύει το άπειρο, η πληθικότητα είναι όπως η άπειρη συσχέτιση στην εικόνα 4.20, για την α- ριστερή οντότητα όμως ισχύει ότι μπορεί να αναφερθεί μία ή καμία φορά στο κάθε στιγμιότυπο της οντότητας. Εικόνα 4.19 Συσχέτιση 1 Εικόνα 4.20 Συσχέτιση 2 Εικόνα 4.21 Συσχέτιση 3 Για παραδείγματα, μπορούν να θεωρηθούν οι τρεις πρώτες συσχετίσεις που αναφέρονται παρακάτω στις Συσχετίσεις της Βάσης Δεδομένων. Συσχετίσεις της Βάσης Δεδομένων Η παρουσίαση των συσχετίσεων ξεκινάει με την μοναδική συσχέτιση που είναι τύπου "ένα προς τουλάχιστον ένα" (όπως στην εικόνα 4.19). Η δεύτερη συσχέτιση είναι "ένα προς μηδέν έως άπειρο" (όπως στην εικόνα 4.20). Η τρίτη και τέταρτη συσχέτιση είναι "ένα ή μηδέν προς μηδέν έως άπειρο" (όπως στην εικόνα 4.21). Όλες οι υπόλοιπες συσχετίσεις είναι όπως στην εικόνα 4.20. Όλες οι συσχετίσεις μαζί φαίνονται στο διάγραμμα της εικόνας 4.1 και μεμονωμένα στην εικόνα που παραπέμπει. Η συσχέτιση "CLASS περιέχει STUDENT" δείχνει πως ένας μαθητής μπορεί να ανήκει μόνο σε ένα τμήμα, και ένα τμήμα μπορεί να περιέχει από έναν έως άπειρους μαθητές. Η συσχέτιση φαίνεται μεμονωμένα και παρακάτω στην εικόνα 4.22. Ένα από τα χαρακτηριστικά της οντότητας "Μαθητή" είναι το CLASS_CODE. Είναι Ξένο Κλειδί και υποχρεωτικό (not null), και αναφέρεται στο Πρωτεύον Κλειδί της οντότητας "Τμήμα". -33-

Εικόνα 4.22 Τμήμα περιέχει Μαθητή Η συσχέτιση "SUBJECT έχει ACCADEMICPROGRAM" δείχνει πως ένα ακαδημαϊκό πρόγραμμα μπορεί να αφορά μόνο ένα μάθημα, αλλά ένα μάθημα μπορεί να έχει από μηδέν έως άπειρες εβδομάδες στο ακαδημαϊκό πρόγραμμα. Η συσχέτιση φαίνεται μεμονωμένα και παρακάτω στην εικόνα 4.23. Είναι απλό και αυτονόητο ότι δεν γίνεται να υπάρχει ακαδημαϊκό πρόγραμμα για κάποιο μάθημα αν δεν υπάρχει το μάθημα. Μέρος του σύνθετου πρωτεύοντος κλειδιού της οντότητας "Ακαδημαϊκό Πρόγραμμα" είναι το SUBJECT_CODE, το οποίο είναι Ξένο Κλειδί και αναφέρεται στο πρωτεύον κλειδί της οντότητας "Μάθημα". Εικόνα 4.23 Μάθημα έχει Ακαδημαϊκό Πρόγραμμα Η συσχέτιση "PROGRAM περιέχει SUBJECT" δείχνει πως ένα μάθημα μπορεί να περιέχεται από μηδέν έως άπειρες φορές στο εβδομαδιαίο πρόγραμμα, αλλά κάθε μέρα και ώρα του εβδομαδιαίου προγράμματος περιέχει ένα ή κανένα μάθημα. Η συσχέτιση φαίνεται μεμονωμένα και παρακάτω στην εικόνα 4.24. Ένα από τα χαρακτηριστικά της οντότητας "Πρόγραμμα" είναι το SUBJECT_CODE, το οποίο είναι ξένο κλειδί και μηυποχρεωτικό (nullable) για να μπορεί να περιέχει κενά και απλά σχόλια στο πρόγραμμα. Το SUBJECT_CODE αναφέρεται στο πρωτεύον κλειδί της οντότητας "Μάθημα". Εικόνα 4.24 Πρόγραμμα περιέχει Μάθημα -34-

Η συσχέτιση "PROGRAM περιέχει CLASS" δείχνει πως ένα τμήμα μπορεί να περιέχεται από μηδέν έως άπειρες φορές στο εβδομαδιαίο πρόγραμμα, αλλά κάθε μέρα και ώρα του εβδομαδιαίου προγράμματος περιέχει ένα ή κανένα τμήμα. Η συσχέτιση φαίνεται μεμονωμένα και παρακάτω στην εικόνα 4.25. Ένα από τα χαρακτηριστικά της οντότητας "Πρόγραμμα" είναι το CLASS_CODE, το οποίο είναι ξένο κλειδί και μηυποχρεωτικό (nullable) για να μπορεί να περιέχει κενά και απλά σχόλια στο πρόγραμμα. Το CLASS _CODE αναφέρεται στο πρωτεύον κλειδί της οντότητας "Τμήμα". Εικόνα 4.25 Πρόγραμμα περιέχει Τμήμα Η οντότητα "SUBJECT_CLASS" δημιουργήθηκε για να συσχετίσει μαθήματα με τμήματα. Επειδή ένα μάθημα μπορεί να διδάσκεται σε άπειρα τμήματα και ένα τμήμα μπορεί να διδάσκεται άπειρα μαθήματα, η συσχέτιση αυτών των δύο οντοτήτων ήταν απαγορευτική. Δηλαδή η συσχέτιση άπειρο προς άπειρο είναι απαγορευτική, και έτσι δημιουργήθηκε μία οντότητα, η οντότητα "Μάθημα - Τμήμα", για να συνδέει αυτά τα δύο. Η συσχέτιση "SUBJECT αφορά SUBJECT_CLASS" δείχνει πως ένα μάθημα μπορεί να αφορά από μηδέν έως άπειρες φορές το Μάθημα_Τμήμα, αλλά κάθε Μάθημα_Τμήμα αφορά μόνο ένα μάθημα. Η συσχέτιση φαίνεται μεμονωμένα και παρακάτω στην εικόνα 4.26. Μέρος του σύνθετου πρωτεύοντος κλειδιού της οντότητας "Μάθημα_Τμήμα" είναι το SUBJECT_CODE, το οποίο είναι ξένο κλειδί και αναφέρεται στο πρωτεύον κλειδί της οντότητας "Μάθημα". Εικόνα 4.26 Μάθημα αφορά Μάθημα - Τμήμα Η συσχέτιση "CLASS αφορά SUBJECT_CLASS" δείχνει πως ένα τμήμα μπορεί να αφορά από μηδέν έως άπειρες φορές το Μάθημα_Τμήμα, αλλά κάθε Μάθημα_Τμήμα αφορά μόνο ένα τμήμα. Η συσχέτιση φαίνεται μεμονωμένα και παρακάτω στην εικόνα 4.27. Μέρος του σύνθετου πρωτεύοντος κλειδιού της οντότητας "Μάθημα_Τμήμα" εί- -35-

ναι το CLASS_CODE, το οποίο είναι ξένο κλειδί και αναφέρεται στο πρωτεύον κλειδί της οντότητας "Τμήμα". Εικόνα 4.27 Τμήμα αφορά Μάθημα - Τμήμα Η συσχέτιση "STUDENT λαμβάνει TEST" δείχνει πως ένας μαθητής μπορεί να λάβει από μηδέν έως άπειρα διαγωνίσματα, αλλά κάθε διαγώνισμα αφορά μόνο έναν μαθητή. Η συσχέτιση φαίνεται μεμονωμένα και παρακάτω στην εικόνα 4.28. Μέρος του σύνθετου πρωτεύοντος κλειδιού της οντότητας Διαγώνισμα είναι το STUDENT_ID, το οποίο είναι Ξένο Κλειδί και αναφέρεται στο Πρωτεύον Κλειδί της οντότητας Μαθητή. Εικόνα 4.28 Μαθητής λαμβάνει Διαγώνισμα Η συσχέτιση "STUDENT λαμβάνει ATTENDANCE_GRADE" δείχνει πως ένας μαθητής μπορεί να λάβει από μηδέν έως άπειρες παρουσίες, αλλά κάθε παρουσία λαμβάνεται μόνο από έναν μαθητή. Η συσχέτιση φαίνεται μεμονωμένα και παρακάτω στην εικόνα 4.29. Μέρος του σύνθετου πρωτεύοντος κλειδιού της οντότητας "Παρουσία_Βαθμολογία" είναι το STUDENT_ID, το οποίο είναι ξένο κλειδί και αναφέρεται στο πρωτεύον κλειδί της οντότητας "Μαθητή". -36- Εικόνα 4.29 Μαθητής λαμβάνει Παρουσία - Βαθμολογία

-37-

5 Χρήση της Εργασίας Σε αυτό το κεφάλαιο θα παρουσιαστεί και θα αναλυθεί η εφαρμογή TeacherApp από μεριά του χρήστη. Η εφαρμογή είναι εύκολη στη χρήση και μπορεί να την χειριστεί ο- ποιοσδήποτε χωρίς να έχει ιδιαίτερη γνώση υπολογιστών. 5.1 Ξεκινώντας την Εφαρμογή Με το άνοιγμα της εφαρμογής TeacherApp, παρουσιάζεται το κεντρικό παράθυρο "Ο Βοηθός Του Καθηγητή" (εικόνα 5.1). Το αρχικό και κεντρικό παράθυρο περιλαμβάνει το βασικό μενού και έναν πίνακα με το εβδομαδιαίο πρόγραμμα. Όπως είναι φυσικό, στην αρχή το εβδομαδιαίο πρόγραμμα είναι κενό. Η ανάπτυξη του εβδομαδιαίου προγράμματος θα αναλυθεί παρακάτω στο κεφάλαιο 5.10. Εικόνα 5.1 Αρχική Οθόνη Εφαρμογής Επιλέγοντας το υπομενού "Βοήθεια" κάτω από το μενού "Πρόγραμμα", ανοίγει νέο παράθυρο "Βοήθεια" που περιλαμβάνει πληροφορίες και βοήθεια για την εφαρμογή (εικόνα 5.2). Η "Βοήθεια" δίνει στον χρήστη τις απαραίτητες πληροφορίες για να χρησιμοποιήσει την εφαρμογή. -39-

Εικόνα 5.2 Βοήθεια Για να ξεκινήσει ο χρήστης να χρησιμοποιεί την εφαρμογή του προτείνεται να αρχίσει είτε δημιουργώντας Τμήματα είτε δημιουργώντας Μαθήματα. Αυτή η παρουσίαση θα ξεκινήσει με την "Δημιουργία Μαθήματος". Σε αυτό το σημείο πρέπει να σημειωθεί ότι εκτός από το κεντρικό παράθυρο και την βοήθεια, όλα τα υπόλοιπα παράθυρα που ανοίγουν δεν επιτρέπουν στον χρήστη να α- νοίξει άλλο παράθυρο μέχρι να κλίσει εκείνο που χρησιμοποιεί. Αυτό οφείλεται στο ότι όλα τα ανοιγόμενα παράθυρα είναι είτε JDialog υπερκλάσεις, είτε μηνύματα JOptionPane. Αυτό γίνεται για να μην μπορούν να ανοίξουν πολλά παράθυρα μαζί με αποτέλεσμα να μπερδευτεί ο χρήστης. 5.2 Δημιουργία Μαθήματος Επιλέγοντας το μενού "Μαθήματα Προσθήκη", εμφανίζεται το παράθυρο "Δημιουργία Μαθήματος" (εικόνα 5.3). Τα δύο κουμπάκια και που φαίνονται στην πάνω δεξιά γωνία είναι για αναίρεση και πληροφορίες. Ο Χρήστης υποχρεωτικά πρέπει να εισάγει "Κωδικό Μαθήματος" και "Τίτλο Μαθήματος". Πατώντας πάνω στα κελιά του πίνακα "Χρονοδιάγραμμα Διδασκαλίας" κάτω από τη στήλη που γράφει "Θέματα / Δραστηριότητες / Εργασίες", εμφανίζεται ένα αναδυόμενο παράθυρο όπου μπορεί να εισάγει το πρόγραμμα του μαθήματος για την κάθε εβδομάδα. Το πρόγραμμα είναι φτιαγμένο για 40 εβδομάδες επειδή για το κάθε έτος υπάρχουν 40 σχολικές εβδομάδες. Ανάλογο παράδειγμα φαίνεται και στην εικόνα 5.4 που δείχνει την δημιουργία ενός -40-

Μαθήματος με κωδικό Μ0002 για το Μάθημα UML. Στο αναδυόμενο παράθυρο δείχνει το τί θα περιέχει το πρόγραμμα για την 1η εβδομάδα. Εικόνα 5.3 Δημιουργία Μαθήματος Εικόνα 5.4 Παράδειγμα Δημιουργίας Μαθήματος για το Μάθημα UML 5.3 Δημιουργία Τμήματος Επιλέγοντας το μενού "Τμήματα Προσθήκη", εμφανίζεται το παράθυρο "Δημιουργία Τμήματος" (εικόνα 5.5). Ο Χρήστης υποχρεωτικά πρέπει να εισάγει "Όνομα Τμήματος" και "Σχολείο", επίσης έχει την δυνατότητα να εισάγει "Αίθουσα" και "Σχόλια" για το τμήμα. Εφόσον έχουν περαστεί μαθήματα, μπορεί να κάνει και αντιστοίχιση του τμήματος με τα επιθυμητά μαθήματα. -41-

Εικόνα 5.5 Δημιουργία Τμήματος Το πεδίο για το όνομα του σχολείου είναι ένα επεξεργάσιμο σύνθετο πλαίσιο που περιλαμβάνει ονόματα από σχολεία που έχει ήδη εισάγει ο χρήστης. Ο χρήστης μπορεί είτε να επιλέξει από εκεί κάποιο υπάρχον σχολείο είτε να εισάγει ένα καινούριο. Ανάλογο παράδειγμα υπάρχει στην εικόνα 5.6 που φαίνεται η δημιουργία του τμήματος Γ1 για το 2ο Ε.Π.Α.Λ. Βόλου, όπου το μάθημα διεξάγεται στην αίθουσα 5 και γίνεται α- ντιστοίχηση με το μάθημα UML. Αντιστοίχηση μπορεί να γίνει με άπειρα μαθήματα για το κάθε τμήμα. Εικόνα 5.6 Παράδειγμα Δημιουργίας Τμήματος 5.4 Δημιουργία Μαθητή Αφού έχουν δημιουργηθεί τα τμήματα, πλέον μπορούνε να προστεθούνε και οι μαθητές. Από το μενού "Μαθητές Προσθήκη" εμφανίζεται το παράθυρο "Δημιουργία Μαθητή" (εικόνα 5.7). -42-

Ο χρήστης πρέπει υποχρεωτικά να εισάγει "Μητρώο Μαθητή", "Επίθετο Μαθητή", "Όνομα Μαθητή" και "Τμήμα", τα υπόλοιπα πεδία είναι προαιρετικά. Το πεδίο για το Τμήμα είναι ένα σύνθετο πλαίσιο που περιλαμβάνει τα τμήματα που έχει ήδη προσθέσει ο χρήστης, και δεν είναι δυνατόν να προσθέσει νέο τμήμα σε αυτό το πλαίσιο. Το πεδίο για την Ημερομηνία Γέννησης πάντα εμφανίζεται με την ημερομηνία 20/2/2000 απλά για να βλέπει ο χρήστης την μορφή της ημερομηνίας, μπορεί όμως να την αλλάξει ή και να την βγάλει εντελώς. Ένα παράδειγμα φαίνεται και στην εικόνα 5.8 για την μαθήτρια Αποστόλου Ιωάννα. Εικόνα 5.7 Δημιουργία Μαθητή Εικόνα 5.8 Παράδειγμα Δημιουργίας Μαθητή για την μαθήτρια Αποστόλου Ιωάννα -43-

5.5 Επεξεργασία Μαθήματος Εάν κατά την Δημιουργία Μαθήματος ο χρήστης δεν εισάγει πρόγραμμα διδασκαλίας, ή θελήσει να αλλάξει τα στοιχεία που έχει εισάγει, ή να διαγράψει το μάθημα μπορεί να το κάνει επιλέγοντας "Μαθήματα Επεξεργασία". Θα εμφανιστεί το παράθυρο "Επεξεργασία Μαθήματος" (εικόνα 5.9). Εικόνα 5.9 Επιλογή Μαθήματος για Επεξεργασία Αφού επιλέξει ο χρήστης ένα από τα Διαθέσιμα Μαθήματα από το σύνθετο πλαίσιο και πατήσει ΟΚ, εμφανίζονται όλα τα στοιχεία του μαθήματος όπως στην εικόνα 5.10. Εικόνα 5.10 Επεξεργασία / Διαγραφή Μαθήματος Ο χρήστης έπειτα μπορεί να διαγράψει το μάθημα πατώντας το κουμπί που φαίνεται κάτω δεξιά στην εικόνα 5.10, ή να αλλάξει τα στοιχεία του τμήματος, ή να προσθέσει / αλλάξει το πρόγραμμα διδασκαλίας πατώντας πά- -44-

νω στην επιθυμητή εβδομάδα στη στήλη "Θέματα / Δραστηριότητες / Εργασίες". Ανάλογο παράδειγμα φαίνεται στην εικόνα 5.11. Εικόνα 5.11 Επεξεργασία Προγράμματος Διδασκαλίας Αν επιλέξει "Διαγραφή Μαθήματος", θα εμφανιστεί ένα μήνυμα όπως στην εικόνα 5.12 για επιβεβαίωση της διαγραφής. Εικόνα 5.12 Μήνυμα Διαγραφής Μαθήματος 5.6 Επεξεργασία Τμήματος Εάν ο χρήστης θέλει να επεξεργαστεί τα στοιχεία του τμήματος μπορεί να επιλέξει "Τμήματα Επεξεργασία". Εμφανίζεται το παράθυρο "Επεξεργασία Τμήματος" (εικόνα 5.13) όπου ο χρήστης θα πρέπει να επιλέξει ένα από τα διαθέσιμα σχολεία και ένα από τα τμήματα που αντιστοιχούν στο επιλεγμένο σχολείο, και να πατήσει ΟΚ. -45-

Εικόνα 5.13 Επεξεργασία Τμήματος Έπειτα θα εμφανιστούνε τα στοιχεία του τμήματος όπου μπορεί να κάνει τις αλλαγές που επιθυμεί όπως φαίνεται στην εικόνα 5.14. Ο χρήστης μπορεί να αλλάξει τα στοιχεία του τμήματος, να προσθαφαιρέσει αντιστοιχίες σε μαθήματα ή να διαγράψει το τμήμα. Εάν αλλάξει Όνομα Σχολείου ή Όνομα Τμήματος όπως συστήνεται να κάνει για την αλλαγή σχολικού έτους, θα εμφανιστεί μήνυμα όπως στην εικόνα 5.15, δίνοντας του την επιλογή να διαγράψει όλα τα στοιχεία των μαθητών που ανήκουν σε αυτό το τμήμα (δηλαδή παρουσίες και διαγωνίσματα) ή να κάνει απλή αλλαγή ονόματος κρατώντας όλα τα στοιχεία. Αν επιλέξει θα διαγραφούν όλες οι παρουσίες και τα αποτελέσματα διαγωνισμάτων για όλα τα μαθήματα του επιλεγμένου τμήματος. Εικόνα 5.14 Επεξεργασία Τμήματος για αλλαγή σχολικού έτους -46-

Εικόνα 5.15 Μήνυμα που εμφανίζετε στην αλλαγή βασικών στοιχείων στην Επεξεργασία Τμήματος Εάν ο χρήστης επιθυμεί να διαγράψει τελείως κάποιο τμήμα, αν για παράδειγμα οι μαθητές είναι Γ τάξη και αποφοιτούν ή αν απλά δεν θα τους ξαναδιδάξει το επόμενο έτος, μπορεί να το κάνει πατώντας το κουμπί που φαίνεται στην εικόνα 5.14. Θα του εμφανιστεί ένα μήνυμα όπως στην εικόνα 5.16 για επιβεβαίωση της διαγραφής. Εικόνα 5.16 Μήνυμα Διαγραφής Τμήματος 5.7 Επεξεργασία Μαθητή Εάν ο χρήστης θέλει να επεξεργαστεί τα στοιχεία κάποιου μαθητή μπορεί να επιλέξει "Μαθητές Επεξεργασία". Εμφανίζεται το παράθυρο "Επεξεργασία Μαθητή" (εικόνα 5.17). Εικόνα 5.17. Επεξεργασία Μαθητή -47-

Εικόνα 5.17.α Επιλογή Τμήματος Εικόνα 5.17.β Επιλογή Μαθητή Εάν γνωρίζει τον αριθμό μητρώου του μαθητή που θέλει μπορεί να τον βρει απλά πληκτρολογώντας τον στο πλαίσιο "Αριθμός Μητρώου" και πατώντας ΟΚ. Εάν δεν γνωρίζει τον αριθμό μητρώου μπορεί να επιλέξει ένα από τα διαθέσιμα τμήματα από το σύνθετο πλαίσιο "Τμήμα / Σχολείο" (εικόνα 5.17 και 5.17.α) και έπειτα να βρει τον μαθητή που επιθυμεί στο σύνθετο πλαίσιο "Επίθετο / Όνομα / Μητρώο" (εικόνα 5.17 και 5.17.β) και να πατήσει ΟΚ. Θα εμφανιστούν τα στοιχεία του μαθητή όπως στην εικόνα 5.18, όπου θα μπορέσει να τα επεξεργαστεί. Για το Τμήμα υπάρχει ένα σύνθετο πλαίσιο που περιέχει όλα τα τμήματα στο ίδιο σχολείο, έτσι ώστε ο χρήστης να μπορεί να επιλέξει ένα από αυτά αν ο μαθητής αλλάξει τμήμα, για παράδειγμα αν πάει από το Α1 στο Α2. Επίσης ο χρήστης μπορεί να διαγράψει τελείως έναν μαθητή, αν για παράδειγμα αλλάξει σχολείο, απλά πατώντας το κουμπί που φαίνεται στην εικόνα 5.18. Θα του εμφανιστεί μήνυμα για επιβεβαίωση της διαγραφής. -48- Εικόνα 5.18 Επεξεργασία Τμήματος

Μία ακόμα δυνατότητα εφόσον έχει γίνει αντιστοίχηση για το τμήμα του μαθητή με μαθήματα, είναι να επιλέξει κάποιο μάθημα από το σύνθετο πλαίσιο "Επιλέξτε Μάθημα" και να επεξεργαστεί τις παρουσίες και βαθμολογίες του μαθητή για το επιλεγμένο μάθημα (παρουσίες και βαθμολογίες θα αναλυθούνε παρακάτω στα κεφάλαια 5.8 και 5.9). Τα μαθήματα που εμφανίζονται σε αυτό το πλαίσιο είναι αυτά που αντιστοιχούν στο τμήμα του μαθητή. Εάν δεν έχει γίνει αντιστοίχηση μαθημάτων στο τμήμα του τότε δεν θα εμφανίζονται μαθήματα σε αυτό το πλαίσιο. Εάν επιλέξει κάποιο μάθημα, τότε θα εμφανιστούν τα στοιχεία όπως στην εικόνα 5.19. Στον πίνακα "Παρουσίες και Βαθμοί ημέρας" της εικόνας 5.19, φαίνεται η ημερομηνία και ώρα για τις οποίες περάστηκαν οι παρουσίες του επιλεγμένου μαθήματος, όπως επίσης και αν ο μαθητής ήταν παρόν και πήρε βαθμό για το μάθημα της ημέρας. Ο χρήστης μπορεί να αλλάξει την παρουσία και το βαθμό εάν επιθυμεί. Στον πίνακα "Αποτελέσματα Διαγωνισμάτων" φαίνεται ο τίτλος των διαγωνισμάτων ή εργασιών καθώς και ο βαθμός που πήρε, τον οποίο ο χρήστης μπορεί να αλλάξει εάν επιθυμεί. Εικόνα 5.19 Επεξεργασία Μαθητή- Παρουσίες - Βαθμολογίες 5.8 Παρουσιολόγιο Εάν ο χρήστης θέλει να περάσει παρουσίες μπορεί να επιλέξει "Τμήματα Παρουσιολόγιο". Εμφανίζεται το παράθυρο "Παρουσιολόγιο" (εικόνα 5.20) όπου αφού επιλέξει -49-

ένα "Τμήμα", πρέπει να επιλέξει και ένα από τα "Μαθήματα" που του αντιστοιχούνε. Η ημερομηνία που εμφανίζεται είναι η ημερομηνία της ημέρας όπου ο χρήστης μπορεί να την αλλάξει αλλά σε παλαιότερη ημερομηνία, όχι σε μελλοντική. Οι ώρες που έχει να επιλέξει από το σύνθετο πλαίσιο εισέρχονται από το εβδομαδιαίο πρόγραμμα ανάλογα με τις ώρες που έχει βάλει ο χρήστης (το εβδομαδιαίο πρόγραμμα θα αναλυθεί παρακάτω στο κεφάλαιο 5.10). Εικόνα 5.20 Παρουσιολόγιο Με το που θα επιλέξει ο χρήστης τμήμα εμφανίζεται ένας πίνακας με τους μαθητές του τμήματος όπως φαίνεται στην εικόνα 5.21. Οι πρώτες τρεις στήλες εμφανίζουν τον "Αριθμό Μητρώου", το "Επίθετο" και το "Όνομα" των μαθητών του επιλεγμένου και δεν δέχονται επεξεργασία. Η τέταρτη στήλη "Παρουσία", είναι για να συμπληρώσει την παρουσία του μαθητή, η πέμπτη στήλη "Βαθμός" είναι για να συμπληρώσει βαθμό για την ημέρα εάν επιθυμεί, και στην έκτη στήλη "Σχόλια" μπορεί να προσθέσει κάποιο σχόλιο για τον μαθητή. Το σχόλιο που θα προσθέσει σε αυτό το σημείο θα προστεθεί στα σχόλια το μαθητή. Αφού ο χρήστης εισάγει τα δεδομένα, μπορεί να τα αποθηκεύσει πατώντας ΟΚ. Εικόνα 5.21 Παρουσιολόγιο για το Τμήμα Α1 του 1ου Ε.Π.Α.Λ. Βόλου Στην εικόνα 5.18 στο πλαίσιο "Σχόλια" είναι γραμμένο το εξής κείμενο "*Μάθημα: Προγραμματισμός 1 Θεωρία / Εργαστήριο Κωδ: Μ0001 Ημερομηνία: 2014-09-23 Ω- -50-

ριαία αποβολή". Αυτό σημαίνει ότι συμπληρώθηκε από το παρουσιολόγιο για τις παρουσίες στις "23-9-2014" και για το μάθημα "Προγραμματισμός 1 Θεωρία / Εργαστήριο" με κωδικό μαθήματος "Μ0001", και περιέχει το σχόλιο " Ωριαία αποβολή". Αυτό το σχόλιο προστέθηκε από την στήλη "Σχόλια" που φαίνεται στην εικόνα 5.21. Παλιές Παρουσίες Για να επεξεργαστεί ο χρήστης παλιές παρουσίες, μπορεί να το κάνει εύκολα πατώντας το κουμπί που φαίνεται στην εικόνα 5.21. Θα εμφανιστεί ένα παράθυρο όπως αυτό στην εικόνα 5.22. Εικόνα 5.22 Επεξεργασία Παλιών Παρουσιών Για όλες τις παρουσίες που έχουν καταχωρηθεί στο "Παρουσιολόγιο" μέχρι την παρούσα στιγμή εμφανίζονται η ημερομηνία, η ώρα, το τμήμα και ο κωδικός μαθήματος, ταξινομημένα κατά ημερομηνία. Ο χρήστης μπορεί να αλλάξει την ταξινόμηση κατά τμήμα, μάθημα ή ημερομηνία πατώντας κάποιο από τα κουμπιά. Αφού πατηθεί μια εγγραφή στον πίνακα, το παράθυρο αλλάζει μορφή όπως στην εικόνα 5.23, και δίνει στον χρήστη την δυνατότητα να αλλάξει ημερομηνία, ώρα ή/και μάθημα. Επίσης του δίνει την δυνατότητα να διαγράψει την εγγραφή πατώντας το κουμπί που επίσης φαίνεται στην εικόνα 5.23. -51-

Εικόνα 5.23 Αλλαγή στοιχείων / διαγραφή παρουσιών 5.9 Διαγωνίσματα Εάν ο χρήστης θέλει να περάσει βαθμούς διαγωνισμάτων πολύ απλά επιλέγει "Τμήματα Διαγωνίσματα" και εμφανίζεται το παράθυρο "Διαγωνίσματα" (εικόνα 5.24). Εικόνα 5.24 Νέο Διαγώνισμα Επειδή ο καθηγητής είναι πιθανόν να δώσει το ίδιο διαγώνισμα σε παραπάνω από ένα τμήμα, για τον "Τίτλο Διαγωνίσματος" υπάρχει ένα επεξεργαζόμενο σύνθετο πλαίσιο που περιέχει όλους τους παλιούς τίτλους διαγωνισμάτων για να επιλέξει ένα διαγώνισμα που ήδη υπάρχει ή να προσθέσει ένα νέο τίτλο. Έπειτα πρέπει να επιλέξει ένα μάθημα από το δεύτερο σύνθετο πλαίσιο, και αφού επιλέξει μάθημα εμφανίζονται όλα τα τμήματα που αντιστοιχούν σε αυτό στο τρίτο σύνθετο πλαίσιο. Αφού ο χρήστης επιλέξει τμήμα και πατήσει το κουμπί ΟΚ, εμφανίζεται ένας πίνακας με τους μαθητές του τμήματος όπως φαίνεται στην εικόνα 5.25. -52-

Εικόνα 5.25 Εισαγωγή Βαθμών Διαγωνισμάτων για το Τμήμα Α1 1ο Ε.Π.Α.Λ. Βόλου Όταν εμφανίζεται ο πίνακας περιέχει μόνο τον "Αριθμό Μητρώου", το "Επίθετο" και το "Όνομα" των μαθητών ενώ η στήλη "Βαθμός" είναι κενή και την συμπληρώνει ο χρήστης. Εάν όμως έχει ήδη περάσει βαθμολογίες σε αυτό το τμήμα για αυτό το διαγώνισμα, εμφανίζονται οι βαθμοί που έχουν περαστεί με την μορφή που φαίνονται στην εικόνα 5.25. Αφού περαστούν οι βαθμοί, με το κουμπί ΟΚ πραγματοποιείται η αποθήκευση. Οι στήλες "Μητρώο", "Επίθετο" και "Όνομα" δεν επεξεργάζονται. Παλιά Διαγωνίσματα Για να αλλάξει ο χρήστης τίτλο από κάποιο παλιό διαγώνισμα ή να διαγράψει κάποιο παλιό διαγώνισμα, μπορεί να το κάνει απλά πατώντας το κουμπί που φαίνεται στις εικόνες 5.24 και 5.25. Θα εμφανιστεί ένα παράθυρο όπως στην εικόνα 5.26. Εικόνα 5.26 Επεξεργασία Παλιών Διαγωνισμάτων -53-

Αφού ο χρήστης επιλέξει το επιθυμητό διαγώνισμα, το παράθυρο αλλάζει μορφή και γίνεται όπως στην εικόνα 5.27. Ο χρήστης μπορεί να εισάγει τον "Νέο Τίτλο" στο ανάλογο πεδίο και να πατήσει ΟΚ για να αποθηκευτούν οι αλλαγές, ή να πατήσει και να επιλέξει για ποια τμήματα θέλει να διαγράψει το διαγώνισμα. Αν επιλέξει ΔΙΑΓΡΑΦΗ, το παράθυρο θα αλλάξει πάλι μορφή (εικόνα 5.28). Δηλαδή, θα εμφανιστεί ένα μήνυμα που θα λέει ότι πρόκειται να διαγράψει ένα διαγώνισμα με τον τίτλο του διαγωνίσματος και σε πιο μάθημα αντιστοιχεί αυτό το διαγώνισμα. Επίσης σε ένα σύνθετο πλαίσιο θα του δίνονται τα τμήματα που έχουν περασμένες βαθμολογίες για αυτό το διαγώνισμα, οπότε μπορεί να διαλέξει για ποια τμήματα θέλει να διαγράψει τα αποτελέσματα. Αφού επιλέξει τμήμα, για να γίνει διαγραφή πρέπει να πατήσει το κουμπί. Εικόνα 5.27 Διόρθωση Τίτλου Διαγωνίσματος Εικόνα 5.28 Διαγραφή Διαγωνίσματος -54-

5.10 Δημιουργία - Αλλαγή Προγράμματος Όπως απεικονίζεται και στην εικόνα 5.1, όταν ανοίγει η εφαρμογή φαίνεται το Εβδομαδιαίο Πρόγραμμα, μόνο που μέχρι να το επεξεργαστεί ο χρήστης είναι κενό. Για να επεξεργαστεί ο χρήστης το εβδομαδιαίο του πρόγραμμα επιλέγει "Πρόγραμμα Δημιουργία / Αλλαγή", και εμφανίζεται το παράθυρο "Επεξεργασία Προγράμματος" (εικόνα 5.29). Εικόνα 5.29 Δημιουργία / Αλλαγή Προγράμματος Στο πάνω μέρος του παραθύρου φαίνονται οι ώρες του εβδομαδιαίου προγράμματος. Εκεί ο χρήστης μπορεί να αλλάξει τις ώρες του εβδομαδιαίου προγράμματος και να τις αποθηκεύσει πατώντας το κουμπί. Κάτω από την αλλαγή ωρών είναι που μπορεί να φτιάξει το εβδομαδιαίο του πρόγραμμα. Υπάρχουν τέσσερα σύνθετα πλαίσια για να επιλέξει "Μέρα", "Ώρα", "Μάθημα" και "Τμήμα". Οι μέρες είναι από Δευτέρα έως Κυριακή, οι ώρες είναι αυτές που φαίνονται στο εβδομαδιαίο πρόγραμμα, τα μαθήματα και τα τμήματα είναι αυτά που έχει προσθέσει ο ίδιος. Η αρχική σκέψη ήταν τα τμήματα να αντιστοιχούν στα μαθήματα, αλλά αυτό περιορίζει τον χρήστη, ειδικά άμα κάνει ιδιαίτερα. Υπάρχει και ένα πλαίσιο κειμένου για τυχόν "Σχόλια" που και αυτά θα συμπληρώνονται στο πρόγραμμα. Κάνοντας τις επιλογές και γράφοντας τα σχόλια, θα συμπληρώνεται και το διπλανό πλαίσιο που φαίνεται στις εικόνες 5.29 και 5.30. Αυτό είναι περισσότερο για να βλέπει -55-

ο χρήστης πώς θα είναι και με τα σχόλιά του, αφού τα σχόλια για το πρόγραμμα δέχονται έως 100 χαρακτήρες. Μετά την ολοκλήρωση της επεξεργασίας του εβδομαδιαίου προγράμματος η αρχική οθόνη θα φαίνεται περίπου όπως η εικόνα 5.31, δηλαδή ένα συμπληρωμένο εβδομαδιαίο πρόγραμμα με μαθήματα, τμήματα και σχόλια. Εικόνα 5.30 Επεξεργασία του Εβδομαδιαίου Προγράμματος Εικόνα 5.31 Συμπληρωμένο Εβδομαδιαίο Πρόγραμμα -56-

5.11 Προβολή Στοιχείων Μετά την δημιουργία και επεξεργασία Τμημάτων, Μαθητών, Μαθημάτων και του Προγράμματος, αφού έχουν περαστεί κάποιες παρουσίες και βαθμολογίες, ο χρήστης μπορεί να θελήσει να δει το πρόγραμμα διδασκαλίας για τα μαθήματα της ημέρας, τα στατιστικά στοιχεία των μαθητών και των τμημάτων, και διάφορα άλλα. Για την προβολή στοιχείων δεν ανοίγει πλέον κάποιο νέο παράθυρο, αλλά αλλάζει η μορφή του κεντρικού παραθύρου. 5.11.1 Προβολή Μαθημάτων Για να δει ο χρήστης το πρόγραμμα διδασκαλίας για το μάθημα που επιθυμεί, απλά επιλέγει από το κεντρικό μενού Μαθήματα Προβολή. Το κεντρικό παράθυρο της εφαρμογής θα αλλάξει μορφή (εικόνα 5.32), μόνο που το πλαίσιο κειμένου θα είναι άδειο. Ο χρήστης θα πρέπει να επιλέξει το επιθυμητό μάθημα από το σύνθετο πλαίσιο που περιέχει όλα τα μαθήματα, και έπειτα να επιλέξει για ποια ακαδημαϊκή εβδομάδα θέλει να δει το πρόγραμμα. Μόλις επιλέξει εβδομάδα θα εμφανιστεί το πρόγραμμα διδασκαλίας της εβδομάδας στο πλαίσιο κειμένου. Στην εικόνα 5.32 φαίνεται το πρόγραμμα διδασκαλίας της πρώτης εβδομάδας για το μάθημα Προγραμματισμός 1 Θεωρία / Εργαστήριο με κωδικό Μ0001.. Εικόνα 5.32 Προβολή Προγράμματος διδασκαλίας για το Μάθημα Προγραμματισμός 1-57-

5.11.2 Προβολή Μαθητή Για να δει ο χρήστης τα στοιχεία του μαθητή που επιθυμεί, απλά επιλέγει από το κεντρικό μενού Μαθητές Προβολή. Το κεντρικό παράθυρο της εφαρμογής θα αλλάξει μορφή (εικόνα 5.33). Ο χρήστης μπορεί να εισάγει για ποιόν μαθητή επιθυμεί να δει αναλυτικά στοιχεία. Εάν γνωρίζει τον αριθμό μητρώου του μαθητή, μπορεί να τον βρει απλά πληκτρολογώντας τον αριθμό στο πλαίσιο "Αριθμός Μητρώου" και πατώντας ΟΚ. Εάν δεν γνωρίζει τον αριθμό μητρώου μπορεί να επιλέξει ένα από τα διαθέσιμα τμήματα από το σύνθετο πλαίσιο "Τμήμα / Σχολείο" και έπειτα να βρει τον μαθητή που επιθυμεί στο σύνθετο πλαίσιο "Επίθετο / Όνομα / Μητρώο" και να πατήσει ΟΚ. Εικόνα 5.33 Προβολή Μαθητή Στην εικόνα 5.34 απεικονίζεται ένα παράδειγμα. Τα στοιχεία στην προβολή όμως δεν είναι δυνατόν να επεξεργαστούν. Εκτός από τα στοιχεία που αναλύθηκαν στο κεφάλαιο 5.4 Δημιουργία Μαθητή και 5.7 Επεξεργασία Μαθητή εδώ φαίνονται και πόσες απουσίες έχει ο μαθητής, τί μέσο όρο έχει από συμμετοχή στη τάξη, και τί μέσο όρο έχει από διαγωνίσματα για κάθε επιλεγμένο μάθημα. Για να εμφανιστούν τα στατιστικά στοιχεία, οι παρουσίες και οι βαθμολογίες, αφού γίνει επιλογή του μαθητή χρειάζεται να γίνει και επιλογή μαθήματος από το σύνθετο πλαίσιο με τα μαθήματα έτσι ώστε να φανούνε τα στατιστικά στοιχεία και λοιπά για το επιλεγμένο μάθημα. -58-

Εικόνα 5.34 Προβολή στοιχείων για τον μαθητή Αραμπατζή Νικόλαο 5.11.3 Προβολή Τμήματος Για να δει ο χρήστης τις πληροφορίες για τα τμήματα που επιθυμεί, απλά επιλέγει από το κεντρικό μενού Τμήματα Προβολή. Το κεντρικό παράθυρο της εφαρμογής θα αλλάξει μορφή (εικόνα 5.35), μόνο που ο Εικόνα 5.35 Προβολή Τμήματος -59-

πίνακας των μαθητών θα είναι κενός και δεν θα φαίνονται τα διαθέσιμα μαθήματα. Μόλις ο χρήστης επιλέξει κάποιο τμήμα από το σύνθετο πλαίσιο με όλα τα τμήματα θα συμπληρωθεί το σύνθετο πλαίσιο με τα μαθήματα που αντιστοιχούν στο επιλεγμένο τμήμα, η αίθουσα του τμήματος και τα σχόλια του τμήματος. Επίσης θα συμπληρωθεί ο πίνακας με τα βασικά στοιχεία από όλους τους μαθητές του επιλεγμένου τμήματος, δηλαδή τον "Αριθμό Μητρώου," το "Επίθετο", το "Όνομα", την "Ημερομηνία Γέννησης" και το "Όνομα Πατρός". Μόλις ο χρήστης επιλέξει μάθημα από το σύνθετο πλαίσιο, συμπληρώνεται αυτόματα και ο υπόλοιπος πίνακας και το πεδίο "Στατιστικά Τμήματος" με τα στατιστικά στοιχεία του τμήματος. Δηλαδή στον πίνακα συμπληρώνεται για τον κάθε μαθητή του τμήματος ο "Μέσος Όρος από Διαγωνίσματα", ο "Μέσος Όρος από Συμμετοχή" στην τάξη, και οι "Απουσίες" που έχει κάνει μαζί με το ποσοστό επιτυχίας παρουσιών. Αν για παράδειγμα ο μαθητής έχει κάνει 2 απουσίες και έχουν γίνει 20 μαθήματα, ποσοστό επιτυχίας θα έχει 90%. Στο πεδίο "Στατιστικά Τμήματος" συμπληρώνονται "Πόσα μαθήματα έχουν γίνει" σε αυτό το τμήμα για αυτό το μάθημα (το οποίο βγαίνει από το παρουσιολόγιο), ο "γενικός Μέσος Όρος όλου του τμήματος" από την συμμετοχή στην τάξη, και ο "γενικός Μέσος Όρος των διαγωνισμάτων" του τμήματος. Ανάλογο παράδειγμα φαίνεται και στην εικόνα 5.36. Εικόνα 5.36 Στατιστικά Στοιχεία Τμήματος -60-