Σύγχρονες μέθοδοι για την περιγραφή λειτουργικών απαιτήσεων για συστήματα. Άλιστερ Κόμπερν. Κριτική του βιβλίου και προσθήκες

Το βιβλίο περιγράφει μια μέθοδο για τη σύνταξη μέρους μιας δήλωσης προβλήματος, δηλαδή τη μέθοδο χρήσης περίπτωσης.

Τι είναι? Αυτή είναι μια περιγραφή του σεναρίου αλληλεπίδρασης χρήστη με το σύστημα (ή με την επιχείρηση). Σε αυτήν την περίπτωση, το σύστημα λειτουργεί ως μαύρο κουτί (και αυτό καθιστά δυνατό τον διαχωρισμό της σύνθετης εργασίας σχεδιασμού σε σχεδιασμό αλληλεπίδρασης και διασφάλιση αυτής της αλληλεπίδρασης). Ταυτόχρονα, εισάγονται πρότυπα σημειογραφίας, τα οποία διασφαλίζουν την ευκολία ανάγνωσης, συμπεριλαμβανομένων των μη συμμετεχόντων, και επιτρέπουν ορισμένους ελέγχους για την πληρότητα και τη συμμόρφωση με τους στόχους του ενδιαφερόμενου μέρους.

Παράδειγμα περίπτωσης χρήσης

Πώς φαίνεται το σενάριο, χρησιμοποιώντας το παράδειγμα εξουσιοδότησης στον ιστότοπο μέσω email:

(Σύστημα) Συνδεθείτε στον ιστότοπο για να αποκτήσετε πρόσβαση στον προσωπικό σας λογαριασμό. ~~ (στάθμη της θάλασσας)

Συμφραζόμενα: Ένας μη εξουσιοδοτημένος πελάτης συνδέεται στον ιστότοπο, έτσι ώστε ο ιστότοπος να τον αναγνωρίζει και να εμφανίζει προσωπικές του πληροφορίες: ιστορικό περιήγησης, ιστορικό αγορών, τρέχων αριθμός πόντων μπόνους κ.λπ., χρησιμοποιώντας το email ως σύνδεση. 
Επίπεδο: στόχο χρήστη
Κύριος χαρακτήρας: πελάτης (επισκέπτης του ηλεκτρονικού μας καταστήματος)
Πεδίο εφαρμογής: Αλληλεπίδραση πελάτη με τον ιστότοπο του ηλεκτρονικού καταστήματος
Ενδιαφερόμενα μέρη και συμφέροντα:

  • ο έμπορος θέλει να προσδιορίζεται ο μέγιστος αριθμός επισκεπτών του ιστότοπου για μεγαλύτερη κάλυψη των προσωπικών αποστολών,
  • ο ειδικός ασφαλείας θέλει να διασφαλίσει ότι δεν υπάρχουν περιπτώσεις μη εξουσιοδοτημένης πρόσβασης στα προσωπικά δεδομένα του επισκέπτη, συμπεριλαμβανομένων προσπαθειών να μαντέψει τον κωδικό πρόσβασης για έναν λογαριασμό ή αναζήτησης λογαριασμού με αδύναμο κωδικό πρόσβασης,
  • ο εισβολέας θέλει να αποκτήσει πρόσβαση στα μπόνους του θύματος,
  • οι ανταγωνιστές θέλουν να αφήσουν αρνητικές κριτικές για τα προϊόντα,
  • Το botnet θέλει να αποκτήσει τη βάση πελατών του καταστήματος και να χρησιμοποιήσει μια επίθεση για να καταστήσει τον ιστότοπο μη λειτουργικό.

Προϋποθέσεις: ο επισκέπτης δεν πρέπει να είναι εξουσιοδοτημένος.
Ελάχιστες εγγυήσεις: ο επισκέπτης θα γνωρίζει εάν η προσπάθεια εξουσιοδότησης ήταν επιτυχής ή ανεπιτυχής.
Εγγυήσεις επιτυχίας: ο επισκέπτης είναι εξουσιοδοτημένος.

Κύριο σενάριο:

  1. Ο πελάτης ξεκινά την εξουσιοδότηση.
  2. Το σύστημα επιβεβαιώνει ότι ο πελάτης δεν είναι εξουσιοδοτημένος και δεν υπερβαίνει τον αριθμό των αποτυχημένων προσπαθειών εξουσιοδότησης από μια δεδομένη συνεδρία (αναζήτηση αδύναμου κωδικού πρόσβασης για πολλούς λογαριασμούς) σύμφωνα με τον "Κανόνα ασφαλείας Αρ. 23".
  3. Το σύστημα αυξάνει τον μετρητή για τον αριθμό των προσπαθειών εξουσιοδότησης.
  4. Το σύστημα εμφανίζει μια φόρμα εξουσιοδότησης στον πελάτη.
  5. Ο πελάτης εισάγει το email και τον κωδικό πρόσβασής του.
  6. Το σύστημα επιβεβαιώνει την παρουσία ενός πελάτη με ένα τέτοιο μήνυμα ηλεκτρονικού ταχυδρομείου στο σύστημα και ότι ο κωδικός πρόσβασης ταιριάζει και ο αριθμός των προσπαθειών σύνδεσης σε αυτόν τον λογαριασμό δεν ξεπερνιέται σύμφωνα με τον "Κανόνα Ασφαλείας Αρ. 24".
  7. Το σύστημα εξουσιοδοτεί τον πελάτη, προσθέτει το ιστορικό περιήγησης και το καλάθι αυτής της περιόδου σύνδεσης με την τελευταία περίοδο λειτουργίας αυτού του λογαριασμού πελάτη.
  8. Το σύστημα εμφανίζει ένα μήνυμα επιτυχίας εξουσιοδότησης και μετακινείται στο βήμα του σεναρίου από το οποίο ο πελάτης διακόπηκε για εξουσιοδότηση. Σε αυτήν την περίπτωση, τα δεδομένα στη σελίδα φορτώνονται ξανά λαμβάνοντας υπόψη τα δεδομένα προσωπικού λογαριασμού.

Επεκτάσεις:
2.α. Ο πελάτης είναι ήδη εξουσιοδοτημένος:
 2.α.1. Το σύστημα ειδοποιεί τον πελάτη για το γεγονός της προηγούμενης εξουσιοδότησης και προσφέρει είτε να διακόψει το σενάριο είτε να μεταβεί στο βήμα 4, και εάν το βήμα 6 ολοκληρωθεί με επιτυχία, τότε το βήμα 7 εκτελείται με διευκρίνιση:
 2.α.7. Το σύστημα απενεργοποιεί τον πελάτη με τον παλιό λογαριασμό, εξουσιοδοτεί τον πελάτη με τον νέο λογαριασμό, ενώ το ιστορικό περιήγησης και το καλάθι αυτής της περιόδου σύνδεσης αλληλεπίδρασης παραμένουν στον παλιό λογαριασμό και δεν μεταφέρονται στον νέο. Στη συνέχεια, μεταβείτε στο βήμα 8.
2.β Ο αριθμός των προσπαθειών εξουσιοδότησης έχει υπερβεί το όριο σύμφωνα με τον «Κανόνα Ασφαλείας Αρ. 23»:
 2.β.1 Πηγαίνετε στο βήμα 4, ένα captcha εμφανίζεται επιπλέον στη φόρμα εξουσιοδότησης
 2.β.6 Το σύστημα επιβεβαιώνει τη σωστή εισαγωγή captcha
    2.β.6.1 Το Captcha εισήχθη λανθασμένα:
      2.β.6.1.1. το σύστημα αυξάνει τον μετρητή των ανεπιτυχών προσπαθειών εξουσιοδότησης και για αυτόν τον λογαριασμό
      2.β.6.1.2. το σύστημα εμφανίζει ένα μήνυμα αποτυχίας και επιστρέφει στο βήμα 2
6.α. Δεν βρέθηκε λογαριασμός με αυτό το email:
 6.α.1 Το σύστημα εμφανίζει ένα μήνυμα σχετικά με την αποτυχία και προσφέρει την επιλογή είτε μετάβασης στο βήμα 2 είτε μετάβασης στο σενάριο «Εγγραφή χρήστη» και αποθήκευση του εισαγόμενου email,
6.β. Ο κωδικός πρόσβασης για τον λογαριασμό με αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου δεν ταιριάζει με αυτόν που έχετε εισαγάγει:
 6.β.1 Το σύστημα αυξάνει τον μετρητή των ανεπιτυχών προσπαθειών σύνδεσης σε αυτόν τον λογαριασμό.
 6.β.2 Το σύστημα εμφανίζει ένα μήνυμα σχετικά με την αποτυχία και προσφέρει μια επιλογή είτε μετάβασης στο σενάριο «Ανάκτηση κωδικού πρόσβασης» ή μετάβασης στο βήμα 2.
6.γ: Ο μετρητής προσπάθειας σύνδεσης για αυτόν τον λογαριασμό έχει υπερβεί το όριο για τον "Κανόνα Ασφαλείας Αρ. 24".
 6.γ.1 Το σύστημα εμφανίζει ένα μήνυμα σχετικά με τον αποκλεισμό σύνδεσης λογαριασμού για Χ λεπτά και προχωρά στο βήμα 2.

Τι υπέροχο

Έλεγχοι πληρότητας και συμμόρφωσης με τους στόχους, δηλαδή, μπορείτε να δώσετε απαιτήσεις σε άλλον αναλυτή για επαλήθευση, κάνοντας λιγότερα λάθη στο στάδιο της διαμόρφωσης του προβλήματος.

Η εργασία με ένα σύστημα μαύρου κουτιού σάς επιτρέπει να διαχωρίσετε την ανάπτυξη και τον συντονισμό με τον πελάτη αυτού που θα αυτοματοποιηθεί από τις μεθόδους υλοποίησης.

Είναι μέρος της διαδρομής του αναλυτή, ένα από τα κύρια μέρη της χρηστικότητας. Το σενάριο του χρήστη ορίζει τις κύριες διαδρομές της κίνησής του, γεγονός που μειώνει σημαντικά την ελευθερία επιλογής για τον σχεδιαστή και τον πελάτη και συμβάλλει στην αύξηση της ταχύτητας ανάπτυξης του σχεδιασμού.

Είμαι πολύ ευχαριστημένος με το μέρος στην περιγραφή όπου εντοπίζονται εξαιρέσεις σε κάθε βήμα αλληλεπίδρασης. Ένα πλήρες σύστημα πληροφορικής πρέπει να προβλέπει κάποιο είδος χειρισμού εξαιρέσεων, κάποιοι χειροκίνητα, κάποιοι αυτόματα (όπως στο παραπάνω παράδειγμα).

Η εμπειρία δείχνει ότι ο κακώς μελετημένος χειρισμός εξαιρέσεων μπορεί εύκολα να μετατρέψει ένα σύστημα σε ένα τρομερά άβολο σύστημα. Θυμάμαι την ιστορία όταν στη σοβιετική εποχή, για να πάρεις μια απόφαση, έπρεπε να λάβεις πολλές εγκρίσεις από διαφορετικές υπηρεσίες και πόσο οδυνηρό είναι όταν λέει η τελευταία υπηρεσία - αλλά η αίτησή σου είναι με λάθος όνομα ή κάποιο άλλο λάθος στο σημεία στίξης, επαναλάβετε τα πάντα και συντονίστε ξανά τα πάντα.

Συχνά συναντώ καταστάσεις όπου η λογική λειτουργίας ενός συστήματος που δεν είχε σχεδιαστεί για εξαιρέσεις απαιτούσε σημαντική επανεπεξεργασία του συστήματος. Εξαιτίας αυτού, η μερίδα του λέοντος της εργασίας του αναλυτή δαπανάται για τον χειρισμό εξαιρέσεων.

Η σημείωση κειμένου, σε αντίθεση με τα διαγράμματα, επιτρέπει τον εντοπισμό και την κάλυψη περισσότερων εξαιρέσεων.

Προσθήκη στη μέθοδο από την πρακτική

Η περίπτωση χρήσης δεν αποτελεί ανεξάρτητο τμήμα της δήλωσης με προτεραιότητα, σε αντίθεση με την ιστορία χρήστη.

Στο παραπάνω σενάριο, εξετάστε την εξαίρεση «6.α. Δεν βρέθηκε λογαριασμός με αυτό το email." και το επόμενο βήμα "6.α.1 Το σύστημα εμφανίζει ένα μήνυμα αποτυχίας και προχωρά στο βήμα 2." Ποια αρνητικά πράγματα έμειναν στα παρασκήνια; Για τον πελάτη, οποιαδήποτε επιστροφή ισοδυναμεί με το γεγονός ότι όλη η εργασία που έκανε για την εισαγωγή δεδομένων πετιέται στη χωματερή. (Απλώς δεν φαίνεται στο σενάριο!) Τι μπορεί να γίνει; Φτιάξτε ξανά το σενάριο για να μην συμβεί αυτό. Είναι δυνατόν να γίνει αυτό; Μπορείτε - για παράδειγμα, να δείτε το σενάριο εξουσιοδότησης της Google.

Βελτιστοποίηση σεναρίου

Το βιβλίο μιλάει για επισημοποίηση, αλλά λέει λίγα για μεθόδους βελτιστοποίησης τέτοιων σεναρίων.

Αλλά είναι δυνατό να ενισχυθεί η μέθοδος βελτιστοποιώντας τα σενάρια και η μέθοδος επισημοποίησης περίπτωσης χρήσης επιτρέπει να γίνει αυτό. Συγκεκριμένα, πρέπει να σκεφτείτε κάθε εξαίρεση που συμβαίνει, να προσδιορίσετε την αιτία και να δημιουργήσετε ξανά το σενάριο, ώστε να απαλλαγείτε από την εξαίρεση ή να ελαχιστοποιήσετε το ταξίδι του πελάτη.

Όταν κάνετε μια παραγγελία από ηλεκτρονικό κατάστημα, πρέπει να εισαγάγετε την πόλη παράδοσης. Μπορεί να αποδειχθεί ότι το κατάστημα δεν μπορεί να παραδώσει τα αγαθά στην πόλη που έχει επιλέξει ο πελάτης επειδή δεν παραδίδει εκεί, λόγω περιορισμών μεγέθους ή λόγω έλλειψης εμπορευμάτων στην αντίστοιχη αποθήκη.

Αν απλώς περιγράψουμε το σενάριο αλληλεπίδρασης στο στάδιο της εγγραφής, μπορούμε να γράψουμε «ενημερώστε τον πελάτη ότι η παράδοση είναι αδύνατη και προσφέρετε να αλλάξετε την πόλη ή το περιεχόμενο του καλαθιού» (και πολλοί αρχάριοι αναλυτές σταματούν εκεί). Αλλά αν υπάρχουν πολλές τέτοιες περιπτώσεις, τότε το σενάριο μπορεί να βελτιστοποιηθεί.

Το πρώτο πράγμα που πρέπει να κάνετε είναι να σας αφήσετε να επιλέξετε μόνο την πόλη όπου μπορούμε να παραδώσουμε. Πότε να το κάνετε αυτό; Πριν επιλέξετε ένα προϊόν στην ιστοσελίδα (αυτόματος εντοπισμός πόλης μέσω IP με διευκρίνιση).

Δεύτερον, πρέπει να επιλέγουμε μόνο τα αγαθά που μπορούμε να παραδώσουμε στον πελάτη. Πότε να γίνει αυτό; Τη στιγμή της επιλογής - στο πλακίδιο του προϊόντος και στην κάρτα προϊόντος.

Αυτές οι δύο αλλαγές συμβάλλουν πολύ στην εξάλειψη αυτής της εξαίρεσης.

Απαιτήσεις για μετρήσεις και μετρήσεις

Όταν εξετάζετε την εργασία ελαχιστοποίησης του χειρισμού εξαιρέσεων, μπορείτε να ορίσετε μια εργασία αναφοράς (η περίπτωση χρήσης δεν περιγράφεται). Πόσες εξαιρέσεις υπήρξαν, σε ποιες περιπτώσεις συνέβησαν, συν πόσα εισερχόμενα σενάρια πέρασαν με επιτυχία.

Αλίμονο όμως. Η πείρα έχει δείξει ότι οι απαιτήσεις αναφοράς για σενάρια σε αυτή τη μορφή δεν επαρκούν· είναι απαραίτητο να ληφθούν υπόψη οι απαιτήσεις αναφοράς για διαδικασίες που περιγράφονται κυρίως όχι με τη μορφή περίπτωσης χρήσης.

Πρόσβαση στη χρηστικότητα

Στην πρακτική μας, έχουμε επεκτείνει τη φόρμα περιγραφής περίπτωσης χρήσης με μια περιγραφή συγκεκριμένων χαρακτηριστικών οντοτήτων και δεδομένων προκειμένου ο πελάτης να λάβει μια απόφαση, γεγονός που ενισχύει τη μεταγενέστερη χρηστικότητα.

Για σχεδιασμό χρηστικότητας, προσθέσαμε μια ενότητα εισαγωγής - δεδομένα εμφάνισης.

Σε ένα σενάριο με εξουσιοδότηση, αυτό είναι το γεγονός ότι ο πελάτης είναι εξουσιοδοτημένος στο σύστημα. Εάν ο πελάτης είναι προεξουσιοδοτημένος, εμφανίστε μια προειδοποίηση σχετικά με την εναλλαγή του ιστορικού πλοήγησης και του καλαθιού αγορών στον νέο λογαριασμό μετά την επιτυχή εξουσιοδότηση.

Σε γενικές γραμμές, αυτή είναι μια εμφάνιση των απαραίτητων πληροφοριών για τον πελάτη, ώστε να μπορεί να αποφασίσει για τις περαιτέρω ενέργειές του σύμφωνα με το σενάριο (μπορείτε να ρωτήσετε εάν αυτά τα δεδομένα είναι αρκετά για τον πελάτη, τι άλλο χρειάζεται, τι πληροφορίες κάνουν ο πελάτης πρέπει να λάβει αποφάσεις).  
Αξίζει επίσης να διαιρέσετε τις εισαγόμενες πληροφορίες σε πεδία εισαγωγής εάν υποβληθούν σε επεξεργασία ξεχωριστά και με το σχηματισμό διαφορετικών εξαιρέσεων.

Στο παράδειγμα με την εξουσιοδότηση πελάτη, εάν διαχωρίσετε τις καταχωρημένες πληροφορίες σε σύνδεση και κωδικό πρόσβασης, τότε αξίζει να αλλάξετε το σενάριο εξουσιοδότησης για να επισημάνετε τα στάδια εισαγωγής ξεχωριστής σύνδεσης και ξεχωριστού κωδικού πρόσβασης (και αυτό έγινε σε Yandex, Google, αλλά δεν γίνεται στα περισσότερα ηλεκτρονικά καταστήματα).

Επίτευξη των απαιτούμενων μετασχηματισμών δεδομένων

Μπορείτε επίσης να εξαγάγετε απαιτήσεις για αλγόριθμους μετατροπής δεδομένων από το σενάριο.

Παραδείγματα:

  • Για να αποφασίσει να αγοράσει ένα προϊόν σε ηλεκτρονικό κατάστημα, ο πελάτης πρέπει να γνωρίζει στην κάρτα προϊόντος τη δυνατότητα, το κόστος, τον χρόνο παράδοσης στην πόλη του αυτού του προϊόντος (τα οποία υπολογίζονται από τον αλγόριθμο με βάση τη διαθεσιμότητα του προϊόντος στο αποθήκες και παράμετροι εφοδιαστικής αλυσίδας).
  • Όταν εισάγετε μια φράση στη γραμμή αναζήτησης, εμφανίζονται στον πελάτη προτάσεις αναζήτησης σύμφωνα με τον αλγόριθμο (που δημιουργούνται από τον αλγόριθμο...).

Σε συνολικά

Σε γενικές γραμμές, μετά την ανάγνωση του βιβλίου, δυστυχώς, δεν είναι ξεκάθαρο πώς να φτάσετε από έναν αναλυτή έως τα επιχειρηματικά προβλήματα σε μια επίσημη τεχνική προδιαγραφή για έναν προγραμματιστή. Το βιβλίο λέει μόνο ένα μέρος της διαδικασίας, με τα βήματα εισαγωγής ασαφή και τα επόμενα βήματα ασαφή. Η ίδια η περίπτωση χρήσης τις περισσότερες φορές δεν είναι μια πλήρης δήλωση για τον προγραμματιστή.

Ωστόσο, αυτός είναι ένας πολύ καλός τρόπος για να επισημοποιήσετε και να επεξεργαστείτε σενάρια αλληλεπίδρασης μεταξύ ενός αντικειμένου και ενός υποκειμένου, όταν η αλληλεπίδραση προκαλεί μια αλλαγή σε κάτι στο θέμα. Είναι μια από τις λίγες μεθόδους γραφής που επιτρέπει επαληθεύσιμες απαιτήσεις με ρητά σημεία αναζήτησης εξαιρέσεων.

Το βιβλίο είναι απαραίτητο να διαβάσουν οι αναλυτές για να αρχίσουν να γράφουν θεατρικά έργα που μπορούν να δοκιμαστούν.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο