概要設計(ガイヨウセッケイ)とは | 意味や読み方など丁寧でわかりやすい用語解説

概要設計(ガイヨウセッケイ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

概要設計 (ガイヨウセッケイ)

英語表記

High-level design (ハイレベルデザイン)

用語解説

概要設計は、システム開発プロジェクトにおいて、要件定義の次に行われる非常に重要な工程である。この段階では、要件定義で明確になった「何を開発すべきか」という顧客やユーザーの要求に対し、「どのようにシステムを構築するか」という全体的な骨格や方針を定義する。具体的には、システム全体の構造、主要な機能、データの流れ、外部システムとの連携方法、稼働させる環境などを大まかに設計する。開発チームだけでなく、顧客や関連部署の担当者といった多様なステークホルダーが、この設計を通じて完成するシステムに対して共通の認識を持つことを目的とする。この共通認識が、その後の詳細設計や開発作業を円滑に進めるための土台となる。概要設計は、言わばシステムの全体像を描く「設計図の青写真」であり、その後の工程で手戻りが発生するリスクを最小限に抑える役割を担う。

概要設計は多岐にわたる要素を検討し、定義していく。まず、システム全体のアーキテクチャや技術的な基盤を定める「システム方式設計」を行う。これには、どのようなハードウェアやOS、ミドルウェアを利用するかといった稼働環境の選定、システム全体の処理方式やネットワーク構成、セキュリティポリシーの基本方針などが含まれる。例えば、オンプレミスで構築するのか、クラウドサービスを利用するのかといった大きな決定もこの段階で行われる。次に、「機能設計」、別名「外部設計」として、ユーザーが直接利用する機能の概要を定義する。これは、ユーザーからシステムがどのように見えるか、どのような操作ができるかという視点での設計であり、具体的な画面構成や表示される情報、帳票のレイアウト、ユーザーが行う操作に対するシステムの応答、バッチ処理のインターフェース、他のシステムとの連携インターフェースなどを明確にする。単なる機能の一覧だけでなく、それぞれの機能がシステム全体の中でどのような役割を果たすかを整理し、ユーザーエクスペリエンスの基本的な枠組みを作る。

データの扱いはシステムにとって不可欠な要素であり、「データ設計」として、システムが扱うデータの種類、構造、相互の関係性を定義する。例えば、顧客情報や商品情報といった主要なエンティティ(実体)を特定し、それぞれのエンティティがどのような属性(項目)を持つか、エンティティ間でどのようなリレーションシップ(関連)があるかを論理データモデルとして設計する。これは、後のデータベース物理設計の基礎となる。さらに、システムの性能、信頼性、拡張性、運用性、セキュリティといった「非機能要件」も、概要設計の段階でどのように実現するかを全体方針として定義する。例えば、システムの応答速度はどの程度にするか、障害発生時にどれくらいの時間で復旧させるか、将来的な機能拡張にどのように対応するか、不正アクセスからどのように保護するかといった方針を定める。これらの非機能要件は、システムの品質を左右する重要な要素であり、初期段階でしっかりと検討しておく必要がある。

概要設計のアウトプットとしては、様々な成果物が作成される。システムの全体像を示すシステム構成図、提供される機能を一覧化した機能一覧や機能階層図、ユーザーインターフェースのイメージを伝える画面・帳票イメージ(モックアップ)、データ構造を視覚化した論理データモデル図(ER図など)、他システムとの連携方法を定めたインタフェース仕様書、そしてシステム方式設計書や非機能要件の概要をまとめた文書などが挙げられる。これらの成果物は、開発チーム内で共有されるだけでなく、顧客やユーザーとの最終的な合意形成のための重要な資料となる。

概要設計を丁寧に進めることには多くのメリットがある。最大のメリットは、その後の工程での手戻りリスクを大幅に低減できることである。システム全体の骨格が固まっていない状態で詳細設計や実装に進むと、後になって根本的な設計変更が必要となり、膨大な時間とコストが無駄になる可能性がある。概要設計で主要な要素を網羅的に検討し、関係者全員の合意を得ることで、こうしたリスクを未然に防ぐことができる。また、システム全体のスコープと構造が明確になるため、開発に必要なリソースや期間をより正確に見積もることが可能となり、プロジェクト計画の精度が向上する。さらに、開発チームの各メンバーが、自分が担当する機能やモジュールがシステム全体の中でどのような位置づけにあるのかを理解しやすくなり、チーム全体の開発効率を高めることにもつながる。

ただし、概要設計の段階で、すべての要素を詳細に定義しすぎるのは避けるべきである。概要設計の目的は、あくまで全体像と大まかな方針を定めることであり、過度な詳細化は詳細設計の役割を侵し、かえって時間がかかりすぎたり、柔軟性を失ったりする原因となる。必要な範囲で不足なく、しかし詳細すぎないレベルで定義することのバランスが重要である。また、一度合意形成された概要設計であっても、その後の状況変化や新たな知見によって変更が必要となる場合がある。このような変更が発生した際には、適切な変更管理プロセスに従って、関係者間で再度合意を取りながら進めることが不可欠である。概要設計は、システム開発プロジェクトを成功に導くための羅針盤であり、その質がプロジェクト全体の成否に大きく影響すると言える。