You are on page 1of 12

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

ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ: 2022-2023

ΠΡΩΤΗ ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ


ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2022-2023

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

Ονοματεπώνυμο Φοιτητή/Φοιτήτριας:

Αριθμός Μητρώου:

Κωδικός Θ.Ε.: ΠΛΗ24

Κωδικός Τμήματος:

Α/Α Γραπτής Εργασίας: 1η ΕΡΓΑΣΙΑ

Ονοματεπώνυμο Καθηγητή:

Σχόλια προς Καθηγητή:

Υπεύθυνη Δήλωση Φοιτητή/Φοιτήτριας: Βεβαιώνω ότι είμαι συγγραφέας αυτής της εργασίας και ότι κάθε
βοήθεια την οποία είχα για την προετοιμασία αυτής της εργασίας, είναι πλήρως αναγνωρισμένη και αναφέρεται,
είτε στο σημείο «Σχόλια προς καθηγητή», είτε μέσα στην εργασία. Επίσης, έχω αναφέρει τις όποιες πηγές από τις
οποίες έκανα χρήση δεδομένων, ιδεών ή λέξεων, είτε αυτές αναφέρονται ακριβώς, είτε παραφρασμένες. Επίσης,
βεβαιώνω ότι αυτή η εργασία προετοιμάστηκε από εμένα προσωπικά ειδικά για τη συγκεκριμένη Θεματική
Ενότητα.

Συμφωνώ και αποδέχομαι την ανωτέρω δήλωση

Δε συμφωνώ και δεν αποδέχομαι την ανωτέρω δήλωση (στην περίπτωση αυτή, ο Κ-Σ έχει δικαίωμα
να μην αξιολογήσει την εργασία του φοιτητή/της φοιτήτριας)

Ημερομηνία ανακοίνωσης εργασίας: Πέμπτη, 20/10/2022

Ημερομηνία υποβολής εργασίας: Τετάρτη, 16/11/2022, 11:59 μ.μ.

Ημερομηνία υποβολής εργασίας με ατομική παράταση: Τετάρτη 23/11/2022, 11:59 μ.μ.


Ο κάθε φοιτητής/φοιτήτρια δικαιούται μια ατομική παράταση σε όλη τη διάρκεια του ακαδημαϊκού έτους

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 1


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

Σχόλια προς το Φοιτητή/Φοιτήτρια:

Αναλυτική Αξιολόγηση:
Άσκηση Περιγραφή Ποσοστό % Βαθμός

1 Σύστημα Διαχείρισης Έξυπνου Εργοστασίου 20


Δημιουργία Διαγράμματος Περιπτώσεων Χρήσης (Π.Χ.)

2. Σύστημα Υποστήριξης Λειτουργίας Εθνικής Λυρικής Σκηνής 25


Δημιουργία Εννοιολογικού Μοντέλου

3.A Σύστημα BetBuilder - Υλοποίηση Μεθόδων showPossibleGains 20

3.B Υλοποίηση Μεθόδου maxGain 10

3.Γ Δημιουργία της main και εκτέλεσή της 15

4. Συμμόρφωση με τους Κανόνες Συγγραφής 10

Σύνολο: 100 0

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 2


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

Εκφώνηση 1ης Άσκησης - Σύστημα Διαχείρισης Έξυπνου Εργοστασίου


Δημιουργία Διαγράμματος Περιπτώσεων Χρήσης (Π.Χ.)
Ένα έξυπνο εργοστάσιο (smart factory) διαθέτει ένα διαδικτυακό (web-based) περιβάλλον για τη διαχείριση των
βασικών λειτουργιών του. Γι’ αυτό το διαδικτυακό σύστημα ισχύουν τα ακόλουθα:
Για τη χρήση του συστήματος είναι αναγκαία η εγγραφή σε αυτό με την υποβολή κατάλληλης αίτησης και τον
προσδιορισμό ενός ονόματος χρήστη και ενός κωδικού πρόσβασης. Στη συνέχεια, ο χρήστης, με βάση αυτά τα
στοιχεία θα πρέπει να πραγματοποιήσει την είσοδό του στο σύστημα.
Οι βασικοί χρήστες του συστήματος είναι οι μηχανικοί ψηφιακού δίδυμου (digital twin), ο διαχειριστής
εργοστασίου και ο συντονιστής robot.
Ο μηχανικός ψηφιακού δίδυμου διαχειρίζεται τη ψηφιακή αναπαράσταση των αλληλοσυνδεμένων, μέσω
αισθητήρων Διαδικτύου των Πραγμάτων (Internet of Things, IoT), συστατικών στοιχείων ενός έξυπνου
εργοστασίου, πραγματοποιώντας μια σειρά από ενέργειες στο ψηφιακό αντίγραφο του εργοστασίου. Πιο
συγκεκριμένα:
 Βελτιστοποιεί τη σχεδίαση κάνοντας αλλαγές που οδηγούν στην τροποποίηση της ακολουθούμενης
διεργασίας. Οι αλλαγές αυτές, ορισμένες φορές, απαιτούν την (περιορισμένη) συγγραφή κώδικα. Στο πλαίσιο
της βελτιστοποίησης είναι πιθανή η αναζήτηση μοντέλων μηχανικής μάθησης σε κατάλληλη (εξωτερική) του
συστήματος βιβλιοθήκη, η οποία έχει πρόσβαση σε δεδομένα και από άλλα έξυπνα εργοστάσια (βιβλιοθήκη
εργοστασιακών αναλύσεων).
 Προσδιορίζει μια σειρά από κρίσιμης σημασίας ιδιότητες, οι οποίες, πολλές φορές, σχετίζονται με τη
διαχείριση αισθητήρων (για παράδειγμα, αφορούν την ενεργοποίηση ή παύση τους) και (λιγότερες) φορές
προκαλούν την τροποποίηση της ακολουθούμενης διεργασίας.
 Ελέγχει την απόδοση της λειτουργίας και, ως συνέπεια του ελέγχου, παράγει κατάλληλη αναφορά.
 Καθορίζει εβδομαδιαία το πλάνο συντήρησης (στο πλαίσιο της εφαρμογής διαδικασιών προληπτικής
συντήρησης). Για το σκοπό αυτό (3 φορές το χρόνο) είναι αναγκαίος ο υπολογισμός των κατωφλιών
αποτυχίας του εξοπλισμού, ο οποίος βασίζεται στην επεξεργασία μεγάλου όγκου ιστορικών δεδομένων για
τον προσδιορισμό των συνθηκών που οδηγούν συνήθως σε αποτυχίες / μηχανικές βλάβες, τα οποία
λαμβάνονται από τη βιβλιοθήκη εργοστασιακών αναλύσεων.
Ο διαχειριστής του εργοστασίου εστιάζει σε θέματα ποιοτικού ελέγχου και ομαλής λειτουργίας. Πιο
συγκεκριμένα:
 Βελτιστοποιεί τη σχεδίαση σε συνεργασία με τον μηχανικό ψηφιακού δίδυμου.
 Παρακολουθεί τη λειτουργία των αισθητήρων με σκοπό τον εντοπισμό προβλημάτων λειτουργίας, την
ανίχνευση θεμάτων απώλειας ποιότητας και τον προσδιορισμό απειλών κυβερνοασφάλειας.
 Επεξεργάζεται μοτίβα δεδομένων, χρησιμοποιώντας αλγορίθμους επιθεώρησης βασισμένους σε τεχνητή
νοημοσύνη (AI inspection algorithms), με σκοπό τον έλεγχο της ροής των εργασιών (workflow) και σε
ορισμένες μόνο περιπτώσεις την ανίχνευση θεμάτων απώλειας ποιότητας.
Τέλος, ο συντονιστής robot ελέγχει τη λειτουργία των βιομηχανικών robot. Στο πλαίσιο αυτού του ελέγχου
(ανάμεσα σε άλλες ενέργειες) γράφει κώδικα, προσδιορίζει μοτίβα βέλτιστης αλληλεπίδρασης των cobots
(collaborative robots), σχεδιάζει τα μονοπάτια κίνησης των AMRs (Autonomous Mobile Robots) και παράγει
διάφορα είδη οδηγιών για εργαζόμενους στο έξυπνο εργοστάσιο, από τα οποία (στη συγκεκριμένη άσκηση)
ενδιαφέρει μόνο η παραγωγή οδηγιών AR (Augmented Reality) που προβάλλονται στον ειδικό εξοπλισμό
(γυαλιά / κράνη, ο οποίος χρησιμοποιείται και για την αναγνώριση / πιστοποίησή τους από το υπό εξέταση
σύστημα) που διαθέτουν εκείνοι οι εργαζόμενοι στους οποίους απευθύνονται αυτές οι οδηγίες. Τα cobots και τα
AMRs αποτελούν υποκατηγορίες των βιομηχανικών robot, όπου τα cobots πραγματοποιούν σύνθετες (συνήθως
επαναλαμβανόμενες και έντονες) εργασίες σε συνεργασία με ανθρώπους εργαζόμενους και τα AMRs κινούνται
στο χώρο της παραγωγής και πραγματοποιούν διάφορες εργασίες καθοδηγούμενα με ασύρματο τρόπο.
Να σχεδιάσετε το διάγραμμα περιπτώσεων χρήσης του συστήματος που αντιστοιχεί στην παραπάνω
περιγραφή, στην οποία σημειώνονται με έντονα και πλάγια γράμματα οι λειτουργίες που θα πρέπει αυτό να

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 3


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

υποστηρίζει, αφού πρώτα εντοπίσετε τους χειριστές του συστήματος και ορίσετε τα όριά του. Στη συνέχεια, να
τεκμηριώσετε σύντομα τις επιλογές σας αιτιολογώντας τις σχέσεις που έχετε χρησιμοποιήσει ανάμεσα στους
χειριστές και ανάμεσα στις περιπτώσεις χρήσης του συστήματος.
Προαιρετική Δραστηριότητα
Όσοι/όσες ενδιαφέρονται να γνωρίσουν καλύτερα τις τεχνολογίες που σχετίζονται με την τέταρτη βιομηχανική
επανάσταση (Industry 4.0), στις οποίες αναφέρεται η εκφώνηση της άσκησης, μπορούν να διαβάσουν την πιο
κάτω δημοσίευση:
Tsaramirsis, G., Kantaros, A., Al-Darraji, I., Piromalis, D., Apostolopoulos, A., Pavlopoulou, A., Alrammal, M., Ismail,
I., Buhari, S.M., Stojmenovic, M., Tamimi, H., Randhawa, P., Patel, P., Khan, F.Q., "A Modern Approach towards an
Industry 4.0 Model: From Driving Technologies to Management", Journal of Sensors, Vol. 2022, Article ID
5023011, 18 pages, 2022. https://doi.org/10.1155/2022/5023011
(https://www.hindawi.com/journals/js/2022/5023011/)
(Σύνολο: 20 μονάδες)

Μαθησιακά Αποτελέσματα
Στην Άσκηση 1.Α θα σας δοθεί η δυνατότητα να κατανοήσετε:
 τη διεργασία του προσδιορισμού των απαιτήσεων (Requirement Specification) και
 τον τρόπο κατασκευής του «Διαγράμματος Περιπτώσεων Χρήσης» (Use Case Diagram).
Πιο συγκεκριμένα, σε σχέση με τη διεργασία του «Προσδιορισμού Απαιτήσεων» θα κατανοήσετε:
 τον ορισμό των απαιτήσεων και
 τους δύο κύριους τύπους των απαιτήσεων.
Σε σχέση με την κατασκευή του «Διαγράμματος Περιπτώσεων Χρήσης» θα μπορέσετε:
 να παραθέσετε μία περιγραφή του διαγράμματος Π.Χ.,
 να παραθέσετε τα 4 μέλη που ένα διάγραμμα Π.Χ. περιλαμβάνει,
 να περιγράψετε τη λειτουργικότητα του κάθε μέλους,
 να παραθέσετε τα 3 είδη σχέσεων των Π.Χ.,
 να περιγράψετε τη λειτουργικότητα του κάθε είδους σχέσης,
 να αντιστοιχίσετε το κάθε μέλος του διαγράμματος Π.Χ. με το σύμβολό του και
 να αντιστοιχίσετε την κάθε σχέση του διαγράμματος Π.Χ. με το σύμβολό της.

Απάντηση 1ης Άσκησης

Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα, ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα, ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ.
Εξηγήστε σε ποιο σημείο θεωρείτε την απάντηση ελλιπή και γιατί.

Διάγραμμα Περιπτώσεων Χρήσης:

Αιτιολόγηση Σχέσεων:

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 4


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

Εκφώνηση 2ης Άσκησης - Σύστημα Υποστήριξης Λειτουργίας Εθνικής Λυρικής Σκηνής


Δημιουργία Εννοιολογικού Μοντέλου
Η Εθνική Λυρική Σκηνή (ΕΛΣ) είναι ένας πολιτισμικός φορέας με αντικείμενο το λυρικό θέατρο, που εδρεύει στην
Αθήνα από το 1939 (https://www.nationalopera.gr/). Η λειτουργία της υποστηρίζεται από ένα πληροφοριακό
σύστημα που ικανοποιεί ένα σύνολο από απαιτήσεις. Ένα μέρος από αυτές τις απαιτήσεις δίνονται στη
συνέχεια:
Το καλλιτεχνικό προσωπικό της ΕΛΣ πραγματοποιεί παραστάσεις που φιλοξενούνται σε χώρους διεξαγωγής
εκδηλώσεων. Οι βασικές κατηγορίες στις οποίες ανήκει το καλλιτεχνικό προσωπικό της ΕΛΣ (το οποίο εργάζεται
αποκλειστικά σε αυτή) είναι οι μονωδοί (δηλαδή οι τραγουδιστές της όπερας) και τα μέλη των μουσικών
συνόλων. Στο καλλιτεχνικό προσωπικό ανήκει και ο καλλιτεχνικός διευθυντής της ΕΛΣ. Όλοι προσδιορίζονται
με μοναδικό τρόπο από τον κωδικό τους (ένα αλφαριθμητικό) και χαρακτηρίζονται από το όνομά τους, την
ημερομηνία γέννησης, τη διεύθυνσή τους και τη διεύθυνση ηλεκτρονικού ταχυδρομείου που διαθέτουν.
Οι μονωδοί αρχικά διακρίνονται σε ανδρικές και γυναικείες φωνές. Στη συνέχεια, οι ανδρικές φωνές
διακρίνονται σε βαθύφωνους ή μπάσους (bass), οι οποίοι καλύπτουν τις χαμηλότερες νότες, σε βαρύτονους
(baritone), που καλύπτουν τις ενδιάμεσες περιοχές και σε τενόρους ή οξύφωνους (tenor) που καλύπτουν τις
υψηλότερες νότες. Αντίστοιχα, οι γυναικείες φωνές διακρίνονται σε κοντράλτο (contralto), οι οποίες καλύπτουν
τις χαμηλότερες νότες, σε μεσόφωνους ή μέτσο-σοπράνο (mezzo soprano) που καλύπτουν τις ενδιάμεσες
περιοχές και σε υψίφωνους ή σοπράνο (soprano) που καλύπτουν τις υψηλότερες νότες. Για κάθε μονωδό είναι
γνωστά τα έτη εμπειρίας, η ηλικία και η έκταση της φωνής (ένα αλφαριθμητικό). Κάθε μονωδός θα πρέπει να
ανήκει υποχρεωτικά σε μία από τις υποκατηγορίες των ανδρικών ή των γυναικείων φωνών. Οι υποκατηγορίες
αυτές καλύπτουν πλήρως τα υπάρχοντα ήδη φωνών (δηλαδή δεν υπάρχει φωνή που να μην μπορεί να ενταχθεί
σε μία από αυτές τις κατηγορίες) και δεν υπάρχει επικάλυψη ανάμεσά τους (δηλαδή μονωδοί που να ανήκουν
σε πάνω από μία υποκατηγορίες). Τα ιδιαίτερα χαρακτηριστικά αυτών των υποκατηγοριών δεν ενδιαφέρουν στη
συγκεκριμένη άσκηση.
Τα μέλη των μουσικών συνόλων, τα οποία είναι δυνατό να συνεργάζονται μεταξύ τους (για παράδειγμα, στη
διάρκεια της πρόβας), μπορεί να είναι μουσικοί και μέλη χορωδίας, ενώ ως μέλη θεωρούνται και ο μαέστρος
(διευθυντής ορχήστρας) και ο διευθυντής της χορωδίας. Κάθε μέλος ενός μουσικού συνόλου χαρακτηρίζεται
από το έτος πρόσληψης (το οποίο είναι άμεσα διαθέσιμο σε κάθε υποκατηγορία μελών μόνο), την πιστοποίηση
που διαθέτει (ένα αλφαριθμητικό) και τον αριθμό των ημερών επιμόρφωσης που δικαιούται, ο οποίος
προσδιορίζεται για κάθε μέλος από τους κανόνες της πολιτικής που ακολουθεί η ΕΛΣ για το σκοπό αυτό (για
παράδειγμα, ο πιανίστας δικαιούται 20 μέρες το χρόνο). Σημαντική είναι επίσης η δυνατότητα του κάθε μέλους
να αλλάξει το ρεπερτόριο που είναι σε θέση να εκτελέσει. Επισημαίνεται ότι κάθε μέλος μουσικού συνόλου
πρέπει να ανήκει υποχρεωτικά σε μία από τις υπάρχουσες κατηγορίες, καθώς και ότι ένας μουσικός
χαρακτηρίζεται από το είδος οργάνου που παίζει (Βιολί, Βιόλα, Βιολοντσέλο, Κοντραμπάσο, Άρπα, Φλάουτο,
Όμποε, Κλαρινέτο, Φαγκότο, Κόρνα, Τρομπέτα, Τρομπόνι, Τούμπα, Τύμπανο, Κρουστά), ενώ ένα μέλος χορωδίας
από το είδος της φωνής του (Υψίφωνος, Μεσόφωνος, Τενόρος, Βαρύτονος, Βαθύφωνος).
Τα μουσικά σύνολα που διαθέτει η ΕΛΣ είναι η ορχήστρα και η χορωδία. Οι κοινές τους ιδιότητες δεν
ενδιαφέρουν στη συγκεκριμένη άσκηση. Η ορχήστρα χαρακτηρίζεται από τη σύνθεση και τη διάταξη των
οργάνων (και τα δύο αλφαριθμητικά) και αποτελείται από 2 μαέστρους, 75 μουσικούς (οι οποίοι έχουν
συγκεκριμένη διάταξη) και έως 15 εξωτερικούς συνεργάτες (διαφόρων ειδικοτήτων). Η χορωδία χαρακτηρίζεται
από τον τύπο της χορωδίας (αλφαριθμητικό) και αποτελείται από 2 διευθυντές χορωδίας και 44 μέλη χορωδίας.
Οι παραστάσεις που πραγματοποιεί η ΕΛΣ διακρίνονται σε τρεις βασικές κατηγορίες: Όπερα (και οπερέτες που
αποτελούν ειδική μορφή όπερας), μπαλέτο και συναυλίες συμφωνικού περιεχομένου. Οι κοινές ιδιότητες των
παραστάσεων δεν ενδιαφέρουν στη συγκεκριμένη άσκηση, αλλά κάθε παράσταση ανήκει υποχρεωτικά σε μία
από τις υπάρχουσες κατηγορίες. Η ορχήστρα συμμετέχει σε όλες τις παραστάσεις, ενώ η χορωδία συμμετέχει
μόνο στις όπερες, στις οποίες λαμβάνουν μέρος και όσοι από τους μονωδούς επιβάλλει το εκάστοτε έργο
έχοντας το ρόλο του πρωταγωνιστή. Η όπερα χαρακτηρίζεται από όνομα, συνθέτη και σκηνογράφο και η
οπερέτα (επιπρόσθετα) από τη χώρα προέλευσης.

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 5


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

Με βάση τις απαιτήσεις που αναφέρονται πιο πάνω να σχεδιάσετε το εννοιολογικό μοντέλο (αρχικό διάγραμμα
κλάσεων). Στις κλάσεις που θα προσδιορίσετε να προσθέσετε (όπου είναι δυνατό) τα κατάλληλα πεδία (με τον
τύπο που εξυπηρετεί καλύτερα το ρόλο τους), να απεικονίσετε κατάλληλα τους περιορισμούς (constraints) που
αναφέρονται και να τεκμηριώσετε σύντομα τις επιλογές σας αιτιολογώντας το λόγο που χρησιμοποιήσατε (αν
φυσικά το κάνατε) κληρονομικότητα (inheritance), συσσώρευση (aggregation) ή συγκρότηση (composition)
ανάμεσα σε κλάσεις.
Στη συνέχεια:
Να σχεδιάσετε το διάγραμμα πακέτων (package diagram), το οποίο απεικονίζει τη συνεργασία του (πιο πάνω)
πληροφοριακού συστήματος της ΕΛΣ με τα ακόλουθα δύο πληροφοριακά συστήματα:
 Το σύστημα της διαδικτυακής τηλεόραση (GNO TV, https://tv.nationalopera.gr/), το οποίο έχει πρόσβαση στις
παραστάσεις που πραγματοποιεί η ΕΛΣ με σκοπό τη διαδικτυακή προβολή τους σε ευρύτερο κοινό.
 Το σύστημα διαδικτυακών ακροάσεων (e-Audition), το οποίο χρησιμοποιείται από τον καλλιτεχνικό
διευθυντή, τους μαέστρους και τους διευθυντές χορωδίας για την πραγματοποίηση προσλήψεων.
Υπόδειξη:
Με έντονα και πλάγια γράμματα σημειώνονται, στο μισό του κειμένου των απαιτήσεων, οι κλάσεις
(οντότητες/έννοιες) που είναι σημαντικές στο πεδίο του προβλήματος και έχουν προκύψει κάνοντας ανάλυση
του κειμένου των απαιτήσεων. Συνεχίστε εξετάζοντας το σύνολο των απαιτήσεων.
Προαιρετική Δραστηριότητα
Κατά την ενασχόλησή σας με τη συγκεκριμένη άσκηση, αλλά και ολόκληρη την εργασία, ακούστε κατάλληλη (;)
μουσική σύμφωνα με τις προτιμήσεις σας. Συμβουλευτείτε τον ακόλουθο δικτυακό τόπο:
Coding Music! Playlists and Advice to Be More Productive When Coding at Home (Or at the Office):
https://www.codeinwp.com/blog/coding-music/
(Σύνολο: 25 μονάδες)
Μαθησιακά Αποτελέσματα
Στην Άσκηση 2.Α θα σας δοθεί η δυνατότητα να κατανοήσετε:
 την κατασκευή του «Εννοιολογικού Μοντέλου» και
 την κατασκευή του «Διαγράμματος Κλάσεων».
Σχετικά με την κατασκευή του «Εννοιολογικού Μοντέλου» θα μπορέσετε:
 να κατανοήσετε την έννοια του μοντέλου,
 να κατανοήσετε την έννοια του εννοιολογικού μοντέλου,
 να περιγράψετε τα 2 είδη μελών που το εννοιολογικό μοντέλο περιλαμβάνει και
 να περιγράψετε τη σχεδίαση των μελών που περιλαμβάνει το εννοιολογικό μοντέλο.

Απάντηση 2ης Άσκησης


Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα, ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα, ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ.
Εξηγήστε σε ποιο σημείο θεωρείτε την απάντηση ελλιπή και για ποιους λόγους.

Εννοιολογικό Μοντέλο (Αρχικό Διάγραμμα Κλάσεων):

Αιτιολόγηση Χρήσης Κληρονομικότητας, Συσσώρευσης ή Συγκρότησης:

Σχεδίαση Διαγράμματος Πακέτων:

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 6


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

Εκφώνηση 3ης Άσκησης - Σύστημα BetBuilder


H εφαρμογή “BetBuilder-initial” επιτρέπει τη δημιουργία δελτίων στοιχηματισμού σε αγώνες ποδοσφαίρου. Ο
αρχικός κώδικας που δίνεται στη συνέχεια αποτελείται από 4 βασικές κλάσεις, όπου η κάθε μια περιέχει σε
μορφή πίνακα ένα σύνολο από αντικείμενα της επόμενης.
Συγκεκριμένα, η κλάση που χρησιμοποιείται για την οργάνωση του στοιχήματος (BetOrganization), περιέχει μια
λίστα πελατών (κλάση Customer). Κάθε πελάτης έχει έναν πίνακα από κουπόνια (κλάση Coupon) και κάθε
κουπόνι περιέχει ένα πίνακα από αγώνες στοιχήματος (κλάση Bet). Κάθε αγώνας χαρακτηρίζεται από το όνομά
του και την απόδοση που έχει.
Κάθε κουπόνι περιέχει 2 αγώνες. Το κέρδος (gain) από αυτό υπολογίζεται ως το άθροισμα των αποδόσεων των
δυο αγώνων, συν το συνδυασμό τους (πολλαπλασιασμός των επιμέρους αποδόσεων). Για παράδειγμα, για δυο
αγώνες με απόδοση 1.8 και 1.6 το κέρδος είναι 1.6 + 1.8 + (1.6 * 1.8).

public class BetOrganization {


private Customer cList[] = new Customer[10];
private int num_customers = 0;

public void addCustomer(Customer customer) {


cList[num_customers] = customer;
num_customers++;
}

public void newCoupon(String owner, Coupon coupon) {


for (int i=0; i<num_customers; i++) {
if (cList[i].isOwner(owner)) {
cList[i].addCoupon(coupon);
break;
}
}
}

public void addBet(int code, Bet bet) {


for (int i=0; i<num_customers; i++) {
if (cList[i].hasCouponWithID(code)) {
cList[i].addBet(code, bet);
break;
}
}
}

public void showPossibleGainsPerCustomer() {


for (int i=0; i<num_customers; i++) {
cList[i].showPossibleGains();
System.out.println("\n-------------------------\n");
}
}
}

public class Customer {


private String name;
private Coupon cList[] = new Coupon[10];
private int num_coupons = 0;

public Customer(String n) {
name = n;
}

public boolean isOwner(String owner) {

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 7


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

return name.equals(owner);
}

public void addCoupon(Coupon coupon) {


cList[num_coupons] = coupon;
num_coupons++;
}

public boolean hasCouponWithID(int code) {


for (int i=0; i<num_coupons; i++) {
if (cList[i].hasID(code))
return true;
}
return false;
}

public void addBet(int code, Bet bet) {


for (int i=0; i<num_coupons; i++) {
if (cList[i].hasID(code))
cList[i].addBet(bet);
}
}

public void showPossibleGains() {


// Γράψτε τη μέθοδο ώστε να εμφανίζει τα επιθυμητά
// αποτελέσματα
}
}

public class Coupon {


private int code;
private Bet[] bList = new Bet[2];
private int num_bet = 0;

public Coupon(int id) {


code = id;
}

public boolean hasID(int id) {


return (code==id);
}

public void addBet(Bet bet) {


bList[num_bet] = bet;
num_bet++;
}

public void showPossibleGains() {


// Γράψτε τη μέθοδο ώστε να εμφανίζει τα επιθυμητά
// αποτελέσματα
}

public double maxGain() {


// Τα πιθανά κέρδη σε δελτίο με 2 αγώνες υπολογίζονται
// ως το άθροισμα των δυο συντελεστών + συν το γινόμενο
// τους
}

}
public class Bet {
private String game;

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 8


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

private double payment;

public Bet(String g, double pmnt) {


game =g;
payment = pmnt;
}

public double getPayment() {


return payment;
}
}

Η εφαρμογή είναι έτσι δομημένη ώστε να αποφεύγεται η χρήση μεθόδων get για την ανταλλαγή δεδομένων
μεταξύ των κλάσεων και οι όποιοι υπολογισμοί να γίνονται με διαδοχικές κλήσεις μεθόδων σε μια αλυσίδα
κλάσεων που συνδέονται μεταξύ τους με κάποιου είδους σχέση.
Για παράδειγμα, η κλάση BetOrganisation αναθέτει την ευθύνη για την προσθήκη ενός αγώνα στοιχήματος στη
μέθοδo addBet που διαθέτει, η οποία με τη σειρά της καλεί τη μέθοδο addBet της κλάσης Customer, η οποία
καλεί τελικά τη μέθοδο addBet της κλάσης Coupon, η οποία και καταχωρεί τον επιθυμητό αγώνα στοιχήματος.
Σύμφωνα με αυτόν τον τρόπο λειτουργίας μια κλάση παραδίδει ή αναθέτει (delegates) την ευθύνη για την
πραγματοποίηση μιας εργασίας σε μια άλλη κλάση, μέσω των μεθόδων που διαθέτει (method delegation). Με
τον τρόπο αυτό η λειτουργικότητα μιας κλάσης, όπως αυτή φανερώνεται από τις μεθόδους που διαθέτει
(δηλαδή από τη διεπαφή / διασύνδεσή της) δεν υλοποιείται στην πραγματικότητα από την ίδια την κλάση, αλλά
ανατίθεται αλλού (σε άλλες σχετιζόμενες με αυτή κλάσεις).
Σε όσες αλλαγές κάνετε στην εφαρμογή μην παραβείτε την παραπάνω αρχή, υιοθετώντας τον τρόπο υλοποίησης
που έχει ήδη χρησιμοποιηθεί στον κώδικα που δίνεται.
(https://www.geeksforgeeks.org/delegation-vs-inheritance-java/)

Ερωτήματα 3.Α-3.Β – Υλοποίηση Μεθόδων


Σύμφωνα με τις οδηγίες που υπάρχουν στα σχόλια του κώδικα υλοποιήστε τις μεθόδους showPossibleGains και
maxGain. H υλοποίηση των μεθόδων αφορά περισσότερες από μία κλάσεις.
Η επιθυμητή μορφοποίηση (formatting) της εκτύπωσης περιγράφεται υπό μορφή σχολίου στη μέθοδο main.
Στην απάντηση αντιγράψτε μόνο τις ζητούμενες μεθόδους. Ολόκληρο το project θα παραδοθεί σαν χωριστό
αρχείο.
Φροντίστε ο κώδικας να είναι μορφοποιημένος κατάλληλα και να είναι ευανάγνωστος. Θα πρέπει να υπάρχει
τεκμηρίωση σε μορφή σχολίων.
(Ερώτημα Α: 20 μονάδες)
(Ερώτημα Β: 10 μονάδες)

Μαθησιακά Αποτελέσματα
Στις Ασκήσεις 3.Α-3.Β θα σας δοθεί αρχικά η δυνατότητα να:
 αναλύσετε τον κώδικα μιας κλάσης Java ως προς τη λειτουργικότητά της και να
 διαπιστώσετε την ορθότητα του κώδικα μιας κλάσης Java ως προς το συντακτικό της γλώσσας.
Επιπλέον, η άσκηση αυτή θα σας επιτρέψει να μελετήσετε και να κατανοήσετε την έννοια της «Κλάσης».
Πιο συγκεκριμένα, θα μπορέσετε:
 να ορίσετε με ακρίβεια την έννοια της κλάσης,
 να κατανοήσετε τα βασικά δομικά στοιχεία μιας κλάσης,
 να κατανοήσετε την έννοια της μεθόδου,
 να εξηγήσετε τις βασικές διαφορές ενός κατασκευαστή από μια απλή μέθοδο,

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 9


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

 να κατασκευάσετε σε Java μέθοδο με ορίσματα και τύπο επιστροφής,


 να κατανοήσετε τη δημιουργία και επεξεργασία πινάκων και
 να επεξηγήσετε τη συμπεριφορά μιας άγνωστης κλάσης.

Απάντηση 3ης Άσκησης / Ερώτημα 3.Α

Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα, ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα, ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ.
Εξηγήστε σε ποιο σημείο θεωρείτε την απάντηση ελλιπή και για ποιους λόγους.

Κώδικας Μεθόδου showPossibleGains / Κλάση Customer:

Κώδικας Μεθόδου showPossibleGains / Κλάση Coupon:

Απάντηση 3ης Άσκησης / Ερώτημα 3.Β

Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα, ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα, ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ.
Εξηγήστε σε ποιο σημείο θεωρείτε την απάντηση ελλιπή και για ποιους λόγους.

Κώδικας Μεθόδου maxGain / Κλάση Coupon:

Ερώτημα 3.Γ – Δημιουργία της main και Εκτέλεσή της


Δημιουργήστε τη μέθοδο main ακολουθώντας τις οδηγίες για την κατασκευή αντικειμένων που βρίσκονται στον
κώδικα που δίνεται με μορφή σχολίων και ελέγξτε την ορθότητα της εκτέλεσης του συνόλου της εφαρμογής.

public class BetMain {

public static void main(String[] args) {


BetOrganization bo = new BetOrganization();

// Προσθέστε τους παρακάτω πελάτες


// Tony di Naples
// Babis Sougias
// Bruno van Roderdam

// Δημιουργήστε
// 2 δελτία για τον Tony di Naples με κωδικούς 111 και 222
// 1 δελτίο για τον Babis Sougias με κωδικο 333
// 1 δελτίο για τον Bruno van Roderdam με κωδικο 444

// Προσθέστε 2 αγώνες σε καθε δελτίο με ομάδες της επιλογής


// σας, αλλα τους παρακάτω συντελεστές
// 111: 3.75 και 1.15
// 222: 4.20 και 4.20
// 333: 4.20 και 4.20
// 444: 3.50 και 1.85

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 10


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

// Εμφανίστε τα πιθανά κέρδη όλων των παιχτων αναλυτικά


/*
Name: Tony di Naples
Coupon id: 111
MAX Payment = 9.2125
Coupon id: 222
MAX Payment = 26.04
Total: 35.2525
-------------------------
Name: Babis Sougias
Coupon id: 333
MAX Payment = 26.04
Total: 26.04
-------------------------
Name: Bruno van Roderdam
Coupon id: 444
MAX Payment = 11.825
Total: 11.825
------------------------- */
}
}

Δώστε τον κώδικα της μεθόδου main, εκτελέστε το πρόγραμμά σας και συμπεριλάβετε σχετικό στιγμιότυπο
οθόνης (screenshot), όπου θα φαίνεται το αποτέλεσμα της εκτέλεσης. Φροντίστε ο κώδικας να είναι
μορφοποιημένος κατάλληλα και να είναι ευανάγνωστος. Θα πρέπει να υπάρχει τεκμηρίωση σε μορφή σχολίων.
(Σύνολο: 15 μονάδες)
Υπόδειξη:
Κατά τον έλεγχο της ορθής εκτέλεσης του προγράμματός σας μπορείτε να αξιοποιήσετε τον αποσφαλματωτή
(debugger) που διαθέτει, τόσο το NetBeans, όσο και το IntelliJ:
- https://www.youtube.com/watch?v=2Z9B8wYhKWw
- https://www.youtube.com/watch?v=06B9tsOKtZE
- https://netbeans.org/kb/docs/java/debug-visual.html
- https://www.jetbrains.com/help/idea/debugging-your-first-java-application.html#running-program

Μαθησιακά Αποτελέσματα
Στην Άσκηση 3.Γ θα σας δοθεί αρχικά η δυνατότητα σε σχέση με την έννοια της «Κλάσης»:
 να αναπτύξετε μια απλή κλάση σε Java,
 να ορίσετε με ακρίβεια την έννοια της κλάσης,
 να αναφέρετε τα βασικά δομικά στοιχεία μιας κλάσης,
 να ορίσετε με ακρίβεια την έννοια της μεθόδου,
 να κατασκευάσετε σε Java μέθοδο με ορίσματα και τύπο επιστροφής και
 να δημιουργήσετε τις κλάσεις για την ανάπτυξη μιας εφαρμογής.
Επίσης, σχετικά με την έννοια του «Αντικειμένου» θα μπορέσετε:
 να ορίσετε με ακρίβεια την έννοια του αντικειμένου,
 να εξηγήσετε τη διαφορά μεταξύ μιας κλάσης και ενός αντικειμένου και
 να κατασκευάσετε αντικείμενα μιας κλάσης με διαφορετικά χαρακτηριστικά σε Java.

Απάντηση 3ης Άσκησης / Ερώτημα Γ


Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα, ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα, ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ.
Εξηγήστε σε ποιο σημείο θεωρείτε την απάντηση ελλιπή και για ποιους λόγους.

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 11


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

Κώδικας Μεθόδου main:

Στιγμιότυπο Οθόνης με Αποτέλεσμα Εκτέλεσης:

Υποδείξεις για τη συγγραφή της εργασίας

1) Για την απάντηση της εργασίας θα πρέπει να χρησιμοποιηθεί το κείμενο της εκφώνησης της
εργασίας. Στο κείμενο αυτό:
- Συμπληρώστε, στο χώρο των απαντήσεων, όλα τα στοιχεία με κίτρινο χρώμα.
- Μην ξεχάσετε να δηλώσετε εάν η εργασία αποτελεί προϊόν αποκλειστικά δικής σας εργασίας.
- Ενσωματώστε τις απαντήσεις (διαγράμματα ή/και κώδικα) στην κατάλληλη θέση. Δεν θα
πρέπει να κάνετε παραπομπές της μορφής «βλέπε αρχείο…».
- Αν δεν έχετε απαντήσει σε ένα ερώτημα γράψτε «ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ».
- Αν απαντήσατε με ελλείψεις σε ένα ερώτημα γράψτε «ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ».
2) Η συνεργασία στην ανάλυση της εργασίας επιτρέπεται, αλλά καλό είναι να αναφερθεί στον ειδικό
χώρο στην πρώτη σελίδα της εργασίας. Η συνεργασία δεν πρέπει να οδηγεί σε από κοινού επίλυση
και συγγραφή της εργασίας. Η υποβολή κοινών απαντήσεων από διαφορετικούς φοιτητές που
συνεργάστηκαν δεν επιτρέπεται και θεωρείται ως ΑΝΤΙΓΡΑΦΗ. Οι απαντήσεις ελέγχονται, τόσο
μεταξύ των φοιτητών του ιδίου τμήματος, όσο και μεταξύ φοιτητών διαφορετικών τμημάτων. Η
αντιγραφή έχει ως αποτέλεσμα το ΜΗΔΕΝΙΣΜΟ ΤΗΣ ΕΡΓΑΣΙΑΣ ΣΥΝΟΛΙΚΑ και την παραπομπή των
παραβατών στην Κοσμητεία της Σχολής Θετικών Επιστημών & Τεχνολογίας, σύμφωνα με τον
εσωτερικό κανονισμό του ΕΑΠ.
3) Η εκπόνηση της εργασίας θα πρέπει να γίνει αποκλειστικά και υποχρεωτικά με το εργαλείο Visual
Paradigm για τη UML και NetΒeans / IntelliJ για τη Java.
4) Η εργασία θα υποβληθεί στο σύστημα υποβολή εργασιών του study.eap.gr.
5) Ο φοιτητής θα πρέπει να υποβάλει την εργασία του σε δύο αρχεία:
- Το 1ο αρχείο θα έχει όνομα PLH24_1ERG_EPITHETO_ONOMA.doc και είναι το κείμενο της
εκφώνησης της εργασίας με συμπληρωμένες τις απαντήσεις.
- Το 2ο αρχείο είναι ένα συμπιεσμένο αρχείου zip ή rar με όνομα
PLH24_1ERG_EPITHETO_ONOMA.<rar|zip>. Το συμπιεσμένο αρχείο θα πρέπει να
αποτελείται από:
i. Το αρχείο Visual Paradigm με το project που θα περιέχει τα διαγράμματα των
ασκήσεων.
ii. Τον κατάλογο με τον κώδικα Java που θα πρέπει να περιλαμβάνει το project όπως αυτό
δημιουργείται από το εργαλείο NetΒeans / IntelliJ και το οποίο θα πρέπει να μπορεί να
εκτελείται χωρίς αλλαγές από τον καθηγητή.
iii. Να γίνει χρήση λατινικών χαρακτήρων ΑΠΟΚΛΕΙΣΤΙΚΑ για την αποφυγή προβλημάτων
με το moodle.
H εφαρμογή των παραπάνω κανόνων είναι ΥΠΟΧΡΕΩΤΙΚΗ και βαθμολογείται σύμφωνα με το αντίστοιχο
κριτήριο αξιολόγησης. Η μη εφαρμογή του πρώτου κανόνα μπορεί να οδηγήσει σε συνολική απόρριψη της
εργασίας.

ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

ΠΛΗ24 - ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ Νο 1 12

You might also like