1 / 38

HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής , Ε.Μ.Π

HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής , Ε.Μ.Π. Περί Απαιτήσεων Λογισμικού. Γενικές Έννοιες Τεχνικές Μοντελοποίησης Απαιτήσεων Κλασική Τεχνική Αντικειμενοστραφής Τεχνική Διαγράμματα Χρήσης Ακολουθιακά Διαγράμματα Συνεργατικά Διαγράμματα.

idalia
Télécharger la présentation

HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής , Ε.Μ.Π

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HMMYΤεχνολογία ΛογισμικούΔιδάσκωνΚώστας ΚοντογιάννηςΑναπλ. Καθηγητής, Ε.Μ.Π

  2. Περί Απαιτήσεων Λογισμικού • Γενικές Έννοιες • Τεχνικές Μοντελοποίησης Απαιτήσεων • Κλασική Τεχνική • Αντικειμενοστραφής Τεχνική • Διαγράμματα Χρήσης • Ακολουθιακά Διαγράμματα • Συνεργατικά Διαγράμματα

  3. Κατηγοριοποίηση Διαγραμμάτων UML

  4. Αλληλεπίδραση (Interaction) • Αλληλεπίδραση: ορίζει και περιγράφει την επικοινωνία ανάμεσα σε αντικείμενα ή κλάσεις • Η επικοινωνία ορίζεται με την μορφή μηνυμάτων που ανταλλάσσονται ανάμεσα στα αντικείμενα ή τις κλάσεις • Τα μηνύματα μπορεί είναι κλήσεις σε συγκεκριμένες μεθόδους (method invocations) ή διαδικασίες που επηρεάζουν ένα αντικείμενο ή μια κλάση • Τα μηνύματα είναι μερικώς διατεταγμένα (partially ordered) σε σχέση με το χρόνο

  5. Διαγράμματα Αλληλεπίδρασης στη UML (Interaction Diagrams) • Η κατηγορία διαγραμμάτων αλληλεπίδρασης περιλαμβάνει τα: • Ακολουθιακά Διαγράμματα (Sequence Diagrams) • Συνεργατικά Διαγράμματα (Collaboration Diagrams) • Στη UML 2.0 τα Συνεργατικά Διαγράμματα ονομάζονται Επικοινωνιακά Διαγράμματα (Communication Diagrams)

  6. Διαγράμματα Αλληλεπίδρασης: Βασική Σημειολογία Στοιχείο Περιγραφή Σύνταξη Υλοποίηση - Περίπτωση (αντικείμενο, δεδομένα, ψηφίδεςκλπ.) Μια οντότητα με μοναδικά ορισμένη υπόσταση.Αυτή η οντότητα μπορεί να λαμβάνει μηνύματακαι μπορεί να βρίσκεται σε διαφορετικές καταστάσεις (states) name attr values Η προδιαγραφή μιας εκτελέσιμης εντολής. Μερικές εντολές είναι προκαθορισμένες π.χ. Create, Call, Destroy, and Uninterpreted. Κείμενο (textual) Δράση

  7. Διαγράμματα Αλληλεπίδρασης: Βασική Σημειολογία (Συν.) Στοιχείο Περιγραφή Σύνταξη Μήνυμα Ορίζει την επικοινωνία ανάμεσα σε δύο υλοποιήσεις. Δήλωση μιας λειτουργίας (service) που μπορεί να ζητηθεί από μια υλοποίηση και επηρεάζει τη συμπεριφορά του συστήματος. Κείμενο (textual) Λειτουργία Προδιαγραφή ενός μηνύματος ασύγχρονης επικοινωνίας ανάμεσα σε υλοποιήσεις. «Signal»Name Προδιαγραφή Μήνυματος parameters

  8. Διαγράμματα Αλληλεπίδρασης: Βασική Σημειολογία (Συν.) Στοιχείο Περιγραφή Σύνταξη Σύνδεσμος Σύνδεση ανάμεσα σε υλοποιήσεις. Όνομα μεταβλητής που λαμβάνει τιμές για ένα χαρακτηριστικό (attribute) πεδίο σε μια υλοποίηση (αντικείμενο). Κείμενο (textual) Χαρακτηριστική Τιμή

  9. Παραδείγματα Διαγραμμάτων Αλληλεπίδρασης x y z 1.1: a1.2: c a x y b 1.1.1: b c z Ακολουθιακό Διάγραμμα Sequence Diagram Συνεργατικό Διάγραμμα Collaboration Diagram

  10. name : Class other γραμμή ετοιμότητας (lifeline) Δομή Ακολουθιακού Διαγράμματος αντικείμενο (object symbol) μήνυμα - ερέθισμα (stimulus) name.op (…) ενεργοποίηση (activation) new (…) : Class τερματισμός (delete) επιστροφή από κλήση (return) κατασκευή (create)

  11. Σύγχρονη Επικοινωνία Ασύγχρονη Επικοινωνία Κατηγορίες Ερεθισμάτων Επικοινωνίας Επιστροφή από κλήση

  12. Ασύγχρονη Ροή Ένθετη Ροή teller caller exchange : Order : Article callee lift receiver getValue dial tone price dial digit dial digit getName ringing tone ringing signal lift receiver Παραδείγματα Ένθετη (Nested)Ροή teller : Order : Article getValue price getName

  13. value [ x > 0]: getValue () getValue () iterate () Κλήση με Συνθήκη, Επανάληψη Κλήσεων calculator filter [ x < 0]: transform ()

  14. Ακολουθιακό Διάγραμμα με Παράλληλα Ενεργοποιημένα Αντικείμενα

  15. System Level http://www.agilemodeling.com/artifacts/sequenceDiagram.htm

  16. Service Level http://www.agilemodeling.com/artifacts/sequenceDiagram.htm

  17. Ακολουθιακό Διάγραμμα Περίπτωσης Χρήσης http://www.agilemodeling.com/artifacts/sequenceDiagram.htm

  18. Παράδειγμα με Εναλλακτική Ροή http://www-128.ibm.com/developerworks/rational/library/3101.html

  19. Παράδειγμα με Προαιρετική Ροή http://www-128.ibm.com/developerworks/rational/library/3101.html

  20. Παράδειγμα με Επαναληπτική Ροή http://www-128.ibm.com/developerworks/rational/library/3101.html

  21. Σχόλια για τα Διαγράμματα Αλληλεπίδρασης • Ορίζουμε το πλαίσιο (context) και την εμβέλεια (scope) της αλληλεπίδρασης • Περιλαμβάνουμε στα διαγράμματα μόνο τις οντότητες που είναι σχετικές με την συγκεκριμένη περίπτωση • Η ροή είναι από αριστερά προς τα δεξιά και από πάνω προς τα κάτω • Τοποθετούμε τα πιο «δραστήρια» αντικείμενα / οντότητες πάνω αριστερά και τα πιο «παθητικά» αντικείμενα / οντότητες κάτω δεξιά. Ένα αντικείμενο είναι δραστήριο εάν αλλάζει την κατάσταση άλλων αντικειμένων, δημιουργεί νέα αντικείμενα, ή καταστρέφει υπάρχοντα αντικείμενα / οντότητες. Ένα αντικείμενο είναι παθητικό εάν απλά προσφέρει μια υπηρεσία. • Χρησιμοποιούμε ακολουθιακά διαγράμματα • Για να μοντελοποιήσουμε πως τα μηνύματα σχετίζονται με το χρόνο • Και όταν μοντελοποιούμε συστήματα πραγματικού χρόνου (real time systems) • Χρησιμοποιούμε επικοινωνιακά (συνεργατικα) διαγράμματα • Όταν θέλουμε να αναδείξουμε και τη δομή του συστήματος • Για να εστιάσουμε στο τι συνέπειες έχουν τα μηνύματα στα αντικείμενα

  22. Τι είναι Επικοινωνιακό (Συνεργατικό)Διάγραμμα • Το Επικοινωνιακό / Συνεργατικό διάγραμμα έχει σαν σκοπό να μοντελοποιήσει : • Την Συνεργασία / Επικοινωνία (Collaboration) ανάμεσα σε αντικείμενα / οντότητες. Η συνεργασία ορίζει τους ρόλους που παίζουν τα αντικείμενα / οντότητες όταν συμμετέχουν σε ένα σενάριο ή περίπτωση χρήσης. • Την Αλληλεπίδραση (Interaction) ανάμεσα σε αντικείμενα / οντότητες. Η αλληλεπίδραση ορίζει το τρόπο και το μοτίβο της επικοινωνίας (ανταλλαγής μηνυμάτων) ανάμεσα σε αντικείμενα / οντότητες που παίζουν κάποιο ρόλο σε μία συνεργασία • Έχουμε δύο ειδών Επικοινωνιακά Διαγράμματα • Επικοινωνιακά Διαγράμματα σε επίπεδο προδιαγραφής (specification level) • Επικοινωνιακά Διαγράμματα σε επίπεδο υλοποίησης (instance level)

  23. Συνεργασία και Αλληλεπίδραση (με Ρόλους) σε Επίπεδο Προδιαγραφής Sequence Diagram Collaboration Diagram / X / Y / Z 1.1: a1.2: c / X / Y a b 1.1.1: b c / Z

  24. Sequence Diagram Collaboration Diagram x y z 1.1: a1.2: c x y a b 1.1.1: b c z Συνεργασία και Αλληλεπίδραση σε Επίπεδο Υλοποίησης

  25. Επικοινωνιακό Διάγραμμα(Συνεργατικό Διάγραμμα) με Ρόλους σε Επίπεδο Προδιαγραφής (Specification level) / Teacher : Person student * 1 tutor / Student : Person position : Text program : Text faculty member * * participant 1 lecturer given course * faculty 1 * taken course : Course : Faculty

  26. Η Σχέση ανάμεσα στις έννοιες της Κλάσης (classifier), Αντικειμένου(instance), και Ρόλου Κλάσης (classifier role) Classifier ClassifierRole Attribute-1 Attribute-2 Attribute-3 Attribute-1 Attribute-2 Operation-1 (…) Operation-3 (…) Operation-1 (…) Operation-2 (…)Operation-3 (…) Instance «συμμορφώνεται με » «conforms to» «προέρχεται από» «originates from» AttributeValue-1 AttributeValue-2 AttributeValue-3

  27. Εταιρικότητα Association Κλάση Class Κλάση Class 0..5 {μπορεί να αλλάξει} «view of» «είναι μια σκοπία τηςκλάσης» «view of» {σταθερή} 3..4 / Role-1 / Role-2 Ρόλος Κλάσης ClassifierRole Ρόλος Εταιρικότητας ΄AssociationRole Association and Association Role Class-1 Class-2 Ρόλος Κλάσης ClassifierRole

  28. Ρόλοι και Κλάσεις Οι κλάσεις ορίζουν την πλήρη περιγραφή μιας οντότητας. Ο Ρόλος της κλάσηςορίζειτα απαραίτητα τμήματα της κλάσης για μια χρήσητης Role Model Class Model / Teacher : Person Person 1 * / Student : Person 0..1 name : Textposition : Textprogram : Text position : Text program : Text * * * * 1 1 * 0..1 * 1 * * * : Course Faculty Course : Faculty

  29. Επικοινωνιακό Διάγραμμα(Συνεργατικό Διάγραμμα) με Ρόλους σε Επίπεδο Προδιαγραφής (Specification level)

  30. αντικείμενο σύνδεσμος eρέθισμα (stimulus) window : Controller : Window window «parameter» 1: displayPositions (window) 1.1.3.1 add (self) wire contents {new} 1.1 *[i := 1..n]: drawSegment (i) {new}: Line «local» line wire :Wire 1.1.2: create (r0, r1)1.1.3: display (window) «self» 1.1.1a: r0 := position () 1.1.1b: r1 := position () left : Bead right : Bead Επικοινωνιακό Διάγραμμα(Συνεργατικό Διάγραμμα)σε Επίπεδο Υλοποίησης (Instance level) καθιερωμένο στερεότυπο (standard stereotype) redisplay () καθιερωμένο στερεότυπο (standard stereotype) περιορισμός καθιερωμένο στερεότυπο (standard stereotype) περιορισμός (constraint)

  31. 3.7 *[1..5]: move (5, 7) iteration 3.7 [ z > 0 ]: move (5, 7) condition Δομή Περιγραφής Μηνυμάτων Επικοινωνίας UML 1.4 ΑκολουθίαΑρίθμησης [Συνθήκες]:[ΤιμήΕπιστροφής = ] ΌνομαΜηνύματος(παράμετροι) move (5, 7) Σχήμα Αρίθμησης Μηνυμάτων: 1 : actionA 1.1. firstSubactionOfActionA 1.2. secondSubactionOfActionA 1.3. thirdSubactionOfActionA 2 : actionB 2.1. firstSubactionOfActionB 2.1. secondSubactionOfActionB ... 3.7.4: move (5, 7) 3.1: res := getLocation (fig) Τιμή επιστροφής Μήνυμα Παράμετροι Ακολουθία αρίθμησης

  32. Δομή Περιγραφής Μηνυμάτων Επικοινωνίας UML 2.0 • Η περιγραφή των μηνυμάτων μεταξύ οντοτήτων στα διαγράμματα επικοινωνίας στη UML 2.0 έχει την παρακάτω δομή ΑκολουθίαΑρίθμησης : [Συνθήκες] [ΤιμήΕπιστροφής = ] ΌνομαΜηνύματος(παράμετροι) [: ΤύποςΕπιστροφής] • Παράδειγμα 2.1:[owner >10] res = getName(owner) : string 5.1.2: getCourseName(course) : seminarName 4.2: callHandler(res)

  33. Επικοινωνιακό Διάγραμμα με Στερεότυπα

  34. Παράλληλα Μηνύματα Τα μηνύματα Α, Β είναι παράλληλα μεταξύ τους και τα μηνύματα C, D είναι και αυτά μεταξύ τους παράλληλα (concurrent) http://www.agilemodeling.com/style/collaborationDiagram.htm

  35. Πότε θα Πρέπει να Χρησιμοποιούμε Επικοινωνιακά Διαγράμματα • Χρησιμοποιούμε Επικοινωνιακά Διαγράμματα σαν εργαλείο για να βρούμε τις κλάσεις του συστήματος • Για να βρούμε τη σχέση ανάμεσα σε περιπτώσεις χρήσης και τις απαραίτητε κλάσεις • Για να απεικονίσουμε τις προδιαγραφές ενός συστήματος στην υλοποίηση του

  36. Παράδειγμα Περίπτωσης Χρήσης: Αλλαγή Ώρας Πτήσης • Δράστες: ταξιδιώτης, βάση δεδομένων, σύστημα κράτησης θέσεων Αεροπορικής Εταιρίας • Προαπαιτούμενα (Preconditions): • Ο Ταξιδιώτης έχει ήδη εγγραφεί στο σύστημα και έχει επιλέξει «αλλαγή ταξιδιού» • Βασική Πορεία Χρήσης • Το σύστημα ανακτά τις πληροφορίες του λογαριασμού και τη πτήση (πτήσεις) του ταξιδιώτη από τη βάση δεδομένων • Το σύστημα ρωτά τον ταξιδιώτη να επιλέξει κάποιο συγκεκριμένη πτήση; Ο ταξιδιώτης επιλέγει συγκεκριμένη πτήση • Το σύστημα ρωτά τον ταξιδιώτη για την προτεινόμενη νέα ώρα αναχώρησης; Ο ταξιδιώτης δίνει την συγκεκριμένη πληροφορία • Εάν η πτήση είναι διαθέσιμη ... • … • Το σύστημα παρουσιάζει τη περίληψη της συναλλαγής. • Εναλλακτικές πορείες χρήσης • Εάν η πτήση δεν είναι διαθέσιμη τοτε …

  37. Traveler Client Account DBMS Client Account DBMS Airline Reservation System : Booking System change flight itinerary get customer account select segment update information present itinerary present detailed info get itinerary available flight Ακολουθιακό Διάγραμμα – Αλλαγή Ώρας Πτήσης ::

  38. 1: change flight itinerary 2: get customer account3: get itinerary : Booking System 4: present itinerary Client Account DBMS Traveler 8: available flight Airline Reservation System Επικοινωνιακό Διάγραμμα – Αλλαγή Ώρας Πτήσης 5: select segment 7: update information 6: present detailed info

More Related