システムの機胜芁件を蚘述するための最新の方法。 アリスタヌ・コバヌン。 本のレビュヌず远加

この本では、問題ステヌトメントの䞀郚を蚘述するための XNUMX ぀の方法、぀たりナヌス ケヌス メ゜ッドに぀いお説明しおいたす。

それは䜕ですか これは、システム (たたはビゞネス) ずのナヌザヌ察話シナリオの説明です。 この堎合、システムはブラック ボックスずしお機胜したす (これにより、耇雑な蚭蚈タスクを察話の蚭蚈ずこの察話の確保に分割するこずが可胜になりたす)。 同時に、衚蚘基準が導入され、非参加者も含めお読みやすさが保蚌され、完党性ず利害関係者の目暙ぞの準拠をある皋床チェックできるようになりたす。

䜿甚䟋

電子メヌルによるサむトでの認蚌の䟋を䜿甚したシナリオは次のようになりたす。

(システム) Web サむトにログむンしお、個人アカりントにアクセスしたす。 ~~ (海面)

コンテクスト 䞍正なクラむアントがサむトにログむンするず、サむトはそのクラむアントを認識し、電子メヌルをログむンずしお䜿甚しお閲芧履歎、賌入履歎、珟圚のボヌナス ポむント数などの個人情報を衚瀺したす。 
レベル ナヌザヌの目暙
䞻人公 クラむアントオンラむンストアの蚪問者
範囲 オンラむン ストア Web サむトずのクラむアント むンタラクション
利害関係者ず利益:

  • マヌケティング担圓者は、個人メヌルをより倚くカバヌするために、サむト蚪問者の最倧数を特定したいず考えおいたす。
  • セキュリティ専門家は、XNUMX ぀のアカりントのパスワヌドを掚枬したり、匱いパスワヌドを持぀アカりントを怜玢したりする詊みなど、蚪問者の個人デヌタぞの䞍正アクセスが発生しないようにしたいず考えおいたす。
  • 攻撃者は被害者のボヌナスぞのアクセスを望んでいたす。
  • 競合他瀟が補品に吊定的なレビュヌを残したいず考えおいるため、
  • ボットネットは、店舗の顧客ベヌスを取埗し、攻撃を䜿甚しおサむトを動䜜䞍胜にしようずしおいたす。

前提条件: 蚪問者は蚱可されおいおはなりたせん。
最䜎保蚌: 蚪問者は、認蚌の詊行が成功したか倱敗したかを知るこずができたす。
成功の保蚌: 蚪問者は蚱可されおいたす。

メむンシナリオ

  1. クラむアントが認可を開始したす。
  2. システムは、クラむアントが認蚌されおおらず、「セキュリティ ルヌル No. 23」に埓っお、特定のセッション (耇数のアカりントの匱いパスワヌドの怜玢) での認蚌詊行倱敗の回数を超えおいないこずを確認したす。
  3. システムは、認蚌詊行回数のカりンタを増加させたす。
  4. システムはクラむアントに認蚌フォヌムを衚瀺したす。
  5. クラむアントは電子メヌルずパスワヌドを入力したす。
  6. システムは、そのような電子メヌルを持぀クラむアントがシステム内に存圚するこず、パスワヌドが䞀臎するこず、および「セキュリティ ルヌル No. 24」に埓っおこのアカりントぞのログむン詊行回数が超過しおいないこずを確認したす。
  7. システムはクラむアントを認蚌し、閲芧履歎ずこのセッションのバスケットをこのクラむアント アカりントの最埌のセッションに远加したす。
  8. システムは認可成功メッセヌゞを衚瀺し、クラむアントが認可のために䞭断されたスクリプトステップに移動したす。 この堎合、ペヌゞ䞊のデヌタは、個人アカりント デヌタを考慮しお再ロヌドされたす。

拡匵子:
2.a. クラむアントはすでに蚱可されおいたす。
 2.a.1. システムは、以前に実行された認蚌の事実に぀いおクラむアントに通知し、スクリプトを䞭断するかステップ 4 に進むかを提案したす。ステップ 6 が正垞に完了するず、明確な説明ずずもにステップ 7 が実行されたす。
 2.a.7. システムは叀いアカりントでクラむアントを無効化し、新しいアカりントでクラむアントを認蚌したすが、このむンタラクション セッションの閲芧履歎ずカヌトは叀いアカりントに残り、新しいアカりントに転送されたせん。 次に手順 8 に進みたす。
2.b 認蚌詊行回数が「セキュリティ ルヌル No. 23」に基づくしきい倀を超えたした。
 2.b.1 ステップ 4 に進み、認蚌フォヌムにキャプチャが远加で衚瀺されたす。
 2.b.6 システムは正しいキャプチャ入力を確認したす
    2.b.6.1 キャプチャが間違っお入力されたした:
      2.b.6.1.1。 システムは、このアカりントに察する認蚌詊行倱敗のカりンタヌも増加させたす。
      2.b.6.1.2。 システムは倱敗メッセヌゞを衚瀺し、ステップ 2 に戻りたす。
6.a. このメヌルアドレスのアカりントは芋぀かりたせんでした:
 6.a.1 システムは倱敗に関するメッセヌゞを衚瀺し、ステップ 2 に進むか、「ナヌザヌ登録」シナリオに進んで入力した電子メヌルを保存するかを遞択したす。
6.b. このメヌルアドレスのアカりントのパスワヌドは、入力されたパスワヌドず䞀臎したせん:
 6.b.1 システムは、このアカりントぞのログむン詊行倱敗のカりンタヌを増やしたす。
 6.b.2 システムは倱敗に関するメッセヌゞを衚瀺し、「パスワヌド回埩」シナリオに進むかステップ 2 に進むかを遞択したす。
6.c: このアカりントのログむン詊行カりンタが「セキュリティ ルヌル No. 24」のしきい倀を超えおいたす。
 6.c.1 システムは、アカりント ログむンのブロックに関するメッセヌゞを X 分間衚瀺し、ステップ 2 に進みたす。

䜕がすごいの

完党性ず目暙ぞの準拠をチェックしたす。぀たり、怜蚌のために芁件を別のアナリストに枡すこずができるため、問題策定の段階での間違いが少なくなりたす。

ブラック ボックス システムを䜿甚するず、自動化する内容の開発ず顧客ずの調敎を実装方法から切り離すこずができたす。

これはアナリストの道の䞀郚であり、ナヌザビリティの䞻芁な郚分の XNUMX ぀です。 ナヌザヌのシナリオはナヌザヌの動きの䞻な経路を定矩したす。これにより、デザむナヌず顧客の遞択の自由が倧幅に枛り、デザむン開発の速床が向䞊したす。

説明内の各むンタラクション ステップの䟋倖が特定されおいる箇所に非垞に満足しおいたす。 完党な IT システムは、ある皮の䟋倖凊理 (䞊蚘の䟋のように、䞀郚は手動で、䞀郚は自動的に) を提䟛する必芁がありたす。

経隓䞊、䟋倖凊理を軜率に行うず、システムが非垞に䞍䟿なシステムに簡単に倉わっおしたう可胜性があるこずがわかっおいたす。 ゜ビ゚ト時代に、決定を埗るためにさたざたなサヌビスからいく぀かの承認を埗る必芁があり、最埌のサヌビスで承認を埗る必芁があったずきの話を思い出したす。しかし、アプリケヌションの名前が間違っおいたり、その他の間違いがあったずきは、ずおも苊痛でした。句読点を削陀し、すべおをやり盎し、すべおを再調敎したす。

䟋倖を考慮しお考えられおいなかったシステムの動䜜ロゞックにより、システムの倧幅な䜜り盎しが必芁になる状況によく遭遇したす。 このため、アナリストの䜜業の倧郚分は䟋倖凊理に費やされたす。

図ずは察照的に、テキスト衚蚘を䜿甚するず、より倚くの䟋倖を特定しおカバヌするこずができたす。

実践からのメ゜ッドぞの远加

ナヌザヌ ストヌリヌずは異なり、ナヌス ケヌスはステヌトメントの䞭で独立しお優先順䜍が付けられる郚分ではありたせん。

䞊蚘のシナリオでは、䟋倖「6.a.」を考慮しおください。 このメヌルアドレスのアカりントは芋぀かりたせんでした。」 次のステップ「6.a.1 システムは倱敗メッセヌゞを衚瀺し、ステップ 2 に進みたす。」 舞台裏にはどんなネガティブなものが残されおいたのでしょうか クラむアントにずっお、䜕らかの利益が埗られるずいうこずは、デヌタを入力するために行ったすべおの䜜業が埋め立お地に捚おられるこずず同じです。 (スクリプトに衚瀺されないだけです!) 䜕ができるでしょうか? これが起こらないようにスクリプトを再構築しおください。 これは可胜でしょうか 䟋ずしお、Google 認蚌スクリプトを芋おみたしょう。

シナリオの最適化

この本では圢匏化に぀いおは述べおいたすが、そのようなシナリオを最適化する方法に぀いおはほずんど述べおいたせん。

ただし、シナリオを最適化するこずでこの手法を匷化するこずは可胜であり、ナヌスケヌス圢匏化手法によりこれが可胜になりたす。 具䜓的には、発生する各䟋倖に぀いお考え、原因を特定し、䟋倖を取り陀くかカスタマヌ ゞャヌニヌを最小限に抑えるためにスクリプトを再構築する必芁がありたす。

オンラむン ストアから泚文する堎合は、お届けする郜垂を入力する必芁がありたす。 サむズ制限、たたは察応する倉庫の商品䞍足により、店舗がクラむアントが遞択した郜垂に商品を配送できないこずが刀明する堎合がありたす。

登録段階でのやり取りのシナリオを簡単に説明するず、「クラむアントに配達が䞍可胜であるこずを通知し、郜垂たたはカヌトの内容の倉曎を提案する」ず曞くこずができたすそしお、倚くの初心者アナリストはそこで止たりたす。 ただし、そのようなケヌスが倚数ある堎合は、シナリオを最適化できたす。

たず最初に、配達可胜な郜垂のみを遞択しおください。 これはい぀行うべきですか? りェブサむトで補品を遞択する前に説明付きの IP 経由で郜垂を自動怜出。

第二に、クラむアントに提䟛できる商品のみを遞択できるようにする必芁がありたす。 これはい぀行うべきですか? 遞択の瞬間 - 補品タむルず補品カヌド䞊。

これら XNUMX ぀の倉曎は、この䟋倖を排陀するのに倧いに圹立ちたす。

枬定ず指暙の芁件

䟋倖凊理を最小限に抑えるタスクを怜蚎する堎合、レポヌト タスクを蚭定できたす (ナヌスケヌスは説明されおいたせん)。 䟋倖が䜕件あったか、どのような堎合に䟋倖が発生したか、および正垞に成功した受信シナリオの数を加えたす。

しかし悲しいかな。 経隓䞊、この圢匏のシナリオのレポヌト芁件では䞍十分であるこずがわかっおいたす。䞻にナヌスケヌスの圢匏ではなく説明されおいるプロセスのレポヌト芁件を考慮する必芁がありたす。

ナヌザビリティぞのアクセス

私たちの実践では、クラむアントが意思決定を行えるように、゚ンティティずデヌタの特定の属性の説明を含むナヌスケヌスの説明フォヌムを拡匵し、その埌の䜿いやすさを向䞊させたした。

ナヌザビリティ蚭蚈のため、デヌタの衚瀺ずいう入力セクションを远加したした。

承認のあるシナリオでは、これはクラむアントがシステム内で承認されおいるずいう事実です。 クラむアントが事前認蚌されおいる堎合は、認蚌が成功した埌にナビゲヌション履歎ずカヌトを新しいアカりントに切り替えるこずに぀いおの譊告を衚瀺したす。

䞀般に、これはクラむアントがシナリオに埓っお今埌の行動を決定できるようにするために必芁な情報の衚瀺ですクラむアントにずっおこのデヌタで十分か、他に䜕が必芁か、どのような情報が必芁なのかを尋ねるこずができたすクラむアントが決定を䞋す必芁がありたす)。  
入力された情報が個別に凊理され、さたざたな䟋倖が圢成される堎合は、入力フィヌルドに入力情報を分割するこずも䟡倀がありたす。

クラむアント認蚌の䟋では、入力した情報をログむンずパスワヌドに分離する堎合、個別のログむンず個別のパスワヌドを入力する段階を匷調衚瀺するように認蚌スクリプトを倉曎する䟡倀がありたす (これは Yandex や Google で行われたすが、ほずんどのオンラむンストアでは行われおいたせん。

必芁なデヌタ倉換を達成する

デヌタ倉換アルゎリズムの芁件をスクリプトから抜出するこずもできたす。

ПрОЌеры

  • オンラむン ストアで補品を賌入するかどうかを決定するには、クラむアントは補品カヌドに蚘茉されおいるこの補品の可胜性、コスト、自分の郜垂たでの配達時間を知る必芁がありたす (これらは、オンラむン ストアでの補品の入手可胜性に基づいおアルゎリズムによっお蚈算されたす)。倉庫ずサプラむチェヌンパラメヌタ。
  • 怜玢行に語句を入力するず、クラむアントにはアルゎリズムに埓っお怜玢候補が衚瀺されたす (アルゎリズムによっお生成されたす)。

合蚈で

䞀般に、残念なこずに、この本を読んだ埌、アナリストがビゞネス䞊の問題を解決し、開発者向けに正匏な技術仕様を䜜成するたでの手順は明確ではありたせん。 この本にはプロセスの䞀郚しか曞かれおおらず、入力ステップも明確でなく、次のステップも明確ではありたせん。 ほずんどの堎合、ナヌスケヌス自䜓は開発者にずっお完党なステヌトメントではありたせん。

それにもかかわらず、これは、オブゞェクトずサブゞェクトの間の盞互䜜甚のシナリオを圢匏化しお凊理するための非垞に優れた方法であり、盞互䜜甚によっおサブゞェクト内の䜕かに倉化が生じる堎合がありたす。 これは、明瀺的な䟋倖怜玢ポむントを䜿甚しお怜蚌可胜な芁件を可胜にする数少ない蚘述方法の XNUMX ぀です。

この本は、アナリストがテスト可胜なプレむを曞き始めるために必読の曞です。

出所 habr.com

コメントを远加したす