機能要件とは|システム開発プロジェクトにおける重要性や非機能要件との違いを解説!

機能要件とは|システム開発プロジェクトにおける重要性や非機能要件との違いを解説!

機能要件は、システム開発プロジェクトの成否に関わる重要な指標。しかし、そもそも機能要件とはなにか?IT担当を任されたばかりの方ならわからないはず。そんな方に向け、概要・項目からシステム開発プロジェクトにおける重要性、非機能要件との違いまで、機能要件の全体像を解説していきます。

なお、システム開発会社の探し方・選び方がわからない!という方はシステム幹事にお気軽にご相談ください。貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。

【無料】システム開発会社を紹介してもらう

目次
  1. 1. 機能要件とは
    1. 1-1. 機能要件は要件定義フェーズで定義する
    2. 1-2. 機能要件と要求定義 / 基本設計の関係性
  2. 2. 機能要件で定義する主な項目
    1. 2-1. 画面要件
    2. 2-2. 帳票要件
    3. 2-3. バッチ要件
    4. 2-4. データ要件
    5. 2-5. 外部インターフェース要件
  3. 3. 機能要件と対になる非機能要件とは
    1. 3-1. 非機能要件の定義は機能要件の定義後
  4. 4. システム開発における機能要件 / 非機能要件の重要性
  5. 5. システム開発を成功させる機能要件 / 非機能要件のポイント
    1. 5-1. 業務設計を突き詰める(要求定義)
    2. 5-2. 図式化 / レビュー(要求定義)
    3. 5-3. 機能要件への絞り込み(要件定義)
    4. 5-4. 非機能要件を意識する(要件定義)
  6. 6. 【まとめ】機能要件の全体像を解説しました

機能要件とは

機能要件とは、開発するシステムが本来の目的 / ゴールを達成するために実装しているべき「必要な機能」のことです。たとえば「顧客情報と紐づいた購入履歴を1画面で閲覧」「日々の集計を自動化」などが機能要件に該当。いいかえれば、システム開発の企画者にとって、機能面で譲れない「絶対条件」を機能要件といいます。

このことからもわかるように、機能要件は主に「要件を明確にしてから開発に取り掛かる」ウォーターフォール型システム開発で使われる言葉です。状況に応じて機能を追加 / 変更するアジャイル型システム開発では、機能要件という言葉はあまり使われません。

ウォーターフォール型システム開発については以下の記事もあわせてご覧ください。

関連記事:ウォーターフォール開発とは?開発工程・メリット・向いているプロジェクトも解説

機能要件は要件定義フェーズで定義する

ウォーターフォール型システム開発とは、水が上流から下流に流れるように、ステップごとに開発工程を進めていくシステム開発手法のこと。一般的には「要求定義」>「要件定義」>「基本設計」>「詳細設計」>「開発(プログラミング)」>「テスト」という流れで工程を進めます。

ウォーターフォール型システム開発

このうち、機能要件を定義するステップとなるのは、上流工程の1つである「要件定義フェーズ」です。

要件定義とは、開発するシステムに求められる要求を、予算・技術・納期との兼ね合いを見ながらどのように実現していくか?方向性を定義する工程のこと。要件定義フェーズで定義するいくつかの要件のうち、もっとも重要度の高い要件が機能要件です。

要件定義については以下の記事もあわせてご覧ください。

関連記事:システム開発の要件定義とは?進め方や事例をわかりやすく解説

機能要件と要求定義 / 基本設計の関係性

ただし、機能要件は「要件定義フェーズでいきなり定義する」わけではありません。システム開発を外注するなら、定義した機能要件は間違っていないか?フォローする必要もあります。なぜなら、上述したように「機能要件はシステム開発の企画者にとって譲れない絶対条件」だからです。

たとえば、要件定義は「システムへの要求をどのように実現するか」を定義するフェーズです。それ以前に、企画者自身が開発するシステムにどのような機能を要求するのか、明確になっていなければなりません。つまり、機能要件を定義する大前提として、企画者自身の譲れない要求を「要求定義」で突き詰めておく必要があります。

要求定義については以下の記事もあわせてご覧ください。

関連記事:システム開発における要求定義の重要性|要件定義との違いや要求定義の実態・改善ポイントを解説

また、要件定義フェーズで定義した機能要件は、目に見える形で具体化しているとは限りません。要件定義で合意したはずの機能要件が、設計段階で違う形になってしまったということもあり得ます。こうした認識のズレをなくすためにも、システムの目に見える部分を具体化する「基本設計フェーズ」へ、企画者が積極的に関与していく姿勢も重要です。

基本設計については以下の記事もあわせてご覧ください。

関連記事:システム開発の基本設計とは?その位置付け・重要性・発注者としての関わり方を解説

【無料】システム開発会社を紹介してもらう

機能要件で定義する主な項目

機能要件は、システム開発企画者の要求を、要件に落とし込んだものです。つまり、システム開発プロジェクトごとに機能要件は変化します。ただし、一般的には主に以下のような項目を機能要件として定義する場合が多いようです。

機能要件の主な項目

成果物 / ドキュメント

画面要件

画面一覧、画面レイアウト、画面遷移図など

帳票要件

帳票一覧、帳票レイアウトなど

バッチ要件

バッチ処理一覧など

データ要件

テーブル関連図(ER図)、エンティティ一覧、エンティティ定義など

外部インターフェース要件

外部システム関連図、外部インターフェース一覧、

外部インターフェース定義など

以下から、それぞれの要件を簡単に解説するとともに、成果物 / ドキュメントをイメージできる具体例を紹介していきましょう。

画面要件

画面要件とは、機能要件のうち「操作画面であるユーザーインターフェース」に関する要件をまとめたもの。画面一覧、画面レイアウト、画面遷移図などが含まれます。

画面一覧の例

画面一覧の例

画像出典:IPA(独立行政法人 情報処理推進機構)

画面レイアウトの例

画面レイアウトの例

画像出典:IPA(独立行政法人 情報処理推進機構)

画面遷移図の例

画面遷移図の例

画像出典:IPA(独立行政法人 情報処理推進機構)

帳票要件

帳票要件とは、機能要件のうち「納品書、請求書などの帳票」に関する要件をまとめたもの。帳票一覧、帳票レイアウトなどが含まれます。

帳票一覧の例

帳票一覧の例

画像出典:IPA(独立行政法人 情報処理推進機構)

帳票レイアウトの例

帳票レイアウトの例

画像出典:IPA(独立行政法人 情報処理推進機構)

バッチ要件

バッチ要件とは、機能要件のうち「集計などの自動化(バッチ処理)」に関する要件をまとめたもの。バッチ処理一覧、バッチ処理フロー図などが含まれます。

バッチ処理一覧の例

バッチ処理一覧の例

画像出典:IPA(独立行政法人 情報処理推進機構)

バッチ処理フロー図の例

バッチ処理フロー図の例

画像出典:IPA(独立行政法人 情報処理推進機構)

データ要件

データ要件とは、機能要件のうち「データベースの構成や処理」に関する要件をまとめたもの。テーブル関連図(ER図)、CRUD図、エンティティ一覧、エンティティ定義などが含まれます。

※CRUD図とは、データの作成(C)読み出し(R)更新(U)削除(D)の関係性を表にしたもの

※エンティティとは、なんらかの識別名、標識、所在情報のこと

テーブル関連図(ER図)の例

テーブル関連図(ER図)の例

画像出典:IPA(独立行政法人 情報処理推進機構)

CRUD図の例

CRUD図の例

画像出典:IPA(独立行政法人 情報処理推進機構)

外部インターフェース要件

外部インターフェース要件とは、機能要件のうち「外部システムとの連携、連携するためのインターフェース」に関する要件をまとめたもの。外部システム関連図、外部インターフェース一覧、外部インターフェース定義などが含まれます。

外部システム関連図の例

外部システム関連図の例

画像出典:IPA(独立行政法人 情報処理推進機構)

【無料】システム開発会社を紹介してもらう

機能要件と対になる非機能要件とは

機能要件同様、要件定義フェーズで定義する「非機能要件」についても触れておきましょう。非機能要件とは、開発するシステムの機能面以外の「すべての要件」を意味します。具体的には、システムのパフォーマンスや拡張性などが非機能要件に該当する項目です。

システム開発の企画者(発注者)にとって、意外に見落としてしまいがちな要件ですが、非機能要件は機能要件と対となる重要な指標。IPAの提唱する「非機能要求グレード」を参考に、企画者 / 開発者双方が協力しながら、各項目を適切に定義していきましょう。

非機能要求項目

概要

可用性

(アベイラビリティ)

継続的にシステムを

利用するための要件

稼働時間、運用スケジュール、

障害時のダウンタイムなど

性能・拡張性

システムのパフォーマンス、

将来的な拡張に関する要件

性能目標、業務量の増加・

変化への柔軟な対応など

運用・保守性

システムの運用・

保守に関する要件

監視方法、障害発生時の対応方法など

移行性

既存システムからの

データ移行に関する要件

データ移行の方法・スケジュール、

バックアップの方法など

セキュリティ

システムの安全性に

関する要件

アクセス権限、セキュリティ対策 / 体制など

システム環境

システムの設置環境や

エコロジーに関する要件

耐震・重量・騒音・CO2排出量など

非機能要件の定義は機能要件の定義後

ただし、非機能要件の策定 / 定義は、機能要件の定義後に実施するべきものです。なぜなら、機能要件が機能に関する絶対条件を定義するステップなのに対し、非機能要件は開発するシステムのクオリティを担保するステップだからです。

たとえば、パフォーマンス目標やセキュリティレベルを設定するには、前提として「実装すべき機能」がわかっていなければなりません。機能要件を満たした上で、予算 / スケジュールとの兼ね合いを見ながら、どのようにクオリティを担保するか?策定 / 定義していくのが非機能要件の流れです。

システム開発における機能要件 / 非機能要件の重要性

ステップこそ前後しますが、機能要件 / 非機能要件は、どちらもシステム開発プロジェクトの成否を握る重要な要素。機能要件 / 非機能要件どちらもバランスよく満たされていなければ、満足度の高いシステムにはなり得ないからです。

たとえば、必須機能が実装されていても、アクセスの集中する時間帯で極端にパフォーマンスが落ちるのでは「使い勝手の悪いシステム」だといわざるを得ません。逆に、キビキビと動作するシステムであっても、必要な機能が欠けていたのではシステム化の意味がありません。

システム開発を成功させる機能要件 /
非機能要件のポイント

システム開発を成功させる機能要件 / 非機能要件のポイント

それでは、システム開発プロジェクトを成功させるためには、機能要件 / 非機能要件の策定 / 定義時に、どのようなことに気を配っておくべきか。以下から、ヒントとなるポイントをいくつか紹介していきます。

業務設計を突き詰める(要求定義)

まずは、要求定義フェーズで「システム開発の目的である、あるべき理想の姿(To-Be)を具体化」するため、業務設計をとことんまで突き詰めましょう。現状の業務(As-Is)を棚卸し / 整理し、理想の姿とのギャップを見極め「なにが足りないのか、ボトルネックはなにか」を明らかにすることもポイントです。

難しく感じる方もいるかもしれませんが、自社業務のことを一番理解しているのは従業員です。業務効率化 / 生産性向上を推進し、自社ビジネスを成長させるベストの方法はなにか?考えていくことが重要です。

図式化 / レビュー(要求定義)

あるべき理想の姿を業務設計に落とし込めても、プロジェクトの当事者に伝わらない、異なった意図で伝わってしまうのでは意味がありません。要求定義の段階で業務設計を図式化し、ステークホルダーにレビューしてもらう方法がおすすめです。

たとえば、システム化する業務、およびそれと関連する業務との関係を図式化し、ビジネスの全体像を把握できるようにするビジネスプロセス関連図。あるべき理想の姿を具体的な業務手順に落とし込んだ業務フロー図などを作成するといいでしょう。

ビジネスプロセス関連図(業務設計)の例

ビジネスプロセス関連図(業務設計)の例

画像出典:IPA(独立行政法人 情報処理推進機構)

ビジネスプロセスフロー(業務フロー図)の例

ビジネスプロセスフロー(業務フロー図)の例

画像出典:IPA(独立行政法人 情報処理推進機構)

機能要件への絞り込み(要件定義)

要求定義で定めた「機能要求」を「機能要件」へと絞り込んでいく開発フェーズが要件定義です。本来であれば、機能要求はすべて機能要件へと引き継がれることが理想。しかし、予算 / スケジュールや、技術的な問題もあり、すべての要求を実現できるとは限らないのが現実です。このことからもわかるように、要件定義は開発側の主導で進められます。

しかし、技術的な問題で実現できない機能だからあきらめる、というのでは、そもそもシステム化する意味が薄れてしまうかもしれません。対立しがちな企画側、開発側の意見を調整し、双方が納得できる妥協点を見出すことが、機能要件への絞り込む際のポイントです。

また、要求定義で具体化した業務フローを、どのようにシステムで実現するのか?手順を明記したシステム化業務フロー図を作成するのもこのフェーズ。要求定義で作成した業務フロー図と突き合わせ、認識にズレがないかを確認することも重要です。

ビジネスプロセスフロー(システム化業務フロー図)の例

ビジネスプロセスフロー(システム化業務フロー図)の例

画像出典:IPA(独立行政法人 情報処理推進機構)

非機能要件を意識する(要件定義)

機能要求・要件と異なり、企画側にとっての非機能要件は、やや具体化しにくい一面があります。なぜなら、非機能要件の定義には、実現可能性に関する技術的な知識や、ハードウェア / ソフトウェアの選定が含まれるからです。

とはいえ、システムの稼働時間や性能要求など、可用性 / 性能・拡張性に関する要求は明確化できるはず。開発側に任せてしまうのではなく、ガイドラインを参考にしながら、企画側も非機能要件を意識していくことが重要です。

【まとめ】機能要件の全体像を解説しました

機能要件とはなにか?IT担当を任されたばかりでわからない。そんな方に向け、概要・項目からシステム開発プロジェクトにおける重要性、非機能要件との違いまで、機能要件の全体像を解説してきました。

機能要件はシステム開発プロジェクトの根幹を成す重要な指標。非機能要件は開発するシステムのクオリティを左右する重要な指標です。どちらもバランスよく満たした満足度の高いシステムを開発するには、企画側が積極的に関与していかなければなりません。

なお、システム開発会社の探し方・選び方がわからない!という方はシステム幹事にお気軽にご相談ください。貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。

【無料】システム開発会社を紹介してもらう