システム仕様書は、システム開発の基盤となる重要なドキュメントです。システム開発では、自ら作成した仕様書を見直す場面や、チームメンバーが作成したものをレビューする場面も珍しくありません。
システム仕様書の品質を高めるためには、構成や記載内容を正しく読み取り、矛盾や抜け漏れに気づける能力が求められます。そこで本稿では「システム仕様書とは何か」という基本から、読み方の基本やコツまで紹介します。
- もくじ
1. システム仕様書とは
「システム仕様書」とは、開発するシステムの振る舞いや機能を整理したドキュメントです。発注者と受注者の間で、どのようなシステムを作るかについて共通認識を形成するために用いられます。
ただし、実際の名称や作成担当者、記載の粒度は、企業やプロジェクトによって異なります。たとえば「機能設計仕様書」「基本設計書」「外部設計書」といった呼び方をされることも多いです。「設計」とつく場合、画面構成やデータ構造、処理の流れなど、より内部的な情報を含む傾向があります。
本来、システム仕様書は発注者が作成するものですが、実際には受注者が中心となって作成するケースも少なくありません。どのようなケースであっても、システム仕様書は開発の指針となるため、関係者全員が正しく理解できるドキュメントであるべきです。
本記事では、複数の関係者が読むことを前提に、機能や内部設計を整理した「機能設計仕様書」に焦点を当て、その読み方を解説していきます。
2. システム仕様書の読み方の基本【主な記載項目】
システム仕様書には多様な情報が記載されますが、具体的な記載内容は企業やプロジェクトによって異なります。ここでは、一般的なシステム仕様書に含まれる主な記載項目について、読み方の基本を解説します。
2-1. システムの概要
システムの概要は、そのシステムの大まかな位置付けや役割、開発の背景など説明する項目です。大半のケースで冒頭に配置され、簡潔な文章で書かれています。まずは、システムの概要を読み、システムの全体像を把握しましょう。以降の項目は、システムの概要を前提として記載されます。
2-2. システム構成・関連システム
システム構成は、開発するシステムがどのような構成要素で成り立っているかを示す項目です。「システム構成図」などの形で、システムの概要に併記するケースもあります。外部のシステムと連携が必要な場合は、関連システムについても表現することが一般的です。システムがどのような構成要素を持つのか、開発するシステムが関連システムに対してどのように連携するのか、どのような情報を受け渡しするのか、などに着目して読みましょう。
2-3. 業務フロー・処理フロー
業務フローや処理フローは、システムが利用される手順や、内部的な処理の流れを説明する項目です。業務フローはユーザーの操作や業務の流れを、処理フローはシステム内部の動作を説明します。それぞれのフローを追うことで、システムが実現しようとしている業務の流れや設計意図を把握できます。実際にユーザーが操作しうる手順や流れをイメージしながら読むのが効果的です。
2-4. 画面・入出力・データ仕様
画面、入出力、データの仕様は密接に関連しており、一体的に記載されることも多い項目です。構成や書き方には一定のパターンがありますが、プロジェクトによって形式に違いがあるため、記述の意図を丁寧に読み取ることが大切です。
画面仕様では、各画面のレイアウトや入力項目の仕様、画面間の遷移などが記載されます。仕様の内容を鵜呑みにせず、ひとりのユーザーとして直観的に理解できる画面か、操作しやすいかなど、操作性・使用性について想像・考慮しながら読んでみましょう。入出力仕様は、ユーザー操作や外部システムを通して受け渡されるデータについて、構造や項目レベルで記述されることが一般的です。帳票やファイル、APIといった入出力手段が明示されているかにも注目しましょう。
データ仕様では、扱うデータの種類や形式、データの関連性などが整理されます。データ項目に過不足がないか、また各値の意味や運用上のルールが妥当かどうかも確認しておくと良いでしょう。
2-5. エラー処理
エラー処理は、システムの利用中に発生し得る異常な状態への対処方法をまとめた項目です。たとえば、ユーザーの入力ミスに対してどのようなエラーメッセージを表示するのか、処理を継続するのか中断するのか、といった振る舞いについて記載されます。想定されるエラーが網羅されているか、エラーの対処方法が妥当かを必ず確認しましょう。
2-6. 非機能要件・制約条件
非機能要件・制約条件は、発注者との認識合わせが前提となる項目です。開発チームの一存では決められません。対外的に妥当性を説明できる内容かを確認しましょう。
非機能要件には、システムの性能やセキュリティ、信頼性など、機能以外に求められる要素が定義されます。たとえば「3秒以内に画面を表示する」「常時SSL通信を使用する」といった内容が該当します。非機能要件は、初版の仕様書では記載されていないことが多いため、逐次発注者に確認し記載してもらうようにしましょう。制約条件には、予算、開発スケジュール、使用技術、運用ルールなどが含まれ、プロジェクト全体に関わる重要な前提となります。
3. システム仕様書の品質を高める読み方のコツ6選
システム仕様書の品質を高めるためには、ポイントを押さえて読むことが大切です。ここでは、システム仕様書を読み込む際に役立つ6つのコツを紹介します。
3-1. あらゆるケースを想像してみる
仕様の抜け漏れを防ぐためには、正常なケースだけでなく、例外的な状況や極端な操作も含めて幅広く想像することが大切です。「さすがにあり得ない」と感じるケースこそ、実際には現場で発生することがあります。本当に発生しないのか、他の条件と組み合わさるとどうなるのか、という視点を持ちましょう。ペルソナを作ってその人に成り代わってやってみるのもよいでしょう。多様な状況を検討することで、仕様の網羅性を向上できます。
3-2. 物事を表裏から捉えて考える
仕様書の記載内容は表面的な意味だけでなく、その裏側の意味も考えるべきです。たとえば「ログイン済みのユーザーだけがダウンロードできる」という仕様は、裏を返せば「未ログインのユーザーはダウンロードできない」です。未ログイン時のダウンロード操作に関する記載についても確認すべきでしょう。明記されていない部分にこそ、想定漏れが潜んでいることがしばしばあります。表の記述から裏の意味を丁寧に探る視点を持ちましょう。
3-3. 項目間のつながりに目を向ける
システム仕様書の記載項目を個別に読むだけでなく、項目同士のつながりにも注目しましょう。単独では問題ないように見えても、複数の項目を合わせて考えると、矛盾や不整合が生じているケースがあります。
たとえば、「業務フロー」には経費申請の際に上長が承認する手順が記載されているとしましょう。しかし、「画面仕様」には承認者向けの承認ボタンや確認画面が記載されていない場合、矛盾が生じている疑いがあります。このように、関連項目を組み合わせて読むことで、記載の正確性を見極めやすくなります。
3-4. 主語と動詞の関係性に着目する
システム仕様書を読む際には、主語と動詞の関係性に着目しましょう。つまり、「誰が」「何をするか」という部分が仕様の根幹です。これを正確に読み取ることで、仕様の意図や責任範囲を理解しやすくなります。たとえば、主語が「管理者」なのか「一般ユーザー」なのかによって、求められる挙動は異なるはずです。主語や動詞が曖昧な記述は誤解を招きやすいため、明確になっているか必ず確認しましょう。
3-5. 接続詞や条件表現に注意を払う
「ただし」といった接続詞や、「~の場合」といった条件表現には注意を払いましょう。こうした記載には、例外的な処理や特別なルールなど、重要な情報が含まれていることが少なくありません。また先述のように、条件を表裏それぞれで捉えると、考慮漏れが見つけられるかもしれません。条件が妥当か、全体と矛盾していないかを意識しながら、慎重に確認しましょう。
3-6. 数値や単位を丁寧にチェックする
仕様書に記載された数値や単位は、性能や動作条件に直結します。わずかな誤りでも、仕様全体の信頼性を損ねるばかりか、関係者との合意をやり直す事態につながりかねません。記載ミスがないか、実務的に妥当な値かを丁寧に確認しましょう。
4. システム仕様書を正しく読むために必要なスキル
システム仕様書を正しく読み解くためには、基礎知識やコツだけでなく、論理的思考力(ロジカルシンキング)が大切です。論理的思考力とは、物事を筋道立てて考え、情報を整理して判断する能力を指します。
システム仕様書は、複数の項目が相互に関連して成り立っています。そのため、単に書かれた内容を読むのではなく、「この内容でシステムは成り立つか」「矛盾や抜けはないか」といった観点で検証することが求められます。記述ミスや抜け漏れ、矛盾や不整合を的確に見抜くためには、項目間の整合性を論理的に考える力が必要になります。
5. まとめ
システム仕様書は、システム開発の基盤となる重要なドキュメントです。システムの概要やシステム構成、業務フロー、画面やデータ仕様、エラー処理など、さまざまな情報が記載されます。
これらを正しく理解し、矛盾や抜け漏れを見つけるためには、論理的思考力を活かしつつ、コツを押さえて読むことが大切です。システム仕様書を読む際には、本稿の内容をぜひ参考にしてください。

