[R1] Requirement Νο 1:
Ο κουρέας μας έχει ανάγκη από ανάπαυση. Θέλει μετά από έναν αριθμό κουρεμάτων να αναπαύεται στον καναπέ που υπάρχει στην αίθουσα αναμονής. Αυτή η απαίτηση μας επιβάλει τον παρακάτω περιορισμό της φάσης αυτής.
[C1] Περιορισμός (Constraint) 4ης φάσης No1:
Ο κουρέας θα υλοποιηθεί ως ενεργό αντικείμενο (active object).
[C2] Περιορισμός 4ης φάσης No2:
Αυστηρός περιορισμός 4 ατόμων στην αίθουσα αναμονής.
Λόγω του Coronavirus στην αίθουσα αναμονής και με βάση το μέγεθος της δεν επιτρέπεται να βρίσκονται πάνω από 4 άτομα. Αν λοιπόν ο κουρέας πάει να κοιμηθεί ενώ είναι σε αναμονή 4 πελάτες κινδυνεύει να δεχθεί πρόστιμο. Για να αποφύγει το πρόστιμο θα πρέπει κατά την διάρκεια της ανάπαυσης του να βρίσκονται στην αίθουσα αναμονής 3 το πολύ πελάτες.
[R2] Requirement Νο 2 :
Θέλουμε να έχουμε τον κουρέα μας όσο πιο ξεκούραστο γίνεται και για τον λόγο αυτό δεν θέλουμε να περιμένει συνέχεια στην θέση του όταν δεν υπάρχουν πελάτες για κούρεμα. Μπορεί να πηγαίνει στην αίθουσα αναμονής για ανάπαυση μέχρι να εμφανιστεί πελάτης οπότε και θα τον οδηγεί αμέσως στη καρέκλα για κούρεμα.
Action 1
Με βάση την 3η έκδοση που αναπτύξατε δώστε μια πρώτη έκδοση της 4ης έκδοσης χρησιμοποιώντας την γραφική διεπαφή BarberGui με την υποστήριξη για 10 ανθρωπάκια (Weaklings).
Σας δίνεται μια νέα γραφική διεπαφή BarberGui σε bytecodes (αρχείο BarberGuiV4.zip ή αρχείο BarberGuiV4.jar) η οποία έχει υποδομή για 10 ανθρωπάκια και δεν δείχνει την θέση του κουρέα με ένα κύκλο. Δες Οδηγίες αξιοποίησης της BarberGui.
Για να αντιμετωπίσετε την πολυπλοκότητα σας συνιστώ να προχωρήσετε σταδιακά στην ικανοποίηση των περιορισμών της φάσης αυτής εκτελώντας τις παρακάτω εν.
Action 2 - Barber as active object (Constrain No1)
Αναπτύξτε την δική σας έκδοση της εφαρμογής που θα ικανοποιεί τον περιορισμό αλλά όχι στην φάση αυτή τo requirement Νο 1. Έχουμε δηλαδή έναν κουρέα που δεν ξεκουράζετε καθόλου. Χρησιμοποιήστε ως βάση την προηγούμενη έκδοση σας.
Screenshot of the 4th Version Action 2
Action 3 - Barber resting after 4 haircuts (C1 and R1)
Αναβαθμίστε την εφαρμογή σας ώστε να ικανοποιεί το requirement No 1.
Screenshot of the 4th Version Action 3
Action 4 - Barber resting and meet coronavirus constrain (C1 and R1 and C2)
Αναβαθμίστε την εφαρμογή σας ώστε να ικανοποιεί το constraint No 2
Screenshot Νο1 of the 4th Version Action 4
Screenshot Νο2 of the 4th Version Action 4
Action 5 - Barber resting and meet coronavirus constrain (C1, C2, R1, R2)
Αναβαθμίστε την εφαρμογή σας ώστε να ικανοποιεί και το requirement No 2.
Screenshot of Action 5 Version
Barber resting when no clients at wairing room
Screenshot of Action 5 Version
Barber resting after 4 haircuts