SHOEISHA iD

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

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

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

要件定義の勘どころ

要件定義の勘どころ

要件定義は詳細なシステムの機能を決めるための入力情報

要件定義の構成要素

要件定義として何を定義するか

 筆者が考える要件定義の内容は表1の通りです。前ページの図1に登場しているものを説明する内容となっています。

表1 要件定義に含める内容
このシステムの目的(価値)は?
どのような責務を持つ人に使われるのか?
どのような外部システムとかかわるのか?
システムはどのような使われ方をするのか? 
システムとの接点は?
その時の入出力情報は?
システムに必要な機能は?
その機能が使用するデータは?

 表1の構成要素はそれぞれがWhatを表し、上に向かってWhyを表しています。そのため、システムについてこれらを踏まえて説明するとスムーズに理解できます。例えば次のような説明になります。

  • 「このシステムの目的は△△△です」
  • 「この目的は次のアクターによって実現され、□□の効果を発揮します」
  • 「そしてこの目的を実現するためには次のような業務を行います」
  • 「まず○○業務はYYYを実現するための業務です」
  • 「次にこれらの業務では~」
  • ~~~

 このようにシステムの目的、システムを取り巻く環境、そして機能とデータへとつなげて定義することで「なぜその機能が必要なのか」を容易に説明できるようになります。それは結果的に理解しやすいドキュメントでもあります。

何を大事にしないといけないのか

 先に挙げた図書館の例に置き換えて考えてみましょう。そのシステムが「誰にどのような場面」で使われるのか、そしてこのシステムによって「何を実現しようとしているのか」を要件定義書に含めていれば、画面設計などの詳細な仕様を決める段階で、もう少し利用者への配慮がなされたシステムになったと考えられます。

 「図書予約機能」と書かれていれば、わざわざ「システムを誰が使うのか」など要件定義書に書かなくても自明であると考えるかもしれません。しかし、それでもあえて記述する必要があるのは、発注者側の意志を表明するためです。「本を予約する人」というだけでもさまざまなことが考えられます。そこを「図書利用者」としての記述が含まれていれば、今回のシステムにおいて、どのような人が関わるのかを明確にしていることになります。そうすることでその「図書利用者」にとってどうあるべきなのかを考えることができます。

 要件定義において大事なことは、詳細な仕様を決めるために「本当に必要な機能は何か」ということの判断材料を提供することです。従って、要件定義を行っているときには機能の仕様について時間を割くよりもその機能が必要だと考えた筋道を明らかにすることが重要です。表1はその筋道を示しているのです。

 要件定義書の目的は発注者側がシステム化で意図していることを示し、それを伝えることです。そのためにもシステムが使われる環境を明確に定義する必要があります。そうすることでシステム化にあたって何に配慮しないといけないかが分かるようになります。

まとめ

 要件定義は詳細なシステムの機能を決めるための入力情報となります。そのためにはWhatとWhyが記述されていることを説明しました。また、その内容として表1にある項目を示しました。

 要件定義書のフォーマットは会社によってさまざまな形式が考えられますが、その内容について検討する場合はここで示したWhatとWhyの関係を意識して、その内容を見直すだけでも説明しやすく、理解しやすい要件定義書になります。

 筆者は要件定義の手法として「リレーションシップ駆動要件分析(RDRA)」を提唱しています。具体的な要件定義の内容や進め方は次のサイト「リレーションシップ駆動要件分析(RDRA)」、著書『要件定義マニュアル』(秀和システム刊)を参照ください。また、簡潔にまとめたものとして『DBマガジン 3月号』71ページ(1月24日発売)ではどのように要件定義を進めていけばいいかを記述したのでそちらも参照ください。

参考文献

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
この記事の著者

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4867 2010/02/05 17:45

イベント

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

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

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

メールバックナンバー