課題からみる
  • DX
  • 属人化防止
  • 開発部門
  • システム管理・DX担当

仕様書とは?
システム開発やソフトウェア開発で求められる種類や書き方のコツ

2023.12.08更新日:2024.03.29

システム開発やソフトウェア開発において重要な存在である「仕様書」。しかし「初めて仕様書を書くことになり、仕様書の書き方がわからない」「書いた仕様書が適切かどうか自信がない」このような悩みを持っている方もいるでしょう。

本記事では、仕様書の種類や作成時のポイント、わかりやすい仕様書を書くコツについて解説します。わかりやすい仕様書を書くことで、開発をスムーズに進めましょう。

仕様書にはConfluenceがおすすめ!Excelでの設計書管理からConfluenceを導入した事例を読む 
		?システム開発やソフトウェア開発で求められる種類や書き方のコツ

仕様書とは

仕様書とは、システムやソフトウェアの開発において、要求事項や仕様の詳細をまとめた文書です。

開発者と発注者とのコミュニケーションを円滑にするための基本ツールの一つであり、システム開発を進めるにあたって欠かせない、非常に重要な文書です。

仕様書を作成するのは誰か

仕様書を作成するのは誰か

仕様書の作成者は、仕様書の種類によって異なります。

システムに対する要望を記載する“要求仕様書”は発注者が作成します。“要求仕様書”は要件定義フェーズの前段階で提出され、これに基づき受注者側はクライアントに対して要件の詳細なヒアリングを行い、要件定義フェーズが進んでいきます。

そして、この要件定義フェーズを経て、より具体的かつ詳細なシステムに対する要求を記載する“外部仕様書”および“内部仕様書”が作成されます。この、“外部仕様書”および“内部仕様書”は、受注者が発注者に向けて作成します。

仕様書にどのような種類があるのかについては後で詳細を解説しますが、各フェーズ・目的によって様々な種類の仕様書があり、作成者もそれに応じて異なる点、特に発注者が作成する仕様書も存在する点は正しく認識しましょう。

仕様書が必要な理由

仕様書が必要な理由

仕様書は、プロジェクトに参画している関係者間の認識を揃えるために不可欠な文書です。一般的にシステム開発では多くの人が関与しながらプロジェクトを進めていくため、コミュニケーション不足による誤解や認識相違が生じる可能性が大いにあります。プロジェクトを進めていく中で議論・決定した内容を仕様書という形で文書に残すことで、このようなコミュニケーションミス、「言った言わない問題」を防ぐことに繋がります。

スタートアップや小規模プロジェクトではリソース不足で仕様書の省略が頻発しています。アジャイル開発では迅速な開発と柔軟性を重視するため、詳細な仕様書よりもユーザーストーリーの達成やタスクが重視されますが、仕様書がまったく不要というわけではありません。後で見返す際に、プロジェクトの要件や目標を明確化するために文書化をしておく必要があります。

仕様書と要件定義書の違い

似たものに「要件定義書」があります。要件定義書は、プロジェクトやシステムの目的を明確化するために、達成すべき全体的な要件やニーズを特定し文書化するものです。仕様書は、要件定義書で定義された要件を具体的な技術的詳細に落とし込みます。

「何を達成するか」(What)を定義するドキュメントで、仕様書は「どのように達成するか(What)」にあたります。

仕様書と設計書の違い

仕様書は、顧客や利用者の要求やシステムの仕様を文書化し、システムやソフトウェアの開発に必要な情報を提供します。

一方設計書は、仕様に基づき、設計者がシステムやソフトウェアをどのように実装するかを詳細に記述します。つまり、仕様書はシステムやソフトウェアで“実現したいこと”を示し、設計書はそれを“実現する方法”を示す、という違いがあります。

システム開発やソフトウェア開発で必要となる仕様書の種類

システム開発やソフトウェア開発で必要となる仕様書の種類

ここでは、システム開発やソフトウェア開発で必要となる3種類の仕様書について解説します。

要求仕様書

要求仕様書とは、開発するシステムやソフトウェアに対する要求事項を定めた仕様書です。システムやソフトウェアに対する要件の基となる仕様書であり、発注者側が作成し、受注者側に渡されます。

要求仕様書では、そのシステムで実現したい機能を中心に、操作方法や外部システムとの連携方法といったインターフェースや、ユーザー認証方法といったセキュリティに関する要求事項が記載されます。データのフローや構成をクラス図、オブジェクト図、シーケンス図などを交えてまとめられます。

外部仕様書(基本設計書)

外部仕様書とは、発注者から受領した要求仕様書を受けて受注側のPM(プロジェクトマネージャー)やSE(システムエンジニア)がシステム構造や機能など、利用者の視点からシステムの振る舞いを具体化させた仕様書です。

システムの画面や操作フローなどのUI/UXデザインや、ユーザーが出力する帳票、システムで取り扱う入出力データの種類などが記載されます。

外部仕様書はその名の通り、“そのシステムが外部(ヒトや他のシステム)とどのような形で接点を持つのか”を記載した文書、と覚えておきましょう。

プロジェクト管理ツール「Jira Software」を使っているならば、仕様書は「Confluence」がオススメ。
Confluence(コンフルエンス)について知る

内部仕様書(詳細設計書)

内部仕様書とは、外部仕様書の内容を基にしてシステムの機能を詳細に定義した文書です。一般的に技術仕様書と機能仕様書に分かれ、機能仕様書は開発する製品の内部的な処理やふるまいを、技術仕様書はそれを実現するための技術的な要素を記載します。これらは一般的にSEやプログラマーが作成します。

内部仕様書は外部仕様書と比較して、“そのシステム内で完結する機能や処理の詳細”を記載した文書と理解しましょう。

このうち外部仕様書と内部仕様書は、開発するシステムの動作を記載する文書であることから設計書と同義的に扱われることがあります。

仕様書も設計書もシステム開発やソフトウェア開発を進めるうえで必要な文書ということには変わりないため、その文書の作成目的や記載内容を正しく理解して適切な文書を作成することが重要です。

プロジェクト管理ツール「Jira Software」を使っているならば、仕様書は「Confluence」がオススメ。
Confluence(コンフルエンス)について知る

種類別に解説!仕様書の書き方のポイント

では次に、各仕様書を書くにあたってどのようなポイントを意識するとよいのかを解説していきます。

要求仕様書の書き方のポイント

要求仕様書を書くにあたっては、開発するシステム・ソフトウェアを通して達成したいことを明確化することがポイントです。

システム開発を進める際に要件定義フェーズにて開発のスコープを決定します。この要件定義フェーズにおいては、この要求仕様書に基づいて機能や性能を決定していくため、どのような製品を目指すのかを議論・検討できるように、達成したいことを明確に定義しておくことが最も重要となります。

この議論・検討のために、その達成したいことに対する目的や背景なども記載すると、発注者の要求事項や考え方が受注者にも伝わりやすくなります。日付などともに足元の経済状況の変動や世の中の流行等を記載することで、いつ、そのシステムを誰に向けて、どのような形で拡張していきたいのかがより具体的に伝わります。

プロジェクト管理ツール「Jira Software」を使っているならば、仕様書は「Confluence」がオススメ。
Confluence(コンフルエンス)について知る

外部仕様書の書き方のポイント

外部仕様書を書くにあたっては、「要求仕様書に矛盾がなく、技術的に可能な内容をわかりやすく記載すること」がポイントです。

外部仕様書は要求仕様書に従ってシステムの機能を詳細化していくものです。そのため、外部仕様書を書くにあたってはまず、要求仕様書が十分に詳細化されているかどうかを関係者全員で確認します。

また、完成した外部仕様書は発注者に提出するという点も意識する必要があります。提出前の事前レビューにおいてはシステムにあまり詳しくない人にとってもわかりやすい記載となっているかを確認しましょう。またその際、開発チームの各メンバー間における認識のずれなど、個別に検討している段階では気づかなかった問題を合わせて修正することも大切です。

内部仕様書の書き方のポイント

内部仕様書を書くにあたっては、内部仕様書を見ただけでプログラミングが進められる状態となっていることがポイントです。

実際の開発において、プログラミングは内部仕様書を基に進めていきます。そのため、開発チームがシステム開発を進めるにあたって、用語の定義を明確にする、簡潔に伝える、必要に応じて図解を取り入れるなど、わかりやすい形式で作成するよう心掛けましょう。わかりやすく記載することで、将来的にメンテナンスやアップグレードが必要となった際にも役立ちます。

プロジェクト管理ツール「Jira Software」を使っているならば、仕様書は「Confluence」がオススメ。
Confluence(コンフルエンス)について知る

読みやすい仕様書を作成するコツ

仕様書は、開発プロセスを正確かつ効率的に進めるために不可欠な文書です。しかし、専門用語や複雑な技術内容が多いため、読みやすい仕様書を作成するにはコツが必要です。

ここでは、読みやすい仕様書を作成する際留意すべきポイントを5つ紹介します。

要件や機能、技術的な側面を記載する

  • 開発するシステムやソフトウェアに必要な要件・機能と、それを実現する技術的な側面についてはしっかり記載しましょう。
    この際、発注者が必ずしもエンジニアではないケースもあるため、システム関連の専門用語は平易な言葉に置き換えたり、注釈を付けることをおすすめします。これにより、誰もがシステムの要件・機能を理解できるようになります。

明確かつ簡潔な言葉で記載する

  • 誰にでもわかりやすいように、明確かつ簡潔な言葉で記載するように心掛けましょう。
    必要な情報が欠けていていたり、曖昧な箇所があると、開発途中で問題が生じるリスクが生じてしまいます。テクニカルライティングの原則に従い、明確性・簡潔性・一貫性を保ちましょう。表記ユレにも要注意です。

構造化されたフォーマットを使用する

  • おおむね仕様書は構造化されておりひとつのテンプレートとも言えそうです。情報を整理し構造化することで、仕様書自体を読みやすくすることができます。
  • 構造化とは、「物事の全体を把握し、構成要素と構成要素間の関係を整理すること」です。
    ドキュメント全体を章立てにし、見出し、箇条書きなどを活用し、全体の構成を一覧化します。
    また、関連する情報へのリンクを適切な箇所に設置することで、要求事項と機能の関連などもより簡単に把握できるようになります。

UMLや画面遷移図など図を盛り込む

UMLや画面遷移図など図を盛り込む
  • 画面遷移図やクラス図を作成し、仕様書に盛り込むことで、システムの操作の流れを視覚的に表現することができます。
  • 画面遷移図はUI/UX、操作性、ユーザビリティの改善にも役立ちます。操作の動線が複雑であったり、操作がしにくかったりする場合は、画面遷移図を見直すことで改善できる場合もあるため、作成しておくと役に立つ場面が多いです。
  • UMLモデリングを画像作画ツールで作成し、それを仕様書に添付する方法をとる方もいますが、図の変更のたびに図のファイルを作成・保存しドキュメントに添付する...ということを繰り返すのは手間になります。
    クラウドの専用ツールで作画し、それをAPIで読み込んで添付できるツールも多くあります。また、アドオンなどで仕様書作成ソフト上でUML図を描けるものもあります。業務効率化とユーザー体験向上のためにも、検討してください。

仕様書ツールを導入したい!Whiteboardで図表の埋め込みが可能な 「Confluence(コンフルエンス)」 がおすすめ!

仕様書作りに迷ったら、テンプレートが豊富なConfluenceがおすすめ!

仕様書は、システムやソフトウェアの開発時に必要な要求や仕様の詳細をまとめた文書です。さまざまな種類の仕様書がありますが、いずれも開発者と発注者とのコミュニケーションを円滑にするための基本ツールであり、読みやすい仕様書を作ることがプロジェクトを成功へ導く鍵となります。

今回解説したポイントを意識しつつ、プロジェクトを円滑に進めましょう!

この仕様書作成を効率的に進めていくにあたっては、Confluence(コンフルエンス)という製品がおすすめです。

Confluenceは、仕様書のテンプレートが豊富にあり、図表の書き込みができる「Whiteboard」機能も備わっています。テンプレート自体のカスタマイズ性も高く、ドキュメントの構造化も簡単といった、仕様書作成に適した機能が多く備わっています。また、ユーザーフレンドリーなUIであり、複数人同時に編集が可能といった点から操作性も非常に高く使いやすいツールです。Confluenceで作成した仕様書を、PDF形式・Word形式でダウンロードすることが可能ですので、非開発者への共有も容易です。

仕様書を書いた経験があまり無い方は、どこから手を付けていいかわからない場合もあると思いますが、テンプレートがあれば誰でも簡単に読みやすい仕様書を作り始めることが可能となるため、非常に便利に使うことができるでしょう。

またプロジェクト管理にJira Softwareを使用している場合は、Confluence・Jiraの間で相互にページを紐づけられるといった連動機能もあるため、より使い勝手がよくなります。

ファイルサーバの管理はもう限界?
相互引用・図の埋め込み可能!Jiraで開発しているなら仕様書はConfluece(コンフルエンス)にまとめるべし~2023秋

リックソフトでは、Confluenceの導入実績も豊富、かつ、使い方のサポートも可能ですので、興味がある方はお気軽にお問い合わせ下さい。

読みやすい仕様書を効率的に作成して、さらなる開発効率化を目指しましょう!

お気軽にご相談ください。
各種お問い合わせ、ご質問など以下よりご相談ください。
お問い合わせ
お問い合わせ
Confluence ロゴ
社内の情報を 蓄積&活用する
ナレッジマネジメントツール Confluence(コンフルエンス)
Confluenceの製品詳細
製品について詳細はこちら
Confluenceの製品詳細
Confluence の導入事例
チームコラボレーションツールの有効活用で
エンジニアおよびバックオフィス部門のナレッジ共有を実現
Confluence 導入事例
詳しくはこちら
Confluence 導入事例

関連記事

一覧へ戻る

目次

PAGE TOP