設計・アーキテクト

要件定義書とは?現代の開発における重要性と最新の手法を解説

「要件定義書を作成するSEは、花形SEである」と言っても、過言では有りません。それだけに、「要件定義書は大切な存在である」と言えます。

そこで今回は、要件定義書に関連する、以下の事項を解説します。

この記事でわかること

  • 「要件定義書」とは何か?
  • 「要件定義書」は誰がいつ作るのか?
  • 「要件定義書」はどんな内容を書くのか?

システム開発において「要件定義書」は、プロジェクトの方向性を決める極めて重要なドキュメントです。特に、近年ではクラウド環境の普及やアジャイル開発の広まりにより、要件定義の進め方も変化しています。

本記事では、要件定義書の基本から、最新のトレンドに合わせた作成方法まで詳しく解説します。

要件定義書とは?

要件定義書とは、開発するシステムの機能や非機能要件を明文化し、関係者全員が共通認識を持てるようにするためのドキュメントです。従来はウォーターフォール開発の初期フェーズで作成するのが一般的でしたが、最近ではアジャイル開発においてもスプリントごとに要件を細かく定義するケースが増えています。

要件定義書の役割

  • 開発の方向性を決める - 要件が明確になることで、開発のスコープが決まり、計画が立てやすくなります。
  • ステークホルダー間の認識を統一する - クライアント、開発チーム、運用担当者が共通理解を持てるようになります。
  • 開発リスクを低減する - 後から「こんな機能は聞いていない」といったトラブルを防げます。

最新の要件定義手法

従来の要件定義書の作成方法に加え、最新の開発環境に適応した手法が求められています。

クラウド環境に対応した要件定義

クラウド環境では、オンプレミスと異なり、スケーラビリティやセキュリティ要件が重要になります。そのため、以下の点を明確に定義することが推奨されます。

  • データの保存場所(AWS、GCP、Azure など)
  • 負荷分散・可用性の確保
  • APIの利用方針(REST, GraphQL など)

アジャイル開発における要件定義

アジャイル開発では、従来の「要件定義書」をスプリントごとに細かく更新する形式が主流です。そのため、次のような要素を定義します。

  • ユーザーストーリーを活用した要件管理
  • JIRAやConfluenceなどのツールを用いたドキュメント化
  • スプリントごとの要件変更を許容するフレームワーク

なお、ウォーターフォール・モデルに関しては、以下の記事で詳細に解説しています。

要件定義書は誰がいつ作るの?

要件定義書は、基本的にはSEが作成します。しかし、規模の大きい企業や部署においては、要件定義を専門に請け負う部門や担当者も存在します。

この要件定義書は、ソフトウェア開発工程において、主に「ウォーターフォール・モデル(Waterfall Model)」では、基本的に最も早い段階で作成します。

要件定義書の具体的な記載内容

要件定義書には、以下の内容を記載することが一般的です。

要件定義書は、顧客が求めるシステムを実現するために必要な情報を、過不足なく記述するものです。主に顧客へ向けて説明するための資料となります。

要件定義書は統一された書式や形式があるわけではありません。これは会社や部署ごと、場合によっては顧客から指定があることもあります。

基本的には以下に示す内容を記載することが一般的であり、これにより過不足なく必要な情報を記載できます。

要件定義書に記載する内容例

  • システムの目的や背景
  • システムの利用者や関連する人物
  • 機能要件(システム構成図・業務フロー図)
  • 非機能要件(品質・性能・拡張性・セキュリティ)
  • 移行・運用・保守要件

システムの目的や背景

まず要件定義書には、なぜそのシステムを必要とするのか、「システムの目的や背景」を記載します。こちらは文章や挿絵などを使って、できるだけわかりやすく記載します。

具体的には、以下の2点を記載します。

ポイント

  • 顧客が課題としている業務上の問題
  • 開発するシステムによって、どの様に改善するのか

言い換えれば、「顧客の感じている課題」をいかにして抽出し、わかりやすく記載できるかは、SEとしての腕の見せどころと言えます。

システムの利用者や関連する人物

「システムの利用者」や「関連する人物」を洗いだして記載します。これは個人名などではなく、役職や役割の意味です(なお、社内資料などでは、担当者を整理したりします)。

これをおざなりにすると、以下のような問題が生じかねなません。

  • 業務上の手続きに「もれ」が生じかねない
  • 「誰が利用するか」を正しく想定しなければ、
    • システムに過不足が生まれかねない
    • ドキュメント(操作説明書や保守運用説明書)に過不足が生まれかねない
    • 教育・訓練の期間や、移行期間に過不足が生まれかねない

また場合によってはシステム化することで影響を受ける社員などが、それに反発をすることもあります。こうした例の多くは、ベンダー側(要はSEの所属する会社側)の不手際により、関連する社員への説明が不足している場合に起こります。

要件定義書に関連する人物をもれなく記載し、該当する社員に理解を得ることで、こうした問題を軽減できる効果も期待できるのです。

機能要件

  • システムの概要(システム構成図、業務フロー)
  • ユーザーが利用する機能一覧
  • 画面設計(ワイヤーフレームの添付推奨)
  • データベース設計(ER図、テーブル定義)

機能要件 - システム構成図

機能要件は主に「システム構成図」と「処理フロー図」を作成します。システム構成図とは、下記に挙げる内容を示した「システムの全体像を示した概念図」です。

ポイント

  • 使用するコンピュータ
  • 通信回線
  • 導入するソフトウェア

機能要件 - 業務フロー図

業務フロー図は、顧客が業務を遂行するための工程や作業を図に示したものです。ポイントは「業務フロー図」を、システム導入の前と後で「両方作成すること」です。

ポイント

  • 業務上のどこに問題があるのか
  • システム開発し導入することで、業務がどう改善するのか

大規模なシステムなどでは何十ページにも業務フロー図が及ぶこともあるため、片方のみに留めることも多くあります。

ユーザーが利用する機能一覧(サンプル)

システムの種類によって異なりますが、一般的なWebアプリケーションの機能要件としてよく使われるものを掲載しています。

機能名概要対象ユーザー備考
ユーザー登録ユーザーがアカウントを作成できる一般ユーザーメール認証機能を含む
ログイン登録済みのユーザーがシステムにログインできる全ユーザーOAuth認証対応(Google, Facebookログイン)
パスワードリセットパスワードを忘れた場合に再設定できる全ユーザーメール送信によるリセットリンク提供
プロフィール編集ユーザーが自身のプロフィール情報を更新できる一般ユーザーアイコン画像アップロード対応
商品検索登録されている商品を検索できる全ユーザーカテゴリ、価格帯フィルタ付き
商品購入カートに追加した商品を決済できる一般ユーザークレジットカード、銀行振込対応
注文履歴確認過去の注文履歴を閲覧できる一般ユーザーCSVダウンロード対応
管理者ログイン管理者がシステム管理用の画面にログインできる管理者IP制限・2要素認証あり
ユーザー管理管理者が登録ユーザーを管理できる管理者検索、編集、削除機能付き
売上レポート売上データを可視化し、分析できる管理者グラフ表示・CSVエクスポート対応

画面設計(ワイヤーフレームの添付推奨)

画面設計では、システムのユーザーインターフェース(UI)を定義し、ユーザーがどのように操作するのかを明確にします。特に、ワイヤーフレームを活用することで、画面のレイアウトや構成を視覚的に把握しやすくなり、開発チームやクライアントとの認識のズレを防ぐことができます。

画面設計に含めるべき要素

  1. 画面構成
    • ログイン画面、ダッシュボード、商品検索、購入画面などの主要な画面をリストアップ
      各画面の役割と遷移関係を整理
  2. ワイヤーフレームの作成
    • 各画面のレイアウト(ナビゲーション、ボタン、入力フォームの配置)を設計
    • ユーザーフローを考慮し、スムーズな操作ができるように調整
  3. UIコンポーネントの定義
    • ボタン、入力フォーム、テーブル、モーダルなどのデザインルールを決定
    • 一貫したデザインガイドラインを設定
  4. 画面遷移図(サイトマップ)
    • どの画面からどの画面へ遷移するのかを整理
    • 状態変化(ログイン後の遷移、エラー時の画面表示)を考慮
  5. レスポンシブ対応の考慮
    • スマートフォン、タブレット、PCなどの異なるデバイスでの表示を設計
    • 各デバイスごとのレイアウト変更やメニュー構成を検討
ワイヤーフレーム作成におすすめのツール
  • Figma(クラウドベースでリアルタイム編集可能)
  • Adobe XD(デザインとプロトタイピングに最適)
  • Balsamiq(シンプルなワイヤーフレーム作成に向いている)

画面設計を適切に行うことで、ユーザビリティの向上だけでなく、開発チーム全体の効率も向上します。ワイヤーフレームの作成がまだの方は、早い段階で設計を進めることをおすすめします。

データベース設計

データベース設計は、システムで扱うデータを適切に管理し、効率的に運用するための設計プロセスです。具体的には、データの格納方法やテーブルの構成、リレーション(関連性)、インデックスの最適化などを決定し、パフォーマンスと整合性を考慮したデータベースの構築を行います。

適切なデータベース設計を行うことで、システムの動作速度を向上させ、将来的な拡張や変更にも柔軟に対応できるようになります。詳細な設計手順やベストプラクティスについては、以下の記事で詳しく解説しています。

非機能要件

要件定義書には、作成する機能そのもの以外にも、記載が必要な項目があります。

例えば、システム完成後に提供されるサービスとは別に、保守やメンテナンスに関わる要件として「1回/週のバックアップ」や「定期的なログファイルの世代管理」など、「非機能要件」と呼ばれるものがその一つです。

非機能要件

  • 性能:どの程度の利用者が一斉に利用できるのか
  • 拡張性:システムの構成やバージョンアップなどを、どの程度可能にするか
  • セキュリティ:通信の暗号化や、ウィルス対策ソフトの導入、
  • 他(ユーザビリティやアクエシビリティなどを記載する場合もある)

この非機能要件は、主に顧客の規模や、導入するシステムの構成に依存します。作成したシステムの納品時には、これらの項目を全て満たしていなければならず、非機能要件を正しく見積もることは、SEの役目となります。

移行・運用・保守要件

要件定義書には、移行要件や運用要件に、保守要件なども記載します。

移行要件とは、すでに顧客が使用しているシステムがある場合、それを開発したシステムへ移行する場合の仕組みやその手順、そのための教育内容などのことです。

新規システムの場合、顧客がはじめて使用するシステムですので、そのシステムの習熟には時間がかかります。

運用要件は、そのシステムを安定的に動作させるために、下記の内容を定義したものです。

運用要件のポイント

  • どのような体制が必要か
  • どのような活動が必要か

保守要件も似ていますが、こちらは下記のポイントを目的とします。

保守要件のポイント

  • 瑕疵担保責任などの所在を明確にする
  • システムの不具合発生時の対応方法の記載

要件定義書の作成ツール

近年では、要件定義を効率的に管理するためのツールが多く利用されています。以下のツールを活用することで、リアルタイムでの共有や変更管理が容易になります。

  • JIRA - アジャイル開発向けのタスク・要件管理ツール
  • Confluence - ドキュメント作成・共有ツール
  • Google Docs / Notion - 共同編集可能なドキュメント管理

この記事を読んだら、次は 「基本設計書とは? ポイントを抑えて分かりやすく解説!」 を読むのがおすすめです!

よく読まれている記事

1

IT入門シリーズ 🟢 STEP 1: ITの基礎を知る(ITとは何か?) 📌 IT初心者が最初に学ぶべき基本知識。ITの概念、ネットワーク、OS、クラウドの仕組みを学ぶ ...

2

「私たちが日々利用しているスマートフォンやインターネット、そしてスーパーコンピュータやクラウドサービス――これらの多くがLinuxの力で動いていることをご存じですか?無料で使えるだけでなく、高い柔軟性 ...

3

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-設計・アーキテクト