要件定義にUMLを使う
要件の定義、要求の定義にはいまだに定まった方式は無い、要求管理ツールとして以下のようなシステムがある。
・Telelogic:DOORS
・IBM Rational:RequisitePro
・Borland:CaliberRM
・スパークスシステムズ:RaQuest
これらのツールは要求そのものをだす事よりも出された要求の優先順位の管理や変更管理など、要求変更の影響度などを管理している。
しかし、要件そのものを分析的に作り出していくためにはこれらのツールでは役不足な気がしている。
ここでの要件定義をシステム開発の依頼者(ユーザ企業)がシステム開発者(SIer)に開発する機能(対象)を明確に伝えるために定義したものと考える。
通常この関係にはお金が絡むのでシステムが行うこと(What)をきちんと書いていなければならないと考えている。そのためには自然言語だけで書かれたドキュメントでは正確ではないと考えている。
そこで私の要件定義のコンサルの中ではUMLを使って要件定義を行う。
UMLを使うことでシステム化対象を理解することができ、かつ、絵的な表現であることから、その場で分析(ディスカッション)しながらUMLを書き、それがそのまま要件定義のドキュメントとなる。
このように打ち合わせの場がそのまま分析の場所になり、同時に合意の場となることで要件定義のスピードが格段に向上する。
ここ数年このような方法でコンサルしてきた中でUMLのテンプレートが出来た。
このテンプレートを使うことでモデルとして定義するものが明確になる。
そのポイントは以下の4つの視点で要件を分けて各々の視点別のモデルを作成することだと考えている。
・ToBe(コンテキスト、要求)
・システム外部環境
・システム境界
・システム
まずは要件定義をどのように表現するかを明確にしそれに基づいてUMLを使ったモデルを作成するのが重要である。