Ιεραρχία Οργανισµών Οι οργανισµοί που ζουν στο οικοσύστηµά µας κατατάσσονται σύµφωνα µε την παρακάτω ιεραρχία: Organisms

Σχετικά έγγραφα
Οντοκεντρικός Προγραμματισμός II C++ Project Xειμερινό Εξάμηνο Organisms

ΗΥ252 - Οντοκεντρικός Προγραµµατισµός Προγραµµατιστική Εργασία Εαρινού Εξαµήνου 2004 Περιγραφή Παραδοτέων

ΗΥ 252 Αντικειμενοστρεφής Προγραμματισμός Προγραμματιστική Εργασία Χειμερινού Εξαμήνου Σκάκι

2.2 Ειδικά Φύλλα Mahjong Phoenix - Φοίνικας Hund - Σκυλάκια Drache - Δράκος... 5

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Ερωτήσεις βιολογίας γενικής παιδείας Γ λυκείου.

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

Τροφικές αλυσίδες. Σκοπός της εργασίας Περιγραφή του συστήµατος Υλοποίηση της πλατφόρµας Οδηγίες είτε ακόµη...

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

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

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

Η οµαδοποίηση των ζώων

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

Προγραµµατιστική Εργασία 2 ο Μέρος

Scratch 2.0 Προκλήσεις

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΟΙΚΟΛΟΓΙΑΣ. Μ ά θ η μ α 8. «Εκπαιδευτικές δραστηριότητες για ΚΠ»

Χειµερινό Εξάµηνο 2013

Διαχείριση Δικτύων (ΕΠ 17) Εαρινό Εξάµηνο Εργασία Εξαµήνου, Ηµεροµηνία Παράδοσης: Ηµέρα Εξέτασης Μαθήµατος (25/6/2015)

Εισαγωγή στην Τεχνολογία Λογισµικού

Πανεπιστήµιο Αιγαίου Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων. 3η Άσκηση Logical Effort - Ένα ολοκληρωµένο παράδειγµα σχεδίασης

Α. Ερωτήσεις Ανάπτυξης

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Δευτέρα 22 / 11 / 2017 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Εισαγωγή στην Τεχνολογία Λογισµικού

Πρόταση για Ανασχηματισμό του Προγράμματος Προπτυχιακών Σπουδών της ΣΗΜΜΥ

2.3. Ασκήσεις σχ. βιβλίου σελίδας Α ΟΜΑ ΑΣ

Εισαγωγή. Interface της εφαρμογής. Κ24: Προγραμματισμός Συστήματος - 1η Εργασία, Εαρινό Εξάμηνο 2019 Προθεσμία Υποβολής: Παρασκευή 15 Μαρτίου, 23:59

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2013

Α) Να χαρακτηρίσετε µε Σ (σωστή) ή µε Λ (λάθος) κάθε µία από τις επόµενες προτάσεις

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

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

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

Ειδικότητα: Ύφασµα Ένδυση

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

Γενικές Αρχές Οικολογίας

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

2η Προγραµµατιστική Εργασία

Ο Προγραμματισμός στην Πράξη

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

ΟΤΑ Επιχειρησιακή Νοηµοσύνη

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης

Προγραµµατισµός Ι (ΗΥ120)

Εισαγωγή στην Τεχνολογία Λογισµικού

Εγχειρίδιο Χρήστη - Μαθητή

Μάθηµα 12. Κεφάλαιο: Στατιστική

ΚΕ.ΠΛΗ.ΝΕ.Τ. ΖΑΚΥΝΘΟΥ 2013 ΜΕΡΙΚΕΣ ΠΡΑΚΤΙΚΕΣ ΛΥΣΕΙΣ ΓΙΑ ΟΛΟΥΣ WINDOWS 8

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

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

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

Το µάθηµα Ψηφιακές Βιβλιοθήκες

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι

δ-βάση Αναβάθµιση Σεπτεµβρίου 2015 Επαγγελµατικά Λύκεια ΕΠΑ.Λ. Σχεδίαση Λογισµικού, Ανάπτυξη Προγραµµάτων και Τεχνική Υποστήριξη

(Logic Gate Simulator)

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

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

Δομές Δεδομένων (Data Structures)

Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro

Ειδικότητα: Ύφασµα Ένδυση

Τα διαγράµµατα συστατικών

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

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

ΑΕΠΠ Ερωτήσεις θεωρίας

2η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 3 (Θεωρία-Αλγόριθµοι-Εφαρµογές)

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης Αρχείων

Μαργαρίτα πεταλούδα βάτραχος φίδι

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Θεµελίωση Γενετικών Αλγορίθµων

1 η ΑΣΚΗΣΗ. 1. Θεωρία (Κεφ. 1, 2) ξ = 2 της εξίσωσης fx ( ) = 0 για x

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

Αντικειμενοστρεφής Προγραμματισμός

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο

Ειδικότητα: Ύφασµα Ένδυση

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

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

Τα συγκεντρωτικά ερωτήματα αφορούν στην ομαδοποίηση των δεδομένων και στη. χρήση συναρτήσεων ομαδοποίησης κατά την εκτέλεση ενός ερωτήματος προβολής

ΕΚΠΑΙ ΕΥΤΙΚΕΣ ΡΑΣΤΗΡΙΟΤΗΤΕΣ ΜΕ ΤΟ ΑΒΑΚΙΟ/E-SLATE

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

Γ ΚΤΚΛΟ ΠΡΟΟΜΟΙΩΣΙΚΩΝ ΔΙΑΓΩΝΙΜΑΣΩΝ ΤΓΥΡΟΝΟ. Γμδεικηικές Απαμηήζεις Γ Λσκείοσ Ιαμοσάριος Βιολογία ΘΓΜΑ Α ΘΓΜΑ Β

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΘΕΣΕΙΣ ΕΡΓΑΣΙΑΣ

Εισαγωγή ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Το µάθηµα Ηλεκτρονική ηµοσίευση

Transcript:

ΗΥ252 - Οντοκεντρικός Προγραµµατισµός Project Εαρινού εξαµήνου 2002 Περιγραφή Παραδοταίων Περιγραφή Project Το project αφορά την προσοµοίωση ενός οικοσυστήµατος. Το οικοσύστηµα µας αποτελείται από διάφορα είδη οργανισµών τα οποία ζουν ή κινούνται µέσα σε έναν προκαθορισµένο χώρο, ο οποίος και θα αποτελεί τον χάρτη του οικοσυστήµατός µας. Κάθε οργανισµός καταναλώνει κάποιου είδους τροφή, η οποία το διατηρεί στην ζωή και η οποία µπορεί να διαφέρει ανάλογα µε τον οργανισµό. Ιεραρχία Οργανισµών Οι οργανισµοί που ζουν στο οικοσύστηµά µας κατατάσσονται σύµφωνα µε την παρακάτω ιεραρχία: Organisms Animals Plants Herbivores Carnivores Τα βέλη του σχήµατος υποδηλώνουν σχέσεις isa µεταξύ των κλάσεων, οι οποίες αναπαραστώνται από τα ορθογώνια. Πιο συγκεκριµένα για τις κλάσεις έχουµε: Organisms : Ένας οργανισµός έχει τρία κύρια χαρακτηριστικά, την ηλικία του (age), το µέγεθός του (size) και το βαθµό ανάπτυξής του (growth rate). Η ηλικία του οργανισµού µετριέται σε εβδοµάδες και αρχικά είναι 0. Το µέγεθος του οργανισµού αρχικά είναι ένας αριθµός µεγαλύτερος του 0 και δίνεται κατά την δηµιουργία του οργανισµού. Ο βαθµός ανάπτυξης είναι επίσης ένας αριθµός µεγαλύτερος του 0 και δείχνει το ποσό µε το οποίο ο οργανισµός µεγαλώνει ανά εβδοµάδα. Αν κάποια στιγµή το µέγεθος του οργανισµού γίνει ίσος ή µικρότερος του 0 τότε ο οργανισµός πεθαίνει. Animals : Η κλάση αυτή περιέχει όλα τα ζώα του οικοσυστήµατος. Ένα ζώο έχει ανάγκη να τραφεί ένα συγκεκριµένο ποσό κάθε εβδοµάδα για να µπορέσει να

µεγαλώσει σε µέγεθος (foodperweek). Κάθε εβδοµάδα λοιπόν καταναλώνει κάποια ποσότητα τροφής καθώς περιπλανιέται στο οικοσύστηµα (eatenthisweek). Αν αυτή η ποσότητα που καταναλώνει είναι µεγαλύτερη από την ποσότητα που χρειάζεται για να επιβιώσει τότε το µέγεθος του ζώου µεγαλώνει κατά τον αντίστοιχο βαθµό ανάπτυξής του. Σε αντίθετη περίπτωση, που σηµαίνει ότι το ζώο δεν κατάφερε να βρει όση τροφή χρειαζόταν για να επιβιώσει, το µέγεθός του µειώνεται κατά τον αντίστοιχο βαθµό ανάπτυξής του. Plants : Η κλάση αυτή περιέχει όλα τα φυτά του οικοσυστήµατος. Το φυτό κάθε εβδοµάδα αυξάνει το µέγεθός του πάντα κατά τον αντίστοιχο βαθµό ανάπτυξής του αφού το µόνο που χρειάζεται για να τραφεί είναι ήλιος και νερό τα οποία εµφανίζονται άφθονα στο οικοσύστηµά µας. Το µέγεθος των φυτών όµως µπορεί να µειωθεί κατά τον αντίστοιχο βαθµό ανάπτυξής του όταν ένα ζώο τραφεί από αυτό. Herbivores : Η κλάση αυτή περιέχει τα ζώα που είναι φυτοφάγα και που µπορούν µόνο να τραφούν από φυτά που υπάρχουν διασκορπισµένα στο οικοσύστηµα. Carnivores : Η κλάση αυτή περιέχει τα ζώα που είναι σαρκοφάγα και που µπορούν να τραφούν κάνοντας επίθεση σε άλλα ζώα (φυτοφάγα και σαρκοφάγα) των οποίων το µέγεθος είναι το µισό του µεγέθους τους, αφού δεν µπορούν να σκοτώσουν µεγαλύτερα ζώα. Το µέγεθος τροφής που λαµβάνουν από τα άλλα ζώα είναι ίσο µε το βαθµό ανάπτυξης τους, δηλ. αν µία τίγρη επιτεθεί σε έναν λαγό, ο οποίος έχει βαθµό ανάπτυξης 10, τότε η τίγρη θα πάρει τροφή ίση µε 10. Γενικότερα ένα ζώο τρέφεται από ένα άλλο ζώο ή ένα άλλο φυτό, όταν αυτά πλησιάσουν σε µικρή απόσταση µεταξύ τους. Αυτή η απόσταση θα καθοριστεί από τις οµάδες και είναι συσχετισµένη µε την υλοποίηση που θα κανουν για τον χάρτη του οικοσυστήµατος (δες παρακάτω).

Περιγραφή Εφαρµογής Η εφαρµογή θα αποτελείται από µία µπάρα λειτουργιών, έναν χάρτη και µία µπάρα αντικειµένων. Σχηµατικά προτείνουµε το παρακάτω µοντέλο : Μπάρα Λειτουργιών Προς Περισσότερες Λειτουργίες Χάρτης Μπάρα Αντικειµένων Προς Περισσότερα Αντικείµενα Πληροφορίες Επιλεγµένου Οργανισµού (σε κόκκινο κουτάκι) Πιο συγκεκριµένα: Μπάρα Λειτουργιών : Θα περιέχονται όλες οι γενικές λειτουργίες της προσωµοίωσης, όπως αυτές περιγράφονται στο κεφάλαιο Λειτουργίες, και άλλες που πιθανόν να χρειαστεί να προστεθούν από τις οµάδες. Η υλοποίησή της θα µπορούσε να γίνει µε την µορφή ενός menu bar. Μπάρα Αντικειµένων : Στην µπάρα αυτή θα περιέχονται κουτάκια που θα αντιπροσωπεύουν όλες τις οµάδες των οργανισµών του οικοσυστήµατός µας. Από αυτά τα κουτάκια θα µπορεί να γίνεται η εισαγωγή ενός καινούργιου οργανισµού στο οικοσύστηµά µας (δες κεφάλαιο Λειτουργίες). Χάρτης : Θα αποτελεί την περιοχή του οικοσυστήµατός µας πάνω στον οποίο θα κινούνται οι οργανισµοί. Κάθε οργανισµός θα αντιπροσωπεύεται στον χάρτη από ένα εικονίδιο το οποίο θα διαφέρει ανάλογα µε την οµάδα στην οποία ανήκει ο

οργανισµός. ιαλέγοντας το εικονίδιο του οργανισµού θα εµφανίζονται στο κάτω µέρος του χάρτη πληροφορίες γι αυτόν τον οργανισµό, όπως φαίνεται στο σχήµα. Λειτουργίες Οι λειτουργίες που θα υποστηρίζονται από την εφαρµογή θα είναι: Λειτουργίες Προσοµοίωσης : Οι λειτουργίες αυτές περιλαµβάνουν την έναρξη (Start), το πάγωµα (Pause), την συνέχιση (Resume) και την επανεκκίνηση (Restart) της προσοµοίωσης. Οι λειτουργίες αυτές βρίσκονται στην µπάρα λειτουργιών (για παράδειγµα βλ. σχήµα Περιγραφής Εφαρµογής- Μπάρα Λειτουργιών-Simulation). ηµιουργία καινούργιου οργανισµού : Η λειτουργία αυτή θα γίνεται επιλέγοντας το εικονίδιο του αντίστοιχου οργανισµού στην µπάρα αντικειµένων και επιλέγοντας την θέση στην οποία θα µπει ο οργανισµός στο χάρτη. Πληροφορίες ανά πληθυσµό οργανισµών : Πληροφορίες που αφορούν το µέσο όρο µεγέθους των οργανισµών της κατηγορίας που διαλέγουµε, το πλήθος των οργανισµών που ζουν αυτή την στιγµή, την µέση κατανάλωσή τους κατά την τελευταία εβδοµάδα, ποσοστά θανάτων των οργανισµών σε σχέση µε τους συνολικούς θανάτους κατά την διάρκεια της προσοµοίωσης, στατιστικά των ηλικιών ανά οργανισµό. Οι πληροφορίες αυτές θα είναι διαθέσιµες από την µπάρα λειτουργιών. Πληροφορίες ανά οργανισµού : Επιλέγοντας το εικονίδιο του οργανισµού πάνω στον χάρτη θα εµφανίζονται τα στοιχεία του οργανισµού (π.χ. ηλικία, µέγεθος, βαθµός ανάπτυξης, foodperweek, eatenthisweek) τα οποία και θα ανανεώνονται καθώς το ζώο κινείται στο χάρτη (δες σχήµα Περιγραφής Εφαρµογής). Για όλες τις λειτουργίες που υποστηρίζει η εφαρµογή, θα πρέπει να καταγράψετε λεπτοµερώς στην αναφορά σας τα βήµατα που θα πρέπει να ακολουθεί ο χρήστης για να πραγµατοποιήσει τη λειτουργία αυτή (users manual). Γενικές παρατηρήσεις Για την υλοποίηση θα χρησιµοποιηθεί η γλώσσα Java. Για την υλοποίηση δεν χρειάζονται άλλες βιβλιοθήκες (packages) εκτός από αυτές που παρέχει η Java και ως εκ τούτου δεν επιτρέπεται χρήση άλλων βιβλιοθηκών εκτός από τα standard packages της Java 1.4. Παρόλο που η ανάπτυξη της εφαρµογής µπορεί να γίνει σε οποιαδήποτε πλατφόρµα ανάπτυξης, η δοκιµή και παρουσίαση θα γίνει στα εργαστήρια του τµήµατος οπότε οι οµάδες είναι υπεύθυνες να εξασφαλίσουν ότι η εφαρµογή τους θα µπορεί να εκτελεστεί σε αυτά και σύµφωνα µε την έκδοση της Java που υπάρχει σε αυτά τα µηχανήµατα.

Σχεδιασµός και Υλοποίηση Το project χωρίζεται σε 2 φάσεις: Φάση 1η - Σχεδιασµός Σε αυτή τη φάση πρέπει να γίνει ο σχεδιασµός της εφαρµογής βάσει των ιδεών και των αρχών που έχετε διδαχθεί. Αποτέλεσµα του σχεδιασµού θα είναι να καθοριστούν οι οντότητες, τα χαρακτηριστικά τους και η συµπεριφορά τους, οι οποίες θα αποτελέσουν δοµικά στοιχεία για την υλοποίηση της ζητούµενης εφαρµογής. Παραδοταία σε αυτή τη φάση είναι : µια αναφορά η οποία θα περιγράφει τα παραπάνω στοιχεία και θα παρουσιάζει το σχέδιο υλοποίησης του project έτσι ώστε να είναι έτοιµο το πέρασµα στην επόµενη φάση. σε µορφή πηγαίου κώδικα τα Java interfaces και classes συνοδευόµενα µε τα απαραίτητα javadoc σχόλια, τα οποία θα χρησιµοποιηθούν ως βάση για την υλοποίηση (φάση 2). Το αποτέλεσµα αυτής της φάσης θα είναι να καθοριστεί επ'ακριβώς τί θα γίνει και να σκιαγραφηθεί σε επίπεδο classes και interfaces το πώς θα γίνει. Επιγραµµατικά, οι σηµαντικότερες εργασίες που πρέπει να γίνουν σε αυτή τη φάση είναι: Αναγνώριση των κλάσεων. Ποιά είναι τα χαρακτηριστικά του συστήµατος και πως µοντελοποιούνται. Αναγνώριση του interface κάθε κλάσης. Εύρεση των χαρακτηριστικών και των ιδιοτήτων κάθε κλάσης. Τι δεδοµένα πρέπει να κρατάει κάθε κλάση. Μεθόδους που υποστηρίζει κάθε αντικείµενο. Εύρεση των σχέσεων των αντικειµένων. Πώς επικοινωνούν (εάν επικοινωνούν) µεταξύ τους. Συµπεριφορά (behavior) των αντικειµένων. Αναγνώριση των ευθυνών κάθε κλάσης. Τι ενέργειες πρέπει να κάνει κάθε αντικείµενο. Τι ελέγχους πρέπει να κάνουν στα δεδοµένα (pre/post conditions) τα αντικείµενα, µέσω των µεθόδων τους. Interface των κλάσεων, υπογραφές (signatures) των µεθόδων που υποστηρίζει, συναρτήσεις εγκατάστασης (constructors), συναρτήσεις επόπτες (observers), συναρτήσεις µετατροπής (modifiers). Παρατήρηση: Για να µπορέσετε σε αυτή τη φάση να καθορίσετε όσο το δυνατό πληρέστερα τα παραπάνω και να καταλήξετε σε µια ικανοποιητική σχεδίαση, θα σας βοηθούσε αρκετά (αλλά δεν απαιτείται) να υλοποιήσετε ένα πρωτότυπο (prototype) της εφαρµογής, πάνω στο οποίο θα µπορούσατε µετέπειτα να βασιστείτε για την τελική υλοποίηση.

Φάση 2η - Υλοποίηση Σε αυτή τη φάση πρέπει να γίνει η υλοποίηση της εφαρµογής, βάσει της σχεδίασης που έχει προηγηθεί (φάση 1). Μολονότι δεν επιβάλλεται να χρησιµοποιηθεί αυτούσια η σχεδίαση της 1ης φάσης, καθότι κάποιες σχεδιαστικές επιλογές αποδεικνύονται στην πορεία άκυρες και χρειάζονται αναθεώρηση, εντούτοις η τελική βαθµολογία θα εξαρτηθεί και από το πόσο απείχε η τελική υλοποίηση από την αρχική σχεδίαση. Σε αυτή τη φάση, παραδοταία είναι : ο πηγαίος κώδικας που υλοποιεί την ζητούµενη εφαρµογή και η δυνατότητα εκτέλεσης του προγράµµατος ως applet, αναλυτικές οδηγίες πώς µεταγλωτίζεται και πώς τρέχει το πρόγραµµα (README, Makefile κ.λ.π.). αναφορά, στην οποία θα αναλύεται : o η -τελική- σχεδίαση της εφαρµογής, o ποιές αλλαγές έγιναν σε σχέση µε τη σχεδίαση της 1ης φάσης (και γιατί), o οι αλγόριθµοι που χρησιµοποιήθηκαν, o τα προβλήµατα που αντιµετωπίστηκαν, o οι σχεδιαστικές ή προγραµµατιστικές αποφάσεις που λήφθηκαν και πώς αυτό αντανακλάται στον τελικό χρήστη (πχ ευκολία/δυσκολία χειρισµού), o πιθανές επεκτάσεις (πχ καινούριες λειτουργίες) και πώς θα µπορούσαν να γίνουν µε την παρούσα σχεδίαση, o ποιες αλλαγές θα έπρεπε να γίνουν στην υλοποίηση ή/και την σχεδίαση για να υποστηρίζονται επιπλέον λειτουργίες ή σχήµατα. o... γενικά ό,τι άλλο κρίνετε απαραίτητο να αναφέρετε. Βαθµολογία εργασίας Για την βαθµολογία της εργασίας θα συνεκτιµηθούν εάν (και πόσο) η σχεδίαση της εφαρµογής εφαρµόζει τις έννοιες και τεχνικές του οντοκεντρικού προγραµµατισµού που διδάχθηκαν στο µάθηµα εάν (και πόσο) υλοποιήθηκαν οι ζητούµενες λειτουργίες της εφαρµογής η πληρότητα της τελικής αναφοράς, η οποία θα καταγράφει και θα τεκµηριώνει την σχεδίαση και υλοποίηση της εφαρµογής Για διευκρινήσεις σχετικά µε την παραπάνω εργασία, µπορείτε να στέλνετε ηλεκτρονικά µηνύµατα µε απορίες στη λίστα του µαθήµατος hy252-list.