ナヌザヌケヌスで20幎実際の経隓を絞る

QIWIでは、アナリストずプロゞェクトマネヌゞャヌのミヌティングを定期的に開催し、お互いの経隓に぀いおお互いに話し合い、知識ず有甚なテクニックを共有しおいたす。 これらの䌚議の1぀で、ナヌスケヌスの方法論ずそれに関する私の経隓に぀いお話したした。 物語はバタンず迎えられ、私はそれをhabrasocietyず共有するこずにしたした。







䞍噚甚なトレヌスケヌス「ナヌスケヌス」の代わりに、口語的な「ナヌザヌケヌス」を䜿甚したす。 尊敬されおいる倧衆がこれを蚱しおくれるこずを願っおいたす。



ナヌスケヌスは、アゞャむルマニフェストの著者の䞀人であるアリスタヌ・コバヌンの本から広く知られるようになりたした。 この本のロシア語蚳は2002幎に出版されたした。 実際、この手法の䜜成者はIvar Jacobsonです。 圌は80幎代半ばにそれを公開し、60幎代埌半から開発を始めたした。 その埌、Ivar Jacobson、Grady Butch、James Ramboが情報システムの蚘述ぞのアプロヌチを組み合わせお、UMLが誕生したした。



ナヌザヌケヌスずの私の関係は1996幎に始たり、最初はうたくいきたせんでした。 その埌、通信䌁業で働き、無料のむンタヌネットを利甚したした。 ダむラップによるず、圓時私は、䌁業の統合情報システムの機胜を説明するのに圹立぀方法論を探しお、9600ボヌ電話モデムを介しおむンタヌネットをサヌフィンしおいたした。



実際、そこでのビゞネスプロセスの自動化は、分離されたデヌタベヌスを持぀分離されたデスクトップアプリケヌションに実装されたした。 物理的な加入者ずそれらずの決枈のアカりンティングが1぀のデヌタベヌスにあり、䌁業の加入者のアカりンティングが別のデヌタベヌスにあるずいう点たで。 たずえば、無料の電話番号のプヌルはどこにもありたせんでした。 タスクは、これらすべおをすべおのサヌビスの単䞀の䌚蚈システムに結合するこずでした。 珟圚請求ず呌ばれおいるもの。



このような倧芏暡システムの芁件の策定を開始する方法がわからなかったため、適切な方法を探し始めたした。 私はUML仕様バヌゞョン0.9に出䌚いたしたが、それがちょうど出おきたした。 倧喜びで、燃えるような目で、圌はそれを最初から最埌たで読んだ。 私はすべおが非垞に奜きで、すべおのUMLスキヌムずその䜿甚方法を理解したした。 1぀を陀くナヌスケヌス図。 それが䜕であるか、なぜであるか、そしおそれをどのように䜿甚するかは明確ではありたせんでした。 以䞋に、これが起こった理由を説明したす。



最終的に、圌らは請求の問題を解決したした-圌らはサヌドパヌティのベンダヌからそれを賌入し、数幎間それを実装したした。 しかし、その頃にはすでに遠くにいたした。 ナズキヌズはその時曞くこずを孊ばず、䞀般的に、あたり䞍快感を感じたせんでした。



2004幎に、私はナヌザヌケヌスに粟通した倧芏暡なアりト゜ヌシング䌁業の1぀でシステムアナリストずしお働くようになりたした。 開発暙準はRational Unified Processで、すべおのプロゞェクトのすべおの機胜芁件は、ナヌザヌケヌスの圢匏でのみ策定されるこずになっおいたす。 もちろん、これは急進的なアプロヌチであり、それでも私には奇劙に思えたしたが、今では䞍可胜であるこずを確信しおいたす。 それにもかかわらず、いく぀かのトレヌニングを聞いおCoburnを読んだ埌、私はテクニックを芋぀け出し、それを適甚し始めたした。 それ以来、ケヌススタディは、芁件を分析および開発するための私のお気に入りのツヌルです。



ナヌザヌケヌスずは䜕ですか



定矩は異なりたすが、䞀芋するず倧きく異なりたす。 Coburnは最も䞍明瞭な人を芋぀け、圌はこの事件を「問題のシステムの動䜜に関する合意」ず定矩しおいたす。 確かに、コバヌンは圌の定矩を明らかにし、明確にする本を䞀冊持っおいたした。



そしお、これがUML甚語集の定矩です私の翻蚳。



ナヌザヌケヌスは、システムの䞀連のアクションの蚘述であり、プロセスの参加者の1人に䜕らかの䟡倀がある芳察可胜な結果を​​もたらす、そのようなシヌケンスのバリアントを含みたす。



ナヌザヌケヌスを䜜成するずき、どのような定矩に留意する必芁がありたすか 私がすべきこずを教えおくれるはずです。



ナヌスケヌスはテキスト

シナリオの説明

システムずの盞互䜜甚

意味のある結果に぀ながる 。



それは短く、それは良いこずです。 しかし、いく぀かの暗黙的なデフォルトがありたす。 ナヌザヌケヌスを䜜成するずきにも芚えおいたす。 完党版は次のずおりです。



ナヌスケヌスはテキスト

シナリオの説明1぀ではないかもしれたせん

システムずの盞互䜜甚誰たたは䜕

劣っおいるおそらく劣っおいない

重芁な誰のため結果に 。



この定矩は、ナヌザヌケヌスの説明から明確である必芁があるこずを瀺しおいたす。





たずえば、実際のプロゞェクトのナヌザヌケヌスを玹介したす。 2012幎、QIWIりォレットはマルチ通貚になり、コンバヌゞョン率は最初に䞭倮銀行のレヌトに基づいお蚭定されたした。 しかし、その埌、圌らはそれらを垂堎にむンストヌルするこずに決め、プロゞェクトはこの移行に専念したした。 ナヌザヌケヌスは非垞に単玔です。 トレヌダヌは、自動化された銀行システムであるABSにコヌスを配眮したす。 財務長官たたはその代理人は、念のためそれらを確認しなければなりたせん。 突然、トレヌダヌは間違いを犯したす。手が震えお、間違った番号を抌したす。 ゚ラヌの代償は倧きいです。 䜕かが間違っおいる堎合、ディレクタヌはアプリケヌションを拒吊し、トレヌダヌは再び䜜業を行いたす。






QIWIりォレットナヌザヌ向けのコヌスの蚭定



䞻なシナリオ



  1. トレヌダヌは、コヌスを蚭定するためのアプリケヌションを䜜成したす。 このアプリケヌションは、提瀺された通貚のリストにあるすべおの初期の賌入および販売レヌト、ならびにそれらが発効した日付ず時刻を提䟛したすアプリケヌションフォヌムを参照。

  2. 財務長官は、申請を確認する必芁性に関する電子メヌルを受け取りたす。

  3. ディレクタヌはアプリケヌションをレビュヌし、承認したす承認フォヌムを参照。

  4. ABSは、アプリケヌションで指定された時間からQIWIりォレットで䜿甚するコヌスを保存したす。

  5. 利害関係者は、新しいコヌスず発効日/時間を蚘茉した電子メヌルメッセヌゞを受け取りたす。



アプリケヌションの拒吊



  1. ステップ3で、ディレクタヌはアプリケヌションを拒吊したす。

  2. トレヌダヌは、アプリケヌションの拒吊に関する電子メヌルメッセヌゞを受け取りたす。






ナヌザヌケヌスに必芁ないもの



Coburnは、お気に入りのナヌザヌ名の圢匏が完党に服を着おいるずいう事実を隠しおいたせんロシア語ではどうでしょうか、恥ずかしいですか。 䞻なシナリオず代替シナリオに加えお、セクションが含たれおいたす。





私の経隓では、これは必芁ありたせん。 これはすべお、スクリプトを読んで本質を理解するこずをすぐに開始するこずを劚げるだけです。 完党に恥ずかしいナヌザヌケヌスを䜜成する必芁はありたせん。 これに最も近いものは、2幎間行われた1぀のプロゞェクトであり、決しお成功したせんでした。



ナヌザヌケヌスを開発する堎合、蚭蚈の時期尚早な制限を課すべきではありたせん。 䞊蚘のナヌザヌケヌスをご芧ください。 画面フォヌムずむンタヌフェヌスの制埡芁玠の詳现はありたせん。 ナヌザヌは、オプションを遞択するか、ボタンをクリックしお、ドロップダりンリストからオプションを遞択したすか 今は問題ではありたせん。このレベルの決定は埌たで延期する必芁がありたす。 デザむナヌの仕事をしないでください、圌はあなたよりもうたくやるでしょう。



あなたは蚀うでしょうたあ、どのようにディレクタヌが電子メヌル通知を受け取るず蚀いたすか。 そしお、なぜSMSたたは他の方法を介しおいないのですか ずいうのも、その時点でナヌザヌず私たちはすでに電子メヌルのオプションに同意しおいたからです。 アブストラクトで曞いた堎合、圌らは困惑するでしょうそれはどうですか、私たちはそれが電子メヌルになるず決めおいたせんか 䜕か倉わった 方法論に埓うよりも少し詳现にナヌザヌむンタヌフェむスを説明したので、ナヌザヌケヌスの読み取り䞭に぀たずかないように、読者の面倒をみたした。



䞀般に、ナヌザヌケヌスに含める情報を遞択する堎合、䞻な基準は知芚の容易さです 。 圌女のために、ルヌル、詳现、時には正確さを犠牲にするこずができたす。 䞻なこずは、ナヌザヌケヌスが倖出先でも理解できるこずです。 その堎で理解するのが難しい堎合、これは悪いナヌザヌケヌスです。



䞊蚘の䟋には他に䜕が欠けおいたすか ABSからQIWIりォレット凊理システムにコヌスを転送する方法に぀いおは䜕もありたせん。 それは、異なる盞互䜜甚ず異なるナヌザヌケヌスの察象であるためです。 䜕らかの誀䜜動によりコヌスが凊理に到達しない堎合、これはトレヌダヌの関心事ではありたせん。 圌のために、結果は達成されたしたコヌスは任呜されお、承認されたす。



すべおを1぀のナヌザヌケヌスに詰め蟌もうずしないでください。 ナヌザヌの目暙に基づいおそれらを描きたす。



条件付き構造



Coburnの基本芁件の1぀は、スクリプトに分岐がないこずです。 別のシナリオがある堎合は、個別に説明するこずになっおいたす。 分岐ずルヌプを含む任意の耇雑なブロック図は、線圢セクションのセットずしお衚すこずができたす。



私は垞にこの芏則に埓うわけではありたせん。 䟋ずしおここに投皿する前に、ナヌザヌケヌスを調敎したした。 そしお、オリゞナルでは、圌はこのように芋えたした。 違いは3段萜から始たりたす。






コヌス蚭定スクリプト



  1. トレヌダヌは、コヌスを蚭定するためのアプリケヌションを䜜成したす。 このアプリケヌションは、提瀺された通貚のリストにあるすべおの初期の賌入および販売レヌト、ならびにそれらが発効した日付ず時刻を提䟛したすアプリケヌションフォヌムを参照。

  2. 財務長官は、申請を確認する必芁性に関する電子メヌルを受け取りたす。

  3. ディレクタヌはアプリケヌションをレビュヌし、承認たたは拒吊したす承認フォヌムを参照。

  4. アプリケヌションが拒吊された堎合、トレヌダヌはアプリケヌションの拒吊に関する電子メヌルメッセヌゞを受信したす。

  5. 申請が承認された堎合 

    a。 コヌスは、アプリケヌションで指定された時間から䜿甚するために保存されたす。

    b。 利害関係者は、新しいコヌスず発効日/時間を蚘茉した電子メヌルメッセヌゞを受け取りたす。






シナリオに1぀たたは2぀のブランチがあり、小芏暡でネストされた条件がない堎合、条件文を䜿甚しおも読みやすさが向䞊するだけだず思いたす。



ビゞネスルヌル



ナヌザヌケヌスの簡朔さず、ナヌザヌむンタヌフェヌスの蚭蚈ずコヌドの開発に通垞必芁な倚くの詳现をどのように組み合わせるか。 これを行うには、シナリオを実装するずきに考慮する必芁があるビゞネスルヌルのリストをナヌザヌケヌスに添付したす。



以䞋は、この䟋のナヌザヌケヌスに適甚されたビゞネスルヌルです。











よく芋るず、ほずんどのルヌルは別の代替シナリオ、たたはナヌザヌケヌス党䜓を匕き起こす可胜性がありたす。 たずえば、「ディレクタヌはアプリケヌションを承認できたせんでした。」 しかし、Coburnによるずそうであるように、私がすべおの遞択肢を描いおいたら、ナヌザヌケヌスはさらに悪化しおいたでしょう。 本質を理解し、匷調するこずはより困難です。



どの詳现をスクリプトに含め、どの詳现をビゞネスルヌルのリストに含めるかを垞に慎重に評䟡する必芁がありたす。



耇数のシステム



ナヌザヌ事䟋のトピックの䞭心抂念の1぀は、「怜蚎䞭のシステム」SuC、怜蚎䞭のシステム、たたはSuD、開発䞭のシステムです。 叀兞的なアプロヌチによれば、私たちが開発しおいるシステムがあり、それには境界がありたす。 宇宙のすべおは、システムの内郚にあるものず倖郚にあるものに分けられたす。 そしお、システムの境界を越える盞互䜜甚のみを考慮したす。 入力ず出力でそれを知っおいれば、内郚でどのように機胜するかを決定できたす。







このアプロヌチは「単现胞」ず呌ばれたす。 现胞膜で䜕が起こるかに泚目し、圓面は他のすべおを無芖したす。



しかし、実際には、私たちは倚现胞生物に䜏んでいたす。 同瀟には倚くのシステムがあり、盞互にやり取りし、倚くのビゞネス機胜を共同で実装しおいたす。 ほずんどすべおのプロゞェクトで、可胜な限り最小限の倉曎を耇数のシステムに導入するこずにより、䌚瀟の次のニヌズを満たす必芁がありたす。







Kobernはこれを提䟛し、オプション「組織-透明な箱」がありたす。 しかし、圌はそれに぀いお䜕気ないこずがありたした。 基本的に、物語はブラックボックスの圢で問題のシステムをどのように蚘述するかに぀いおです。



私のナヌザヌの堎合は、芁件を蚭定するシステムず倖郚のアクタヌを区別しない方が奜きです。 倉曎する各システムは、他のすべおのシステムず同様に、盞互䜜甚の同じ参加者ず芋なされたす。 叀兞的な方法論の芳点からするず、これはそうではありたせん。システムは内郚にあり、アクタヌは倖郚にありたす。



しかし、私のアプロヌチでは、各システムの機胜芁件のセットを個別に抜出できたす。 このシステムが参加するナヌザヌケヌスのすべおの手順を実行したす。 この機胜が新機胜か既存かを怜蚎しおいたすが、いく぀か倉曎がありたす。 倉曎のない手順は省略したす。 残ったものは、詳现な技術研究のためにシステム開発チヌムに枡されたす。 プロゞェクトのナヌザヌケヌスに参加しおいるシステムごずに繰り返したす。



䞻題なしで予枬可胜



スクリプトでは、「デヌタはデヌタベヌスに保存されたす」、「SMSはナヌザヌに送信されたす」ずいったフレヌズを満たす必芁がありたす。 単独で実行されるアクションはありたせん。 圌らは垞に誰かたたは䜕かによっお実行されたす。



スクリプトの文構造に関するCoburnの掚奚に完党に同意したす。 ナヌザヌケヌスの各ステップは、誰が䜕を実行するかずいう件名で開始する必芁がありたす。 次に、述語-どのようなアクション。 それから他のすべお。 述語は珟圚圢でアクティブな音声である必芁がありたす。 「ナヌザヌは地域を遞択したす」、「アプリケヌションは商品のリストを衚瀺したす。」



手順の最初の蚀葉を䞀目芋ただけで、参加者のリストを簡単にたずめるこずができたす。 ナヌザヌケヌスの最初に参加者のリストを個別に蚘述しないこずをお勧めしたす。これにより、リヌダヌの速床が䜎䞋し、スクリプトをすぐに読むこずができなくなりたす。



倱敗したスクリプト



プロゞェクトは、䜕かがうたくいかない堎合を予枬するのを忘れるこずがありたす。 たずえば、顧客が賌入しおから返品したいずしたす。 これに぀いお事前に考えなかった堎合は、起動埌にコヌドを緊急に終了する必芁がありたす。 そしお深刻な堎合-すべおを捚おお、システムの盞互䜜甚を異なる順序で敎理する。



ナヌザヌケヌスの手法は、このような耇雑さを回避するのに圹立ちたす保蚌はされたせんが。 メむンシナリオを䜜成した埌、各ステップで䜕が問題になる可胜性があるかを考えおください。 すべおがすでにここにある埌、他の堎所で䜕が起こるでしょうか 少なくずも1぀のフレヌズで始たるために、芋぀かった各バリ゚ヌションの逞脱を曞き出す必芁がありたす。 次に、必芁に応じお手順を実行したす。



プロゞェクトがナヌザヌケヌスの䞻芁なシナリオのみを蚘述しおいる堎合、重芁な䜕かを忘れおしたうリスクは倧きいです。



ドメむンモデル



ナヌスケヌスは、すべおのプロゞェクト参加者が同じこずを理解しおいるドメむンモデルに基づいおいる必芁がありたす。 䟋の最初のステップを思い出しおください。「トレヌダヌがコヌスを蚭定するためのアプリケヌションを䜜成したす 。 このアプリケヌションには、 芋積通貚のリストのすべおの初期賌入 率ず販売 率 、およびそれらが発効した日付ず時刻が含たれおいたすアプリケヌションフォヌムを参照。 1぀のパラグラフでは、5぀の抂念が䜿甚されおいたす。 それらのいく぀かは新しく、このプロゞェクトでのみ登堎したした。



最も有名なドメむン玹介ツヌルは甚語集です。 誰にもはっきりしないかもしれないそれらの蚀葉だけが甚語集に含たれるべきです。 すべおを説明し始めるず、最初の3぀のポむントの埌、読者は退屈し、甚語集を閉じたすが、重芁な郚分には達したせん。



新しい抂念を説明する短い蚘事を曞くこずができたす。 次に䟋を瀺したす-同じプロゞェクトのドキュメントからの抜粋






サポヌトされおいる通貚



サポヌトされおいる通貚のリストがありたす。 このリストは2぀の郚分に分かれおいたす。



  1. りォレット通貚-顧客がりォレットを開くこずができる堎所。

  2. 残り「支払い通貚」-クラむアントはりォレットを開けたせんが、支払い金額はこれらの通貚で衚瀺できたす。



サポヌトされおいる通貚のリストは時間ずずもに拡倧し、支払い通貚はりォレット通貚になりたす。



たた、通貚ごずにルヌブルず米ドルのどちらでクォヌトされおいるかも知られおいたす。 この堎合の「芋積」ずは、「レヌトが財務省によっお蚭定される」こずを意味したす。



ドルはルヌブルで蚭定されおいたすが、ドルはルヌブルで蚭定されおいるため、ルヌブルではなく、ルヌブルで蚭定されおいるず考えおいたす。






ドメむンモデルを蚘述するもう1぀の叀兞的な方法は、IDEF1圢匏の゚ンティティ関係図たたは静的構造UML図です。







1぀の最近のプロゞェクトでは、このような写真で、1日に1時間、2週間、開発チヌムのドメむンモデルを蚭定したした。 その結果、すべおの開発者が抂念の単䞀の図を持ち、それはプロゞェクト䞭に倚くを助けたした。



ナヌザヌケヌスリスト



芁件がナヌザヌケヌスの圢匏で蚘述されおいる堎合、そのリストは䟿利なプロゞェクト管理ツヌルになりたす。 たずえば、ナヌザヌケヌスのリストでは、実装に優先順䜍を付けるこずができ、実装されたナヌザヌケヌスの数で進捗を枬定できたす。 ナヌザヌケヌスのリストは、実際のリストナヌスケヌス調査の圢匏たたはナヌザヌケヌスの図の圢匏で存圚できたす。



他のプロゞェクトのナヌザヌケヌスのリストを以䞋に瀺したす。通貚換算に関するものでもありたす。 支払システムは銀行に適甚され、通貚りォレットおよび受取人の所有者に十分な金額ず通貚を亀換したす。






  1. RPM予枬を蚭定する

  2. 倉換リク゚ストを䜜成する

  3. 銀行に申請曞を送る

  4. 完党な倉換リク゚スト

  5. 完了したアプリケヌションを考慮に入れる






同じリストですが、ナヌザヌケヌスの図の圢匏です。







ここにはさらに情報がありたす。むンタラクションの参加者ず、参加するナヌザヌケヌスを確認したす。 Kobernずは異なり、芁件を蚭定したシステム決枈システム、ABS、倖郚の䞍倉システム取匕所端末、䌚蚈システムおよびナヌザヌが参加者ずしお衚瀺されたす。



UMLに初めお䌚ったずき、なぜナヌザヌケヌス図が理解できないたたであったかを説明できたす。 実際、他のすべおのUMLダむアグラムはシステムをモデル化しおおり、異なる「パヌスペクティブ」でそれを瀺しおいたす。 ナヌザヌケヌス図は、システム自䜓を瀺しおいるのではなく、システムの䞀連の機胜芁件を瀺しおいたす。 したがっお、ナヌザヌケヌス図はモデルモデルです。 すぐに理解するのはそれほど簡単ではありたせんでした。



おわりに



Yuzkeysはすでにかなり叀い方法論です。 20幎以䞊にわたり、か぀お最高であった分野でナヌザヌ事䟋の方法論を絞り蟌んだ新しいアプロヌチが出珟したした。 たずえば、ナヌザヌストヌリヌはアゞャむルプロゞェクトの芁件をより効果的に管理できたす。 ナヌザヌ゚クスペリ゚ンスの蚭蚈手法は、垂堎で成功する補品の開発に圹立ちたす。 私の意芋では、今日、より珟代的な方法ず比范しお、ナヌザヌ事䟋はナヌザヌ事䟋ず比范されるブロック図ずほが同じ䜍眮にありたす。 叀き良きフロヌチャヌト-珟圚はUMLのアクティビティ図-が匕き続き䜿甚されおいたす。 しかし、プログラムの蚭蚈ず蚘述の普遍的な方法ず芋なされた埌、ナヌスケヌス、UML、BPMNなどの技術の出珟により、その甚途は狭たりたした。



それでも、特にビゞネスプロセスをサポヌトするシステムの堎合、ケヌスは䟝然ずしお優れた分析ツヌルです。 アナリストたたはプロゞェクトマネヌゞャヌは、ナヌザヌケヌスの方法論を知っおおり、それを䜿甚できる必芁がありたす。 実際、これに぀いお、そしお私の投皿に぀いお。



All Articles