Θα δώσουμε μερικές συμβουλές για την επίλυση της 1ης Γραπτής Εργασίας στην ΠΛΗ24  για 2η Άσκηση.




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

Ανάλυση Κειμένου

Όταν αναφερόμαστε σε ενέργειες του χρήστη αυτές δεν είναι τίποτα άλλο παρά κάποιες μεθόδους που θα υπάρχουν μέσα σε κλάσεις. Έτσι αν ο χρήστης εισάγει ή πατάει κουμπί σε μια φόρμα ουσιαστικά εκτελεί ή αλλιώς "καλεί" μια μέθοδο μιας κλάσης. Βέβαια τα πεδία που συμπληρώνει ο χρήστης δεν είναι τίποτα άλλο από τιμές που αποδίδει σε attributes της κλάσης.

Οι κλάσεις θα πρέπει να έχουν διάρκεια.

Για να καθορίσουμε το ποιες κλάσεις θα συμμετέχουν πρέπει να σκεφτούμε ότι οι κλάσεις δεν αντιπροσωπεύουν κάτι πρόσκαιρο αλλά έχουν διάρκεια αφού αποτελούν οντότητες του συστήματός μας, και δεν μπορεί να αλλάζουν μορφή κατά την εκτέλεση του προγράμματος. 
Επίσης δεν θα πρέπει να συγχέετε τις κλάσεις με τις περιπτώσεις χρήσεις. Σε μια περίπτωση χρήσης μπορεί να συμμετέχουν παραπάνω από μια κλάσεις συστήματος ή κλάσεις GUI (κλάσεις διεπαφής χρήστη με το σύστημα) μέσω των μεθόδων τους, αλλά οι κλάσεις διεπαφής δεν μας ενδιαφέρουν στο Εννοιολογικό μοντέλο κλάσεων. 

Ποιες κλάσεις συμμετέχουν 

Για να βρείτε ποιες κλάσεις συμμετέχουν θα πρέπει πρώτα να ξεκαθαρίσετε σε ένα χαρτί τις οντότητες και τα attributes ή μεθόδους  που έχετε για αυτές μέσα από ερωτήματα που θα θέσετε.
Χωρίσετε το χαρτί σας σε στήλες. Μέσα σε κάθε στήλη θα συμπληρώστε τις απαντήσεις σας από τα ερωτήματα. Τα ερωτήματα είναι τα εξής:

  • Τι διαθέτει ;
Προσδιορίζουμε τα attributes.
  • Τι κάνει ;
Προσδιορίζουμε τις μεθόδους.
  • Που συμμετέχει ;
Προσδιορίζουμε τις συνδέσεις με άλλες κλάσεις.


Για παράδειγμα στην πρώτη στήλη απαντήστε στην ερώτηση:  ένας Πελάτης τι διαθέτει ;  τι κάνει, που συμμετέχει ; κτλ.
Όταν ξεκαθαρίσετε κατά αυτόν τον τρόπο τα πεδία και τις μεθόδους τότε αυτόματα θα σας προκύψουν και οι κλάσεις του εννοιολογικού μοντέλου. Στην συνέχεια αξιολογήστε την συνεισφορά τους στο σύστημα. Η αξιολόγηση αυτή προκύπτει από τη λεκτική περιγραφή. 
Αν για παράδειγμα κάτι εξαρτάτε από ένα ιδιαίτερο χαρακτηριστικό μιας οντότητας τότε η οντότητα αυτή θα πρέπει να συμμετέχει. Με πιο απλά λόγια, αν η επιλογή μιας θέσης ενοικίασης εξαρτάτε από το μήκος ενός οχήματος τότε το όχημα σαν κλάση είναι απαραίτητη στο διάγραμμα.

Ένα ακόμη στοιχείο για τον προσδιορισμό κλάσεων είναι η ύπαρξη πληθυκότητας και σχέσεων . Οι κλάσεις ως οντότητες αναπτύσσουν σχέσεις και πληθυκότητες μεταξύ τους. Αν δεν μπορείτε να ορίσετε πληθυκότητες μεταξύ κλάσεων ή σχέσεις τότε θα πρέπει να επανεξετάσετε το διάγραμμα σας.

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

Καλή  συνέχεια στην μελέτη σας.