HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ
Περί Απαιτήσεων Λογισμικού Γενικές Έννοιες Τεχνικές Μοντελοποίησης Απαιτήσεων Κλασική Τεχνική Αντικειμενοστραφής Τεχνική Διαγράμματα Χρήσης Ακολουθιακά Διαγράμματα Συνεργατικά Διαγράμματα
Τύποι Μοντέλων για ένα Σύστημα Λογισμικού Μοντέλο Περιγραφής Λειτουργίας (Functional Model) Παρουσιάζει και περιγράφει τη λειτουργία(ες) του συστήματος από τη σκοπιά του χρήστη Χρησιμοποιούμε Διαγράμματα Χρήσης (Use case diagrams) Στατικό Μοντέλο Δομής (Object Model) Παρουσιάζει και περιγράφει τη στατική δομή του συστήματος και των υποσυστημάτων σαν ένα σύνολο από κλάσεις, αντικείμενα, οντότητες και σχέσεις ανάμεσα σε αυτά Χρησιμοποιούμε Διαγράμματα Κλάσεων, Ψηφιδικά Διαγράμματα, Παραταξιακά Διαγράμματα Δυναμικό Μοντέλο Συμπεριφοράς (Dynamic Model) Παρουσιάζει και περιγράφει την εσωτερική λειτουργία του συστήματος (κάθε μιας λειτουργίας από όλες τις κλάσεις) Χρησιμοποιούμε Ακολουθιακά Διαγράμματα, Διαγράμματα Δραστηριότητας, και Διαγράμματα Κατάστασης
Μοντελοποίηση με τη γλώσσα UML Μοντελοποίηση Απαιτήσεων Σενάρια, Διαγράμματα Χρήσης (Scenaria, Use Case Diagrams) Μοντελοποίηση στατικής δομής του συστήματος Διαγράμματα Κλάσεων (Class Diagrams) Διαγράμματα Αντικειμένων (Object Diagrams) Ψηφιδικά Διαγράμματα (Component Diagrams) Παραταξιακά Διαγράμματα (Deployment Diagrams) Μοντελοποίηση δυναμικών χαρακτηριστικών του συστήματος Ακολουθιακά Διαγράμματα (Sequence Diagrams) Συνεργατικά Διαγράμματα (Collaboration Diagrams – Communication Diagrams στη UML 2.0) Μοντελοποίηση της συμπεριφοράς συγκεκριμένων αντικειμένων Διαγράμματα Κατάστασης (State Diagrams) Μοντελοποίηση των βημάτων εκτέλεσης μιας διαδικασίας Διαγράμματα Δραστηριότητας (Activity Diagrams) Περιγραφή λειτουργίας από τη σκοπιά του χρήστη Στατική Δομή Συμπεριφορά
Τα Στοιχεία της γλώσσας UML 1.x Κοινοί μηχανισμοί Δομικά Στοιχεία Πράγματα Σχέσεις Διαγράμματα Στατική Δομή Συμπεριφορά Ομαδοποίηση Σχολιασμός Class Interface Active class Component Node Interaction State machine Package Note Dependency Association Generalization Realization Object Use case Sequence Collaboration/ Communication Statechart Activity Deployment Κανόνες name, scope, visibility Collaboration (Communication in UML 2.0)
Κατηγοριοποίηση Διαγραμμάτων UML 2.0
Κατηγορίες Διαγραμμάτων UML Κατηγορίας Διαγραμμάτων Δομής (Structural diagrams) Διαγράμματα Στατικής Δομής (Static structural diagrams) Διαγράμματα Κλάσεων (Class diagrams) Διαγράμματα Αντικειμένων (Object diagrams) Διαγράμματα Υλοποίησης (Implementation diagrams) Ψηφιδικά Διαγράμματα (Component diagrams) Παραταξιακά Διαγράμματα (Deployment diagrams) Κατηγορία Διαγραμμάτων Συμπεριφοράς (Behavior diagrams) Διαγράμματα Χρήσης (Use case diagrams) Κατηγορία Διαγραμμάτων Αλληλεπίδρασης (Interaction diagrams) Ακολουθιακά Διαγράμματα (Sequence diagrams) Συνεργατικά Διαγράμματα (Communication - Collaboration diagrams) Διαγράμματα Κατάστασης (State diagrams) Διαγράμματα Δραστηριότητας (Activity diagrams)
Κατηγοριοποίηση Διαγραμμάτων UML – Διαγράμματα Χρήσης – Διαγράμματα Κατάστασης
Διαγράμματα Χρήσης Διάγραμμα που αποτελείται από περιπτώσεις χρήσης, δράστες, και σχέσεις συνάφειας (relationships) μεταξύ των δραστών και των υπηρεσιών του συστήματος Για τα Διαγράμματα Χρήσης επιλέγουμε μόνο τις υπηρεσίες που είναι «ορατές» από ένα εξωτερικό σύστημα (δράστη) Τα Διαγράμματα Χρήσης μπορούν να εφαρμοσθούν με δύο τρόπους Για να μοντελοποιήσουν το πλαίσιο (context) του συστήματος Ποιοι δράστες αλληλεπιδρούν με ποια σημεία του συστήματος Μοντελοποίηση των απαιτήσεων του συστήματος. Ποιες είναι οι λειτουργίες του συστήματος
Σχέση Μοντέλων Χρήσης με Άλλα Μοντέλα Μοντέλο Χρήσης Επιβεβαιώνεται από Επιτυγχάνεται από Υλοποιείται από Σχεδιαστικό Μοντέλο Μοντέλο Υλοποίησης Μοντέλο Ελέγχου
Δομικά Στοιχεία Διαγραμμάτων Χρήσης (1)
Δομικά Στοιχεία Διαγραμμάτων Χρήσης (2) <<extend>>
Δομικά Στοιχεία Διαγραμμάτων Χρήσης (3) <<include>>
Παράδειγμα Διαγράμματος Χρήσης Μια οντότητα μπορεί να παίξει τον ρόλο ενός ή περισσότερου δραστών την ίδια στιγμή Billing System
Παράδειγμα Διαγράμματος Χρήσης
Παράδειγμα Διαγράμματος Χρήσης
Στερεότυπες σχέσεις <<include>>, <<extend>> (set priority) Place order Extension points set priority Place rush order <<include>> Check password Track order <<include>> Validate user Retinal scan
Μοντέλο Χρήσης = Διαγράμματα Χρήσης και Περιγραφές Χρήσης Κωδικό όνομα χρήσης Συνοπτική περιγραφή Ροή γεγονότων (events) Προαπαιτούμενες συνθήκες Επακόλουθες συνθήκες Περιγραφές χρήσης Διαγράμματα χρήσης Ειδικές απαιτήσεις Δράστες Περιπτώσεις Χρήσης ... Περιγραφές Χρήσης
Ροή των Γεγονότων σε μια Περίπτωση Χρήσης Έχει ένα βασικό και ομαλό μονοπάτι διαδικασιών (“Happy Path”) Ένα ή περισσότερα ενναλλακτικά μονοπάτια Ομαλές περιπτώσεις Παράξενες περιπτώσεις Παθολογικές περιπτώσεις “Happy Path”
Βήματα Μοντελοποίησης Απαιτήσεων του Συστήματος Ορισμός του περιβάλλοντος (δραστών - actors) Ορισμός της συμπεριφοράς που αναμένεται από κάθε δράστη Ορισμός βασικών συμπεριφορών του συστήματος με τη μορφή περιπτώσεων χρήσης Παραγοντοποίηση κοινών συμπεριφορών σε νέες ενοποιημένες περιπτώσεις χρήσης Υλοποίηση περιγραφών περιπτώσεων χρήσης Μοντελοποίηση των περιπτώσεων χρήσης, δραστών και σχέσεων μεταξύ τους με τη μορφή Διαγράμματος Χρήσης
Χρήσιμες Συμβουλές για την Παραγωγή Μοντέλων Χρήσης Μια περίπτωση χρήσης περιγράφει κάποια σημαντική και πλήρως κατανοητή λειτουργία του συστήματος (από τη σκοπιά του χρήστη - και των προγραμματιστών) Τα σενάρια (περιπτώσεις χρήσεις) ορίζονται με τη χρήση κάποιου κειμένου που περιέχει ουσιαστικά και ρήματα. Τα ουσιαστικά θα μα βοηθήσουν να ορίσουμε τις κλάσεις και τα ρήματα τις δραστηριότητες. Παραγοντοποίηση των περιπτώσεων χρήσης που χρησιμοποιούνται και από άλλα σενάρια Εάν η περίπτωση χρήσης απαιτείται τότε χρησιμοποιούμε <<include>> Εάν η περίπτωση χρήσης είναι προαιρετική τότε χρησιμοποιούμε <<extend>> Ένα διάγραμμα χρήσης Περιέχει περιπτώσεις στο ίδιο επίπεδο αφαίρεσης Περιέχει μόνο τους απαραίτητους δράστες Πολλές και συναφείς περιπτώσεις χρήσεις μπορούν να συμπτυχθούν σε συσκευασίες (packages)
Παράδειγμα Διαγράμματος Χρήσης UML http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/Intro.html
Παράδειγμα Διαγράμματος Χρήσης UML Σωστό Λάθος http://www.andrew.cmu.edu/course/90-754/umlucdfaq.html
Ανασκόπηση Βημάτων για Μοντελοποίηση Απαιτήσεων Βήματα: Αρχική ιδέα από τον χρήστη Επανάληψη βημάτων 3-5 έως ότου όλες οι λειτουργικές απαιτήσεις έχουν μελετηθεί 3. Ορισμός σεναρίων 4. Ομαδοποίηση σεναρίων με τη μορφή περιπτώσεων χρήσης 5. Παραγοντοποίηση, ενοποίηση, απλοποίηση και επιλογή περιπτώσεων χρήσης 6. Ορισμός δομημένων περιγραφών χρήσης για κάθε περίπτωση χρήσης 7. Ορισμός και υλοποίηση Διαγράμματος Χρήσης Μοντέλο Χρήσης = Διάγραμμα Χρήσης + Περιγραφές Χρήσης. Έχουμε ένα Μοντέλο Χρήσης για κάθε λειτουργική απαίτηση του χρήστη Προδιαγραφή Λειτουργικών Απαιτήσεων = Μοντέλα Χρήσης + Ακολουθιακά Διαγράμματα + Επικοινωνιακά Διαγράμματα + υποστηρικτικό υλικό Προδιαγραφή Απαιτήσεων = Προδιαγραφή Λειτουργικών Απαιτήσεων + Προδιαγραφή Μη-Λειτουργικών Απαιτήσεων + υποστηρικτικό υλικό