はじめに
数人で1か月間要件定義を行うと数冊分のファイルになるような膨大な情報が作成されます。プロジェクトリーダーは印刷された膨大な情報を見ながら「1か月前から作成している情報は整合性がとれているだろうか?」と心配になります。
情報が集まると次に精度が気になります。要件を定義するためには精度をどのように高めていくか併せて考えていく必要があります。
要件定義支援ツール「要件のツボ」(以下「要件のツボ」)も要件をつなげて定義しただけでは要件の精度を向上させることはできません。登録した情報を様々な視点で確認することで整合性や網羅性を向上させることができます。今回は「要件を分析する」「要件を検証する」「要求を使って要件定義に方向性を与える」「ツールを使って議論する」の4つの場面で精度をあげる方法を紹介します。
要件を分析する
個々のつながりから妥当性を分析する
リレーションシップ駆動要件分析「RDRA」(以下「RDRA」)ではアクターからデータまでをつなげて定義します。一連のつながりには意味があります。その意味を確認することで洗い出した情報の妥当性を確認できます。
例えばアクターを起点にそのアクターにつながる要求と利用シーンを確認することで、利用シーンが要求を満たしているかを確認できます。同じように利用シーンにつながるユースケース、画面・帳票をアクターからたどることで、そのアクターの責務や権限と画面・帳票の権限が適合しているかを確認できます。その他にもユースケースにつながる機能を確認し、その機能と関わる別のユースケースを確認することで機能の分割単位が適切か否かを識別できます。このように定義された情報のつながりを調べることで、新たな発見があり、精度向上のきっかけになります。
「要件のツボ」にはこのつながりをたどっていく「リンク分析」という機能があります。打ち合わせの中でこの機能を使ってアクターから順次つながりを確認し、不適切な関係や見落としなどを見つけることができます。
個々の情報だけで精度を向上させようとしても限度があります。このように個々の情報をたどりながら、その関係性に着目することで新たな視点で要件を確認できるようになります。
CRUD分析で整合性を高める
CRUD分析は歴史のある分析方法です。データと機能との関係をCRUD(Create、Read、Update、Delete)で表します。データのライフサイクルを調べることで機能の抜けやミスを調べることができます。
図2では「利用者情報」と「お気に入り情報」に矛盾があることを示しています。ともにデータの生成(Create)がないのにReadとUpdateがあります。これは2つの情報を生成する機能が抜けていることを表しています。他の機能で2つの情報へのアクセスが抜けているか、機能そのものの見落としの可能性があります。
RDRAではアクターと外部システム、データはつながりの端点になります。データで整合性を合わせることで、アクター・外部システムからつなげてきた関係を、今度はデータからアクターに向けてつながりを検証できます。
例えば機能の抜けを発見した場合は、その機能とつながるユースケースを探し対応するものがなければ、新たにユースケースを追加します。このようにつながりを遡ることで、新たな要件や不整合な要件を発見できます。