Ορισμός Απαιτήσεων και Εξειδίκευση Τεχνικές για ορισμό και εξειδίκευση των απαιτήσεων συστήματος λογισμικού
Στόχοι Υπόδειξη μεθόδου για συγγραφή του ορισμού των απαιτήσεων Περιγραφή τρόπων για συγγραφή επακριβών περιγραφών Επεξήγηση της σπουδαιότητας των μη - λειτουργικών χαρακτηριστικών Περιγραφή διαφορετικών τύπων μη - λειτουργικών απαιτήσεων και πως αυτές μπορούν να περιγραφούν
Θέματα που Καλύπτονται Ορισμός Απαιτήσεων Εξειδίκευση Απαιτήσεων Μη - λειτουργικές απαιτήσεις
Ορισμός και Εξειδίκευση Ορισμός Απαιτήσεων Περιγραφή των λειτουργιών και περιορισμών του συστήματος όσον αφορά τον πελάτη Εξειδίκευση Απαιτήσεων Επακριβείς και λεπτομερείς περιγραφές της λειτουργικότητας και των περιορισμών του συστήματος. Χρησιμοποιείται για την κατανόηση του τι απαιτούμε από τα άτομα τα οποία θα αναπτύξουν το σύστημα και είναι η βάση για υπογραφή συμβολαίου για την ανάπτυξη του συστήματος
Ορισμός Απαιτήσεων Εξειδικεύει την εξωτερική συμπεριφορά του συστήματος ώστε να μην χρησιμοποιείται υπολογιστικό σύστημα για τον ορισμό των απαιτήσεων Περιλαμβάνει λειτουργικά και μη-λειτουργικά χαρακτηριστικά Τα λειτουργικά χαρακτηριστικά είναι περιγραφές των λειτουργιών που παρέχει το σύστημα Οι μη - λειτουργικές απαιτήσεις είναι περιορισμοί στις υπηρεσίες και λειτουργίες που προσφέρει το σύστημα
Συγγραφή Ορισμών Απαιτήσεων Φυσική γλώσσα που υποστηρίζεται από διαγράμματα και πίνακες Με αυτό τον τρόπο όμως προκύπτουν τρεις τύποι προβλημάτων Έλλειψη σαφήνειας. Η ακρίβεια είναι δύσκολη αν δεν γίνει η έκθεση δύσκολη στο διάβασμα Σύγχυση απαιτήσεων. Δεν είναι σαφής ο διαχωρισμός μεταξύ λειτουργικών και μη - λειτουργικών απαιτήσεων Συγχώνευση απαιτήσεων. Πολλές δύσκολες απαιτήσεις εκφράζονται μαζί
Απαιτήσεις Βάσης Δεδομένων APSE διαμόρφωσης που είναι αντικείμενα τα οποία είναι ομάδες αντικειμένων στην βάση δεδομένων. Οι δυνατότητες ελέγχου διαμόρφωσης επιτρέπουν πρόσβαση σε μία ομάδα με χρήση ενός μη πλήρους ονόματος.
Συντάκτης Απαιτήσεων Grid με χρήση του πίνακα ελέγχου. Αρχικά όμως είναι κλειστό και μπορεί να ανοίξει ή να κλείσει οποιαδήποτε στιγμή. Επίσης μία άλλη δυνατότητα θα ήταν να μπορούμε να μειώσουμε το μέγεθος για να βλέπουμε αντίστοιχα χωρίς πλήρη επικάλυψη. .
Ορίζοντας Απαιτήσεις Ο συντάκτης απαιτήσεων αναμιγνύει λειτουργικές και μη - λειτουργικές απαιτήσεις και δεν είναι πλήρης Η κριτική είναι εύκολη αλλά είναι πολύ δύσκολο να γράψουμε καλούς ορισμούς απαιτήσεων Χρήση πρότυπης φόρμας με προκαθορισμένα πεδία για συμπλήρωση, πράγμα το οποίο κάνει πιο δύσκολο το να χαθεί κάποια πληροφορία
Ορισμός Συντάκτη grid 2.6 Δυνατότητες Grid 2.6.1 Ο συντάκτης πρέπει να παρέχει πίνακα οριζόντιων και κάθετων γραμμών που παρέχουν το υπόβαθρο σε ένα παράθυρο συντάκτη Το grid αυτό θα είναι παθητικό όπου η τοποθέτηση των οντοτήτων είναι ευθύνη του χρήστη. Βοηθάει τον χρήστη να δημιουργήσει ένα δύσκολο διάγραμμα με καλά τοποθετημένες οντότητες. be a passive grid where the alignment of entities is the user's responsibility. 2.6.2 Όταν χρησιμοποιείται η δυνατότητα για μείωση και ταίριασμα (δες 2.1), ο αριθμός των γραμμών πρέπει να αυξηθεί. Εάν όμως η απόσταση μεταξύ γραμμών δεν αυξηθεί τότε το υπόβαθρο θα γεμίσει με γραμμές Specification: ECLIPSE/WS/Tools/DE/FS Section 5.6
Στόχος Απαιτήσεων Καλό είναι να δίνεται ο στόχος μαζί με τις απαιτήσεις Βοηθάει τον άνθρωπο που θα κάνει την υλοποίηση να κατανοήσει το πεδίο και να καταλάβει γιατί χρησιμοποιείται η απαίτηση αυτή Είναι σημαντικό όταν πρόκειται να αλλαχθούν οι απαιτήσεις. Ο στόχος μειώνει τις πιθανότητες οι αλλαγές να έχουν απροσδόκητα αποτελέσματα
Ορισμός Δημιουργίας Κόμβων 3.5.1 Προσθήκη κόμβων σε σχέδιο 3.5.1.1 Ο συντάκτης πρέπει να δίνει την δυνατότητα ώστε οι χρήστες να μπορούν να προσθέσουν κόμβους συγκεκριμένου τύπου σε ένα σχέδιο Οι κόμβοι επιλέγονται (δες 3.4) όταν προστίθενται στο σχέδιο 3.5.1.2 Η ακολουθία πράξεων για προσθήκη κόμβων είναι: 1. Ο χρήστης πρέπει να επιλέξει τον τύπο κόμβου που πρέπει να προστεθεί 2. Ο χρήστης μετακινεί τον δείκτη στην περίπου θέση στο διάγραμμα και δείχνει ότι το σύμβολο του κόμβου πρέπει να προστεθεί σε αυτό το σημείο 3. Το σύμβολο πρέπει να μεταφερθεί στην τελική θέση Σκοπός: Ο χρήστης είναι το καλύτερο άτομο για να αποφασίσει που να τοποθετήσει τον κόμβο στο διάγραμμα, πράγμα το οποίο του δίνει άμεσο έλεγχο στην επιλογή τύπου κόμβου και τοποθέτηση Specification: ECLIPSE/WS/Tools/DE/FS. Section 3.5.1
Εξειδίκευση Απαιτήσεων Οι εξειδικεύσεις προσθέτουν λεπτομέρειες στον ορισμό των απαιτήσεων. Πρέπει να είναι συμβατές με τον ορισμό. Συνήθως παρουσιάζονται με μοντέλα συστημάτων τα οποία αναπτύσσονται κατά την διάρκεια της ανάλυσης απαιτήσεων. Τα μοντέλα αυτά ορίζουν μέρος του συστήματος που πρόκειται να αναπτυχθεί Γράφεται συχνά σε φυσική γλώσσα, αλλά μπορεί να αποδειχθεί προβληματικό
Προβλήματα με την Φυσική Γλώσσα Η φυσική γλώσσα βασίζεται στο γεγονός ότι οι συγγραφείς και οι αναγνώστες χρησιμοποιούν τις ίδιες λέξεις με την ίδια έννοια Εξειδίκευση της φυσικής γλώσσας είναι πολύ ευέλικτη και μπορεί να εξηγηθεί με διαφορετικούς τρόπους Οι απαιτήσεις δεν διαμερίζονται με δομές γλώσσας
Εναλλακτικά Φυσικής Γλώσσας Δομημένη Φυσική Γλώσσα Γλώσσες περιγραφής σχεδιασμού Γλώσσες σχεδιασμού απαιτήσεων Γραφικές παρουσιάσεις Μαθηματικές εξειδικεύσεις
Δυνατότητα Παρακολούθησης Απιατήσεων Αυτό σημαίνει ότι συσχετιζόμενες απαιτήσεις συνδέονται με κάποιο τρόπο και ότι οι απαιτήσεις συνδέονται με την πηγή τους Είναι ιδιότητα της εξειδίκευσης απαιτήσεων η οποία αντιστοιχεί στην ευκολία ανεύρεσης σχετικών απαιτήσεων Μερικά CASE εργαλεία παρέχουν δυνατότητες παρακολούθησης. Για παράδειγμα μπορούν να βρούν όλες τις απαιτήσεις που χρησιμοποιούν τους ίδιους όρους
Τεχνικές Δυνατότητας Παρακολούθησης Δώσε ένα μοναδικό αριθμό σε όλες τις απαιτήσεις Συνδύασε σχετικές απαιτήσεις χρησιμοποιώντας τον μοναδικό αριθμό Παρήγαγε ένα πίνακα συσχετίσεων που δείχνει τις συσχετιζόμενες απαιτήσεις. Πιθανό να είναι αναγκαίοι πολλοί πίνακες για διαφορετικούς τύπους σχέσεων
Εξειδικεύσεις Δομημένης Γλώσσας Μια περιορισμένη μορφή φυσικής γλώσσας μπορεί να χρησιμοποιηθεί για τις απαιτήσεις Αυτό απομακρύνει αυθαιρεσία και ευελιξία και βάζει κάποιο βαθμό ομοιομορφίας σε μία εξειδίκευση Συχνά υποστηρίζεται από μία προσέγγιση που βασίζεται σε φόρμες
Εξειδικεύσεις Βασισμένες σε Φόρμες Ορισμός λειτουργίας ή οντότητας Περιγραφή εισόδων και από πού προέρχονται Περιγραφή εξόδων και που πάνε Ένδειξη άλλων απαιτουμένων οντοτήτων Προ και μετά συνθήκες Παράπλευρα αποτελέσματα
Εξειδίκευση Κόμβων με βάση Φόρμες
PDL-based Ορισμός Απαιτήσεων Οι απαιτήσεις μπορούν να ορισθούν λειτουργικά με χρήση μίας γλώσσας (π.χ. προγραμματιστική) με ευελιξία έκφρασης Η πιο κατάλληλη σε δύο περιπτώσεις Όταν μία λειτουργία εκφράζεται ως ακολουθία πράξεων και η σειρά είναι σημαντική Όταν πρέπει να εξειδικευτούν διεπαφές υλικού και λογισμικού Μειονεκτήματα είναι Η PDL πιθανό να μην είναι αρκετά εκφραστική για να αποδοθούν έννοιες του πεδίου Η εξειδίκευση μπορεί να θεωρηθεί ως σχεδιασμός και όχι ανάλυση απαιτήσεων
PDL Περιγραφή ενός ATM Replace with portrait slide
Εξειδίκευση Διεπαφών Σχεδόν όλα τα συστήματα λογισμικού λειτουργούν σε κάποιο περιβάλλον όπου υπάρχουν και άλλα συστήματα. Θα πρέπει να υπάρχουν διεπαφές με αυτά τα συστήματα σε διαφορετικούς τρόπους Τρεις τύποι διπεαφής ορίζονται σε εξειδίκευση απαιτήσεων Διαδικαστικές διεπαφές. Τα υποσυστήματα προσφέρουν αρκετές υπηρεσίες Διεπαφές δεδομένων. Δομές δεδομένων ανταλλάσονται Διεπαφές αναπαράστασης. Χρησιμοποιούνται ειδικά πρότυπα αναπαράστασης δεδομένων
Παράδειγμα Διαδικαστικής Διεπαφής package Print_server is procedure Initialise (P: PRINTER) ; procedure Print (P: PRINTER ; F: PRINT_FILE ) ; procedure Display_print_queue (P: PRINTER ) ; procedure Cancel_print_job (P: PRINTER; N: PRINT_ID) ; procedure Switch_printer (P1, P2: PRINTER; N: PRINT_ID) ; end Print_server ;
Παράδειγμα Διεπαφής Δεδομένων type MESSAGE is record Sender : SYSTEM_ID; Receiver : SYSTEM_ID; Dispatch_time : DATE; Length: MESSAGE_LENGTH ; Terminator: CHARACTER ; Message : TEXT; end record; type SYSTEM_ID is range 20_000..30_000 ; type YEAR_TYPE is range 1980..2080 ; type DATE is record Seconds: NATURAL ; Year: YEAR_TYPE ; end record ; type MESSAGE_LENGTH is range 0..10_000 ; type TEXT is array (MESSAGE_LENGTH) of CHARACTER ;
Αναπαράσταση Μεγέθους for SYSTEM_ID’SIZE use 2*BYTE ; for YEAR_TYPE’SIZE use 2*BYTE ; for MESSAGE_LENGTH’SIZE use 2*BYTE ;
Παράδειγμα Διεπαφής Αναπαράστασης type STATE is (Halted, Waiting, Ready, Running); for STATE use (Halted => 1, Waiting => 4, Ready => 16, Running => 256);
Μη - λειτουργικές Απαιτήσεις Ορίζουν ιδιότητες συστήματος και περιορισμούς, π.χ. αξιοπιστία, χρόνος απόκρισης και απαιτήσεις αποθήκευσης. Οι περιορισμοί είναι οι δυνατότητες του Ι/Ο, οι αναπαραστάσεις του συστήματος, κ.α. Οι διαδικαστικές απαιτήσεις εξειδικεύονται με την χρήση CASE συστήματος, γλώσσας προγραμματισμού ή μεθόδου ανάπτυξης Οι μη - λειτουργικές απαιτήσεις είναι περισσότερο κριτικές από τις λειτουργικές. Εάν δεν ικανοποιούνται το σύστημα είναι άχρηστο
Μη - Λειτουργικές Κατηγοριοποιήσεις Απαιτήσεις προϊόντος Ορίζουν ότι το προϊόν συμπεριφέρεται με συγκεκριμένο τρόπο, δηλ. ταχύτητα επεξεργασίας, αξιοπιστία, κ.α. Οργανωτικές Απαιτήσεις Οι απαιτήσεις πιθανό να είναι αποτέλεσμα οργανωτικών στρατηγικών και διαδικασιών, π.χ. χρήση προτύπων διαδικασιών, απαιτήσεων υλοποίησης, κ.α. Εξωτερικές Απαιτήσεις Πηγάζουν από εξωτερικούς παράγοντες προς το σύστημα, π.χ. διαλειτουργικότητα, θεσμικές απαιτήσεις, κ.α.
Τύποι μη -λειτουργικών Απαιτήσεων
Παραδείγματα μη - λειτουργικών Απαιτήσεων Απαιτήσεις προϊόντος 4.C.8 Μπορεί να είναι απαραίτητο για όλη την επικοινωνία μεταξύ APSE και να του χρήστη να χρησιμοποιείται το Ada character set. Απαιτήσεις οργανισμού 9.3.2 Η διαδικασία ανάπτυξης του συστήματος και οι παραδοτέες εκθέσεις να ακολουθούν την διαδικασία και τα παραδοτέα που ορίζονται στο XYZCo-SP-STAN-95. Εξωτερική Απαίτηση 7.6.5 Το σύστημα πρέπει να παρέχει την δυνατότητα στον χρήστη να ελέγχει αν υπάρχουν προσωπικά δεδομένα, να τα ελέγχει και να διορθώνει λάθη σε αυτά
Δυνατότητα Επιβεβαίωσης Απαιτήσεων Οι απαιτήσεις πρέπει να γράφονται με τέτοιο τρόπο ώστε να μπορούν αντικειμενικά να επιβεβαιωθούν Το πρόβλημα με αυτή την απαίτηση είναι χρήση εκφράσεων όπως ‘τα λάθη πρέπει να ελαχιστοποιηθούν” Το σύστημα πρέπει να είναι εύκολο να χρησιμοποιηθεί από πεπειραμένους χρήστες και να οργανωθεί με τέτοιο τρόπο ώστε να ελαχιστοποιηθούν τα λάθη των χρηστών Ο ρυθμός λαθών πρέπει να ποσοτικοποιηθεί Οι πεπειραμένοι χρήστες πρέπει να μάθουν το σύστημα μετά από δύο ώρες εκπαίδευση και ο αριθμός λαθών θα πρέπει να είναι το πολύ δύο ανά ώρα
Μέτρα Απαιτήσεων
Διαχωρισμός Απαιτήσεων Λειτουργικές και μη - λειτουργικές απαιτήσεις πρέπει να διαχωριστούν κατά την διάρκεια της εξειδίκευσης Όμως αυτό πιθανά να είναι δύσκολο αφού οι απαιτήσεις πρέπει να εκφραστούν για όλο το σύστημα και όχι ως περιορισμοί σε ξεχωριστές λειτουργίες Είναι πολύ δύσκολο να αποφασίσουμε αν μία απαίτηση είναι λειτουργική ή μη λειτουργική Απαιτήσεις ασφάλειας συνήθως είναι μη λειτουργικές ιδιότητες αλλά μπορεί να απαιτούν να προστεθούν λειτουργίες στο σύστημα
Απαιτήσεις Επιπέδου Συστήματος Μερικές απαιτήσεις βάζουν περιορισμούς σε όλο το σύστημα και όχι σε μερικές λειτουργίες Παράδειγμα Ο χρόνος που απαιτείται για την εκπαίδευση του χειριστή του συστήματος δεν πρέπει να είναι περισσότερο από δύο ώρες Αυτές είναι προκύπτουσες απαιτήσεις που δεν εξάγονται από ένα υποσύνολο των απαιτήσεων του συστήματος
Σημαντικά Σημεία Ο ορισμός απαιτήσεων χρησιμοποιείται από πελάτες και τελικούς χρήστες. Θα πρέπει να είναι γραμμένος σε μία κατανοητή από όλους γλώσσα Ο στόχος μίας απαίτησης δεν πρέπει να συμπεριλαμβάνεται στον ορισμό απαιτήσεων Οι απαιτήσεις πρέπει να γράφονται με τέτοιο τρόπο ώστε να είναι δυνατή η επιβεβαίωσή τους
Σημαντικά Σημεία Οι εξειδικεύσεις απαιτήσεων σκοπεύουν στην παρουσίαση των λειτουργιών και περιορισμών του συστήματος. Πρέπει να γραφούν σε μορφή δομημένης γλώσσας Τρεις τύποι μη λειτουργικών απαιτήσεων είναι: απαιτήσεις προϊόντος, απαιτήσεις διαδικασίας και εξωτερικές απαιτήσεις Η φυσική γλώσσα χρησιμοποιείται για την συγγραφή μη - λειτουργικών απαιτήσεων εξ αιτίας της ποικιλίας και της πολυπλοκότητας