ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Π. Υιτσιλής ΜΕΛΈΣΗ ΠΕΡΊΠΣΨΗ ΜΙΣΘΟΔΟΣΊΑ ΥΠΑΛΛΉΛΩΝ
ΠΕΡΙΕΦΜΕΝΑ Εισαγωγή στην ICONIX Οι απαιτήσεις της μελέτης περίπτωσης Υάση 1- Βήμα 1. Αναπαράσταση πεδίου προβλήματος Υάση 1- Βήμα 2. χεδίαση περιπτώσεων χρήσης
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ H ΜΕΘΟΔΟΛΟΓΊΑ ICONIX
Η ΓΛΑ UML Η UML είναι μια γλώσσα για Οπτικοποίηση του συστήματος(visualisation) Δημιουργία προδιαγραφών (specifications) Κατασκευή του συστήματος (construction) Σεκμηρίωση του συστήματος (documentation)
Ο ΚΌΚΛΟ ΖΨΉ ΛΟΓΙΜΙΚΟΌ ΕΡΓΑΣΙΕΣ ΦΑΣΕΙΣ Σύλλητη Επεξεπγαζία Καηαζκεςή Μεηάβαζη Μονηελοποίηζη επισειπημαηικών διαδικαζιών Πποδιαγπαθέρ Ανάλςζη και ζσεδίαζη Υλοποίηζη Έλεγσορ Διάηαξη Διοίκηζη Σσημαηιζμών Διασείπιζη Έπγος Πεπιβάλλον 5
ΦΑΡΑΚΣΗΡΙΣΙΚΆ ΣΗ ICONIX Είναι απλούστερη και συντομότερη από την Rational Unified Process (RUP), Τιοθετεί την UML ως γλώσσα έκφρασης των απαιτήσεων και των προδιαγραφών του υπό σχεδίαση λογισμικού, Είναι «καθοδηγούμενη από τις περιπτώσεις χρήσης», αποφεύγει την πληθώρα μοντέλων χωρίς να παραλείπει τις διαδικασίες ανάλυσης και σχεδιασμού, Παρέχει σε κάθε βήμα τη δυνατότητα ανίχνευσης του βαθμού υλοποίησης των απαιτήσεων δεν επιτρέπει σε κανένα σημείο την απομάκρυνση από τις ανάγκες του χρήστη, Είναι επαναληπτική και αυξητική το στατικό μοντέλο εκλεπτύνεται καθώς αναλύεται το δυναμικό μοντέλο χωρίς να επιφέρει μεγάλη διαχειριστική επιβάρυνση 6
ΔΙΑΓΡΆΜΜΑΣΑ ICONIX Για να εφαρμόσουμε την ICONIX θα χρησιμοποιήσουμε μόνο τέσσερα UML διαγράμματα: Διάγραμμα περιπτώσεων χρήσης για να αναπαραστήσουμε τα σενάρια χρήσης και τους χειριστές του συστήματος Διάγραμμα κλάσεων για να αναπαραστήσουμε το πεδίο εφαρμογής του συστήματος αλλά και τη λεπτομερή στατική δομή του συστήματος Διάγραμμα ευρωστίας (μια παραλλαγή του διαγράμματος συνεργασίας) για να αναπαραστήσουμε ένα προκαταρκτικό σχέδιο υλοποίησης των σεναρίων χρήσης του συστήματος καλύπτουν το κενό μεταξύ ανάλυσης απαιτήσεων και αναλυτικού σχεδίου Διάγραμμα ακολουθίας για να συσχετίσουμε λεπτομερώς τη δυναμική συμπεριφορά με τη στατική δομή του συστήματος 7
ΔΙΑΓΡΆΜΜΑΣΑ ICONIX UML Διαγράμματα ςυνεργαςίασ Διαγράμματα καταςτάςεων Διαγράμματα κλάςεων Υποςύνολο ICONIX Διαγράμματα Περιπτώςεων Χρήςησ Διαγράμματα ευρωςτίασ Διαγράμματα ακολουθίασ Διαγράμματα αντικειμένων Διαγράμματα διάταξησ Διαγράμματα δραςτηριοτήτων Διαγράμματα ςυςτατικών
Ο ΒΑΙΚ ΣΦΟ ΣΗ ICONIX 9
ΑΡΦΙΚ ΗΜΕΊΟ = GUI PROTOTYPE Ή UI SCREENS + ΠΡΣΕ ΙΔΈΕ ΣΟΤ ΣΙ ΠΡΈΠΕΙ ΝΑ ΚΆΝΕΙ ΣΟ ΌΣΗΜΑ 10
ΣΑ ΔΙΑΓΡΆΜΜΑΣΑ ΚΛΆΕΨΝ ΚΑΘΟΡΊΖΟΤΝ ΣΗ ΔΟΜΉ ΣΟΤ ΚΔΙΚΑ 11
ΣΑ ΔΙΑΓΡΆΜΜΑΣΑ ΑΚΟΛΟΤΘΊΑ ΜΑ ΒΟΗΘΟΌΝ ΣΗΝ ΚΑΣΑΝΟΜΉ ΣΨΝ ΛΕΙΣΟΤΡΓΙΝ ΣΙ ΚΛΆΕΙ 12
13 ΣΑ ΔΙΑΓΡΆΜΜΑΣΑ ΕΤΡΨΣΊΑ ΔΙΕΤΚΟΛΌΝΟΤΝ ΣΗ ΜΕΣΆΒΑΗ ΑΠ ΣΙ ΠΕΡΙΠΣΕΙ ΦΡΉΗ ΣΑ ΔΙΑΓΡΆΜΜΑΣΑ ΑΚΟΛΟΤΘΊΑ
14 Η ΑΝΑΠΑΡΆΣΑΗ ΣΟΤ ΠΕΔΊΟΤ ΕΥΑΡΜΟΓΉ (DOMAIN MODEL) ΚΑΙ Η ΦΡΉΗ ΣΨΝ ΕΝΝΟΙΝ ΣΟΤ ΣΗΝ ΠΕΡΙΓΡΑΥΉ ΣΨΝ ΠΕΡΙΠΣΕΨΝ ΦΡΉΗ ΕΛΑΦΙΣΟΠΟΙΟΌΝ ΣΙ ΑΆΥΕΙΕ
Η ΤΝΟΛΙΚΉ ΕΙΚΝΑ ΣΗ ICONIX Δυναμικό μοντέλο Test1 Πρωτότυπο Διάγραμμα Περιπτώςεων Χρήςησ Διάγραμμα Ακολουθίασ Test1 Test1 Διάγραμμα Ευρωςτίασ Στατικό μοντέλο Διάγραμμα Κλάςεων Ενημερωμένο Πεδίου Εφαρμογήσ Διάγραμμα Κλάςεων Πεδίου Εφαρμογήσ Αναλυτικό Διάγραμμα Κλάςεων Σχεδίαςησ Κώδικασ 15
ΒΉΜΑΣΑ ICONIX Βήμα 1. Ανάλυση απαιτήσεων Αναπαράσταση πεδίου εφαρμογής (Domain Model) Πρωτότυπο βασικών οθονών του συστήματος (όταν χρειάζεται) χεδίαση περιπτώσεων χρήσης ημείο ελέγχου 1. Επισκόπηση απαιτήσεων Βήμα 2. Ανάλυση και προκαταρκτικός σχεδιασμός Δημιουργία διαγραμμάτων ευρωστίας Ενημέρωση μοντέλων πεδίου εφαρμογής και περιπτώσεων χρήσης ημείο ελέγχου 2. Προκαταρκτική επισκόπηση σχεδιασμού Βήμα 3. Λεπτομερής σχεδιασμός (Design Model) Δημιουργία διαγραμμάτων ακολουθίας Ενημέρωση διαγραμμάτων κλάσεων με σχεδιαστικές λεπτομέρειες ημείο ελέγχου 3. Κρίσιμη επισκόπηση σχεδιασμού Βήμα 4. Τλοποίηση κώδικα, έλεγχος και ολοκλήρωση ημείο ελέγχου 4. Παράδοση συστήματος 16
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΟΙ ΑΠΑΙΣΉΕΙ ΣΗ ΜΕΛΈΣΗ ΠΕΡΊΠΣΨΗ
ΑΠΑΙΣΉΕΙ ΣΗ ΕΥΑΡΜΟΓΉ - 1 Οι εργαζόμενοι της εταιρείας είναι δυο κατηγοριών: Πλήρους απασχόλησης και Μερικής απασχόλησης Μια ειδική κατηγορία εργαζομένων πλήρους απασχόλησης είναι οι πωλητές. Η πληρωμή των εργαζομένων πλήρους απασχόλησης γίνεται με βάση το μηνιαίο μισθό λαμβάνοντας υπόψη τις ημέρες απουσίας. Η πληρωμή των εργαζομένων μερικής απασχόλησης γίνεται με βάση τις πραγματικές ώρες εργασίας και το ωρομίσθιο του κάθε εργαζομένου. Oι πωλητές, λαμβάνουν εκτός από το μηνιαίο μισθό πρόσθετη αμοιβή (bonus) η οποία εξαρτάται από το συνολικό ποσό των παραγγελιών που έλαβαν για τη δεδομένη χρονική περίοδο. Έτσι ένας πωλητής λαμβάνει επιπλέον 5% του μισθού του, σε εβδομαδιαία βάση, εάν οι παραγγελίες που έλαβε είναι μικρότερες των 10.000. επιπλέον 7% του μισθού του, σε εβδομαδιαία βάση, εάν οι παραγγελίες που έλαβε είναι περισσότερες των 10.000 και λιγότερες των 20.000. Για παραγγελίες μεγαλύτερες των 20.000 λαμβάνουν επιπλέον 10% του μισθού τους σε εβδομαδιαία βάση.
ΑΠΑΙΣΉΕΙ ΣΗ ΕΥΑΡΜΟΓΉ - 2 Οι εργαζόμενοι πλήρους απασχόλησης λαμβάνουν υπερωρίες. Ως υπερωρία θεωρείτε η εργασία μετά τις 8 ώρες ημερησίως, η οποία αμείβεται με το ωρομίσθιο του κάθε εργαζομένου προσαυξημένο κατά 50%. Οι υπερωρίες υπολογίζονται σε ημερήσια βάση. Για την ακριβή καταγραφή των ωρών εργασίας των εργαζομένων, η εταιρεία έχει εγκαταστήσει σύστημα «Ελέγχου Προσέλευσης/Αποχώρησης Εργαζομένων», το οποίο καταγράφει την ώρα προσέλευσης και αποχώρησης του κάθε εργαζομένου. Κάθε εργαζόμενος έχει μια κάρτα εισόδου η οποία χρησιμοποιείται για την καταγραφή της ώρας προσέλευσης και αναχώρησης. Ο υπεύθυνος μισθοδοσίας έχει την αρμοδιότητα εισαγωγής, διαγραφής και τροποποίησης των στοιχείων των εργαζομένων. Ο υπεύθυνος μισθοδοσίας έχει την αρμοδιότητα παραγωγής μισθοδοσίας. Σο σύστημα θα πρέπει να διαθέτει δυνατότητα παραγωγής εκτυπώσεων τόσο ανά εργαζόμενο όσο και συγκεντρωτικές. Πιο συγκεκριμένα θα πρέπει να παράγει Υύλλο μισθοδοσίας ανά εργαζόμενο υγκεντρωτική μισθοδοσία για όλη την εταιρεία Παραγγελίες ανά εργαζόμενο Σόσο, τα δεδομένα της μισθοδοσίας όσο και τα στοιχεία των υπαλλήλων θα αποθηκεύονται σε ΒΔ. Όταν ξεκινά η εφαρμογή θα πρέπει να διαβάζεται αυτόματα η πληροφορία των υπαλλήλων από τη ΒΔ και να δημιουργούνται τα κατάλληλα αντικείμενα (υπαλλήλων, κάρτας εισόδου, κ.ο.κ).
ΠΑΡΑΔΟΦΈ ΠΟΤ ΚΆΝΟΤΜΕ Κάθε εργαζόμενος έχει μια κάρτα εισόδου η οποία χρησιμοποιείται για την καταγραφή της ώρας προσέλευσης και αναχώρησης. Για την καταγραφή θα πρέπει να εξομοιωθεί η λειτουργία ενός αναγνώστη κάρτας καθώς και η προσέλευση/αναχώρηση των υπαλλήλων. Ο αναγνώστης κάρτας κάθε ημέρα και για κάθε υπάλληλο δέχεται δύο μηνύματα: Προσέλευση και Αναχώρηση. Κατά την προσέλευση η χρονική στιγμή εισαγωγής της κάρτας θα ορίζεται με τυχαίο τρόπο για το χρονικό διάστημα από 8:00 έως 8:15. Κατά την αναχώρηση η χρονική στιγμή εισαγωγής της κάρτας θα ορίζεται με τυχαίο τρόπο για το χρονικό διάστημα από 16:00 έως 16:30. Σο σύστημα «Ελέγχου Προσέλευσης/Αποχώρησης Εργαζομένων» αν και συνεργάζεται με το σύστημα μισθοδοσίας δεν αποτελεί τμήμα του. Η εφαρμογή που παρουσιάζεται καταγράφει τους χρόνους εργασίας όλων των υπαλλήλων για τις εργάσιμες μέρες ενός μήνα. Για την απλοποίηση της λογικής υποθέτουμε πως δεν υπάρχουν απουσίες υπαλλήλων στη διάρκεια του μήνα και πως οι ωρομίσθιοι πληρώνονται στο τέλος κάθε μήνα. την παρούσα μελέτη περίπτωσης δε θα ασχοληθούμε με τη διεπαφή του συστήματος με το χρήστη (graphical user interface) στο επίπεδο του κώδικα. Αν και το παράδειγμα, περιλαμβάνει γραφικές οθόνες (διαχείριση παραγγελιών) σκοπός είναι να παρουσιασθεί ο τρόπος με τον οποίο κάνουμε την πρωτοτυποποίηση του συστήματος και αναπτύσσουμε τη διεπαφή με το χρήστη. Για το λόγο αυτό δε δίνεται ιδιαίτερη έμφαση στην επεξήγηση των τεχνικών χαρακτηριστικών που σχετίζονται με την ανάπτυξη του GUI. Η παρούσα μελέτη περίπτωσης δεν έχει περιορισμούς εισόδου (login, password). υνεπώς η λειτουργικότητα που παρουσιάζεται είναι κοινή για όλους τους χρήστες.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΥΆΗ 1- ΒΉΜΑ 1. ΑΝΑΠΑΡΆΣΑΗ ΠΕΔΊΟΤ ΠΡΟΒΛΉΜΑΣΟ
ΥΆΗ 1- ΒΉΜΑ 1. ΑΝΑΠΑΡΆΣΑΗ ΠΕΔΊΟΤ ΠΡΟΒΛΉΜΑΣΟ τόχος του πρώτου βήματος της μεθοδολογίας ICONIX είναι η ανάπτυξη του αρχικού διαγράμματος κλάσεων του συστήματος από το μοντέλο του πεδίου προβλήματος. Ένας από τους πιο απλούς τρόπους για την εύρεση των κλάσεων του πεδίου προβλήματος είναι η μελέτη των απαιτήσεων. Μερικοί απλοί κανόνες που βοηθούν είναι: Σα ουσιαστικά αντιστοιχούν σε κλάσεις ή πεδία κλάσεων. Σα ρήματα ή οι φράσεις που δίνουν ενέργεια γίνονται μέθοδοι ή/και συσχετίσεις (associations). Οι κτητικές φράσεις συνήθως περιγράφουν ιδιότητες/πεδία των κλάσεων και συσχετίσεις.
ΕΌΡΕΗ ΚΛΆΕΨΝ Οι εργαζόμενοι της εταιρείας είναι δυο κατηγοριών: Πλήρους απασχόλησης και Μερικής απασχόλησης Μια ειδική κατηγορία εργαζομένων πλήρους απασχόλησης είναι οι πωλητές. Η πληρωμή των εργαζομένων πλήρους απασχόλησης γίνεται με βάση το μηνιαίο μισθό λαμβάνοντας υπόψη τις ημέρες απουσίας. Η πληρωμή των εργαζομένων μερικής απασχόλησης γίνεται με βάση τις πραγματικές ώρες εργασίας και το ωρομίσθιο του κάθε εργαζομένου. Oι πωλητές, λαμβάνουν εκτός από το μηνιαίο μισθό πρόσθετη αμοιβή (bonus) η οποία εξαρτάται από το συνολικό ποσό των παραγγελιών που έλαβαν για τη δεδομένη χρονική περίοδο. Έτσι ένας πωλητής λαμβάνει: επιπλέον 5% του μισθού του, σε εβδομαδιαία βάση, εάν οι παραγγελίες που έλαβε είναι μικρότερες των 10.000.. Οι εργαζόμενοι πλήρους απασχόλησης λαμβάνουν υπερωρίες. Ως υπερωρία θεωρείται η εργασία μετά τις 8 ώρες ημερησίως, η οποία αμείβεται με το ωρομίσθιο του κάθε εργαζομένου προσαυξημένο κατά 50%. Οι υπερωρίες υπολογίζονται σε ημερήσια βάση...
ΞΕΚΑΘΆΡΙΜΑ ΕΝΝΟΙΝ/1 Ουσιαστικό Εργαηόμενοσ Εργαηόμενοσ πλιρουσ απαςχόλθςθσ Εργαηόμενοσ μερικισ απαςχόλθςθσ Πωλθτισ Μιςκόσ Ημζρα απουςίασ Ώρα εργαςίασ Ωρομίςκιο Υπερωρία Πρόςκετθ αμοιβι Παραγγελία Σκεπτικό Είναι βαςικι οντότθτα του ςυςτιματοσ. Είναι βαςικι οντότθτα του ςυςτιματοσ. Είναι βαςικι οντότθτα του ςυςτιματοσ. Είναι βαςικι οντότθτα του ςυςτιματοσ. Είναι πεδίο τθσ οντότθτασ του εργαηομζνου. Λογικά μιςκό κα πρζπει να ζχουν οι πωλθτζσ και οι πλιρουσ απαςχόλθςθσ εργαηόμενοι. Είναι πεδίο τθσ οντότθτασ του εργαηομζνου. Είναι πεδίο. Θα πρζπει να ςχετίηεται με τουσ εργαηόμενουσ. Είναι πεδίο του εργαηομζνου μερικισ απαςχόλθςθσ. Είναι πεδίο του εργαηομζνου πλιρουσ απαςχόλθςθσ. Είναι πεδίο του πωλθτι. Είναι οντότθτα του ςυςτιματοσ. Αν και δεν αναφζρεται ςαφώσ κάκε παραγγελία ςχετίηεται με προϊόντα.
ΞΕΚΑΘΆΡΙΜΑ ΕΝΝΟΙΝ/2 Ουσιαστικό Ποςό παραγγελιών Χρονικι περίοδοσ Κάρτα ειςόδου Ώρα προςζλευςθσ Ώρα αποχώρθςθσ Υπεφκυνοσ μιςκοδοςίασ Μιςκοδοςία Στοιχεία εργαηομζνου Σφςτθμα Δεδομζνα μιςκοδοςίασ Στοιχεία υπαλλιλων Σκεπτικό Είναι πεδίο τθσ παραγγελίασ. Αναφζρεται ςτθν περίοδο υπολογιςμοφ τθσ μιςκοδοςίασ. Στθ γενικι περίπτωςθ κα μποροφςε να είναι ανεξάρτθτθ οντότθτα. Βαςικι οντότθτα του ςυςτιματοσ. Υπάρχει μια κάρτα ειςόδου ανά εργαηόμενο. Εμμζςωσ πλθν ςαφώσ θ κάρτα ειςόδου ςχετίηεται άμεςα με τον αναγνώςτθ καρτών, ςυςκευι απαραίτθτθ για τθ λειτουργία τθσ. Είναι πεδίο που ςχετίηεται με τθν είςοδο του εργαηομζνου ςτθν εταιρεία. Θα πρζπει να δθμιουργοφμε μια εγγραφι για κάκε είςοδο του εργαηομζνου. Είναι πεδίο που ςχετίηεται με τθν ζξοδο του εργαηομζνου ςτθν εταιρεία. Θα πρζπει να δθμιουργοφμε μια εγγραφι για κάκε είςοδο του εργαηομζνου. Είναι ρόλοσ του ςυςτιματοσ. Δεδομζνθσ τθσ παραδοχισ που ζγινε ςτθν παροφςα μελζτθ περίπτωςθσ ότι «δεν υπάρχουν περιοριςμοί ειςόδου (login, password). Βαςικι οντότθτα του ςυςτιματοσ. Πεδία τθσ κλάςεωσ εργαηόμενοσ. Τουπόανάπτυξθ ςφςτθμα. Πεδία τθσ οντότθτα μιςκοδοςίασ. Συνώνυμο του «ςτοιχεία εργαηομζνου».
ΕΝΈΡΓΕΙΕ ΠΟΤ ΘΑ ΠΡΈΠΕΙ ΝΑ ΕΚΣΕΛΕΊ ΣΟ ΌΣΗΜΑ Η πληρωμή των εργαζομένων πλήρους απασχόλησης Η πληρωμή των εργαζομένων μερικής απασχόλησης Λαμβάνουν πρόσθετη αμοιβή Λαμβάνουν υπερωρίες Παραγωγή εκτυπώσεων Οι υπερωρίες υπολογίζονται σε ημερήσια βάση Καταγραφή των ωρών εργασίας Ο υπεύθυνος μισθοδοσίας έχει την αρμοδιότητα εισαγωγής Ο υπεύθυνος μισθοδοσίας έχει την αρμοδιότητα διαγραφής Ο υπεύθυνος μισθοδοσίας έχει την αρμοδιότητα τροποποίησης Ο υπεύθυνος μισθοδοσίας έχει την αρμοδιότητα παραγωγής μισθοδοσίας Να διαβάζεται αυτόματα η πληροφορία των υπαλλήλων από τη ΒΔ και να δημιουργούνται τα κατάλληλα αντικείμενα
ΟΙ ΚΛΆΕΙ ΣΟΤ ΠΕΔΊΟΤ ΠΡΟΒΛΉΜΑΣΟ Employee PartTimeEmployee FullTimeEmployee CommissionedEmployee TimeCard LogEntry CardReader PurchaseOrder Payroll PayrollPeriod Product OrderLine
ΦΈΕΙ ΜΕΣΑΞΌ ΚΛΆΕΨΝ χέσεις κληρονομικότητας χέσεις συναρμολόγησης και σύνθεσης χέσεις συσχέτισης
Η ΙΕΡΑΡΦΊΑ ΣΨΝ ΕΡΓΑΖΟΜΈΝΨΝ ΔΌΟ ΕΝΑΛΛΑΚΣΙΚΈ ΛΌΕΙ Employee Employee PartTimeEmployee FullTimeEmployee CommissionedEmployee PartTimeEmployee FullTimeEmployee Η κληρονομικότητα αυξάνει την επαναχρησιμοποίηση (resusability) τη σύζευξη (coupling) CommissionedEmployee
ΦΈΗ ΤΝΑΡΜΟΛΓΗΗ ΚΑΙ ΌΝΘΕΗ ΔΌΟ ΕΝΑΛΛΑΚΣΙΚΈ ΛΌΕΙ υναρμολόγηση (aggregation) Σο εμπεριεχόμενο αντικείμενο είναι ανεξάρτητο Λευκός ρόμβος ύνθεση (composition) Εξαρτάται άμεσα (όταν καταστρέφεται το «όλο» καταστρέφεται και το «μέρος» Μαύρος ρόμβος TimeCard TimeCard - 1-1 - * - * LogEntry LogEntry
ΟΙ ΤΠΛΟΙΠΕ ΚΛΆΕΙ Η κλάςεισ που ςχετίζονται με την παραγγελία Η κλάςεισ που ςχετίζονται με την παραγωγή μιςθοδοςίασ Payroll PurchaseOrder 1 * 1 * PayrollRun PayrollRunEntry OrderLine Product 1 * 0..* 1 1 * PayrollPeriod
Η ΜΟΝΣΕΛΟΠΟΊΗΗ ΣΗ ΚΛΆΗ PAYROLLPERIOD
H ΚΑΣΑΝΟΜΉ ΣΨΝ ΠΕΔΊΨΝ ΣΙ ΙΕΡΑΡΦΊΕ ΚΛΆΕΨΝ
ΑΠΕΙΚΝΙΗ ΤΦΕΣΊΕΨΝ ΣΟ ΜΟΝΣΈΛΟ ΚΛΆΕΨΝ
Η ΟΜΑΔΟΠΟΊΗΗ ΣΨΝ ΚΛΆΕΨΝ Ε ΠΑΚΈΣΑ Πακέτο Employees: Employee, PartTimeEmployee, FullTimeEmployee, CommissionedEmployee. Πακέτο TimeManagement: TimeCard, CardReader, LogEntry. Πακέτο Payroll: Payroll, PayrollRun, PayrollPeriod, PayrollRunEntry. Πακέτο Purchases: PurchaseOrder, OrderLine, Product. Employees TimeManagement Payroll Purchases
ΣΟ ΤΝΟΛΙΚ ΜΟΝΣΈΛΟ Employee has TimeCard LogEntry 1 1 1 * CardReader PartTimeEmployee FullTimeEmployee CommissionedEmployee 1 * puts Payroll PurchaseOrder 1 1 * * PayrollRun PayrollRunEntry OrderLine Product 1 * 0..* 1 1 * PayrollPeriod
ΒΑΙΚΈ ΑΡΦΈ ΠΡΨΣΟΣΤΠΟΠΟΊΗΗ Η δομή της εφαρμογής θα πρέπει να είναι ξεκάθαρη (structure principle). Ο σχεδιασμός θα πρέπει να είναι απλός ώστε να απλοποιούνται οι εργασίες (simplicity principle). Θα πρέπει να είναι διαθέσιμη όλη η απαραίτητη πληροφορία και μόνο (visibility principle). Θα πρέπει να υπάρχει προσκόλληση στα πρότυπα. Θα πρέπει να υπάρχει συνέπεια σε όλο τον σχεδιασμό. Θα πρέπει να καλύπτονται όλες οι βασικές απαιτήσεις καθώς και τα δύσκολα σημεία.
ΔΗΜΙΟΤΡΓΊΑ ΠΡΨΣΣΤΠΟΤ
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΥΆΗ 1- ΒΉΜΑ 2. ΦΕΔΊΑΗ ΠΕΡΙΠΣΕΨΝ ΦΡΉΗ
ΠΡΟΔΙΟΡΙΜ ΦΕΙΡΙΣΝ Οι χειριστές αναπαριστούν ρόλους που ένα χρήστης/ συσκευή/ εξωτερικό σύστημα παίζει σε σχέση με το υπό ανάπτυξη σύστημα. Ένας χειριστής επομένως μπορεί να είναι: Ένα χρήστης του συστήματος (άνθρωπος) Ένα εξωτερικό σύστημα που αλληλεπιδρά (π.χ. Μια βάση δεδομένων) Μια συσκευή (π.χ. ένας αισθητήρας) Ένα ρολόι χρονισμού του συστήματος
ΦΕΙΡΙΣΈ ΣΟΤ ΤΣΉΜΑΣΟ Μετά από μελέτη του ορισμού του προβλήματος εντοπίσαμε τους παρακάτω χειριστές: Employee FullTimeEmployee PartTimeEmployee CommissionedEmployee PayrollAdministrator
ΟΙ ΠΕΡΙΠΣΕΙ ΦΡΉΗ Time Management Employee «inherits» «inherits» «inherits» Purchase Order Management PartTimeEmployee CommissioedEmployee FullTimeEmployee Maintain Employee Information Run Payroll PayrollAdministrator Produce Reports
ΟΙ ΠΕΡΙΠΣΕΙ ΦΡΉΗ ΠΟΤ ΠΑΡΟΤΙΆΖΟΝΣΑΙ ΕΊΝΑΙ ΤΧΗΛΟΌ ΕΠΙΠΈΔΟΤ. Ε ΠΟΙΟ ΕΠΊΠΕΔΟ ΛΕΠΣΟΜΈΡΕΙΑ ΘΑ ΠΡΈΠΕΙ ΝΑ ΕΡΓΑΖΜΑΣΕ; H ΠΦ «Maintain Employee Information» είναι κατάλληλη ή θα πρέπει να ορίσω ΠΦ με μεγαλύτερη λεπτομέρεια Τπάρχουν διαφορετικά επίπεδα λεπτομέρειας, το καθένα εκ των οποίων ικανοποιεί διαφορετικούς στόχους. To συνοπτικό επίπεδο (summary level). το επίπεδο αυτό έχουμε πολύ μικρό αριθμό ΠΦ οι οποίες περιγράφουν τους βασικούς στόχους του συστήματος (system context). To επίπεδο των στόχων των χρηστών όπου περιγράφονται οι επιμέρους στόχοι των χρηστών (user goals). Σο επίπεδο διακριτών λειτουργιών (function level), το οποίο μας επιτρέπει να περιγράψουμε συμπεριφορές πολύ χαμηλού επιπέδου σε επίπεδο λειτουργίας.
ΣΑ ΕΠΊΠΕΔΑ ΣΗ ΛΕΠΣΟΜΈΡΕΙΑ Από το βιβλίο του Α.Cockburn, Writing Effective Use Cases
ΟΙ ΦΕΙΡΙΣΈ PARTTIMEEMPLOYEE ΚΑΙ FULLTIMEEMPLOYEE ΔΕΝ ΕΚΣΕΛΟΌΝ ΚΑΜΊΑ ΠΕΡΊΠΣΨΗ ΦΡΉΗ. ΘΑ ΠΡΈΠΕΙ ΝΑ ΕΜΥΑΝΊΖΟΝΣΑΙ ΣΟ ΜΟΝΣΈΛΟ; Οι χειριστές εκτός από το ερέθισμα (stimulus) που παράγουν ώστε να αρχίσει η εκτέλεση μιας ΠΦ, περιγράφουν τους ρόλους που υπάρχουν μέσα σε ένα σύστημα. Μια εναλλακτική απεικόνιση Time Management Employee «inherits» Purchase Order Management CommissioedEmployee
ΘΑ ΠΡΈΠΕΙ ΝΑ ΕΜΥΑΝΊΖΕΣΑΙ Ψ ΦΕΙΡΙΣΉ Η ΤΚΕΤΉ CARDREADER (ΑΝΑΓΝΣΗ ΚΑΡΣΝ) ΑΥΟΌ ΑΛΛΗΛΕΠΙΔΡΆ ΜΕ ΣΟ ΌΣΗΜΑ; Η συσκευή CardReader είναι μια απλή συσκευή εισόδου, μια απλή περιφερειακή συσκευή όπως το πληκτρολόγιο, το ποντίκι κ.α. και συνεπώς δεν είναι χειριστής. θα μπορούσαμε να πούμε ότι η συσκευή είναι δευτερεύων χειριστής στην ΠΦ TimeManagement για να καλύψουμε την περίπτωση που η συσκευή δεν είναι διαθέσιμη. την περίπτωση αυτή, θα πρέπει να υπάρχει μια ΠΦ επέκτασης CardReaderProblem στην ΠX TimeManagement.
ΘΑ ΠΡΈΠΕΙ ΝΑ ΕΜΥΑΝΊΖΕΣΑΙ Ψ ΦΕΙΡΙΣΉ Η ΒΆΗ ΔΕΔΟΜΈΝΨΝ ΑΥΟΌ ΕΊΝΑΙ ΕΞΨΣΕΡΙΚ ΌΣΗΜΑ; ΘΑ ΠΡΈΠΕΙ ΝΑ ΤΠΆΡΦΕΙ ΠΕΡΊΠΣΨΗ ΦΡΉΗ «ΑΠΟΘΉΚΕΤΗ ΣΗ ΒΆΗ ΔΕΔΟΜΈΝΨΝ»; Αποτελεί μέρος του συστήματος ή όχι; Φρησιμοποιείται αποκλειστικά από το σύστημα μισθοδοσίας Αν ναι αποτελεί μέρος του συστήματος, Αν όχι εξωτερικό σύστημα δηλαδή να είναι χειριστής. θα πρέπει να υπάρχει ΠΦ «Αποθήκευση στη Βάση Δεδομένων». Oχι Σο σωστό θα ήταν μια ΠΦ με τίτλο «Αποθήκευση των στοιχείων εργαζομένου στη Βάση Δεδομένων», είναι συγκεκριμένη και ξεκινά από την απαίτηση του χειριστή να αποθηκεύσει δεδομένα. Ποτέ όμως, εκτός ίσως από την περίπτωση δημιουργία αντιγράφων ασφαλείας (backup), o χειριστής δεν ζητά την καθολική αποθήκευση των δεδομένων όλου του συστήματος.
Η ΠΦ «RUN PAYROLL» ΘΑ ΈΠΡΕΠΕ ΝΑ ΑΝΑΛΌΕΣΑΙ ΠΕΡΙΣΕΡΟ ΑΥΟΌ Ο ΤΠΟΛΟΓΙΜ ΣΗ ΜΙΘΟΔΟΊΑ ΕΊΝΑΙ ΠΟΛΌΠΛΟΚΟ ΚΑΙ ΕΞΑΡΣΆΣΑΙ ΑΠ ΣΗΝ ΚΑΣΗΓΟΡΊΑ ΣΟΤ ΚΆΘΕ ΕΡΓΑΖΟΜΈΝΟΤ; θα μπορούσαμε να αναλύσουμε περαιτέρω την ΠΦ «Run Payroll», σε επιμέρους ΠΦ. «Calculate Salary» και «Calculate Bonus». Αυτό σημαίνει ότι για να ολοκληρωθεί η ΠΦ «Run Payroll» θα πρέπει να εκτελεσθεί η λογική, τόσο της ΠΦ «Calculate Salary», όσο και της ΠΦ «Calculate Bonus». Maintain Employee Information Run Payroll <<includes>> Calculate Salary PayrollAdministrator <<includes>> Produce Reports Calculate Bonus
ΘΑ ΜΠΟΡΟΌΑΜΕ ΝΑ ΑΝΑΛΌΟΤΜΕ ΠΑΡΑΠΆΝΨ ΣΗΝ ΠΦ «MAINTAIN EMPLOYEE INFORMATION» Ε ΕΙΑΓΨΓΉ, ΣΡΟΠΟΠΟΊΗΗ, ΔΙΑΓΡΑΥΉ ΕΡΓΑΖΟΜΈΝΟΤ; Θα μπορούσαμε να αντικαταστείσουμε την ΠΦ «Maintain Employee Information» με τις ΠΦ: «Create Employee», «Retrieve Employee», «Update Employee» και «Delete Employee». Η ΠΦ «Maintain Employee Information» κάνει include: «Create Employee», «Retrieve Employee», «Update Employee» και «Delete Employee». PayrollAdministrator Maintain Employee Information Run Payroll Produce Reports <<includes>> <<includes>> <<includes>> <<includes>> Create Employee Retrieve Employee Update Employee Delete Employee
Η ΑΝΑΛΤΣΙΚΉ ΠΕΡΙΓΡΑΥΉ ΣΨΝ ΠΕΡΙΠΣΕΨΝ ΦΡΉΗ Σίτλος περίπτωσης χρήσης: Εκτέλεση μισθοδοσίας (run payroll) ύντομη περιγραφή: O διαχειριστής μισθοδοσίας τρέχει τη μισθοδοσία για μια περίοδο Φειριστές: Διαχειριστής μισθοδοσίας (payroll administrator) Ροή γεγονότων Βασική ροή 1. Ο διαχειριστής μισθοδοσίας επιλέγει «Εκτέλεση Μισθοδοσίας» από την κεντρική οθόνη του συστήματος 2. Επιλέγει την περίοδο για την οποία θα εκτελέσει τη μισθοδοσία 3. Γίνεται υπολογισμός της μισθοδοσίας εργαζομένων 4. Γίνεται υπολογισμός της μισθοδοσίας πωλητών 5. Γίνεται υπολογισμός των bonus πωλητών 6. Γίνεται υπολογισμός της μισθοδοσίας ωρομισθίων 7. Επιστροφή στην κεντρική οθόνη του συστήματος Εναλλακτικές ροές Εναλλακτική ροή 1 3α. Δεν υπάρχουν αποθηκευμένα στοιχεία χρόνου για τους εργαζόμενους 3β. Παρουσιάζεται ενημερωτικό μήνυμα Εναλλακτική ροή 2 4α. Δεν υπάρχουν αποθηκευμένα στοιχεία χρόνου για τους πωλητές 4β. Παρουσιάζεται ενημερωτικό μήνυμα Εναλλακτική ροή 3 5α. Δεν υπάρχουν αποθηκευμένα στοιχεία χρόνου για τους εργαζόμενους 5β. Παρουσιάζεται ενημερωτικό μήνυμα Εναλλακτική ροή 4 6α. Δεν υπάρχουν αποθηκευμένες παραγγελίες για τους πωλητές 6β. Παρουσιάζεται ενημερωτικό μήνυμα Ειδικές απαιτήσεις: Δεν υπάρχουν Κατάσταση εισόδου:
ΓΡΑΥΙΚΉ ΑΠΕΙΚΝΙΗ ΠΕΡΊΠΣΨΗ ΦΡΉΗ «ΤΠΟΛΟΓΙΜΟΌ ΜΙΘΟΔΟΊΑ» ΒΔ εργαηομζνων Εναλλακτικι ροι 1 Δεν υπάρχουν αποκθκευμζνα ςτοιχεία χρόνου για τουσ εργαηόμενουσ Εναλλακτικι ροι 3 Δεν υπάρχουν αποκθκευμζνα ςτοιχεία χρόνου για τουσ ωρομίςκιουσ εργαηόμενουσ Δεδομζνα Μιςκοδοςίασ Ζναρξθ Επιλογι «Εκτζλεςθ μιςκοδοςίασ» Επιλογι Περιόδου Υπολογιςμόσ μιςκοδοςίασ Εργαηομζνων «Πλιρουσ Απαςχόλθςθσ» Υπολογιςμόσ μιςκοδοςίασ Πωλθτών Υπολογιςμόσ μιςκοδοςίασ Εργαηομζνων «Μερικισ Απαςχόλθςθσ» Υπολογιςμόσ Bonus Πωλθτών Εναλλακτικι ροι 2 Δεν υπάρχουν αποκθκευμζνα ςτοιχεία χρόνου για τουσ πωλθτζσ Εναλλακτικι ροι 4 Δεν υπάρχουν αποκθκευμζνεσ παραγγελίεσ για τουσ πωλθτζσ
ΔΙΑΓΡΆΜΜΑΣΑ ΔΡΑΣΗΡΙΟΣΉΣΨΝ ΥΠΟΛΟΓΙΣΜΟΣ ΜΙΣΘΟΔΟΣΙΑΣ ΜΙΣΘΩΤΟΥ ΜΕ ΜΗΝΙΑΙΟ ΜΙΣΘΟ Visual Paradigm for UML Standard Edition(HELLENIC OPEN UNIVERSITY) Φρησιμοποιούν ται για: Περιγραφή της ροής των εργασιών (workflow) Περιγραφή κάποιου πολύπλοκου αλγορίθμου Περιγραφή παράλληλων δραστηριοτήτ ων Υπολόγισε ςπεπωπίερ με 50% πποσαύξηση [Υπάπσοςν επγαζόμενοι] [Ώπερ Επγασίαρ >= Κανονικό Ωπάπιο] Υπολογιζμός ωρών εργαζίας Υπολόγισε μισθό Αποθήκεσζη εγγραφής μιζθοδοζίας [Δεν ςπάπσοςν άλλοι επγαζόμενοι] [Ώπερ Επγασίαρ < Κανονικό Ωπάπιο] Υπολόγισε μείωση μειώνονταρ ανάλογα με τιρ ώπερ αποςσίαρ Activity είναι σύνθετo και μποπεί να αναλςθεί παπαπάνω H action σπησιμοποιείται για μια απλή ενέπγεια
ΕΡΨΣΗΗ 9 - ΠΡΟΔΙΟΡΙΜΈΝΕ ΤΝΔΈΕΙ (QUALIFIED ASSOCIATIONS) OrderLine 0..1 Product * Order Κλάση στόχος Περιορισμός (qualifier) Περιορισμένη κλάση ε κάθε παραγγελία (order) δεν υπάρχουν δύο παραγγελίες (orderline) για το ίδιο προϊόν (product) 53
ΠΡΟΔΙΟΡΙΜΈΝΕ ΤΝΔΈΕΙ Βελτιώνει την κατανόηση των εννοιών του μοντέλου Κάνει τις σχέσεις σύνδεσης πιο κατανοητές Μη περιορισμένη Stock exchange * Company StockID noted Stock exchange StockID noted Company περιορισμένη 54
ΠΕΡΙΟΡΙΜΟΙ (CONSTRAINTS)