発注ラウンジは、システム開発の発注に必要な様々なノウハウや発注ナビで実際に開発された発注者様のインタビューなど、発注担当者様のための情報発信サイトです。

機能要件とは?システムの品質向上にかかわる非機能要件との違い

機能要件は、ソフトウェアやシステム開発において必要となる大切な工程です。
制作するシステムに盛り込みたい機能をクライアントから適切に聞き出し、どのような機能が必要なのかを明確に定義します。
また、機能要件と反する言葉に、「非機能要件」があります。
非機能要件は、クライアントから提示された機能ではなく、レスポンススピードやセキュリティといった機能要件以外の要件を指します。
今回は、システム開発・制作工程において重要な機能要件と非機能要件についてご紹介します。

目次

 

機能要件とは?

機能要件と非機能要件は、どちらもシステム開発における最初の工程です。まずは、開発の中心となる機能要件について見ておきましょう。

一般的にシステム開発・構築では「要件定義」→「設計」→「製造」→「検査」の順で、制作が進行していきます。
要件定義では、制作するソフトウェアやシステムについて、クライアントから求められている機能を確認します。要件定義のうち、「必ず搭載すべき機能」を「機能要件」といいます。機能要件は、クライアントが搭載してほしいと望んでいる事項であるため、直接のヒアリングで比較的容易に吸い上げることができます。例えば、「現行システムで今利用している機能は必ず盛り込んでほしい」「◯◯ができなくなると困る」など、達成しなければならない基本となる部分が機能要件です。

機能要件はクライアントにとって絶対に必要な機能であり、納品時に定められた機能が未実装であればプロジェクトとして失敗ということになります。クライアントにとって機能要件の実装は当たり前であり、最低限必要な機能なので、搭載されているからといって、満足度が大きく高まることはありません。

 

クライアントの満足度が高まる「非機能要件」

一方、要件定義のうち、機能要件に当てはまるもの以外を「非機能要件」といいます。非機能要件は、クライアントの満足度向上に直結します。

●非機能要件とは?

非機能要件とは、主目的となる機能要件以外の機能であり、機能面以外の要件全般を指します。ユーザビリティ、性能、拡張性、セキュリティなどの機能を指し、製品にとって不可欠な「質」の部分です。例えば、高機能な売上管理システムを開発しても、1日の売上集計に実行開始から30分以上もかかってしまうと、顧客満足度は低くなるでしょう。高品質な非機能要件が定められれば、クライアントの満足度アップにつながります。

●非機能要件は決めるのが難しい

非機能要件の内容は多岐にわたり、運用する過程での条件やセキュリティ、管理のしやすさ、パフォーマンスなど、網羅するのが難しいほど副次的な項目が多くあります。

非機能要件はクライアントから確実な要望があるわけではなく、ヒアリングした内容をベースに、開発側が考える要件です。考えられるすべての非機能要件を盛り込むと、予算と合わなくなってしまうため、どこまでの非機能要件を含むのか判断しなければならない点も非機能要件を難しくしている要因の一つです。

 

非機能要件の大切さと注意点

非機能要件は、クライアントが直接求めている要求ではありません。それなのに、システム開発において重要視されるのはどうしてなのでしょうか。

●なぜ非機能要件が重要なのか?

非機能要件は、機能要件を満たした上で搭載される要件です。システム開発において、機能要件がメイン機能だとすると、非機能要件はオプションのような機能であり、非機能要件を満たせば満たすほど、クライアントの満足度が高まります。
システム会社も、1つのクライアントからシステムを1つ受注して、納品したらそれで終わりというわけでありません。システム拡張や数年後のシステムリプレース、新たなシステムの発注や運用など、クライアントとの継続的な付き合いは必要不可欠です。そのため、非機能要件を満たしてクライアントの満足度を高めることはとても重要なのです。

●非機能要件の注意点

非機能要件はクライアントが本当に困っていること、改善したいことについてヒアリングを通して聞き出します。事前にある程度想定される要件項目を準備しておき、クライアントの要求を聞き出しながら提案しましょう。良かれと思って勝手に盛り込んだ機能が実際の仕事の流れに沿っていなければ、時間をかけて制作した機能であってもクライアントの満足度は下がってしまいます。

クライアントが確実な要求をしたわけではない非機能要件については、搭載前に事前に合意が必要です。「非機能要件のどの項目が何を示しているか」「どれくらいの重要性があるか」など、各項目についてクライアントにどう伝えるのかを確認しておきましょう。例えばセキュリティ項目を強固にするシステムであれば、その重要性を説明するのはもちろん、セキュリティ機能の開発予算もクライアントに納得してもらう必要があります。
すべての非機能要件をクライアントに説明しなくても良いですが、特にユーザビリティや性能など、ユーザーが直接触れる部分は事前に合意を取っておかないと、納品後のクレームにつながってしまう危険性があります。

 

ソフトウェアの魅力をアップする非機能テスト

クライアントの満足度に直結する品質の高いソフトウェアやシステムを納品するために、非機能テストで確認をしてみましょう。

●非機能テストとは?

システム制作の検査工程に該当する非機能テストとは、システムの主目的となる機能以外の部分を検証するテストです。機能以外のすべてが検証対象のため、テスト項目には多くの種類が含まれます。非機能テストをクリアすればするほど、クライアントの満足度は上がるでしょう。

●非機能テストの内容例

非機能テストの一部の内容をご紹介します。

<性能テスト>

性能テストは、パフォーマンステストとも呼ばれ、ソフトウェアやシステムの処理速度、レスポンススピードなどパフォーマンス部分に関するテストです。特に、ユーザーの操作感に影響する内容で、性能テストがクリアされていないシステムは操作ストレスなどが発生し、クレームの原因となります。

<ストレステスト>

事前に定義した限界値や、それ以上の負荷を与えて検証するのがストレステストです。例えば、多数の同時アクセスによってサーバーのレスポンススピードが低下したり、停止したりしないように、事前に想定した同時アクセス数に耐えられるかなど、テストを行って確認していきます。

<ユーザビリティテスト>

直感的な操作ができるかなど、システムの使いやすさをテストするのがユーザビリティテストです。機能をすべて満たしており、レスポンスも高く、セキュリティも万全という完璧なシステムだとしても、どこにどの機能があるのかユーザーがわからないような設計では機能を使いこなせず、満足度が下がってしまうでしょう。

<保守性テスト>

ソフトウェアやシステムに欠陥があり、改修が必要となった際に、修正・追加しやすく設計されているかなどを確認するテストです。保守性テストが不十分だと、システム改修時にクライアントが予想しているよりも、多額の予算が必要になることがあり、後から問題が発生するおそれがあります。

 

機能要件・非機能要件には正確な要件定義が必要不可欠

機能要件2-min

要件定義はどちらも大切で、ソフトウェアやシステムの開発には正確な要件が必要不可欠です。
もちろん最重要は機能要件であり、漏れがあった場合には大きなトラブルになりかねません。
しかし、クライアントにとっては機能要件に定義されている機能は実装されて当たり前のもので、システムの質を上げて満足度を高めるのは非機能要件です。
満足度の高いシステムをクライアントへ提供するためにも、機能要件と非機能要件は時間をかけてでも正確かつ丁寧に行う必要があるでしょう。

 img02

 

発注先選びにお困りの方はこちら

具体的に『システム開発』が得意な会社を探す

具体的にシステム開発の発注先を「専門スタッフ」に相談する

関連する記事

PAGETOP