重要な項目が決まったら、いよいよ非機能要求の詳細な項目の定義に入る。ここでは誤解に気をつけたい。非機能要求は一見、定量的に示されていても、誤解を生んでしまうことがあるからだ。

 例えば、発注者が「運用時間は24時間365日だが、事前連絡があればシステムを停止しても問題ない」とイメージしながら「24時間365日稼働すること」とRFP(提案依頼書)や要求定義書を書いたとしよう。

 受注者はどう受け取るだろうか。発注者のイメージ通り受け取られることは少なく、「停止が許されないミッションクリティカルなシステムが求められている」とイメージすることのほうが多いだろう。

 「誤解なく」決めるためには、業務に与える影響を考えた表現の仕方が必要となる。この場合でいえば「24時間365日の稼働」とする場合にも、それは本当に全く止まってはいけないのか、再起動程度の時間であれば確保できるのか、バックアップやメンテナンスなどのための計画的な停止が可能なのか、などシステムを実現した場合の業務時間への影響が具体的な差で示されるように表現すべきだ。そうすれば、発注者と受注者が複数の具体的な選択肢から取捨選択しながら、より適切な要求レベルを決めることができる。

項目一覧で誤解を防ぐ

 こうした考えから項目一覧は項目ごとに要求レベルを2~6段階に示している(図5)。レベルはシステム基盤の実現方法の違いで分けている。

図5●項目一覧のレベルを基に具体的な議論が進む
図5●項目一覧のレベルを基に具体的な議論が進む

 例えば運用時間は6段階のレベルを設定している。運用時間を検討する場合、海外に駐在する社員も利用するシステムでは業務の時間に差があるため、24時間無停止と単純に考えるかもしれない。ここで、業務時間内と24時間無停止の間にも「夜間のみ停止」「業務開始前に1時間程度の停止あり」「業務開始前に若干の停止あり」といった具体的な選択肢があれば、どれが適切か検討できる。

 レベル3の1時間程度の停止であれば、その間に故障した機器の交換やソフトウエアのアップデートといったメンテナンスを実行できる。一方、レベル5の 24時間無停止の場合、無停止でメンテナンスができるような機器を導入したり頻繁なメンテナンスが不要となる高価なシステム基盤を導入しなければならなくなる。

 このようにレベルが高いほどシステムの実現難易度も上がることから、適切なレベルを選択することによって、システム基盤について過剰な投資を抑えることにつながる。


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