Κρατήστε τις απαιτήσεις ιχνηλάσιμες όσο αλλάζει το λογισμικό
ΟλοκληρώθηκεΣυνδέστε ένα αποτέλεσμα για τον χρήστη με αποφάσεις, κριτήρια αποδοχής, υλοποίηση και αποδεικτικά στοιχεία. Ενημερώστε τις συνδέσεις όταν αλλάζουν οι υποθέσεις.
Εκδότης TaigaΠώς γράφουμε
Ελέγξτε τι κατανοήσατεΗ προδιαγραφή αλλάζει μετά την προετοιμασία της αρχιτεκτονικής και των tests. Τι πρέπει να συμβεί;Κάντε την άσκηση
Τι θα μάθετε
- Γράψτε μια παρατηρήσιμη απαίτηση με ρητά όρια.
- Ιχνηλατήστε μια απαίτηση μέσα από μια αλλαγή και τους ελέγχους της.
- Εντοπίστε τα εξαρτώμενα έγγραφα που επηρεάζονται από αλλαγμένη υπόθεση.
Περιγράψτε συμπεριφορά που κάποιος μπορεί να επαληθεύσει
Το «δημιουργήστε σύγχρονη εξαγωγή δεδομένων πελατών» αφήνει σημαντικές αποφάσεις ανοιχτές. Δεν ορίζει χρήστες, εγγραφές, πεδία ή συμπεριφορά αστοχίας. Ο agent πρέπει είτε να ρωτήσει είτε να κάνει υποθέσεις. Οι μη καταγεγραμμένες υποθέσεις είναι δύσκολο να ανασκοπηθούν αργότερα.
Χρησιμοποιήστε πλασματική απαίτηση με σαφές όριο: ένας manager που έχει περάσει έλεγχο ταυτότητας μπορεί να εξάγει δεδομένα ενεργών πελατών του δικού του οργανισμού. Η εξαγωγή περιέχει αναγνωριστικό πελάτη και εμφανιζόμενο όνομα. Αποκλείει στοιχεία επικοινωνίας και αρχειοθετημένες εγγραφές. Ένας χρήστης χωρίς τον ρόλο manager δεν λαμβάνει εξαγωγή.
Χρειάζονται ακόμη αποφάσεις για μορφή, όγκο, χρόνο απόκρισης και χειρισμό αστοχιών. Σημειώστε ρητά όσα είναι άγνωστα. Μια χρήσιμη προδιαγραφή αποκαλύπτει την αβεβαιότητα αντί να την κρύβει μέσα σε βέβαιη διατύπωση.
Διαχωρίστε τις απαιτήσεις από τις επιλογές υλοποίησης
Ο χρήστης χρειάζεται ένα επιτρεπόμενο σύνολο εγγραφών σε χρηστική μορφή. Το ερώτημα βάσης δεδομένων, η βιβλιοθήκη και η δομή endpoint είναι επιλογές υλοποίησης. Συνδέστε τες με την απαίτηση χωρίς να αντιμετωπίζετε κάθε τρέχουσα επιλογή ως μόνιμη επιχειρηματική ανάγκη.
Καταγράψτε μια απόφαση με ουσιαστικές συνέπειες μαζί με το πλαίσιο, τις εναλλακτικές και την αιτιολογία της. Για παράδειγμα, η σύγχρονη εξαγωγή μπορεί να ταιριάζει σε μικρούς όγκους. Μεγαλύτερος όγκος μπορεί να απαιτεί εργασία παρασκηνίου και ξεχωριστό έλεγχο εξουσιοδότησης λήψης.
Κρατήστε την απαίτηση σταθερή όπου είναι δυνατόν, ενώ καταγράφετε νέα έκδοση της αλλαγμένης απόφασης. Αυτό βοηθά τους αξιολογητές να διακρίνουν μια διαφορετική υλοποίηση από μια διαφορετική υπόσχεση προς τους χρήστες.
Δημιουργήστε μια σύντομη αλυσίδα αποδεικτικών στοιχείων
Χρησιμοποιήστε αναγνωριστικά που παραμένουν κατανοητά στις ανασκοπήσεις. Για αυτό το παράδειγμα, το EXPORT-01 μπορεί να προσδιορίζει το όριο οργανισμού. Το όνομα είναι ενδεικτικό, όχι υποχρεωτικό σύστημα αρίθμησης.
| Σύνδεση | Παράδειγμα |
|---|---|
| Απαίτηση | EXPORT-01: μόνο εγγραφές στον οργανισμό του manager |
| Απόφαση σχεδιασμού | Επιβολή ελέγχου ιδιότητας μέλους στον server, όχι στο πρόγραμμα περιήγησης |
| Υλοποίηση | Το PR αλλάζει το ερώτημα και τη διαδρομή εξουσιοδότησης |
| Επαλήθευση | Ένα αίτημα για εγγραφές άλλου οργανισμού απορρίπτεται |
| Αποδεικτικά στοιχεία διάθεσης | Το αποτέλεσμα ελέγχου προσδιορίζει το αποδεκτό commit και artifact |
Η αλυσίδα πρέπει να δείχνει πραγματικά αποδεικτικά στοιχεία. Ένα όνομα test που περιέχει το αναγνωριστικό απαίτησης δεν αποδεικνύει ότι το assertion την ελέγχει. Εξετάστε το test και τη διαδρομή παραγωγής που δοκιμάζει.
Το SSDF του NIST παρέχει πλαίσιο για απαιτήσεις και επαλήθευση μέσα στην ασφαλή ανάπτυξη. Χρησιμοποιήστε την ιχνηλασιμότητα για να κάνετε αυτές τις δραστηριότητες εξετάσιμες, όχι για να παράγετε τεκμηρίωση χωρίς πρακτικό σκοπό. Διαβάστε το πλαίσιο.
Εξετάστε την επίδραση μιας αλλαγμένης υπόθεσης
Υποθέστε ότι η επιχείρηση χρειάζεται πλέον αρχειοθετημένους πελάτες. Αυτή η αλλαγή επηρεάζει περισσότερα από μια παράμετρο ερωτήματος. Ελέγξτε κανόνες διατήρησης, εξουσιοδότηση, αναμενόμενο όγκο, εξηγήσεις προς χρήστες και τη σημασία υπαρχουσών αναφορών.
Σημειώστε τα επηρεαζόμενα έγγραφα και τους ελέγχους για ανασκόπηση. Διατηρήστε την προηγούμενη απόφαση ώστε ο χειριστής να μπορεί να εξηγήσει μια παλαιότερη έκδοση. Μην ξαναγράφετε σιωπηρά το ιστορικό ώστε το πιο πρόσφατο σχέδιο να φαίνεται αναπόφευκτο.
Ένας agent μπορεί να βοηθήσει να βρεθούν αναφορές και να προτείνει ενημερώσεις. Οι αρμόδιοι υπεύθυνοι πρέπει να επιλύσουν αντικρουόμενες απαιτήσεις και να αποδεχτούν την αλλαγμένη συμπεριφορά. Μια λίστα σχετικών αρχείων είναι σημείο εκκίνησης, όχι πλήρης εκτίμηση επιπτώσεων.
Κρατήστε την καταγραφή αρκετά μικρή για χρήση
Καταγράψτε τις αποφάσεις που επηρεάζουν υλοποίηση, επαλήθευση και λειτουργία. Αποφύγετε να επαναλαμβάνετε την ίδια απαίτηση σε πολλά ασύνδετα έγγραφα. Προτιμήστε συνδέσμους προς μία πηγή που συντηρείται.
Πριν αποδεχτείτε μια αλλαγή, ρωτήστε αν ο αξιολογητής μπορεί να ακολουθήσει τον σκοπό της μέχρι τα πραγματικά αποδεικτικά στοιχεία. Πριν τη θέσετε σε λειτουργία, ρωτήστε αν ο υπεύθυνος υπηρεσίας μπορεί να εντοπίσει το σχετικό όριο και την απόφαση ανάκτησης. Αυτοί είναι πρακτικοί έλεγχοι χρήσιμης ιχνηλασιμότητας.
Κάντε την άσκηση
Γράψτε απαίτηση ώστε ένας manager να εξάγει δεδομένα ενεργών πελατών. Συμπεριλάβετε επιτρεπόμενους χρήστες, όριο οργανισμού, πεδία, συμπεριφορά αστοχίας και μετρήσιμη συνθήκη ολοκλήρωσης. Συνδέστε τη με πλασματικό test και διάθεση. Έπειτα αλλάξτε την απαίτηση ώστε να περιλαμβάνει αρχειοθετημένους πελάτες και καταγράψτε τις επηρεαζόμενες αποφάσεις.
Λήψη φύλλου εργασίας (Markdown)Η κατάργηση αυτής της επιλογής διαγράφει όλη την πρόοδο που έχει αποθηκευτεί σε αυτόν τον browser.
Η πρόοδος παραμένει σε αυτό το πρόγραμμα περιήγησης. Χωρίς λογαριασμό ή παρακολούθηση.
Πηγές και πρόσθετη μελέτη
- NIST: Secure Software Development Framework ↗
- Google Engineering Practices: What to look for in a code review ↗