Εξαγωγή Απαιτήσεων Εξαγωγή των Απαιτήσεων Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@infuthgr Τί θέλουν οι πελάτες και οι χρήστες να κάνει το σύστηµα ιαδικασία εξαγωγής Τύποι και χαρακτηριστικά Τρόποι περιγραφής Εξαγωγή Απαιτήσεων Σηµειολογίες αναπαράστασης Πρωτοτυποποίηση Τεκµηρίωση Συµµετέχοντες στη διαδικασία εξαγωγής Επικύρωση Μετρήσεις Επιλογή τεχνικής για την προδιαγραφή Απαιτήσεις Μια απαίτηση είναι: ένα χαρακτηριστικό του συστήµατος ή Μια περιγραφή ενός βήµατος που το σύστηµα είναι ικανό να κάνει ώστε να εκπληρώσει το σκοπό του Τρείς κατηγορίες : πρέπει οπωσδήποτε να τηρηθούν εξαιρετικά επιθυµητές αλλά όχι αναγκαίες µπορούν ενδεχοµένως να παραλειφθούν Γιατί είναι οι απαιτήσεις σηµαντικές; Ηδιεργασίαεξαγωγής Οι αιτίες των αποτυχηµένων έργων Μη ολοκληρωµένες απαιτήσεις (3%) 2 Έλλειψη συµµετοχής χρηστών (24%) 3 Έλλειψη πόρων (6%) 4 Μη ρεαλιστικές προσδοκίες (99%) 5 Έλλειψη διοικητικής υποστήριξης (93%) 6 Αλλαγές στις απαιτήσεις και στις προδιαγραφές (87%) 7 Έλλειψη σχεδιασµού(8%) 8 Εξάλειψη των αναγκών για το σύστηµα (75%) Κάποιο τµήµα της εξαγωγής, του ορισµού και της διαχείρισης εµπλέκεται σ ολα τα παραπάνω ΕΞΑΓΩΓΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ Ανάλυση προβλήµατος Περιγραφή προβλήµατος Έχουµε συµπεριλάβει ρησιµοποιούµε όλες τις απαιτήσεις που τις σωστές τεχνικές έχει ο χρήστης: kαι οπτικές γωνίες; Πρωτοτυ ποποίηση και έλεγχος Είναι εφικτή αυτή η λειτουργία; ΟΡΙΣΜΟΣ ΚΑΙ ΠΡΟ ΙΑΓΡΑΦΗ ΑΠΙΤΗΣΕΩΝ Τεκµηρίωση και επικύρωση Έχουµε ενσωµατώσει οτιδήποτε περιµένει o χρήστης; Standish 995
Απαιτήσεις και σχεδίαση Τι; Οι απαιτήσεις προσδιορίζουν το πρόβληµα που λύνει το σύστηµα Πώς; Ησχεδίασηορίζειτηλύσητου προβλήµατος Συγκεκριµένες περιγραφές υλοποίησης (πχ γλώσσα προγραµµατισµού) δεν θεωρούνται απαιτήσεις εκτός κι αν ξεκάθαρα απαιτούνται από τους πελάτες ιαχείριση Σχηµατισµών Παρακολουθεί τη σύνδεση των διαφόρων τµηµάτων του συστήµατος κατά την πορεία της διεργασίας ανάπτυξης λογισµικού Απαιτήσεις που ορίζουν τι πρέπει να κάνει το σύστηµα Μονάδες σχεδίου που παράγονται από τις απαιτήσεις Κώδικα προγράµµατος που υλοποιεί το σχέδιο Έλεγχοι που επαληθεύουν τη λειτουργικότητα του συστήµατος Έγγραφα που περιγράφουν το σύστηµα ιαχείριση Σχηµατισµών Λειτουργικές και µη λειτουργικές απαιτήσεις Σκοπός και στόχοι Πρόβληµα Εξαγωγή και ανάλυση Κατανόηση προβλή µατος Ορισµός Προδια γραφές Σχεδίαση Υλοποίηση Επαλήθευση Συστατικά του σχεδίου και περι πτώσεις χρήσης Συστατικά Του κώδικα Και έλεγχοι µονάδων Κατανόηση του πεδίου εφαρµογής του προβλήµατος εδοµένα Και σενάρια ελέγχου Οι λειτουργικές απαιτήσεις περιγράφουν αλληλεπιδράσεις του συστήµατος µε το περιβάλλον του, πχ Το σύστηµα θα πρέπει να επικοινωνεί µε το εξωτερικό σύστηµα X Γιανασταλείτοµήνυµα τύπουαθαπρέπειναπληρούνταιοι προϋποθέσεις Β και Γ Οι µη λειτουργικές απαιτήσεις περιγράφουν περιορισµούς στο σύστηµα που περιορίζουν τους τρόπους κατασκευής της λύσης του προβλήµατος Οι επιταγές θα πρέπει να διανέµονται το πολύ σε 4 ώρες από το τέλος της εισόδου των µισθοδοσίας Οι λειτουργίες του συστήµατος Μ θα είναι διαθέσιµες µόνο στους διευθυντές τµηµάτων Έγγραφα Ορισµός (requirements definition) είναι η πλήρης καταγραφή του τι περιµένει ο χρήστης να κάνει το σύστηµα Η προδιαγραφή των (Requirements specification) επανεκθέτει τον ορισµό των µε τεχνικούς όρους κατάλληλους για χρήση στη σχεδίαση του συστήµατος Πολλές φορές ένα έγγραφο είναι αρκετό Υπάρχουν διάφορα πρότυπα (templates) εγγράφων (πχ απο IEEE και BCS) Καθορισµός ελέγξιµων Ποσοτική περιγραφή κάθε επιρρήµατος και επιθέτου ώστε να είναι σαφής και κατανοητή Αντικατάσταση των αντωνυµιών µε συγκεκριµένα ονόµατα οντοτήτων Κάθε ουσιαστικό πρέπει να ορίζεται σε ακριβώς ένα σηµείο στο κείµενο Robertson & Robertson 999 Πχ η απόδειξη θα πρέπει να εκτυπώνεται το πολύ σε 5 sec από τη χρέωση του ποσού αγοράς 2
Τύποι Απαιτήσεων Φυσικό περιβάλλον ιασυνδέσεις ρήστες και ανθρώπινοι παράγοντες Λειτουργικότητα Τεκµηρίωση εδοµένα Πόροι Ασφάλεια Εξασφάλιση ποιότητας Τρόποι ανίχνευσης των επιθυµιών του πελάτη Επανεξέταση της κατάστασης (απαιτήσεις πελάτη, περιβάλλον, χρήστες) Λεπτοµερή συζήτηση µε τοχρήστηγιακατανόηση προβληµάτων που µπορεί να προκύψουν Παράδειγµα τουπωςθαδουλεύειτονέοσύστηµα (βίντεο, πρωτότυπο, µοντέλο προσοµοίωσης) Έλεγχος υπαρχόντων κειµένων και λογισµικού σχετικών µε το σύστηµα που θα αναπτυχθεί Robertson & Robertson 999 αρακτηριστικά των Έλεγχος των για διασφάλιση ότι είναι: Σωστές Συνεπής Πλήρης Ρεαλιστικές Απαραίτητες Επαληθεύσιµες Ιχνηλάσιµες Έλεγχος για πληρότητα και συνέπεια Ένας απλός έλεγχος γίνεται µε ένα πίνακα αλήθειας Για παράδειγµα για δυο δυαδικές µεταβλητές A, B, Ορίζουµε την και συνάρτηση F ηµιουργούµε τονπίνακα αλήθειας για όλες τις περιπτώσεις Αν όλες οι αναφορές/ορισµοί για τις A,B,F στις απαιτήσεις είναι σύµφωνες µε τον πίνακα αλήθειας τότε αυτές είναι συνεπής Αν κάθε γραµµή του πίνακα αλήθειας ορίζεται στην περιγραφή των τότε αυτές είναι πλήρεις A B F Περιγραφή Περιγραφή µε χρήση φυσικής γλώσσας Εύκολη στην εφαρµογή αλλά µπορεί να οδηγήσει σε λάθη λόγω της ασάφειας της φυσικής γλώσσας ρήση µιας συστηµατικής σηµειολογίας για περιγραφή του συστήµατος Στατικές περιγραφές Προσδιορισµός των αντικειµένων και των σχέσεων µεταξύ τους υναµικές περιγραφές Προσδιορισµός των καταστάσεων του συστήµατος και των µεταβάσεων που µπορεί να συµβούν µε την πάροδο του χρόνου Στατικές περιγραφές Έµµεση αναφορά Αναδροµικές σχέσεις Αξιωµατικός ορισµός Έκφραση σε µορφή τυπικής γλώσσας Αφαίρεση 3
Έµµεση αναφορά Εννοείται αλλά δεν αναφέρεται ευθέως Ένα σύνολο αριθµών µπορεί να περιγραφεί έµµεσα µε ένα σύστηµα εξισώσεων στη λύση του οποίου αντιστοιχεί Μια τιµή στη γλώσσα C µπορεί να περιγραφεί έµµεσα µε χρήση δεικτών σε δείκτες: A -> P όπου &P = 5 Αναδροµικές σχέσεις Ορίζεται µια αρχική συνθήκη Ο µετασχηµατισµός από µια κατάσταση στην επόµενηπεριγράφεταισεσχέσηµε προηγούµενες καταστάσεις Πχ η ακολουθίαfibonacci F() = F() = F(n+) = F(n) + F(n-) για n =, 2, 3, Αξιωµατικός ορισµός Αξίωµα Ένα σύνολο αντικειµένων (πχ υλικά) Ένα σύνολο λειτουργιών (πχ θέρµανση) Προσδιορισµός των σχέσεων µεταξύ αντικειµένων και λειτουργιών Ορισµός θεωρηµάτων χρήση των αξιωµάτων για την παραγωγή περισσότερων αντικειµένων Απόδειξη θεωρηµάτων Μετατροπή των θεωρηµάτων σε αξιωµάτων µε χρήση των λειτουργιών Πχ σύστηµα ελέγχου θερµοκρασίας σε βιοµηχανικό κλίβανο Αξιώµατα: Το υλικό Α µπορεί να θερµαίνεται σε θερµοκρασία Τ =5 C 2 Το υλικό Β µπορεί να θερµαίνεται σε θερµοκρασία Τ 2 =9 C 3 Τα µίγµατα θα θερµαίνονται σε θερµοκρασία µικρότερη ή ίση της µέγιστης επιτρεπτής θερµοκρασίας του κάθε συστατικού T(XY) = min {TmaxX, TmaxY} Θεώρηµα: Το µίγµα ΑΒ µπορεί να θερµαίνεται σε θερµοκρασία Τ=5 C Έκφραση µε µορφή γλώσσας ρήση τυπικών γλωσσών περιγραφής Πχ για την είσοδο σε ένα επεξεργαστή κειµένου χρησιµοποιούµε τηbackus-naur form χαρακτήρες ASCII <digit> ::= 2 3 4 5 6 7 8 9 <addop> ::= + - Έκφραση µε µορφή γλώσσας <condi t i on> : : = <bool - t er m> <bool - t er m> or <condi t i on> <bool - t er m> : : = <bool - f act or > <bool - f act or > and <bool - term> <bool - f act or > : : = <expr > <r el op> <expr > ( <condi t i on>) <r el op> : : = < < = > > < > <expr > : : = <t er m> <expr > <addop> <t er m> <addop> <expr > <t er m> : : = <f act or > <t er m> <mpyop> <f act or > <f act or > : : = <scal ed- expr > <pr i mar y> <scal ed- expr > : : = ( <expr >) <scal e> <number > <scal e> <pr i mar y> : : = ( <expr >) <r egname> <number > <f unc> ( <expr >) <number > : : = <i nt eger > <i nt eger > <i nt eger > <i nt eger > <i nt eger > <r egname> : : = $ <r egchar > <r egname> <r egchar > <i nt eger > : : = <di gi t > <di gi t > <i nt eger > <r egchar > : : = <di gi t > <l et t er > <under scor e> <addop> : : = + - <di gi t > : : = 2 3 4 5 6 7 8 9 <f unc> : : = abs t r unc <letter> ::= A a B b C c D d E e Y y Z z <myop> ::= * / mod <scale> ::= c d h i l P p q t v <under scor e> : : = _ ( ASCI I char act er 95) Αφαίρεση Οι ενέργειες που γίνονται από ένα σύστηµα προσδιορίζονται από τα δεδοµένα που αυτό διαχειρίζεται Η αφαίρεση είναι µια τεχνική για να περιγράφουµε ποιος είναι ο σκοπός των Τα δεδοµένα (αντικείµενα) κατηγοριοποιούνται σε οµάδες σχηµατίζοντας δοµές ή τύπους (κλάσεις) Κάθε αντικείµενο θεωρείται σαν στιγµιότυπο της κλάσης στην οποία ανήκει Οι επιτρεπτές ενέργειες στις κλάσεις και στα αντικείµενα περιγράφονται από µεθόδους Οι κλάσεις και τα αντικείµενα καθώς και οι σχέσεις µεταξύ τουε περιγράφονται σε λεξικό 4
Σχέσεις µεταξύ δοµών (κλάσεων) Γενίκευση Φοιτητής επαρχίας Κωδικός φοιτητή ρέωση επαρχίας Υπολογισµός διδάκτρων Φοιτητής Κωδικός φοιτητή Μαθήµατα Υπολογισµός διδάκτρων Όνοµακλάσης αρακτηριστικά Μέθοδοι Φοιτητής εκτός επαρχίας Κωδικός φοιτητή ρέωση εκτός επαρχίας Υπολογισµός διδάκτρων Μέθοδοι Επιτρεπτές ενέργειες στα δεδοµένα και στους τύπους Οι µέθοδοι διαχειρίζονται τα δεδοµένα και περιέχουν τρεις τύπους πληροφοριών: Ορίζουν τις καταστάσεις στις οποίες µπορεί να είναι τα δεδοµένα Λειτουργίες για δηµιουργία νέων καταστάσεων Αναφορές για πληροφορίες σχετικά µε µια κατάσταση υναµικές περιγραφές Πίνακες αποφάσεων Συναρτησιακές περιγραφές και διαγράµµατα µετάβασης Πίνακες συµβάντων ή γεγονότων ίκτυα Petri ιαγράµµατα ροής Πίνακες αποφάσεων Περιγραφή συνόλου πιθανών καταστάσεων σε κάποιο χρόνο Κανόνες ενέργειας όταν πληρούνται συγκεκριµένες συνθήκες Ενέργειες που λαµβάνουν χώρα, πχ Condition : Υψηλοί βαθµοί εξετάσεων Condition 2: Υψηλοί βαθµοί σχολείου Action: Αποστολή φόρµας εισαγωγής Πίνακες αποφάσεων Συναρτησιακές περιγραφές και ιαγράµµατα µετάβασης Υψηλός µέσος όρος βαθµών στις γενικές εξετάσεις Υψηλοί βαθµοί σχολείου Εξωτερικές δραστηριότητες Συστατικές επιστολές Απόρριψη Κανόνας Α Κανόνας 2 Α Κανόνας 3 Α Κανόνας 4 Α Κανόνας 5 Σύνολο καταστάσεων, S Αρχική κατάσταση, S Σύνολο εισόδων, I Συνάρτηση µετάβασης καταστάσεων f Συνάρτηση εξόδου, H Cj Αποδοχή f(si, Cj) = Sk S i S k 5
Συναρτησιακές περιγραφές και ιαγράµµατα µετάβασης Μεταβάσεις µεταξύ καταστάσεων Τρέχουσα κατάσταση S S S2 S2 S3 S3 Είσοδος Επόµενη Κατάσταση S2 S S2 S S S3 (a) (b) X S S 2 S S S 2 Πίνακας Μεταβάσεων (καµία) Έγινε αίτηση Σε λίστα αναµονής Επιβεβαιώθηκε ρησιµοποιήθηκε ιάγραµµα φράκτη Μετάβαση καταστάσεων σε UML συνθήκη ενέργειες S S 2 Ακυρώθηκε Αρχειοθετήθηκε Μεταβάσεις καταστάσεων για σύστηµα κράτησης θέσεων ξενοδοχείου Μπορούµε ναβάζουµε ετικέτες στα βέλη αν αυτό είναι απαραίτητο Παράδειγµα χρήσηςuml Πίνακας συµβάντων ιαθέσιµο δωµάτιο Μείωση του µετρητή δωµατίων κατά Οπελάτηςπαίρνειτοδωµάτιο καµία Ο πελάτης αποχωρεί Αύξησε το µετρητή δωµατίων Έγινε επιβεβαίωση Ο πελάτης είναι στο δωµάτιο Καµία Έγινε αίτηση ιαθέσιµο δωµάτιο Μείωσε το µετρητή δωµατίων κατά Ο πελάτης ακυρώνει την κράτηση Αύξησε το µετρητή δωµατίου Αρχειοθετήθηκε Αίτηση για δωµάτιο καµία Στη λίστα αναµονής Ακυρώθηκε εν υπάρχει διαθέσιµο δωµάτιο Τοποθέτησέ τον στη λίστα Ο πελάτης βαρέθηκε να περιµένει Αφαίρεσέ τον από τη λίστα Επίσης και πίνακας γεγονότων ή καταστάσεων Πινακοποίηση των µεταβάσεων των καταστάσεων Γεγονότα Καταστάσεις, σύνολα συνθηκών So c,c2 a (->s) a, α2 (->s) a (->s) s, a (->s) ιαφορές µε πίνακα µεταβάσεων Α) Μπορούµε ναέχουµε και σύνολα συνθηκών στην πρώτη στήλη εκτός από καταστάσεις Β) Στα κελιά του πίνακα γράφουµε τις ενέργειες που θα γίνουν και όχι την τελική κατάσταση 6
Πίνακας συµβάντων Τρόπος Λειτουργίας Γραφικά Αρχιτεκτονική Κανονικός Συµβάν Ενέργεια Συµβάν 2 Ενέργεια 8 Ενέργεια 2 ακολουθού µενη από ενέργεια 3 Ενέργεια 4 Συµβάν 3 Ενέργειες 5 και 6 παράλληλα Ενέργειες, 2 και 3 Συµβάν 4 Ενέργεια 7 Πίνακας συµβάντων αυτοµατοποιηµένου υπολογιστικού συστήµατος = δεν υπάρχει αλλαγή κατάστασης = ο συνδυασµός αυτός δεν είναι δυνατός ιαγράµµατα Petri Περιγράφουν παράλληλη επεξεργασία f(s i, C j, C j2, C jν, ) = S k συγχρονισµός σύµβολα: κάθε κατάσταση συνδέεται µε ένα σύνολο συµβόλων Κανόνες ενεργοποίησης: κάθε κανόνας ενεργοποίησης περιγράφει το πως τα σύµβολα σχετίζονται µε µια κατάσταση Όταν υπάρχει ο σωστός αριθµός και τύπος συµβόλων σε µια κατάσταση τα σύµβολα ελευθερώνονται και µεταφέρονται σε άλλη κατάσταση Τρείς τύποι µεταβάσεων Σύµβολα και κανόνες ενεργοποίησης (a) A γεγονός γεγονός S (a) (b) (c) A A γεγονός 2 γεγονός N γεγονός γεγονός Ν S S Sn (b) ιαθέσιµα Φαρµακευτικά προϊόντα Ιεραρχικές τεχνικές Προϊόντα που παραδίδονται χωρίς συνταγή Προϊόντα που παραδίδονται µε συνταγή Βαρβιτουρικά (n ) Ναρκωτικά (n2) Στεροειδή (n 3 ) {Άλλα ιαγράµµατα ροής Θεωρούν το σύστηµα σαν µετατροπέα Πως τα δεδοµένα ρέουν στο σύστηµα, Πώς µετατρέπονται, και Πως φεύγουν από το σύστηµα ΟΑποθηκευτικόςχώροςαντιστοιχεί σε βάση ειριστής (actor) είναι µια οντότητα που παρέχει ή λαµβάνει δεδοµένα 7
Σύµβολα σε διαγράµµατα ροής (a) (b) εδοµένα εισόδου εδοµένα εισόδου ιεργασία Αποθηκευτικός χώρος εδοµένα εισόδου ιεργασία εδοµένα εξόδου Παράδειγµα διαγράµµατος ροής Γνώσεις ιατρικής και εµπειρία Ιατρική εξέταση ιάγνωση Συµπτώµατα Γιατρός Φάρµακα Κατάλογος εξετάσεων που έγιναν ιάγνωση Ιστορικό ασθενούς Λογιστικά Λογαριασµός Καρτέλα ασθενούς Εξετάσεις που έγιναν Τιµές Ασθενής Λογιστικά βιλία 8