仕様書とは?システム開発での書き方・種類・テンプレート【サンプル付き】
目次
「開発会社から仕様書の提出を求められたが、何を書けばいいのか分からない」。システム開発や導入を担当すると、こうした場面に直面することがあります。
仕様書とは、作るシステムや製品について「何を」「どのように」実現するかを具体的に書き残した文書です。発注者と開発者が同じ完成イメージを持つための共通の設計図であり、認識のズレによる手戻りや追加コスト、納期遅延を防ぐ役割があります。
本記事では、システム開発における仕様書を中心に、要件定義書・設計書との違い、仕様書の種類、書き方の手順、読みやすく保つコツを初心者向けに解説します。記事の最後で、無料で使える仕様書テンプレートも紹介します。
※製品の仕様書(スペックシート)や工事の仕様書も同じ考え方ですが、本記事ではシステム・アプリ開発の仕様書を扱います。
画面仕様書・設計書のテンプレートはこちらから無料でダウンロードいただけます。
仕様書とは?「何を作るか」を明文化した設計図
仕様書とは、開発するシステムや製品について、機能、性能、操作方法、画面、データ、外部システムとの連携などを具体的に記述した文書です。プロジェクトの関係者全員が参照する基準となり、開発・テスト・検収の判断材料にもなります。
仕様書に書く内容の目安
システム開発の仕様書には、一般的に次のような内容が含まれます。
- 機能:システムが何をできるか、操作ごとにどう動くか
- 画面:画面一覧、レイアウト、入力項目、画面遷移
- データ:項目名、型、桁数、必須・任意、入力可能な範囲
- 非機能:性能(応答時間・同時接続数)、セキュリティ、可用性
- 連携:外部システムやAPIとのデータのやり取り
ユーザーから見える部分を「外部仕様」、システム内部の実装方法を「内部仕様」と呼んで区別します。
仕様書・要件定義書・設計書の違い
混同されやすい3つの文書は、「何のために」「何を」「どう作るか」の順に詳細化されていきます。
| 文書 | 主な内容 | 作成の中心 |
| 要件定義書 | 目的・課題・実現したい機能の概要(何のために、何を) | 発注者と開発側の共同 |
| 仕様書 | 要件を満たすための機能・画面・データの具体的な内容(どう実現するか) | 開発側(PM・SE)が中心、発注者がレビュー |
| 設計書 | 実装のための技術的な詳細(DB設計、処理フロー、クラス構造など) | 開発側(SE・プログラマー) |
プロジェクトによっては「仕様書」が設計書の意味で使われたり、基本設計書と同義で使われたりします。契約や依頼の前に、どの文書を指しているかを確認しておくと誤解を防げます。
仕様書を作成する人と関係者の役割
仕様書は、プロジェクトマネージャー(PM)やシステムエンジニア(SE)が中心となって作成します。ただし一人で完結するものではなく、次のように役割を分担します。
- 発注者側:業務要件や運用上の制約を伝え、内容が自社のニーズに合っているかをレビューする
- 開発側:技術的に実現可能かを検証し、最適な実装方法を提案する
- テスト・品質管理担当:仕様をもとにテストケースを作成できるかを確認する
仕様書が必要な理由
仕様書がないと、メンバーごとに異なるイメージのまま開発が進み、完成した製品が発注者の期待と食い違うリスクが高まります。仕様書は主に次の3つの役割を果たします。
関係者の共通理解をつくる
発注者、開発チーム、運用担当者、経営層は、専門知識も視点も異なります。同じ言葉を使っていても、理解が食い違うことは珍しくありません。画面レイアウト、データの定義、処理の流れを文書にしておくことで、誰もが同じ完成イメージを持てます。特に「何をもって完成とするか」という完成の定義を揃えるうえで欠かせません。
品質を判断する基準になる
テスト工程では、仕様書どおりに実装されているかを検証します。検収の場面でも、仕様書が合否の判断基準になります。
スコープ(開発範囲)を明確にし、手戻りを防ぐ
「この機能は仕様書に含まれているか」という客観的な基準があれば、後から追加要望が出ても、当初の範囲内かどうかを判断できます。範囲が曖昧なまま進めると、追加コストや納期遅延につながりやすくなります。
仕様書の種類と記載項目
仕様書は、目的や記載内容によって分けて呼ばれます。名称は会社やプロジェクトによって異なりますが、対応関係を押さえておくと整理しやすくなります。
| 種類 | 別名 | 主な記載内容 | 作成者 |
| 要求仕様書 | RFP・要望書に近い | 目的、背景、必要な機能、性能・セキュリティ・運用の要求 | 発注者 |
| 外部仕様書 | 基本設計書・機能仕様書 | 画面レイアウト、画面遷移、入力チェック、エラーメッセージ、外部連携 | 開発側 |
| 内部仕様書 | 詳細設計書・技術仕様書 | DB設計、処理フロー、アルゴリズム、使用技術、API仕様 | 開発側 |
| 非機能・運用仕様書 | 補助仕様書 | 応答時間、同時接続数、稼働率、バックアップ、障害対応手順 | 開発側(発注者と合意) |
要求仕様書
発注者の視点で「何を実現したいか」をまとめた文書です。システムの目的と背景、対象ユーザー、必要な機能の一覧、性能・セキュリティ・運用の要件を記載します。開発の起点となる文書で、この内容をもとに後続の仕様書や設計書が作成されます。
外部仕様書(基本設計書)
システムをユーザーから見た視点でまとめた文書です。画面遷移図、画面レイアウト、入力チェックのルール、エラーメッセージ、外部システムとのデータ連携などを記載します。発注者が使い勝手をイメージできるよう、できるだけ具体的に書きます。ユーザーテストの基準にもなります。
内部仕様書(詳細設計書)
プログラマーが実装するための技術情報をまとめた文書です。外部仕様書が「何をするか」を定めるのに対し、内部仕様書は「どう実現するか」を定めます。テーブル定義、処理フロー、使用するライブラリ、API仕様などを記載します。
非機能仕様書・運用仕様書
性能、可用性、セキュリティ、保守性といった非機能要件は、システムの品質を左右します。「速く動く」ではなく、「画面表示は3秒以内」「同時アクセス100ユーザーまで」のように数値で定めます。運用仕様書では、日常運用、障害時の対応、バックアップとリストア、ユーザー管理の方法を定義します。
初心者でも失敗しない仕様書の書き方|5ステップ
ステップ1:要件を整理する
発注者や関係者へのヒアリングで、システムで実現したいことを明確にします。表面的な要望だけでなく、背景にある業務課題や目的まで掘り下げることが大切です。集めた要件は機能要件と非機能要件に分け、「必須」「重要」「できれば実現したい」のように優先順位を付けます。要件同士に矛盾がないかも、この段階で確認します。
ステップ2:機能を具体的に記述する
各機能について「誰が」「いつ」「どのような操作をして」「どのような結果が得られるか」を記載します。曖昧な表現を避け、数値や条件を明確にします。
- 悪い例:一覧画面には最新のデータを表示する
- 良い例:一覧画面には過去30日以内に登録されたデータを、登録日時の降順で最大100件表示する
ステップ3:画面とデータを定義する
画面仕様では、ワイヤーフレームや画面遷移図を使い、各画面の目的、表示項目、入力項目、ボタンの動作、バリデーションルール、エラー時の挙動を記載します。データ仕様は、項目名・型・桁数・必須/任意・初期値・許容値の範囲を表形式でまとめると、読み手が理解しやすくなります。
ステップ4:非機能要件・技術要件を数値で書く
非機能要件は定量的に記述します。セキュリティ要件では、認証方法、アクセス制御、データの暗号化、ログ取得などを明記します。技術要件では、開発言語、フレームワーク、データベース、サーバー環境の方針を記載し、既存システムとの連携があればインターフェース仕様や通信プロトコルも定義します。ここが曖昧だと、後から大きな設計変更が必要になるおそれがあります。
ステップ5:レビューし、テスト設計とつなげる
初稿ができたら、関係者全員でレビューします。発注者は業務要件が正しく反映されているか、開発側は技術的に実現可能か、テスト担当者はテストケースを作成できるかを確認します。仕様書はテスト設計のインプットにもなるため、仕様書とテスト仕様書を連携させると、実装漏れや解釈の違いを早い段階で見つけられます。
仕様書作成のチェックリスト
- 目的・背景・対象範囲が冒頭に書かれている
- 「適切に」「必要に応じて」など曖昧な表現が残っていない
- 数値・条件・上限が明記されている
- 専門用語は初出時に説明している
- 画面・データ・エラー時の挙動まで定義している
- 非機能要件が数値で書かれている
- バージョンと変更履歴を管理している
- 関係者全員がレビュー済みである
仕様書テンプレートを活用する
テンプレートを使うと、記載漏れを防ぎ、誰が書いても一定の品質を保てます。GMOデザインワンでは、画面一覧、ワイヤーフレーム、画面項目など、アプリやWebシステム開発で使う内容をまとめた仕様書テンプレートを無料で提供しています。仕様書づくりに慣れていない方も、参考にしながら進められます。
画面仕様書・設計書のテンプレートはこちらから無料でダウンロードいただけます。
仕様書を読みやすく、保守しやすくするコツ
図表やUMLで視覚化する
複雑な処理の流れを文章だけで説明すると、理解に時間がかかります。フローチャート、シーケンス図、ER図などを使うと、直感的に伝わります。UML(統一モデリング言語)は標準化された記法なので、技術者同士の意思疎通にも有効です。データ項目やエラーメッセージの一覧は表にまとめると一覧性が上がりますが、図表を増やしすぎると逆に読みにくくなるため、文章とのバランスを意識してください。
言葉遣いと記述の粒度を揃える
専門用語は読み手の知識に合わせて使い、使う場合は初出時に定義します。粒度が粗すぎると開発者が実装に迷い、細かすぎると文書が膨大になって保守が難しくなります。外部仕様書は発注者が理解できるレベル、内部仕様書は開発者が実装できるレベルを目安にします。
バージョン管理と変更履歴を運用する
システム開発では仕様変更が避けられません。変更のたびに仕様書を更新し、最新版を全員で共有する仕組みが必要です。バージョン番号を付け、変更日・変更者・変更内容・変更理由を変更履歴表に記録します。GitやSVNなどのバージョン管理システムを使えば、誰がいつどこを変更したかを追跡でき、過去の版に戻すこともできます。
まとめ
仕様書は、システム開発の関係者が同じゴールを目指すための共通言語です。要件定義書でビジネス要件を決め、仕様書で実現方法を具体化し、設計書で技術的な詳細を定める、という流れを押さえておくと、どの文書をいつ作るべきかが分かります。
書き方のポイントは、曖昧な表現を避けて数値と条件で書くこと、画面・データ・非機能要件まで定義すること、そして関係者全員でレビューして変更履歴を管理することです。まずはテンプレートを使い、小さな範囲から実践してみてください。
GMOデザインワンは、アプリ開発の実績が豊富な東証スタンダード上場企業グループの一員です。開発拠点はベトナムのダナンとフエにありますが、御社とベトナム現地の開発チームとの間には日本人のブリッジSEをアサインするため、まるで日本のIT企業に発注しているかのようにコミュニケーションもスムーズ。コストと品質のバランスが取れた開発が特徴です。
当社の実績は、こちらの資料にまとめていますので、ぜひご覧ください。
よくある質問
仕様書とは何ですか?
仕様書と要件定義書の違いは何ですか?
仕様書と設計書の違いは何ですか?
仕様書は誰が作成するのですか?
仕様書にはどのような種類がありますか?
仕様書に書くべき項目は何ですか?
仕様書を書くときに気をつけることは何ですか?
仕様書のテンプレートはありますか?
小売業界でブランド品のバイヤーなどを経験したのちIT業界に転身。 株式会社ライブドアのインフラ事業の営業責任者を担当。 ベンチャー企業の運営に関わった後、2016年にデザインワン・ジャパン(現GMOデザインワン株式会社)へ入社。 「エキテン」事業の営業・サポート部門責任者を務めたのち受託開発事業の立ち上げを担当し、 現在は執行役員兼エキテン事業、受託開発事業とその所管グループ会社を統括。
AI活用ガイド
AIニュース
ソリューション
