性能や信頼性、保守性といった非機能要求は情報システムの高度化・大規模化が進むに伴って、その重要性が改めてクローズアップされている。あいまいにしたままシステム開発を進めるのはあまりにもリスクが大きいからだ。
こうしたなか「システム基盤の発注者要求を見える化する非機能要求グレード検討会」はこの5月に非機能要求グレードを公開した(図1)。検討会はNTT データ、富士通、NEC、日立製作所、三菱電機インフォメーションシステムズ、OKIの6社が2008年4月に共同で発足させた。
非機能要求グレードの目的は、「早期に」「誤解なく」「漏らさずに」非機能要求を発注者が受注者と共同で定義して、かつ、合意できるようにすること。これまでの非機能要求定義の難しさを克服するため、非機能要求で決めるべき項目を定め、その具体例を段階的に「見える化」することで、発注者が非機能要求を決めやすくしている。
「機能以外」だから難しい
非機能要求を発注者が決めることが難しい理由は二つある。
まず、非機能要求の定義があいまいで範囲が広いこと。その名の通り、情報システムに求められる要求のうち、「機能要求」以外の要求を指す。例えば性能といっても、システムの重要度によって定義すべき内容が異なってくる。
もう一つは非機能要求が発注者にとってイメージしにくいことだ。機能要求であれば業務に直結するため業務要求として定義しやすいだろう。
一方の非機能要求は、主に開発者が構築する「システム基盤」が必要とする情報だ。システム基盤はアプリケーションを動作させて業務サービスの質を担保するためにシステムに必要な、ネットワークやサーバー機器、OS、ミドルウエアなどのハードとソフト全体の仕組みを指す。
非機能要求のなかでも応答時間や運用停止は業務に直接影響するため分かりやすい。だがシステム移行や保守性など発注者には想像しにくいであろう非機能要求項目もある。
結果、非機能要求は発注者の要求から漏れやすいのが現状といえる。漏れていなくても詳細な項目や値といった具体的な定義があいまいにされがちだ。
漏れていたりあいまいだったりすれば、当然、開発プロジェクトのQCD(品質、コスト、納期)は崩れやすくなり、最適なコストで寿命の長いシステムを作ることからは遠ざかる。
四つの成果物
非機能要求グレードは「早期に」「誤解なく」「漏らさずに」決められるように四つの成果物で構成する(図2)。
「早期に」決めるために使うのが「利用ガイド(正式名称:『非機能要求グレード』利用ガイド)」と「グレード表(同:システム基盤の非機能要求に関するグレード表)」だ。参考となるモデルや設定例をいくつか示して、発注者がそれを選べるようにしている。
「誤解なく」値を決めるために使うのが「項目一覧(同:システム基盤の非機能要求に関する項目一覧)」だ。非機能要求の各項目ごとに値を2~6段階で示す。値にバリエーションがあることで、発注者が検討する際に、適した値を選択できる。
また項目一覧は「漏らさずに」非機能要求項目を決めるのにも利用できる。システム基盤の構築に必要な245個の非機能要求項目を網羅しているためだ。
245個を決める順序に沿って木構造でまとめた「樹系図(同:システム基盤の非機能要求に関する樹系図)」も同様に漏れをなくすのに使える。
技術開発本部 ソフトウェア工学推進センタ