基本設計工程で何をすれば良いの?設計書には何を書けば良いの?そんな悩みを抱えているあなたにお届けする記事を書きました。下記の章構成を真似し、説明に従い各章の内容を埋めていくだけで素晴らしい基本設計書が出来上がります。ぜひ試してみてください!
1.基本設計書の章構成
本記事では一般的な業務システムの開発案件を想定しています。
基本設計書の章構成は下記のとおりです。これをベースにして案件固有の内容があればつけ足していきましょう。逆に、案件により不要な章があれば省略しても良いです。
「Ⅰ.業務要件」については前工程(要件定義など)で完了しているケースがあるので、その場合は基本設計書からは省略しても大丈夫です。
下記をコピペして使ってください!
Ⅰ.業務要件
1.システム化の目的・背景・狙い
2.ビジネスプロセス関連図
3.業務機能構成表
4.ビジネスプロセスフロー
5.システム化業務フロー
6.業務処理定義書
Ⅱ.機能設計
1.システム方式
1-1.ハードウェア構成図
1-2.ソフトウェア構成図
1-3.ネットワーク構成図
1-4.アプリケーション機能構成図
2.画面設計
2-1.画面一覧
2-2.画面遷移図
2-3.画面詳細
2-3-1.画面概要
2-3-2.画面レイアウト
2-3-3.画面入出力項目一覧
2-3-4.画面アクション定義
3.帳票設計
3-1.帳票一覧
3-2.帳票詳細
3-2-1.帳票概要
3-2-2.帳票レイアウト
3-2-3.帳票出力項目一覧
3-2-4.帳票編集定義
4.バッチ設計
4-1.バッチ処理一覧
4-2.バッチ処理フロー
4-3.バッチ処理定義
5.テーブル設計
5-1.テーブル関連図
5-2.テーブル一覧
5-3.CRUD図
5-4.テーブル定義
6.ファイル設計
6-1.ファイル一覧
6-2.ファイル定義
7.外部インターフェース設計
7-1.外部システム関連図
7-2.外部インターフェース一覧
7-3.外部インターフェース詳細
7-3-1.外部インターフェース処理概要
7-3-2.外部インターフェース定義書
8.システム設定
8-1.設定パラメータ一覧
8-2.設定パラメータ詳細
Ⅲ.非機能設計
1.可用性
2.性能・拡張性
3.運用・保守性
4.移行性
5.セキュリティ
2.各章の記載内容
それでは、上記の構成に沿って各章の記載内容を説明していきます。
Ⅰ.業務要件
まず、基本設計書にこの章は必須ではありません。
前工程(要件定義など)ですでに作成済みの場合は基本設計書から省略してください。
業務要件を上手に整理することでステークホルダーや開発者に対してシステムの要件を明確に伝えることができます。業務要件の理解はシステム開発を成功させるための重要な要素であるため、十分な情報収集と整理を行い分かりやすい文書を作成することが求められます。
各章に記載する内容
章見出し | 内容 |
---|---|
1.システム化の目的・背景・狙い | システム開発の目的、背景、および狙いを記載します。具体的には、システムが解決すべき課題、期待される効果や目標、業務改善の方向性を明確にすることが重要です。 |
2.ビジネスプロセス関連図 | 業務要件を理解するための視覚的な図です。主要な業務プロセスとそれらの関連性を示す図を作成し、業務フロー全体を把握することが目的です。 |
3.業務機能構成表 | システムが提供する主要な機能を一覧にして整理します。各機能の概要、優先度、関連する業務プロセスやユーザーなどを明記し、開発チームが理解しやすい形でまとめます。 |
4.ビジネスプロセスフロー | 各業務プロセスがどのように進行し、それらがどのように相互作用するかを示すフローチャートを作成します。具体的には、業務の開始から終了までの手順や、関連する役割や部門、システム上のアクションを明確にすることが重要です。 |
5.システム化業務フロー | システム導入によって変更される業務プロセスを示します。現行の業務フローからシステム導入後の業務フローへの変更点や、システムを使った新たな業務プロセスを視覚的に示すことで、ステークホルダーに変更の理解を促します。 |
6.業務処理定義書 | システムが実現するべき業務処理を詳細に記載します。各業務処理の目的、入力データ、処理内容、出力データ、関連する業務ルールなどを明確にすることが重要です。これにより、システム開発者は要件を正確に理解し、適切な設計と実装ができるようになります。 |
Ⅱ.機能設計
この章が基本設計工程で一番時間をかけて検討することになると思います。
システム全体の構成やアプリケーションの機能構成を明確にしていきます。
各章に記載する内容
見出し | 内容 |
---|---|
1.システム方式 | |
1-1.ハードウェア構成図 | システムに使用されるサーバーやデバイス、ストレージなどの物理的な機器の配置や接続を示す図を作成します。これにより、システム全体のハードウェアの概要が把握できます。 |
1-2.ソフトウェア構成図 | システムで使用されるソフトウェアやミドルウェア、データベース、APIなどの構成要素とそれらの関連性を示す図を作成します。これにより、システム全体のソフトウェア構成が把握できます。 |
1-3.ネットワーク構成図 | システム全体のネットワーク接続や通信プロトコル、セキュリティ対策などのネットワーク関連要素を示す図を作成します。これにより、システムのネットワーク環境が把握できます。 |
1-4.アプリケーション機能構成図 | システム内の各アプリケーションが持つ機能やサブシステム、それらの関連性を示す図を作成します。これにより、システム全体の機能構成や機能間の相互作用が把握できます。 |
2.画面設計 | |
2-1.画面一覧 | システム内に存在するすべての画面を一覧で示します。画面名、画面ID、画面の説明や目的などを記載します。これにより、システム内の画面構成が把握できます。 |
2-2.画面遷移図 | システム内の画面間の遷移を示す図です。各画面間のリンクやボタンを通じて、どのように画面が遷移するか視覚的に表現します。 |
2-3.画面詳細 | |
2-3-1.画面概要 2-3-2.レイアウト 2-3-3.入出力項目一覧 2-3-4.アクション定義 | 画面概要、レイアウト、入出力項目一覧、アクション定義は1画面単位でまとめて記載していきます。 画面概要には、画面の目的や機能を説明する文章を記載します。画面がどのような役割を果たすかどのような操作が可能かなどを簡潔に説明します。 レイアウトには、画面のデザインやレイアウトを示す図(画面イメージ)を記載します。ワイヤーフレームやモックアップを使うと詳細に表現できます。 入出力項目一覧には、画面上で入出力されるデータ項目の一覧を作成します。項目名、データ型、入力・表示の制約条件やバリデーションルール、必須・任意項目などを記載します。 アクション定義には、画面上で行われる操作やアクションをリストアップし、それぞれのアクションが実行された際の処理内容や遷移先を記載します。ボタンクリックやリンク選択、フォーム送信などのアクションに対応する処理を明確に定義します。 |
3.帳票設計 | |
3-1.帳票一覧 | システムで使用されるすべての帳票の一覧を記載します。帳票名、帳票ID、帳票の目的や用途、帳票の種類(例: 印刷用、エクスポート用)などを明記します。 |
3-2.帳票詳細 | |
3-2-1. 帳票概要 3-2-2. レイアウト 3-2-3. 出力項目一覧 3-2-4. 編集定義 | 帳票概要、レイアウト、出力項目一覧、編集定義は1帳票単位でまとめて記載していきます。 帳票概要には、帳票の目的や機能、関連する業務や画面などを記載します。 レイアウトにはページサイズ、マージン、ヘッダー、フッター、各項目の位置やフォントサイズなどの情報を含めます。見た目を把握しやすいように図を使って表現します。 出力項目一覧には、出力項目の一覧を作成します。項目名、データ型、表示形式、出力条件、データの取得元(テーブルや画面)、項目の説明を記載します。 編集定義には、各項目の編集ルールや出力条件、関連する計算式などを記載します。これにより、開発者はどのような処理が必要かを把握しやすくなります。 |
4.バッチ設計 | |
4-1.バッチ処理一覧 | システム内で実行されるバッチ処理の一覧を作成します。バッチID、バッチ処理名、目的、実行タイミング、関連テーブルやファイルなどを簡潔に記述します。 |
4-2.バッチ処理フロー | バッチ処理の実行順序やフローを示す図を作成します。処理間の依存関係や、並列実行が可能な処理などを明示します。 |
4-3.バッチ処理定義 | 各バッチ処理の詳細な手順やロジック、入出力データの詳細、関連するテーブルやファイル、エラー処理方法などを記載します。 |
5.テーブル設計 | |
5-1.テーブル関連図 | システム内の各テーブルとそれらの関連を示すER図(Entity Relationship Diagram)を作成します。テーブル間のリレーションシップやカーディナリティ(1対1、1対多、多対多)を明確に示します。 |
5-2.テーブル一覧 | システム内のすべてのテーブルを一覧で示し、各テーブルの目的や概要を簡潔に記述します。 |
5-3.CRUD図 | 各テーブルに対するCRUD(Create, Read, Update, Delete)操作を行う機能や画面をマトリックス形式で示します。これにより、どのこれにより、どの機能がどのテーブルに対してどのような操作を行うかを把握できます。 |
5-4.テーブル定義 | 各テーブルの詳細な構成を記述します。これには、カラム名、データ型、制約(主キー、外部キー、一意性、NOT NULLなど)、説明を含めます。また、必要に応じてインデックスやトリガーに関する情報も記載します。 |
6.ファイル設計 | |
6-1.ファイル一覧 | システムで使用されるファイルの一覧を記述します。ファイル名、ファイル形式、ファイルの用途を含めます。 |
6-2.ファイル定義 | 各ファイルの詳細な構成を記述します。これには、ファイルの構造(ヘッダー、データ部、フッター)、各セクションの詳細(カラム名、データ型、桁数、区切り文字、必須項目など)を含めます。 |
7.外部インターフェース設計 | |
7-1.外部システム関連図 | システムが外部システムとどのように連携するかを示す図を作成します。これには、各システム間のデータフロー、API、インターフェースなどが含まれます。 |
7-2.外部インターフェース一覧 | 外部システムとのインターフェースを一覧形式でまとめます。一覧には、インターフェース名、データの種類(XML、JSONなど)、通信プロトコル(HTTP、FTPなど)、データの送受信方向(送信、受信、両方)などを記載します。 |
7-3.外部インターフェース詳細 | |
7-3-1.外部インターフェース処理概要 7-4-2.外部インターフェース定義書 | 外部インタフェース処理概要と外部インタフェース定義書は、外部インタフェース単位で1つにまとめて記載します。 インタフェース処理概要には、概要説明や処理フローを記載します。これには、データの送受信手順、処理タイミング、データ同期・非同期処理の選択、エラー処理や例外処理の方法などが含まれます。 インタフェース定義書には、各インターフェースのデータ項目、データ型、データ長、必須/オプションフィールド、バリデーションルールなどが含まれます。また、エラーハンドリングやリトライ機構に関する情報も含めることが望ましいです。 |
8.システム設定 | |
8-1.設定パラメータ一覧 | システム設定に関するパラメータの一覧を記載します。これには、アプリケーションの設定や動作に関連するパラメータ、環境ごとに異なる設定値(開発、テスト、本番環境など)が含まれます。例えば、データベース接続情報、APIキー、ログレベル設定、タイムアウト値、メール送信設定などが該当します。 |
8-2.設定パラメータ詳細 | 設定パラメータ一覧で挙げたパラメータの詳細を説明します。これには、各パラメータの目的、デフォルト値、設定値の範囲や制約、環境ごとの設定値が含まれます。ま |
Ⅲ.非機能設計
非機能設計では、システムの品質に関する要件を取り扱います。これには、システムがどの程度信頼性があるか、効率的に動作するか、運用・保守が容易か、新しい技術やプラットフォームへの移行が容易か、そして安全性がどの程度確保されているかなどが含まれます。
各章に記載する内容
見出し | 内容 |
---|---|
1.可用性 | システムのアップタイムや冗長性を記載します。具体的には、システムの稼働率(例:99.9%)、障害発生時の復旧手順、バックアップ手段、ロードバランシングやフェイルオーバーの仕組みなどが含まれます。 |
2.性能・拡張性 | システムのレスポンスタイム、スループット、最大同時接続数などの性能要件を記載します。また、将来の負荷増加に対応できるかどうか、システムがスケールアウトやスケールアップに対応できるかどうかなどの拡張性に関する要件も記載します。具体例として、ページロード時間が1秒以内、1分間に処理できるトランザクション数、モジュールの追加やシステムの拡張が容易であることを明記します。 |
3.運用・保守性 | システムの運用・保守に関する要件を記載します。これには、システムのモニタリング、ログの取得・管理、定期的なバックアップ、アップデート・パッチ適用の手順、トラブルシューティングのガイドラインなどが含まれます。具体的な例として、監視ツールの導入、ログのローテーション設定、アップデートの適用方法や頻度、保守時の連絡体制などを記載します。 |
4.移行性 | システムが他の技術やプラットフォームへ移行する際の要件を記載します。これには、データ移行の手順、既存システムとの連携やデータ互換性、将来の技術変更に対応できる柔軟性などが含まれます。具体的な例として、データ移行計画やツールの選定、既存システムとのインターフェイス設計、技術スタックの選択やAPIの設計が将来の変更に耐えられるよう考慮することを明記します。 |
5.セキュリティ | システムのセキュリティに関する要件を記載します。これには、データ保護、アクセス制御、認証・認可、脆弱性対策、セキュリティインシデントへの対応などが含まれます。具体的な例として、暗号化技術やプライバシー保護のためのデータマスキング、アクセス制御の実装方法、認証・認可に使用されるプロトコルや技術、定期的なセキュリティ監査や脆弱性スキャンの実施、セキュリティインシデント対応プロセスやチームの構成を記載します。 |
3.まとめ
システム開発プロジェクトにおいて、基本設計書は業務要件やシステムの機能・非機能要件を明確化し、開発チームや関係者が共通の認識を持つための重要な文書です。本記事の章構成を参考にし、各章に記載すべき内容を考えていくようにすれば基本設計工程は苦にならないと思います。このガイドを参考に、効果的に基本設計書を作成してプロジェクトの成功につなげていただければ幸いです。