企業が、現在の業務をシステム化するときに外部企業にシステム開発を依頼します。開発は、要件定義・基本設計・詳細設計・開発・運用を行います。ここでは、何を基本設計ですべきかを紹介します。
「システム化を行いたいけど基本設計についてよくわからない」という方へ、最後までお読み頂き自社に合ったシステム導入に役立ててください。
高校からHTML/CSS/COBOL/C++/Rubyに触れ、システム管理やCMSなど幅広く網羅。建築士から転身し、Webメディアの制作を主軸とした会社を設立。ITパスポート所有。趣味は建築物巡り。
基本設計とは

システム開発の初期段階で行う設計作業が基本設計で、顧客の要件を収集しシステム内で必要な機能を明確にする作業です。この段階では、顧客が満足する機能を具体的に設計します。
システム開発時の設計フェーズにおいて、要件定義と基本設計はその後の開発時の作業工数、費用に多大な影響を与えます。
特に基本設計では、これ以降の作業への影響範囲が大きいため基本設計で機能漏れは許されません。
顧客の必要な要件を機能別に整理します。システム開発を成功させるために、基本設計は大まかに次の4つに分かれます。
- 画面
- インターフェース
- データ(テーブル・ファイル)
- 帳票出力
これらの4つの要素を顧客のニーズに適した形で設計し、途中で確認しながらシステムをできる限り顧客の要求に合致する形に仕上げていきます。
基本設計を失敗すると、次の作業で大きな失敗を招いてしまう恐れがあります。システム開発時に、基本設計でのミスはその後の開発に大きく影響するので、システムエンジニアの力量が問われます。
基本設計が重要な理由

プロジェクトの成功のためには、顧客の要求を完全に理解する必要があり、そのために基本設計は重要な工程として行われます。
基本設計が確定すると、それをもとに社内の開発チームとさらなる詳細なすり合わせを行い、開発に落とし込んでいきます。
基本設計が適切に行われれば、その後の詳細設計や開発工程もスムーズに進行して全体の開発プロセスが円滑に進むため、どのシステム開発案件でも重要な工程となります。
ここでは、基本設計が重要な理由をもう少し深掘りして解説します。
全体を把握するため
基本設計は、プロジェクト全体の方向性や範囲を明確にするために必要な工程です。
この段階で全体像を把握することで、後の工程でのズレや誤解を防ぎ、プロジェクトが初期の計画に基づいて進行するようになります。
また、開発チーム全員が方向性を共有することで、基本設計だけでなくプロジェクトそのものが円滑に進むようになります。
問題を早期に発見するため
基本設計の段階で詳細な計画を立てることにより、目に見えない問題やリスクを早い段階で発見できます。
問題をやリスクを把握しておけばプロジェクトが後戻りすることなく、無駄を最小限に抑えることができます。
結果、開発の後半での大きなトラブルを回避し、プロジェクトを成功に導くことができます。
品質や保守性を向上するため
基本設計を適切に行うことで、システムの品質や保守性を高めることができます。
この段階でシステムの構造や設計方針を明確にすることで、プロジェクトの後半で変更があった場合でも柔軟に対応できます。
また、開発後のメンテナンスも容易になり、プロジェクト完了後の運用コストの削減も可能に。
高品質な設計は、システムの安定性と持続可能性を支える重要な要素となります。
基本設計・要件定義・詳細設定の違い
システム開発プロジェクトにおいて中心的な役割を担うのが、「基本設計」、「要件定義」、「詳細設計」の3つのステージで、各フェーズで具体的な技術的要件を明確化し、システムの構造を形作っていきます。
要件定義でプロジェクトの基本的な要望と目標が決定され、基本設計でシステムの大枠と構造が設計され、詳細設計ではそれを具体化し、プログラムレベルでの細かな仕様が作り上げられます。
これらの段階をしっかりと実行することで、効率的かつ効果的なシステム開発が実現されます。
基本設計と要件定義の違い

基本設計、要件定義、詳細設計の違いを表にまとめました。
| 設計書類 | 目的 | 内容 | タイミング |
| 要件定義 | システム開発の前提となる要件を明確化する | ユーザー要件 システム要件 機能要件 非機能要件 |
上流工程 |
| 基本設計 | システム全体の構造や動作を設計する | システム構成 ハードウェア/ソフトウェア構成 機能設計概要 データ設計概要 UI設計概要 セキュリティ設計概要 |
上流工程 |
| 詳細設計 | 個々の機能やモジュールの詳細を設計する | プログラムの詳細仕様 データ構造の詳細 UI設計詳細 テスト設計 |
下流工程 |
システム開発工程の重要な工程が基本設計で、顧客の要件を機能別に具体的な案を定義する作業になります。
要件定義は、顧客と共に現在の問題点と潜在的なシステム改善ポイントを検討し、システム案の作成作業を行います。
これはシステム開発において重要で、顧客の主要な目標を明確にする役割を果たすのです。
顧客の要求項目を要件定義で整理して、システム化のための要求事項に具現化します。
すべての顧客の要求事項を完璧に把握し要件定義が終わると、次は基本設計です。
画面設計、データ設計、およびインターフェース設計などを通じて、顧客の要求を達成するためのシステム全体の設計作業です。
基本設計と詳細設計の違い

基本設計は顧客の要件を明確にするもので、詳細設計は開発者向けに設計します。
顧客の要件を機能別に設計をするのが基本設計で、詳細設計は、基本設計の下流工程になります。機能設計からデータ設計まで完了すれば、システム開発の30%ほど完成したことになります。
詳細設計は、基本設計をもとに機能別の設計作業です。詳細設計では、入力・処理・出力を明確にするためにIPOという設計手法を使います。
IPOとは、入力(Input)・処理(Process)・出力(Output)の3ステップに分けて記述するものです。
IPOで基本設計の機能をより明確化し細かな作業を書いていけば、プログラマーが設計書通りにコーディングできます。
基本設計書の記載内容・成果物一覧

参画する現場によって基本設計書の書き方や粒度はまちまちです。
しかし、一般的に基本設計ではどのような点が重要で考慮していくべきなのか、必要な項目がわかっているだけでも成果物の作りやすさは変わってくるでしょう。
ここでは一般的な基本設計書の紹介と記載内容について紹介していきます。
基本設計書の記載内容
基本設計書には以下のような内容を記載するのが一般的です。
- システム概要
- アーキテクチャ図
- 機能仕様
- ER図
- ビジネスロジック
- ユーザーインターフェース
- セキュリティ要件
- インフラストラクチャ
- 外部インターフェース
- テスト要件
- 変更管理
基本設計書のテンプレート・例
システム開発の基本設計書のテンプレートを作成するには、プロジェクトの要件や目的に合わせて調整することが重要です。
一般的なビジネス向けの顧客管理システム(CRMシステム)の基本設計書テンプレートの記入例を紹介します。
システム概要
- 目的: 顧客情報を一元管理し、効果的な顧客関係の維持とビジネス機会の最大化を図る。
- 対象ユーザー: 営業部門、マーケティング部門、カスタマーサポート部門。
機能概要
- 顧客情報管理: 顧客の基本情報、取引履歴、連絡情報を管理。
- 連絡履歴管理: 顧客とのコミュニケーション記録の詳細を追跡。
- セールスオポチュニティ管理: 売上機会の追跡と評価。
- サポートケース管理: カスタマーサポートのリクエストと対応の追跡。
システムアーキテクチャ
- アーキテクチャ図: 主要なシステムコンポーネントとその相互作用を示す図。
- データモデル: エンティティ関係図(ER図)を使用してデータベースの構造を示す。
インターフェース設計
- 外部システムとの連携: 他のビジネスシステムとのデータ連携方法。
- API仕様: 外部開発者が利用可能なAPIの詳細。
ユーザーインターフェース
- 画面設計: 各機能に対するUIのモックアップ。
- ユーザーエクスペリエンス: ナビゲーションフローとインタラクションデザイン。
性能要件
- レスポンスタイム: 各種操作の目標応答時間。
- 同時アクセスユーザー数: サポートする同時ユーザー数。
セキュリティ要件
- データ保護: 機密情報の暗号化とアクセス制御。
- 監査ログ: システムの操作履歴の記録とレビュー。
開発環境
- 使用技術: ソフトウェアの開発に使用されるプログラミング言語、フレームワーク、ツール。
- 開発チーム構成: 開発に関わるチームメンバーと役割。
その他
- バージョン管理: ソースコードのバージョン管理方法。
- ドキュメントポリシー: 開発中に作成されるドキュメントの標準とポリシー。
基本設計書の成果物一覧
基本設計書の成果物として多くの書類が必要となります。
システム内容や業種によって異なる場合がありますが、一般的な成果物は以下のとおりです。
- システム構成図
- 要件定義書
- 機能仕様書(機能一覧)
- 非機能要件設計書
- データベース設計書(ER図含む)
- インターフェース設計書
- 画面設計書
- 帳票設計書
- 業務フロー図
- プロトタイプ
- リスク管理計画書
- テスト計画書
- バッチ設計図
基本設計のフローと書き方

要件定義書に基づいて基本設計を行いますが、要件定義書と基本設計の作成者が異なることもあります。
基本設計作業をスムーズに行うために、進め方を見ていきましょう。
1. 要件分析とシステム構造設計
基本設計では、まずは要件定義書に基づいた要件分析を行います。
システムが満たすべき機能や性能を明確にしてシステム全体の構造を設計します。
要件定義書には要望が詳細に記載されていますが、この段階ではすべてが網羅されているとは限らないため、顧客に対して追加確認が必要です。
分析においては、システム全体の構成要素やモジュール一つひとつの相互関係を洗い出し、役割を定義します。
この工程を行うことで後続の設計フェーズでの作業が円滑に進む基盤が整います。
2. 機能設計とデータ設計
続いて、個別の機能設計とデータ設計です。それぞれの設計内容は以下のとおりです。
- 機能設計:システムの機能の決定。各機能の操作方法、画面設計、帳票設計の作成。
- データ設計:システム内で使用されるデータの構造を定義。データベースのテーブル、ファイルを設計。
機能とデータの設計は密接に関連しているため、双方の整合性を保つことでシステム全体のパフォーマンスを向上させることになります。
3. インターフェースと非機能要件の設計
システム設計において重要な要素であるインターフェース設計と非機能要件の設計も欠かせません。
- インターフェース設計:外部システムやユーザーとの連携方法を定義。API設計、データ交換フォーマット、セキュリティ要件を含む。
- 非機能要件の設計:システムの品質に直結する要素の設計(性能、スケーラビリティ、可用性、セキュリティなど)
特に非機能要件が適切に設計されていないと、システムが期待通りに動作しない可能性があるため、非常に重要な設計です。
これらの設計がしっかりと行われることで、システム全体の安定性や信頼性が確保されます。
4. プロトタイプ作成
設計が進む中で、システムのプロトタイプを作成することがおすすめされます。
プロトタイプとは、設計したシステムの一部または全体を簡易的に構築して実際の動作を確認するためのものです。
これにより、設計段階で発見しきれなかった問題点や操作性の良し悪しを知ることができます。
プロトタイプの作成により、クライアントと設計の方向性を共有して合意を得やすくなります。
プロトタイプについてはこちらの記事で詳しく解説しているので、ぜひ参考にしてみてください。
5. レビューと詳細設計への移行準備
基本設計が完了したら、内容をチェックして詳細設計に移行する準備を行います。
チェックする内容は、設計が要件を十分に満たしているか、システム全体として一貫性が保たれているかなどです。
また、設計に漏れや誤りがないかをチェックし、必要の場合は修正を行います。
外部委託の場合は、ここから基本設計書を基に詳細設計を担当するチームとの打ち合わせを行い、設計の意図を共有します。
この工程により、詳細設計がスムーズに進行し、最終的なシステムが計画通りに完成することを目指します。
詳細設計についてはこちらの記事で詳しく解説しているので、ぜひ参考にしてみてください。
基本設計に役立つツール

基本設計を効率良く行うためのツールがいくつかあります。
ここでは、基本設計に役立つツールを5つご紹介します。
BIMツール
BIM(Building Information Modeling)ツールは、建築をはじめとするインフラ系のプロジェクトの基本設計を効率化できるツールです。
建物の3Dモデルを作成したり設計段階での誤りや矛盾を視覚的に確認できたりするのが特徴です。
また、BIMは設計データを共有して複数のチームが同時に作業できます。コストやスケジュールのシミュレーションも可能で、プロジェクト全体の透明性を高めることも可能です。
CADツール
CAD(Computer-Aided Design)ツールは、基本設計の中でも一般的に使用される設計ツールの一つです。
CADツールを使用すると、設計者は精密な2D図面や3Dモデルを作成でき、設計内容を詳細に検討できます。
また、CADツールは変更がしやすく、設計段階での修正や調整を素早く行うことが可能です。
これにより、設計の正確性が向上し、設計から製造までの工程がスムーズに進行します。
プロジェクト管理ツール
プロジェクト管理ツールは、基本設計を含むプロジェクト全体の進行を効率的に管理するために不可欠なツールです。
タスクの割り当て、進捗状況の追跡、スケジュールの管理をサポートしてプロジェクトにおけるそれぞれの工程が計画通りに進むようになるでしょう。
また、チーム全体で一つのプラットフォーム上で情報を共有できるため、コミュニケーションが円滑になり、設計の品質や納期を守るための協力がしやすくなります。
おすすめのプロジェクト管理ツールをこちらの記事でご紹介しているので、ぜひ参考にしてみてください。
UMLツール
UML(Unified Modeling Language)ツールは、ソフトウェアやシステム設計において、設計者が細かなシステムを視覚的にモデリングするために使用するツールです。
UMLツールを利用することで、クラス図やシーケンス図、状態図など、システムの動作や構造についてのさまざまな図を作成できます。
そのため、設計の一貫性が保たれて、チーム内でのコミュニケーションが円滑になります。
ER図ツール
ER(Entity-Relationship)図ツールは、データベース設計において、データの構造とその関係性を視覚的に表現するためのツールです。
ER図ツールを使用することで、データベース内の各エンティティの属性や、エンティティ間のリレーションシップを明確に定義できます。
また、設計者や開発者がデータベースの設計意図を共有しやすくなり、設計ミスの防止やメンテナンスのしやすさが向上します。
ER図の基本的な書き方や手順についてはこちらの記事でご紹介しています。ぜひ参考にしてみてください。
ワイヤーフレームツール
ワイヤーフレームツールは、Webやアプリケーションの設計において、画面レイアウトやユーザーインターフェース(UI)の基本的な構造を視覚化するために使用するツールです。
ページ構成やナビゲーションパターンを作成して、使いやすさを検討できます。また、開発者とデザイナーが設計の意図を共有し、プロジェクト全体の方向性を合わせるのにも役立ちます。
基本設計のガイドライン

基本設計のガイドラインには、IPAによるものとデジタル庁が発表しているものがあります。
基本設計のガイドラインとは、システムやプロジェクトの基本設計を行う際に従うべき指針や基準を定めたルールのことです。
プロジェクトの一貫性を保つために非常に重要です。
IPA「開発手法ガイドブック」
IPAが発行している「開発手法ガイドブック」は、「高信頼」=「高品質」と捉え、信頼のおけるプロジェクトとして進めるためのルールがまとめられたガイドブックです。
図解による解説が多いため視覚的に理解がしやすい点が特徴です。
デジタル庁「標準ガイドライン」
デジタル庁は発行している「標準ガイドライン」は、ITに関しての知識がない人向けに作られたガイドラインです。
例えば以下のように、要件定義書ひとつとっても、ルールが非常に細かく書かれているため、初めて設計に携わる方でも進めやすいでしょう。
・曖昧な用語や一般的な意味と異なる使い方をしている用語等は、プロジェクト関係者間の認識そごを防止するため、用語の定義及び機能を定義する粒度や深さについて統一する。
・業務要件定義書のインプットであるサービス・業務企画の内容とも整合の取れた区分、順番で機能を記載する。業務の単位ごとに記載する場合も、共通処理機能を識別できるように整理する等、機能数を把握できるように記載する。
・機能の説明は、箇条書き等にして簡潔に記載する。既存のサービス・業務や情報システムの変更を行う際の要件定義では、追加・変更となる要件が明確になるよう、変更箇所の記載ルールを定めて記載を統一する。
基本設計書を作成する際の注意点

基本設計書作成時は、注意点があります。ここでは、どのような注意点があり、どう対処しなければいけないのかを具体的に解説します。
要件定義書との整合性に気を付ける
システム基本設計は、その後のすべての作業工程に影響するもので、要件定義を忠実に実践しなければいけません。
要件定義書はシステムが達成すべき目標や機能を明確に定義した文書で、基本設計書はその要求を基にシステムの設計方法を具体化させたものです。
要件定義書の内容から逸脱しているシステム設計書は、意味がありません。
要件定義書との整合性が重要であり、要件定義書との整合性を取りながらクライアントのニーズに合った、システム設計以下の作業をスムーズに行えるようにしなければいけません。
そのためには、要件定義書との整合性を第一に考えて基本設計を行います。
具体的かつ簡潔に記載する
要件定義書との整合性を取りながら、冗長な書き方をしてはいけません。
機能設計は、明確で具体的かつ簡潔な表現を用いて、要件を理解し作成しなければいけません。
システムの構造、処理の流れ、データベースの設計、インターフェースの設計をより詳細に記述すれば、具体的な設計ができます。
完結とは、不必要な情報は混乱を招く可能性があるので、必要な情報だけを網羅し、その情報を明瞭にしなければいけません。
また、要件を正確に実現するだけでなく、コスト面もよく考えて、できるだけ安く開発するための工夫も基本設計で行わなければいけません。
実現できる内容で作成する
要件定義から基本設計を行う時に、実現可能な機能なのかが重要になります。
要件定義ではできそうだと感じて顧客に提案していても、開発段階で実現不可能であると判断したときは、速やかに顧客へ別のやり方を提案して納得してもらわなければいけません。
要件定義で決まった業務を基本設計段階で、実現可能なのかを具体的に見極めていく必要があります。
実現できないことが分かっていて、そのまま基本設計を行うと、顧客に多大な迷惑をかけることになります。基本設計の段階で、実現可能な機能なのかを判断するのも重要な役割になります。
ドキュメントの書き方は統一する
基本設計段階で複数のドキュメントを作成します。ドキュメントの作成時には、それぞれのドキュメントで作成ルールがあります。
ルールに沿った作成ができていなければ、その後の詳細設計で作成ができない可能性が出てきます。
基本設計を行う時に作成ルールに沿った設計書を作ることは、開発を行っていくうえで重要です。
例えばIPOを作成するときは、左側にはインプットの図と入力項目を書いて、中央のボックスにはプロセス(処理)を書きます。
その結果のアウトプットの図と出力項目を左側のボックスに書きます。このように、ルールに沿って書かなければいけません。
まとめ:基本設計はシステム開発の要

基本設計は、要件定義で確定した内容を基に、システム全体の構造や振る舞いを設計する工程です。
モジュール分割、データフロー、基本アーキテクチャ、画面遷移など、システムの大まかな骨格を決めていきます。非機能要件に基づいたセキュリティ対策や、将来の拡張性を見据えた設計も行われます。
もし、独自システムを開発したいと考えている方や、基本設計についてお悩みの方は、ぜひ株式会社Jiteraにご相談ください。
要件定義や基本設計を行うパートナーとして、企業様の視点からお手伝いさせていただきます。




