通常、システム開発では利用目的からシステムのイメージを膨らませて、要求を段階的に詳細化して決定していく。機能要求ではこうした流れが当たり前になっているが、非機能要求もこの段階的詳細化の流れで検討できるとよい。

 だがこれまでそうしたツールがなかったのが実情だ。そのため非機能要求は検討しにくく、その定義が後回しにされがちだった。そこで検討会は具体例を提示できる手段を用意し、「早期に」重要な非機能要求項目を決められるようにした。

モデルシステムから近い像を選ぶ

 具体例として最も抽象度が高いものが「モデルシステム」だ。利用ガイドで信頼性に差がある三つのシステムを用意している(図3)。具体的には、社会インフラを支えるような「社会的な影響が極めて大きいシステム」、企業の基幹システムのような「社会的な影響が限定されるシステム」、部門システムのような「社会的影響が殆ど無いシステム」である。この分類は情報処理推進機構(IPA)が公開する「重要インフラ情報システム信頼性研究会報告書」を参考にしている。

図3●利用ガイドで示す三つのモデルシステム
図3●利用ガイドで示す三つのモデルシステム
可用性など六分類・15~17個の非機能要求項目から三つのモデルシステムを定義。利用時は関連する業務要件と照らし合わせて選択する

 モデルシステムはおおまかな規模感やその他の非機能要求を判断する助けになるよう、可用性、性能・拡張性、運用・保守性、移行性、セキュリティ、環境・エコロジーの六つの観点でそれぞれに1~4個の説明を付し、システムのイメージを対比することができるようにした。

 図3では可用性と性能・拡張性を示しているが、イメージしにくいセキュリティでは、外部への接続や個人情報などの重要な情報資産の保有の観点でモデルシステムの差を表している。

 また昨今重要となってきた事業継続の観点で大規模災害に関する項目もある。「社会的影響が極めて大きいシステム」では大規模災害時でもディザスタリカバリサイトでの業務継続を求めているが、「社会的影響が殆ど無いシステム」であれば大規模災害時にはシステムを再構築して機能を回復させること、と例示している。

 これらの例示があれば、発注者は構築するシステムのイメージをとらえやすくなるだろう。発注者は業務要求に照らし合わせて、条件に合致するモデルシステムを選択し、その後に詳細化を進めるベースとする。

グレード表で詳細を詰める

 システムの目的からモデルシステムを選んだら、次は特に重要でコストに大きく関係する非機能要求項目を決める。ここで判断の助けになるのがグレード表だ。

 グレード表は品質やコストに影響が大きく、早期に検討すべき重要な非機能要求項目105個について、モデルシステムごとに要求項目の値を例示している(図4)。例えば可用性のカテゴリに含まれる運用スケジュールでいえば、「社会的影響の殆ど無いシステム」は夜間のみ停止する。

図4●グレード表はモデルシステムに応じた重要項目の値を記載
図4●グレード表はモデルシステムに応じた重要項目の値を記載
品質やコストに影響する特に重要な非機能要求項目の参考値を記載する。[+][-]はレベルを上下させるための判断条件である
[画像のクリックで拡大表示]

 図にはないが、より信頼性が高い「社会的影響が限定されるシステム」は業務開始前に5分程度の計画停止を許し、最も信頼性の高い「社会的影響が極めて高いシステム」は24時間無停止を例示している。

 またディザスタリカバリ関連でいえば、システム復旧時間の目安として、通常時のシステム停止とは別に「目標復旧水準(大規模災害時)」を例示している。「社会的影響が極めて大きいシステム」では3日以内に再開、「社会的影響が限定されるシステム」は一週間以内に再開、「社会的影響が殆ど無いシステム」は数カ月以内に再開としている。

 ただし、グレード表は例を挙げているに過ぎない。発注者は例を参考に自社の要求に照らし合わせて「より高い要求が必要か」「もっと低い要求でも十分か」を判断し調整してほしい。

 例えば「目標復旧水準(大規模災害時)」でいえば、発注者が業務停止の影響が大きいと判断した場合には、選んだモデルシステムが「社会的影響が限定されるシステム」であっても、グレード表が例示する「一週間以内に再開」ではなく、「3日以内に再開」や「数時間~1日以内に再開」といった具合により高いレベルへ調整する。

 グレード表ではこうした調整の判断条件も併せて記載している。「目標復旧水準(大規模災害時)」の例では要求レベルを上げる([+])判断条件は「業務停止の影響が大きく、ディザスタリカバリサイトによる早急な復旧が必要な場合」としている。逆にレベルを下げる([-])条件は「代替機器の調達や復旧体制の準備に時間がかかる場合」である。


山下 武志
NTTデータ
技術開発本部 ソフトウェア工学推進センタ