要求管理ツールは,システム構築におけるユーザーからの要求をデータベースで管理するためのツール。要求を変更した際の影響範囲をビジュアルに確認できる。「決めながら作る」というスタイルが増えてきた昨今,いかに要求をコントロールするかの重要性が高まり,要求管理ツールへの注目度が上がってきた。

図1●要求管理ツールの基本機能
要求管理ツールでは,(1)洗い出した要求をデータベース(リポジトリ)に格納し,(2)要求間の関係(リンク)を定義する。これにより,(3)要求を変更した際の影響範囲の調査が容易になる。(4)要求のバージョンも自動的に管理してくれるため,管理負荷も減る
表1●主な要求管理ツール
図2●要求管理ツールの使い方
まず要求を登録するが,ユーザーとのやり取りにはWord文書などを利用することが多いため,その取り込み機能があれば便利だ((1))。登録した要求は,階層構造で直感的に管理できる((2))。要求と一緒にテストを定義すれば,仕様の漏れや矛盾が見つけやすくなる((3))。要求が固まったら「ベースライン」として要求セットを作る((4))。画面はCaliberRM
図3●変更の影響範囲が可視化される
ツールの導入効果として最も大きいのは,要求変更の影響範囲を可視化できること。DOORS(左)では,要求を記した文章の任意の単位でリンクが付けられ,影響範囲は文書レベルで確認できる。CaliberRM(右)は,要求をアイコン化して影響範囲を表示する。いずれも,ツールの効果を引き出すには,リンクをきちんと維持する必要がある
画面1●他ツールと連携して相乗効果を上げる
IBM Rational RequisiteProは,UMLベースの設計ツール「Rational Rose XDE Modeler」などと連携可能。ユースケースを基点とした要求管理を実施できる

 要求管理ツールは,要求と要求を関係(リンク)付け,データベースに格納する。要求やリンクを変更した場合は,自動的にバージョンを管理。変更の影響範囲は,GUI上でリンクを調査することで把握できる(図1[拡大表示])。

 スウェーデンTelelogicの「Telelogic DOORS」を利用する,日本電気通信システムは,これらのメリットを実感している。同社では従来,紙ベースで要求を管理していた。しかし,「いくつものチューブ・ファイルに分かれた仕様書のつながりを,すべて把握することは不可能」(組込システムソリューション事業部 開発グループマネージャー 藤田浩司氏)という問題があった。開発者の記憶に頼った関係付けや,手作業による影響範囲分析ではどうしても漏れや矛盾がおきる。それらはテスト工程でバグとなって現れる。

 「上流工程での要求管理の大切さは分かっていたが,頼れるツールがなかった」(藤田氏)。ところが,2002年4月にDOORSが日本上陸。4カ月後にはいち早く導入を決めた。導入後は,ツール上で要求間のリンクを調査して漏れや矛盾を排除,実装工程にバグが流れ込むリスクを減らしている。

要求を階層化してリンクを付与

 要求管理ツールの品ぞろえも,充実しつつある。DOORSのほか,日本IBMは2004年5月に「IBM Rational RequisitePro 2003 SR2」を出荷。2004年6月にはボーランドが「Borland CaliberRM 6.5」日本語版を国内初出荷した(表1[拡大表示])。実際に,これら要求管理ツールの使い方を見ていこう。

 まずは要求をツール内のデータベースに格納する。通常,要求定義書といった設計書類は,回覧や承認するために紙ベースであることがほとんどだろう。それらの書類に記述された要求を簡単に登録できるように,要求管理ツールはWordやExcelのグラフ,テキスト・ファイルなどからの取り込み機能を備えている(図2[拡大表示]の(1))。

 ツールに登録した要求は,Windowsのエクスプローラのように階層構造で配置,ツールの利用者が要求間のリンクを設定していく。例えば,「商品を注文する」という要求の下に,「商品を検索する」「検索結果を一覧表示する」という要求をリンクさせる(同(2))。

 リンクを設定できる項目は,設計書や文章,キーワードなど,自由度が高い。DOORSのように,階層構造のひな型に利用できるように,IEEEやISOが標準化した「開発やテストでそろえるべき資料の目次」をあらかじめ取り込んだ製品もある。

 またCaliberRMではドラッグ・アンド・ドロップで,要求を階層間で移動させることが可能。すべての製品で,登録した要求には「重要度」といった任意の属性を付与できる。管理項目として利用するとよいだろう。

 要求管理ツールの導入効果を高めるために,要求を登録したらそのテスト項目も一緒に入力したい。要求変更が発生した場合は無駄になる恐れはあるが,テストを意識することで,要求の曖昧さや矛盾が排除しやすくなるからだ(同(3))。また,あるタイミングでユーザーと合意が取れた要求セットは,「ベースライン」として仕様を凍結しておく(同(4))。

変更時に威力を発揮

 いったんベースラインを固めたら,それを保って開発を進めたい。しかし現実には,要求変更がつきものだ。しかも,「要求変更は,影響範囲の分析作業と,本当に変更を実施すべきかどうかをユーザーと判断する作業が重なるため難易度が高い」(電通国際情報サービス 事業推進本部 開発統括部 テクニカルエバンジェリスト 高安厚思氏)。この分析作業において,要求管理ツールは最大の威力を発揮する。

 要求管理ツールでは,要求変更の影響範囲を“見て”確かめられる(図3[拡大表示])。影響範囲は,DOORSでは文書レベルで,CaliberRMは要求をアイコン化して,それぞれ表示する。どちらも影響のある要求には,「サスペクトリンク」と呼ぶマークが付き,修正忘れを防ぐ工夫がされている。

運用ルールが欠かせない

 要求管理ツールは,要求定義フェーズのみで使うものではなく,システム開発全般で利用する。そのため,C/S型やWeb型で動作し,チームで利用できるようになっている。

 開発ツールとの連携機能はすべての製品が備える。例えばRequisiteProは,米IBMのテスト管理ツール「IBM Rational TestManager」とテスト設計書をやり取りできる。要求定義はどの開発プロセスでも必要なため,要求管理ツールもどのプロセスでも利用できるようになっている。

 加えて,RequisiteProはRUP(Rational Unified Process)でも利用できるように,UMLモデリング・ツール「IBM Rational Rose XDE Modeler」などとの連携機能や,ユースケースから要求管理を実施できる機能を備えている(画面1)。

 多彩な機能を備える要求管理ツールだが,導入に当たり注意点もある。一つは,要求管理ツールを使いこなすには,要求と仕様を的確に分けるスキルが必要なこと。「要求と仕様が区別できていなくても,ワープロの仕様書ではそれらしい体裁になる。しかし,それを要求管理ツールに登録したところ,要求と仕様が混ざっているためにリンク付けが不可能なケースがあった」(日本電気通信システムの藤田氏)。

 もう一つ,要求管理ツールの運用ルールを決めておくことが大切だ。ツールは様々なプロジェクトで利用できるように,要求の登録方法などにかなり自由度がある。しかし,要求の粒度や属性の付け方などを決めておかなければ,登録はしたが使い物にならない,といった事態に陥りかねない。あらかじめ,設計書の記述方法,要求の具体化方法など運用ルールを整備しておくべきだろう。必要ならば,ツールベンダーのコンサルティングも検討したい。

(井上 英明)