SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

リレーションシップ駆動要件分析による実践的な要件定義手法

要件の精度を向上させる

リレーションシップ駆動要件分析による実践的な要件定義手法(5)

要求を使って要件定義に方向性を与える

要求を使って方向性を探る

 要求を整理することで要件を定義する方法が広く知られています。しかし、実際のプロジェクトにおいては初期の要求を捉えることはあっても、その要求を実際の要件定義に活かしているプロジェクトは希です。

 通常はプロジェクトの初期の段階で要求を洗い出しても、いつしかその要求は忘れられ要求が要件定義に反映されているか否かはどうでもよくなります。

 「RDRA」では要求を要件定義工程の中で実際に活かしていく工夫をしています。

 以下に、4つの分類を示します。

  • 要望:プロジェクト発足時の初期要求として認識しているものを要望として整理する
  • 機能要求:要望を整理し粒度を合わせ構造化したものを要求としてまとめる
  • 非機能要求:非機能要求として粒度を合わせ構造化した要求
  • 要件:マネージメント上重要なステークホルダーが認識している要求

 このような分類を行っている手法は他にもあります。「RDRA」の分類で重視しているのは各々の分類ごとに明確なアクションにつなげられることです。

 要望は初期の要求をそのまま要望としてまとめます。基本的にヒアリングやアンケートなどで集まったものをそのまま加工せず、ありのままの要望として登録します。

 通常要望は様々な粒度で集まります。画面の項目レベルのものもあれば、「~を使いやすくする」などの抽象的なものまで様々です。それらのバラバラな粒度のものを構造化しながら揃えるのが機能要求と非機能要求です。

 粒度を揃える中で本質的な要求を探ります。同時に分かりにくい抽象的な概念については認識が合うレベルまで具体化します。

 一方各モデルを作成するなかでシステム化すべきことが明らかになった時には「~できること」「~を実現すること」などの表現で要求として実現することを明示します。

 最後にステークホルダーが関心をもつ重要な要求を要件として整理します。この要件は後で各定義情報と突き合わせを行い、定義漏れをおこさないように活用します。

 システム化の方向性は上記の一連の整理の中で徐々に明確になります。特に要求を構造化し、「そもそも何のためにシステム化を行うのか?」という点を突き詰めていくとシステムの目的や役割などが明らかになります。この繰り返しでシステムとして実現すべきことを言葉で明確にします。

要求を整理して大事なポイントをつかむ

 「要件のツボ」では上記の要求に関わる一連の作業を行いやすいように工夫しています。まずは初期の要望は登録処理で連続的に入力します。通常プロジェクト発足時には何らかの要求がリストアップされているので、そのリストアップされたものを順次登録します。

 次に要望から機能要求、非機能要求に分けて整理するために、要望を要求としてコピーし階層化します。それを行うのが図5(2)の「要求分析」機能です。この機能を使って要望から要求を素早く作成します。要求の構造化は要求間の関係を考えながら階層化します。抽象的な要求は具体化し、具体的過ぎる要求は上位の本質的な要求へと変換します。また機能要求と非機能要求をカテゴリとして分類し整理します。

 最後に上位のステークホルダーが関心をもつ重要な要求を把握し、それを要件としてまとめておきます。「要求分析」機能を使って要求から要件を洗い出します(図5(3)参照)。そして洗い出した要件がどれだけ考慮されているかを確認するのが、図5(4)「要求マッチ」機能です。この機能を使って要件と他の定義情報を結びつけることができます。最終的に何も結び付きのない要件が具体的に考慮漏れの可能性があります。

 このように「要件のツボ」では要求を分類し、具体的に要求を整理するための画面が用意されています。そして上位のステークホルダーの関心を具体的な定義情報に結びつけることで、重要な要件を的確に捉え、それを考慮した定義を行えるように工夫されています。

 これにより従来は活用されることの少なかった、要求を要件定義の中で有効に活用し、要件定義そのものの精度向上に役立てることができます。

図5 要求の活用
図5 要求の活用

ツールを使って議論する

議論を促進するツール

 今回紹介したツール(リンク分析、CRUD分析、要件分析、関連チェック、要件マッチ)はどれもマウス操作だけで扱えます。これにより打ち合わせの場でツールを使うことができます。つまり、議論をしながらその結果をマウス操作だけで直接反映でき、議論を邪魔するようなことはありません。

 また、より積極的にこのツールを使うことで議論を展開しやすくすることもできます。例えば上位のステークホルダーが参加するレビューに「要求マッチ」機能を使うことが考えられます。ステークホルダーの関心をあらかじめ要件としてまとめておき(図5(3))、レビューの場で要件を一覧として示すことで、レビュー対象を明らかにできます。次に要件を考慮した部分について説明しながらドラッグ&ドロップで関係づけていきます(図5(4))。こうすることで要件としてまとめたことが、定義としてどの程度考慮されているかを表現できます。同時に考慮漏れを確認することもできます。こうすることで次回のレビューまでの課題を共有することができ、スピーディーに的確なレビューを実現できます。

 要件定義の精度向上のためには様々なやり方があります。そしてその中にはツールの支援によって効率的に進められるものもあります。今回紹介したやり方を参考に読者が関わる要件定義の精度が向上することを願っております。

参考資料

 「要件のツボ」に興味のある方は無料で使える「要件のツボ:コミュニティエディション」をご利用ください。「要件のツボ」のベースとなる「RDRA」を詳しく知りたい方は「要件定義マニュアル」を参照してください。手軽に「RDRA」の概要を知りたい方は「リレーションシップ駆動要件分析サイト」をご覧ください。

まとめ

 今回は要件定義の精度を上げるための各種機能とその背景にある考え方を示しました。ツールの支援があれば要件定義に不慣れな方でもあるレベルまでは素早く要件を定義でき、精度を上げることができます。次回は要件定義の全体を俯瞰して状況を把握し、マイルストーンとレビューを活用した進め方を紹介します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
リレーションシップ駆動要件分析による実践的な要件定義手法連載記事一覧

もっと読む

この記事の著者

神崎 善司(カンザキ ゼンジ)

(株)バリューソース代表大手SIerにおいて大小10システム以上のプロジェクトリーダを勤め、20年ほど前に独立。2002年から5年間(株)豆蔵での社員も兼任しながら要件定義などの上流工程のコンサルティングを行う。2008年に要件定義手法「リレーションシップ駆動要件分析(RDRA)」を開発し現在はその...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5903 2011/05/13 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー