ここでは、システム開発プロジェクトについて調べていることを簡単にメモしておく。
今回はシステムの仕様について。
システム仕様(についてのメモ)
システムの”仕様”とは
-
ユーザーや業務がシステムに期待する振る舞い・条件を、開発者にも伝わるよう“共通言語”で明文化したもの
-
主眼は「何を実現するか/どんな品質であるべきか」であり、機能面と非機能面の両方を網羅する必要がある
| 1.要求(ビジネス要件)
↓ 〈何を?〉 ↓ 〈どうやって?〉 |
-
システム仕様は「要求の完成系」。開発の“入口”であり、品質保証や受入テストの“ものさし”になる。(一方、設計は仕様を実現可能な形にブレークダウンした“設計図”。開発の“作業指示書”になる)
-
「仕様」と「設計」の両者が揃うことで、システムは「やるべきことが定義され」「実現方法が決まり」ブレのない開発が可能になる
”仕様”が必要になるの人たち
システムの仕様化は誰に関係するか。
| 関係者 | 目的 |
|---|---|
| ユーザ(利用者・業務担当者) | システムが何を実現するかを確認するため |
| 開発者(ユーザIT部門、開発ベンダー) | 設計・プログラミングのベースとするため |
| テスト担当(ユーザIT部門、開発ベンダー) | テストの観点・基準とするため |
| 運用・保守担当 | 性能・可用性などを確保する前提として |
”仕様”化のタイミング
下図、水色のボックスの機能要件整理、非機能要件整理のあたりのイメージ。設計を進めるために、機能要件、非機能要件をインプットにして仕様を決めていく。

”仕様”とは具体的に何を整理するのか
下記リンク(3.システム仕様)参照。機能要件/非機能要件に分けて整理している。
”仕様”と”設計”との違い
システムの仕様と設計の違いを整理してみた。
簡単に言うと、
- 仕様とは、ユーザが望んでいるシステムのふるまい。「ここはこうしてほしい!」
- 設計とは、システム開発者がどのように作ろうとしているか。「ここはこうしよう!」
下表は仕様と設計に関する色々な観点の違い。
| 観点 | システム仕様 | 設計 |
|---|---|---|
| 目的 | 「何を・どの品質で提供するか」を定義した“要求の詳細” | 「どう実現するか」を具体的な構造・手段に落とし込む“実装図面” |
| 視点 | 業務・ユーザー/発注者の立場 | 開発・インフラ技術者の立場 |
| 粒度 | 処理の可否・条件・性能数値など、実装に依存しないレベル | モジュール分割、テーブル設計、API定義、画面レイアウトなど |
| 成果物例 | システム仕様書、要求仕様書 | 基本設計書、詳細設計書、画面設計書、DB設計書 |
| 作成者 | 業務側+上流SE | 開発者・技術担当 |
| 主な利用者 | 発注者・業務担当・QA・開発チーム | 開発者・インフラ/運用担当・テスター |
仕様書の役割分担
システム仕様の大まかな構想は、業務側(ユーザ企業側)である程度まとめられている場合が多いと思うが、設計を進めていくうえで、開発ベンダー側にも仕様をチェックしてもらい、設計に向けて過不足や不適切な表現があれば追加、修正する必要がある。それぞれの仕様について、業務側とベンダー側の確認ポイントはどう違うのか比較してみる。理解を深めるための一環として一例を挙げる。
| 仕様項目 | 業務側で明確にすべき内容 | 開発側で確認・詳細化すべき内容 |
|---|---|---|
| 画面設計 | ・画面に必要な機能の概要(例:検索、登録、一覧表示)
・業務上必要な入力項目・操作の流れ |
・画面レイアウト ・入力チェック仕様 ・エラーハンドリング ・画面遷移設計 |
| 帳票設計 | ・出力したい帳票の種類、目的、タイミング ・必要な項目とレイアウト案 |
・帳票のフォーマット設計(PDF、Excel等) ・集計/出力処理の実装仕様 |
| 業務フロー/処理ロジック | ・業務全体の流れ、処理条件、例外パターン ・承認やチェックのルール |
・システム内での処理手順の詳細設計 ・例外処理の実装方法 |
| データ仕様 | ・管理すべき業務データとその項目内容 ・データの意味やルール(例:部門コード体系) |
・DBテーブル構成(正規化) ・データ型 ・桁数 ・制約条件の定義 ・インデックスの最適化 |
| 外部連携仕様(I/F) | ・連携が必要な外部システム名、連携タイミング ・必要なデータ内容 |
・API/バッチ連携方式の技術仕様 ・通信プロトコル、エラー時の処理 |
| 非機能要件 | ・性能要件(処理速度、同時接続数) ・セキュリティ要件(認証方式、アクセス制御) |
・アーキテクチャ設計(冗長構成、ログ管理) ・セキュリティ対策(暗号化、認証方式の実装) |
| テスト仕様 | ・受け入れ条件や業務シナリオベースの確認項目 | ・単体・結合・システムテスト仕様の策定 ・テストデータの準備と自動化 |
| 運用・保守設計 | ・操作マニュアルの要否・問い合わせ対応ルール ・バックアップの有無など |
・監視設計、障害時のログ設計 ・ジョブ設計(夜間処理等) ・バックアップ/復旧設計 |

コメント