ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9) ΓΙΩΡΓΟΣ ΜΟΥΡΚΟΥΣΗΣ Μηχανικός Η/Υ & Πληροφορικής Διδάκτορας Μηχανικός ΕΜΠ gmourkousis@teimes.gr Υλικό: ΘΕΩΡΙΑ
2 ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ
Δομικό μοντέλο Ένας τυπικός τρόπος αναπαράστασης των αντικείμενων που χρησιμοποιούνται και δημιουργούνται από ένα επιχειρηματικό σύστημα (Ανθρώπους, γεγονότα, πράγματα, ) για τα οποία συλλέγουμε δεδομένα. Σχεδιάζεται μέσω μιας επαναληπτικής διαδικασίας Αρχικά σχεδιάζεται με βάση τις έννοιες και τις επιχειρηματικές απαιτήσεις Μετά βελτιώνεται με βάση τις τεχνολογικές δυνατότητες και περιγράφει τις πραγματικές βάσεις δεδομένων και τα αρχεία
ΔΟΜΙΚΑ ΜΟΝΤΕΛΑ
Δομικά μοντέλα Βασικός στόχος του αναλυτή: να ανακαλύψει τα βασικά δεδομένα που περιλαμβάνονται στο πεδίο προβλήματος και να κατασκευάσει ένα δομικό μοντέλο των αντικειμένων Δομική μοντελοποίηση Πεδίο προβλήματος Πεδίο λύσης
Μια κοινή γλώσσα Στα δομικά μοντέλα δημιουργείται ένα καλώς ορισμένο λεξιλόγιο το οποίο θα μπορεί να χρησιμοποιηθεί από τους αναλυτές και τους χρήστες Οι κλάσεις που δημιουργούνται κατά την ανάλυση δεν είναι οι κλάσεις που γράφουν οι προγραμματιστές κατά την υλοποίηση Αυτή η διόρθωση γίνεται πιο μετά Συνηθισμένα δομικά μοντέλα: Κάρτες CRC Διαγράμματα κλάσεων (και αντικειμένων)
Κλάσεις, γνωρίσματα και λειτουργίες Κλάσεις Γενικά πρότυπα που χρησιμοποιούμε για να δημιουργήσουμε στιγμιότυπα ανθρώπων, τοποθεσιών ή πραγμάτων Γνωρίσματα Ιδιότητες που περιγράφουν την κατάσταση του στιγμιοτύπου μιας κλάσης (ή ενός αντικειμένου) Λειτουργίες Ενέργειες που μπορεί να πραγματοποιήσει κάθε κλάση
Σχέσεις Περιγράφουν πώς σχετίζεται κάθε κλάση με τις υπόλοιπες Στη UML υπάρχουν τρεις βασικοί τύποι 1. Γενίκευσης Επιτρέπουν την κληρονομικότητα γνωρισμάτων και λειτουργιών 2. Συνάθροισης Συσχετίζουν μέρη με ολότητες 3. Συσχετισμού Άλλοι τύποι σχέσεων μεταξύ κλάσεων
ΚΑΡΤΕΣ CRC
Ευθύνες και συνεργασίες Κάθε κλάση έχει ευθύνες(responsibilities) και συνεργασίες (collaborations) Ευθύνες Γνώσης (ότι πρέπει να ξέρει το στιγμιότυπο) Πράξης (ότι πρέπει να μπορεί να κάνει) Συνεργασίες Αντικείμενα που συμπράττουν για να εξυπηρετήσουν μια λειτουργία/διαδικασία Π.χ. οι κλάσεις που απαιτούνται για την πραγματοποίση μιας περίπτωσης χρήσης
Μπροστινή όψη κάρτας CRC
Πίσω όψη κάρτας CRC
ΔΙΑΓΡΑΜΜΑΤΑ ΚΛΑΣΕΩΝ
Στοιχεία διαγράμματος κλάσεων
Ορατότητα γνωρισμάτων Στο διάγραμμα κλάσεων μπορεί να οριστεί η ορατότητα των γνωρισμάτων Τα δημόσια γνωρίσματα (+) είναι ορατά από όλες τις κλάσεις Τα ιδιωτικά γνωρίσματα (-) είναι ορατά μόνο από στιγμιότυπα της κλάσης στην οποία ορίζονται Τα προστατευμένα γνωρίσματα (#) μοιάζουν με τα ιδιωτικά, αλλά είναι ορατά και στις παραγόμενες κλάσεις (απογόνους) Η ορατότητα περιορίζει την προσπέλαση των γνωρισμάτων και διασφαλίζει έτσι τη συνέπεια και την ακεραιότητα
Λειτουργίες Κατασκευής Δημιουργούν αντικείμενα Ερωτημάτων Δίνουν πληροφορίες για την κατάσταση των αντικειμένων Ενημέρωσης Αλλάζουν την τιμή ορισμένων ή όλων των γνωρισμάτων
Περισσότερα στοιχεία των διαγραμμάτων κλάσεων
Πολλαπλότητες Τμήμα 1 1 Διευθυντής Ακριβώς ένα: Κάθε τμήμα διαθέτει έναν μοναδικό διευθυντή Υπάλληλος 1 0..* Παιδί Μηδέν ή περισσότερα: Κάθε υπάλληλος μπορεί να έχει από μηδέν έως πολλά παιδιά Διευθυντής 1 1..* Υπάλληλος Ένα ή περισσότερα: Ο διευθυντής είναι υπεύθυνος για έναν ή περισσότερους υπαλλήλους
Πολλαπλότητες 2 Υπάλληλος 1 0..1 Σύζυγος Μηδέν ή ένα: Κάθε υπάλληλος μπορεί να είναι παντρεμένος/η με μηδέν ή μία/έναν συζύγους Υπάλληλος 1 2..4 Διακοπές Καθορισμένο διάστημα: Κάθε υπάλληλος δικαιούται από 2 μέχρι 4 περιόδους διακοπών κάθε χρόνο Υπάλληλος 1 1..3, 5 Επιτροπή Πολλά ανεξάρτητα διαστήματα: Κάθε υπάλληλος είναι μέλος σε 1 έως 3 επιτροπές, ή σε 5 επιτροπές
Παράδειγμα διαγράμματος κλάσεων
Απλοποίηση των διαγραμμάτων κλάσεων Τα πλήρως συμπληρωμένα διαγράμματα κλάσεων πραγματικών συστημάτων είναι δυσνόητα Συνηθισμένοι τρόποι απλοποίησης των διαγραμμάτων κλάσεων: Εμφάνιση μόνο των συγκεκριμένων (concrete) κλάσεων Χρήση μηχανισμού απόψεων (view mechanism) ο οποίος θα δείχνει ένα υποσύνολο μερικών κλάσεων Χρήση πακέτων (packages) τα οποία θα δείχνουν συναθροίσεις κλάσεων (ή άλλων στοιχείων του διαγράμματος UML)
Διαγράμματα αντικειμένων
ΔΗΜΙΟΥΡΓΙΑ ΚΑΡΤΩΝ CRC ΚΑΙ ΔΙΑΓΡΑΜΜΑΤΩΝ ΚΛΑΣΕΩΝ
Βήματα για τη δημιουργία δομικών μοντέλων Δημιουργήστε κάρτες CRC Εξετάστε λίστες κοινών αντικειμένων "Παίξτε" τους ρόλους των καρτών CRC Δημιουργήστε το διάγραμμα κλάσεων Ελέγξτε το διάγραμμα κλάσεων Αναθεωρήστε το μοντέλο
Παράδειγμα: Μοντελοποίηση Έγγραφων
Παράδειγμα: Μοντελοποίηση Ιδιοκτητών/Οχημάτων
Παράδειγμα: Μοντελοποίηση Online - Παραγγελίες
28 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ
Βασικές έννοιες Τα συμπεριφορικά μοντέλα αναπαριστούν τις εσωτερικές δυναμικές πτυχές ενός πληροφοριακού συστήματος που υποστηρίζει τις επιχειρηματικές διαδικασίες ενός οργανισμού Τα βασικά συμπεριφορικά μοντέλα της UML: διαγράμματα ακολουθίας, διαγράμματα επικοινωνίας και συμπεριφορικές μηχανές καταστάσεων
Συμπεριφορικά μοντέλα Κάθε σύστημα έχει στατικά και δυναμικά χαρακτηριστικά Τα δομικά μοντέλα περιγράφουν τις στατικές πτυχές του Τα συμπεριφορικά μοντέλα περιγράφουν τις δυναμικές πτυχές και τις αλληλεπιδράσεις του συστήματος και των συστατικών στοιχείων του Τα συμπεριφορικά μοντέλα περιγράφουν πώς αλληλεπιδρούν οι κλάσεις, οι οποίες αναφέρονται στα δομικά μοντέλα, με σκοπό την υποστήριξη καθεμιάς από τις περιπτώσεις
ΔΙΑΓΡΑΜΜΑΤΑ ΑΚΟΛΟΥΘΙΑΣ
Συστατικά στοιχεία ενός διαγράμματος ακολουθίας Αντικείμενα συγκεκριμενοποίηση μιας κλάσης Λειτουργίες συμπεριφορές ενός στιγμιοτύπου κλάσης Μηνύματα πληροφορίες που στέλνονται στα αντικείμενα προκειμένου να εκτελέσουν κάποια από τις λειτουργίες (συμπεριφορές) τους
Διαγράμματα ακολουθίας Παρουσιάζουν τα αντικείμενα που συμμετέχουν σε μια συγκεκριμένη περίπτωση χρήσης Παρουσιάζουν τα μηνύματα που ανταλλάσσονται μεταξύ των αντικειμένων για μια συγκεκριμένη περίπτωση χρήσης
Σύνταξη διαγράμματος ακολουθίας
Σύνταξη διαγράμματος ακολουθίας 2
Παράδειγμα διαγράμματος ακολουθίας
Βήματα για την κατασκευή ενός διαγράμματος ακολουθίας Καθορίστε το θεματικό πλαίσιο Προσδιορίστε ποια αντικείμενα θα συμμετέχουν Ορίστε τη γραμμή ζωής κάθε αντικειμένου Παραθέστε τα μηνύματα από επάνω προς τα κάτω στο διάγραμμα με βάση τη σειρά αποστολής τους Προσθέστε την παρουσία εκτέλεσης στη γραμμή ζωής κάθε αντικειμένου Επικυρώστε το διάγραμμα ακολουθίας
ΑΝΑΛΥΣΗ CRUD
Ανάλυση CRUD Προσδιορίζει ενδεχόμενες συνεργασίες Ετικέτες για την αλληλεπίδραση των αντικειμένων με 4 πιθανούς τρόπους Create (Δημιουργία) Read (Ανάγνωση) Update (Ενημέρωση) Delete (Διαγραφή) Αναπαράσταση των αντικειμένων και των αλληλεπιδράσεων σε μήτρα Είναι περισσότερο χρήσιμη ως αναπαράσταση ολόκληρου του συστήματος
Παράδειγμα μήτρας CRUD