2025年1月8日

非機能要件定義とその難しさについて

Contents

 

はじめに

システム開発においての上流工程の一つとして真っ先に思い浮かぶのは要件定義ではないでしょうか。今回は要件定義の中の非機能要件定義について紹介したいと思います。

 

要件定義とは?

要件定義とは、システム開発において「何を作るか」を明確にするプロセスです。具体的には、ユーザーのニーズや期待をヒアリングし、それを実現するためのシステムの機能や性能を明確にします。要件定義は、プロジェクトの初期段階で行われ、システムの設計・開発・テスト・運用に至るまでの全ての工程に影響を与える重要なフェーズです。

 

機能要件定義と非機能要件定義の違い

要件定義には、機能要件と非機能要件の2つに大きく分けることができます。
機能要件と非機能要件という2つの主要な側面を明確に定義することで、開発プロジェクトの方向性が定まり、後の手戻りを防ぐことにもつながります。

機能要件

機能要件は、システムが「何を実現するか」を定義します。
具体的には、ユーザーがシステムを通じて実行できる操作や機能を指します。
例えば、ユーザーが商品を検索できる機能や、注文を処理する機能などが含まれます。

非機能要件

非機能要件は、システムが「どのように動作するか」という品質や性能に関する側面を定義します。
具体的には、システムがいかに迅速かつ安定して、安全に、そして将来にわたって利用し続けられるか、といった点に関する機能を指します。
例えば、一瞬で検索結果を表示する、どんな状況でも止まらずに稼働し続けるなどが、非機能要件に含まれます。

 

非機能要件定義が難しい理由

非機能要件はシステムの品質を左右する重要な工程です。
これが適切に定義されなければ、システムが期待通りに動作しない、運用コストが増大する、またはユーザー体験が損なわれるといった問題が生じる可能性があります。
しかし、非機能要件定義は、機能要件の定義に比べて一筋縄ではいかない部分が多く、プロジェクトの中でも特に難しい工程とされています。
それでは、理由について、確認していきましょう。

抽象的な内容が多い

非機能要件は抽象的な内容が多く、具体的な要件として定義するのが難しいです。
例えば、「一瞬で検索結果を表示する」という要件は具体的な秒数を決める必要がありますが、どういった基準で値を決めるかなど難しい面があります。

専門性の高さ

非機能要件は技術的な専門知識を必要とするため、ユーザーが具体的な要求を出しにくいです。
これにより、開発者側も要件を正確に把握するのが難しくなります。

業務との関連が見えにくい

非機能要件は業務の直接的な機能とは異なり、システムの品質や性能に関するため、ユーザーにとってその重要性が見えにくいことがあります。

言語化の難しさ

非機能要件は具体的な数値や基準に落とし込むのが難しく、曖昧な表現になりがちです。
これにより、要件の明確化が難しくなります。

ユーザーの意識不足

ユーザーは非機能要件を普段から意識されることが少ないため、具体的なご要望としてお伝えいただくのが難しい場合があります。
そのため、要件定義の段階で考慮から漏れてしまうことがあります。

上記の理由により、非機能要件の項目が網羅されていなかったり、定義があいまいになっていたりするケースが多いのではないかと考えられます。
非機能要件に関連する課題や問題については、システム開発中やサービスインの時点では表面化しないことも多いかと思いますが、運用開始後の障害やインシデント発生時に表面化する場合が多いのではないでしょうか。
非機能要件をベースにインフラやセキュリティ、運用に関する基本設計・詳細設計を実施するため、システムの品質を担保する上で非機能要件は重要なフェーズだと考えています。

 

非機能要求グレード2018の活用方法

非機能要求グレード2018は、システム開発における非機能要件を体系的に整理し、明確に定義するためのガイドラインです。
これを活用することで、プロジェクトの初期段階から非機能要件をしっかりと把握し、適切に管理することができます。

【参考URL】
https://www.ipa.go.jp/archive/digital/iot-en-ci/jyouryuu/hikinou/ent03-b.html

活用のステップ

1.要件の洗い出し

非機能要求グレード2018を参考に、プロジェクトに必要な非機能要件を洗い出します。これには、性能、信頼性、可用性、セキュリティ、保守性などの項目が含まれます。

2.優先順位の設定

各要件の重要度を評価し、優先順位を設定します。これにより、限られたリソースを効率的に配分できます。

3.具体的な指標の設定

各要件に対して具体的な指標を設定します。例えば、可用性であれば「稼働率99.99%」などの具体的な数値目標を定めます。

4.モニタリングと評価

システムの開発・運用中に、設定した指標をモニタリングし、評価します。必要に応じて改善策を講じます。

非機能要求グレード2018のメリット

  • 非機能要件を明確に定義することで、プロジェクト全体の品質を高めることができます。
  • 非機能要件を事前に把握し、対策を講じることで、システム運用中のリスクを低減できます。
  • 要件の優先順位を設定することで、限られたリソースを効率的に配分できます。

 

まとめ

今回は要件定義に含まれる非機能要件について紹介いたしました。
非機能要件の前提となる要求事項を洗い出すためには専門的な知識や経験などのスキルが必要となります。
弊社ではRFP作成や要求定義段階からご支援させて頂くことが可能です。
お気軽にご相談頂けますと幸いです。

記事:S.H

「再春館システム システムインテグレーション」はこちら