【システム開発の仕様書とは?】仕様書の種類や書き方、仕様書作成の際押さえておくべきポイント、仕様書作成に役立つツール4つも徹底解説!

システム開発及びアプリ開発において、計画的かつ効率的に開発を進めていくために作成される各種仕様書。この仕様書の作成を怠ってしまうと、開発中に仕様変更が発生し、工数の増加だけでなく納期の延長等様々な弊害も生まれてしまうでしょう。さらに仕様書を作成することで、クライアントとベンダーの間に認識の齟齬がないようにすることも可能です。

そこで本記事では、システム開発及びアプリ開発の仕様書に焦点を当て、仕様書の種類や書き方を始め、仕様書作成の際押さえておくべきポイントについても徹底解説致します。

仕様書とは

システム開発アプリ開発で作成される仕様書は、開発者の説明書にあたる書類です。具体的にはどの部分にどのような機能を搭載するのかといったことや、どこを基準にどのような形で遷移させるのかといったことを記載してあり、要求定義された要求を必ず満たしていることが求められます。

仕様書と設計書の違い

各フェーズごとに仕様書とセットで作成される設計書と仕様書を混同して捉えてしまう方も少なくありませんが、仕様書は成果物のイメージを資料にしており、設計書は制作の工程を資料としています。

仕様書と使用説明書の違い

使用説明書も設計書同様仕様書と混同してしまっている方が多い資料です。使用説明書とは、その名の通り、成果物の使い方について解説されているものであり、設計書及び仕様書とは切り分けて考える必要があります。

仕様書の種類

システム開発及びアプリ開発に必要となる仕様書は1種類だけでなく、様々な種類が存在します。本項目では、代表的な次の5つの仕様書の種類について解説致します。

  • 要求仕様書
  • 機能仕様書
  • 技術仕様書
  • API仕様書
  • テスト仕様

要求仕様書

要求定義仕様書は、クライアントが求める成果物の要望に沿って、どう対応を行うのか、費用はどのくらいなのか、納期予定はいつであるのか等を記載する仕様書のことでありながら、クライアントの折衝に使用したり、プロジェクトメンバーへの指示書として使用されたりする資料のことです。

要求仕様書がなければ、クライアントとベンダーの間でイメージしている成果物に大きな差が生じていないか等を視覚的に確認することは難しく、必ず作成するべき仕様書の1つと言えます。

機能仕様書

機能仕様書とは、開発するシステム及びアプリの動作について記載した資料のことです。前述した要求仕様書を基に、クライアントの要望に対してどのような機能を搭載することで成果物を完成させるのかをまとめます。この機能仕様書の中には、画面設計書や機能の一覧表等も含まれることがあり、プログラマーが機能仕様書を見ただけで開発をスムーズに進めていけるくらい、誰であっても理解しやすい内容にする必要があります。

技術仕様書

技術仕様書とは、前述した機能仕様書で記載された各機能を開発するための手法について記載された資料のことです。ただし、搭載する全ての機能に対して仕様書を作成せずとも、特に必要だと思われる機能にのみ作成するといったことでも問題ありません。

API仕様書

APIとは、英語表記で「Application Programming Interface」の頭文字を取ったものであり、外部のソフトウェア及びWebサービスを利用するための仕組みのことを言います。

API仕様書とは、API利用について手順を記載した書類となっており、具体的にはAPIエンドポイントをはじめ、パラメータ、得られる結果等が記載されていることから、API利用を行う上では必須とも言える仕様書です。

テスト仕様書

テスト仕様書とは、クライアントの要求をヒアリングして作成した要求定義書記載に違わず動作を行うかどうかについて、テストを行うポイントをまとめた書類のことです。具体的には、単体テスト及び結合テストにおいて、搭載したどの機能を何のテスト技法を用いてテストするのかについて記載されています。

仕様書を作成する際押さえておくべきポイント

本項目では、各種仕様書を実際に作成する際、これだけは押さえておくと誰でも理解しやすい仕様書になるという押さえておくべき6つのポイントについて解説致します。

  • イメージ画像及び図を活用
  • 画面遷移図がわかりやすい
  • シーケンス図がある
  • 5W1Hに沿って記載
  • 可能な限り詳細を記載
  • ツール及びテンプレートを活用

イメージ画像及び図を活用

全て文章だけで構成された仕様書はとてもわかりにくくなってしまいます。仕様書を作成する際のルールには、特に文章だけで作成しなければいけないというものはないため、積極的にイメージ画像及び図を用いるように意識しましょう。

特にクライアントからヒアリングを行って作成する要求仕様書については、成果物のイメージが視覚的にできるようにし、専門的な知識が乏しいクライアントであっても明確に成果物をイメージできるようにする工夫が必要です。要求仕様書の理解が曖昧なまま開発が進み、成果物を納品してしまうとクライアントが当初イメージしていたものと違うといったトラブルに発展してしまう可能性も少なくありません。

画面遷移図がわかりやすい

画面遷移図とは、別名画面展開フローとも称され、システムやアプリの画面に表示される順序をはじめ、画面同士の関連について視覚的に理解しやすく図解したもののことを言います。

成果物を実際に使用するユーザーの行動及び導線を予測することで、予期せぬトラブル発生を防ぐことができるため、作成に時間がかかるからと後回しにせず、初期の段階でしっかりとした画面遷移図を作成しておきましょう。

シーケンス図がある

シーケンス図とは、プログラムの処理の流れ及び概要を設計する際に用いられる図のことで、時間軸に沿ったクラス・オブジェクトの間のやりとりについて視覚的に表現することが可能です。こちらも画面遷移図同様、作成するのには手間や時間がかかってしまいますが、開発上の認識齟齬が発生するのを防ぐためには、必要不可欠な仕様書であるため、必ず作成するようにしましょう。

5W1Hに沿って記載

5W1Hは、ご存知の通り下記英単語の頭文字を取ったものであり、仕様書を5W1Hに沿って構成することで、非常にわかりやすいものとなります。

  • When:いつ
  • Where:どこで
  • Who:誰が
  • What:何を
  • Why:何故
  • How:どのように

上記を仕様書に落とし込むと、開発するシステムの納期をはじめ、どのオフィスでどのプロジェクトメンバーがどのようなシステムを何のために、どのような技術を使用して開発するのかということがわかるように意識して記載していくことで、誰であっても理解が容易な仕様書となります。

また、システムに関する専門的な知識の乏しいクライアントが読むような要求仕様書については、専門的な単語を使用するのを控えるといった気遣いも大切です。

可能な限り詳細を記載

可能な限り詳細について記載した仕様書を作成することを意識することで、スムーズかつ効率的にシステム開発及びアプリ開発を進めることが可能です。曖昧な部分が多い仕様書であれば、結果的に詳細について実務担当者であるプロジェクトメンバーから逐一質問されることになり、その都度時間を取られることになってしまいます。さらに、その質問に対しての回答は大抵の場合、口頭でなされることが予想されるため、誰にどのように答えたかというログも残りにくくなります。

その結果、予期しないトラブルが発生したり、本来の開発意図が伝わらず、要求仕様書とずれた成果物が完成してしまったりといったことに繋がりかねません。このような事態に陥らないためにも、詳細部分まできちんと記載された仕様書を作成しておく必要があります。

ツール及びテンプレートを活用

システム開発及びアプリ開発において、仕様書を作成することはとても重要ではありますが、仕様書の作成ばかりに時間を取られてしまうのは本末転倒です。本来力を入れたいシステム開発に時間を割くためにも、仕様書を作成するためのツール及びテンプレートを積極的に活用することで、要点をまとめつつわかりやすい仕様書を効率よく作成しましょう。

要求仕様書の書き方

システム開発及びアプリ開発において、一番最初に作成する要求仕様書を作成する際の工程は大きく次の4つのフェーズに分割することが可能です。

  1. 要求収集
  2. 要求分析
  3. 要求定義(要件定義)
  4. 要求仕様記述

1.要求収集

要求収集では、クライアントから開発したいシステム及びアプリについて、開発する目的を始め、どのような機能を搭載したいのか、開発後の目標は何なのか等について、詳細なヒアリングを行います。直接インタビューを行ったり、アンケートを行ったりして、クライアントの要望について齟齬がないように汲み取ることが必要です。

2.要求分析

要求分析では、クライアントから収集した様々な要求について、矛盾していないかということや、抜けがないかということについて分析を行います。その際、なるべく複数人であらゆる視点から分析を行うことが大切です。

さらに可能な限りクライアントとイメージが一致しているかどうか確認するためにも、視覚的に成果物を理解できるような資料を作成したり、プロトタイプを開発したりといった工夫が後のトラブル防止に一役買うことになります。

3.要求定義(要件定義)

要求定義(要件定義)では、プロジェクトメンバーに対し、クライアントからの要求が理解できるような資料を作成します。この段階では、なるべく詳細に資料を作り込む必要があるのである程度時間を割き、丁寧に詰めていく必要があります。

4.要求仕様記述

要求仕様記述は、要求仕様書作成の最終工程であり、要求及び設計の橋渡しとなるような文書を作成します。具体的に記載するべき項目は下記のようなものが挙げられます。

  • 要求の概要
  • システム及びアプリの目的
  • 現状の課題及び改善案
  • 基本要件及び優先順位
  • 到達目標
  • システムの実現の手段
  • システム化する範囲
  • 概略コスト
  • 効果(定性/定量)
  • 体制図
  • 概略スケジュール

要求の概要

要求の概要では、その名の通り、クライアントの要望の概要についてまとめます。

システム及びアプリの目的

システム及びアプリの目的では、システム及びアプリを何故開発するのか、どのような目的で開発するのかについてまとめます。

現状の課題及び改善案

現状の課題及び改善案では、システム及びアプリがない現状における課題を洗い出し、その課題を解決することが可能な改善案(搭載する機能)について記載します。

基本要件及び優先順位

基本要件及び優先順位では、本プロジェクトにおいて、基本的に満たすべき要件と優先順位をつけていきます。特にシステム開発においては、クライアントの全ての要望を完全に実現するということは困難である場合が多く、そのため、優先順位をつけることで、なるべく要望に近いシステムを開発できるように努力していくことになります。そのため、開発に着手する前の段階で要求仕様書に明記しておきます。

到達目標

到達目標とは、開発するシステム及びアプリの目的ではなく、システム開発上の目標を定義しておくことです。例えば、ミスを通常の想定よりも30%削減するといったような具体的な目標です。近年では、人員削減や残業数の削減等が記載されることも多くなってきています。この到達目標を最初に設定しておくことで、プロジェクトメンバー全員の意識を統一し、効率的にシステム及びアプリ開発を進めていくことができると言われています。

システムの実現の手段

システムの実現の手段では、本プロジェクトで開発するシステム及びアプリについての全体構想を記述し、クライアント及びプロジェクトメンバー全員が成果物の概要について共通認識を持てるような資料とします。

システム化する範囲

システム化する範囲では、前述した基本要件及び優先順位に沿いながら、実際に成果物に搭載する機能を明記します。同時に今回搭載しない機能についてもきちんと明記しておかなければ、後々クライアントとの間でトラブルに発展してしまうことに繋がり兼ねませんので注意が必要です。

併せて搭載しない機能は、何故搭載しないのかといった理由や、搭載せずとも代替する方法があるのかといったことをきちんと明確にし、クライアントに説明できるようにしておきましょう。

概略コスト

概略コストとは、本要求仕様書に則り、概略のコストを見積もり記載することです。クライアントはこの金額を見て、このシステム及びアプリ開発を進めるのか、それとももう少し搭載機能を絞る等して、コストを抑えるのか等のジャッジを行った後、クライアントから了承を得ることができればそこで初めてプロジェクトが発足し、開発がスタートします。

効果(定性/定量)

効果(定性/定量)では、本プロジェクトで開発するシステム及びアプリによって、どのような具体的な効果があるのかについて具体的に記載します。

定性効果とは、数値では表すことができない効果のことであり、定量効果とは数値及び金額で表すことが可能な効果のことです。ここでは、どちらの効果も想定できる限り記載することが大切です。効果が少なければ、クライアントもコストをかけてまでシステム及びアプリ開発をすることはないと考えてしまうためです。

体制図

要求仕様書における体制図においては、プロジェクトを完遂させるために、ベンダー及び外注会社がどのように関わるのか等を図で示します。実際にプロジェクトが発足した段階では、さらに詳細な担当者名を記載できるとなお良いでしょう。

概略スケジュール

概略スケジュールでは、開発するシステム及びアプリについて、無理なく実現可能かつ具体的な納期を記載します。クライアントとしては、早ければ早いほど良いということになることが大半ですが、クライアントの要望通りの納期にしたところで、結局納期が延びてしまっては元も子もありません。そのため、スケジュール立案段階では、余裕を持ちつつ最短のスケジュールを記載するようにしましょう。

機能仕様書の書き方

システム及びアプリ開発における機能仕様書には、主に次の9つの項目を記載します。

  • 表紙
  • 改訂履歴
  • 目次
  • 用語説明
  • システム
  • 機能策定方針
  • 機能概要
  • 機能仕様
  • 非機能仕様

表紙

表紙はその名の通り、機能仕様書の表紙であり、一般的にはタイトル「〇〇システム/アプリ機能仕様書 ver.1.0」と、所属部署及び名前等を記載します。

改訂履歴

改訂履歴のページも設けておき、改訂日付や改訂者の名前、及び改訂の内容を記載します。

目次

目次では、文字通り項目及び該当ページ数を明記します。

用語説明

用語説明では、機能仕様書で用いる用語についての定義を明記します。

システム

システムでは、開発するシステム及びアプリの概要及び、サーバーやドメイン等の構成、開発環境や動作環境、プログラミング言語等について明記します。

機能策定方針

機能策定方針では、発生したエラーに対しての処理方法について等に対して記載します。具体的には、Aというエラーが発生した場合には処理を続行するが、Bというエラーが発生した場合には処理を続行しないといったような内容です。

機能概要

機能概要では、開発するシステム及びアプリが持つ機能について概要を明記します。

機能仕様

機能仕様では、前述した機能概要で挙げた各機能について、より具体的に詳細を記載します。

非機能仕様

非機能仕様では、機能以外に関する性能等の使用を明記します。

仕様書作成に役立つツール 4選

システム及びアプリ開発の仕様書を0から作成していると大変な手間と労力がかかるため、本項目では、仕様書作成に役立つツールについてご紹介致します。

  • Microsoft PowerPoint
  • cacco
  • Moqups
  • Prott

Microsoft PowerPoint

Microsoft PowerPointであれば、普段から使い慣れている方も多い上、標準搭載されているPCも多くあるため、一番身近なツールであると言えます。手軽に表や図を挿入することもできることや、共有することも容易であることがメリットでしょう。

cacoo

Cacco(カクー)とは、株式会社ヌーラボが提供しているフローチャート及びワイヤーフレーム等の図を簡単に作成し、なおかつ安全に共有することが可能なオンライン作図ツールです。日本語に対応しており、無料版と有料版があるため、まずお試しで使ってみたい方は無料版を試してみることをおすすめします。

オンライン作図ツールcacoohttps://cacoo.com/ja/?gclid=CjwKCAiAprGRBhBgEiwANJEY7KkqTPL1X47CX93WJQ2AvPsFrPSJ6f5uwlO6X4IpYgRtNNgqTYZjGxoC-lwQAvD_BwE

Moqups

Moqupsは、ブラウザベースのWeb制作イメージ共有ツールのことです。日本語ではなく、英語で説明がされていますが、基本的にはドラッグ&ドロップによる操作で直感的に操作することが可能であるため、人気のツールとなっています。無料版及び有料版があり、無料版では1プロジェクトしか作成できないため、有料版がおすすめです。

Moqupshttps://moqups.com

Prott

Prottとは、コーディングしなくても本物のようにアプリを再現することができるプロトタイピングツールです。仕様書のみだとクライアントに伝わりにくいと悩んでいる方は、Prottを活用することで、クライアントとベンダーの間のイメージを共通のものにしやすくなるでしょう。

Protthttps://prottapp.com/ja/

まとめ

システム及びアプリ開発の仕様書について、本記事では、システム開発及びアプリ開発の仕様書の種類や書き方を始め、仕様書作成の際押さえておくべきポイントについても徹底解説致しました。

システム及びアプリ開発をスムーズに行い、クライアントの要望を実現させるために、丁寧な仕様書の作成は必須です。本記事を参考にしていただき、様々なツールを駆使しながら、効率的にわかりやすい仕様書を作成し、システム及びアプリ開発に活かしていただければと思います。

Leave a reply:

Your email address will not be published.