設計情報

投稿者: 営業支援部 2023年12月26日 (火)

『要求定義』システム開発で設計前にすべきこと①

本記事では、SPIRALでシステム開発を行う際に設計に着手する前に行うべき「要求定義」についてご紹介します。


要求定義とは

ユーザーが、システムを使って何を実現したいのか、何ができなければ困るのかといった要求事項(=システム化の目的)を明確化するフェーズのことを「要求定義」と呼びます。

開発プロセスでの要求定義

システムの開発プロセスのウォーターフォール開発(V字モデル)を例に見ていきましょう。 ウォーターフォール開発とは、上流工程から下流工程へと滝のように順番に開発が進められていく開発プロセスです。
品質を作り込む上流工程と品質を確認する下流工程の対応を明確にしたモデルを「V字モデル」と呼びます。
上流工程で定義した仕様通りに動作することを、対応する下流のテスト工程で確認することがV字モデルの特徴です。

「要求定義」はシステム開発の最初の工程となり、要求定義によって把握した現状のユーザーの業務やその課題をもとに、次のフェーズで「要件定義」を実施して課題の解決策や、目指すべき状態を導き出し、その実現に向けて具体的なシステム提案を行っていくことになります。
また、続いて設計、実装へと進んでいくためこの「要求定義」はシステム開発を進めるうえで最も根本となるフェーズとなります。
要求定義のアウトプット(成果物)は「要件定義」のインプットとなり、また下流側の工程で要求通りのシステムになっているかどうか確認する「受入テスト」のインプットとなります。

実施すべきこと

1. システム化の対象となるユーザーの「現状の業務フロー」を明確化する
ユーザーの現状の業務を把握するため業務フロー図を作成します。
業務フロー図はユーザーの要求がシステム化の目的を果たすものであるか否かを判断する材料となります。また、次の「要件定義」のフェーズでシステム化後の業務フローを作図することで、システム化前後の業務フローの違いを明確化することができます。
2. ユーザーの要求事項を「要求定義書」にまとめる
現状の業務フローの中での課題と、その解決のために求めることやシステム化の目的などを要求定義書に文書化します。
要求定義書はユーザーがシステムで達成させなければならないこと(MUST)達成したいこと(WANT)をまとめたもので、次のフェーズの要件定義のインプットとなり、要件定義がユーザーの要求を満たしていることを検証する際に使用します。
3. 「業務フロー」「要求定義書」に対してユーザーと合意を固める
システム開発は、現状のユーザーの業務とその課題を明らかにすることから始まり、次にその課題を解決した後の目指すべき姿を導き出し、その目指すべき姿を実現するためのシステム提案、その実現、運用と進んでいきます。「要求定義」はシステム化を進める上で最も根本となるフェーズであるため、認識に齟齬がないかユーザーと合意形成を行います。
成果物については、独立行政法人情報処理推進機構(IPA)が公開している「超上流から攻めるIT化の事例集」にてサンプルが提供されています。開発プロジェクトによって作成するドキュメントの精査が必要ですが、各社でどのようなドキュメントが作成されているか閲覧できます。

参考:独立行政法人情報処理推進機構 (IPA:Information-technology Promotion Agency, Japan)
   超上流から攻めるIT化の事例集:INDEX
   超上流から攻めるIT化の事例集:システム化の方向性と計画

ポイント

システムだけに限定せずに業務フロー全体を把握する
ユーザーが必要とする要求の中には実現不可能なことや矛盾が含まれていることもあります。ユーザーからあがったシステム要求の背景を見極めるためにも、システムだけに限定せずに業務フロー全体を把握して目的、課題を理解するようにします。
提示されない要求がある前提でヒアリングする
要求定義は、本来システムのユーザー側が要求を明確にしていく作業であり、ユーザーが自発的に要求定義書を作成するケースもあります。
しかしながら目的が明確でない場合やシステムへの知識不足により要求が十分に満たされていない場合もあります。開発者側がこの段階で積極的にユーザーの要求を引き出し、明確化・文書化し合意を固めることがSPIRALでのシステム開発成功の第一歩となります。

さいごに

システム開発にて最初に行うべき「要求定義」についてご紹介しました。
現状のユーザーの業務フロー図や要求定義書を作成しユーザーと合意を固めることで、次のフェーズの「要件定義」にてユーザーの要求を漏れなく要件に含めることができ、使用されない機能や目的を果たせないシステムが出来上がることを防ぐことができます。SPIRALでのシステム開発のご参考になれば幸いです。
解決しない場合はこちら コンテンツに関しての
要望はこちら