本特集「非機能要求の鉄則3カ条」では、IPA(独立行政法人情報処理推進機構)の協力の下、情報システム開発における「非機能要求」の重要性を4回に渡って解説していく。
本稿をご覧になっている読者の方であれば、あらためて非機能要求という言葉を説明されなくても概要を把握している方が多いのではないかと思うが、第1回目となる今回は、今一度、なぜ非機能要求が重要なのか、そしてなぜ非機能要求を適切に設定することが難しいのかについて触れていきたい。
非機能要求グレード検討会の発足
2008年4月、NTTデータ、富士通、NEC、日立製作所、三菱電機インフォメーションシステムズ(MDIS)、OKIといった日本を代表するSIer6社が共同で「システム基盤の発注者要求を見える化する非機能要求グレード検討会(以下、非機能要求グレード検討会)」というプロジェクトの設立を発表した。このプロジェクトの目的は、企業ごと、プロジェクトごとに行われてきた顧客のシステム基盤に対する“非機能要求”を見える化および標準化し、顧客企業と開発ベンダの間でシステム開発において共通認識をもてる方法を策定していくというもの。つまり、顧客企業(発注側)と開発ベンダ(受注側)が同じ言葉を使って、安定したシステム基盤を作り上げていく、そのために必要な“叩き台” を6社で検討していくという趣旨であった。
なぜ、そのような叩き台が必要とされたのか。当時、航空券の発券システムやメガバンクの合併に伴い統廃合された銀行のオンラインシステムなど、社会的基盤となるITインフラでの事故が相次いでいた。事故の原因を探っていくと、発注側と受注側で実現すべきシステムのイメージが共通化されていなかったという、非常に根本的なところに行き着く。とくに顕著だったのは「システムの強度や品質」、つまり“非機能要求”にかかわる部分での意識のすり合わせができていないという点だ。システムの基盤にかかわる非常に重要な部分でありながら、発注側と受注側者の間で最もギャップが生じていたのである。
非機能要求とは
ここで簡単に機能要求と非機能要求について比較してみよう。機能要求とは、ひとことで言うと業務実現に関する要求、業務に直結する要求である。たとえば「営業情報をシステム上で共有し把握したい」「受発注情報に連動した在庫管理を行いたい」などだ。主に業務アプリケーションに対する要求が機能要求と認識されている場合も多い。
一方で非機能要求とは、主にシステムの強度や品質に関わる要求である。つまりハードウェア、OS、ミドルウェア、データベースといったシステム基盤に関わるものが多い。もっとも、非機能要求においても「ユーザーインターフェースの操作性」「ソフトウェアの品質」など業務アプリケーションに対する要求が含まれることもあり、このあたりの定義はややあいまいになりつつある。