要件定義の構造

前回は「前提条件を定めることで整理が進む」という話をしましたが、要件定義をシステマティックに進めていくためには定義する要件の構造が、この前提の連続になっていることが大事です。つまり「今回のシステム化の目的はXXXである。だからこのような業務になり、その中でシステムをYYYのように使用する。従ってシステムはZZZの機能を必要とする」のようなつながりです。

要件定義の最終目的は「どのようなシステムを作るのか」ということなので、そのための前提条件を何段階も積み重ねていき、最終的にシステム化の目的までつなげていくことで、目的からシステム化の内容まで、スムーズに展開できると考えます。

システム化するための要件として「どのようなシステムを作るのか」ということを定義します。そしてそのためにはシステムの機能とデータを明らかにすることが必要です。
ではその機能とデータを導き出すために、どのような前提条件が必要かというと、システムとの接点(インターフェース)が明らかになる必要があります。システムとの接点(システム境界)がぐらついていては機能とデータは定まりません。
ではシステム境界を明確にするためには何が必要なのかというと、それはシステムを使う環境を明らかにする必要があります。具体的にはシステムを使用する業務や利用するシーンを明らかにします。そして、そのシステムを使う環境を具体的に決めるためには、その業務の目的や役割が必要になります。そしてこの目的や役割が明確でないといつまでたってもシステムを使う業務が定まりません。

以上のことからシステムの要件を定義するためには以下のことが明確になる必要があります。

 1.業務やシステムの目的・役割
 2.システムを取り巻く環境(業務)
 3.システムとの接点を表すシステム境界
 4.システムの機能とデータ

このようにシステムの機能とデータを明らかにするために、4段階の手順を踏んで定義していくことが、システマティックに要件を定義するためのポイントです。

これを整理して要件定義のための視点としたのが以下の4つです。

 1.システム価値
 2.システム外部環境
 3.システム境界
 4.システム

要件定義には上記の4つの視点があり、それがそのまま要件定義の構造であると考えます。
つもり、システムはシステム境界に依存し、システム境界はシステム外部環境に依存します。そして、システム外部環境はシステム価値に依存します。このように依存関係をもった構造を要件定義の構造としました。

この4つの視点には各々明らかにするべき情報があり、その情報がそのまま要件定義の内容になると考えます。
その情報の分析と表現方法としてUMLを使います。しかし、UMLは手段ですから、他の表現方法でも構いません。

重要なことは4つの視点にはそれぞれに明らかにすべき情報があり、それが整理されればいいのです。

そして、それらの情報は互いにつながりをもち、トレーサビリティを確保していることです。
このつながりが網羅性や整合性を確保するために役に立ちます。

このつながりを使って要件分析を進めることから、この要件分析手法を「Relationship Driven Requirement Analysis」RDRA:ラドラ と呼びます。

次回以降はRDRAの考え方を紹介したいと思います。