システム開発の詳細設計とは?プロジェクトの位置付け・役割をわかりやすく解説!

システム開発の詳細設計とは、基本設計で明確化した「システムに必要な機能」を実装するため、プログラマーへの指示書となる設計図を制作する開発工程のこと。そのため、詳細設計の作業プロセスや成果物であるドキュメントが、発注者に開示されることはほとんどありません。

しかし、詳細設計がどのように進められているのか?どのようなドキュメントが制作されているのか?基本設計までのシステム開発プロジェクトに深く携わった企業担当者の方であれば、気になるのではないでしょうか。

そこで本記事では、詳細設計がシステム開発でどのように位置付けられているのか、どのような役割を果たしているのかをわかりやすく解説!イメージしやすい詳細設計のサンプルドキュメントも紹介していきます。

※開発パートナーとしてタッグの組める優秀なシステム開発会社を探している方は、システム幹事にご相談ください。専任のアドバイザーが最適な開発会社をご紹介します。相談料などは一切かかりませんので、お気軽にお問い合わせください。

【無料】おすすめのシステム開発会社を紹介してもらう

目次
  1. 1. システム開発における詳細設計の位置付け
    1. 1-1. 詳細設計のインプットは基本設計書
  2. 2. システム開発における詳細設計の役割
    1. 2-1. 3階層アーキテクチャとは
    2. 2-2. 機能・ビジネスロジックの整理
    3. 2-3. 実装する機能の割り振り
  3. 3. 詳細設計の成果物・ドキュメント
    1. 3-1. ドキュメントがアウトプットされない場合も
  4. 4. 詳細設計のドキュメント例:静的資料
    1. 4-1. クラス図
    2. 4-2. モジュール構造図
  5. 5. 詳細設計のドキュメント例:動的資料
    1. 5-1. アクティビティ図
    2. 5-2. シーケンス図
    3. 5-3. IPO(処理機能記述)
  6. 6. システム開発における詳細設計まとめ

システム開発における詳細設計の位置付け

システム詳細設計の流れ

システム開発における詳細設計(Detail Design)は、システム・ソフトウェアに必要な機能の内部仕様を詳細に定義する開発工程。内部設計(Internal Design)と呼ばれることもあります。

V字モデル

「要件定義」>「基本設計」>「詳細設計」>「開発(プログラミング)」>「単体テスト」>「結合テスト」>「総合テスト」という、一般的なウォーターフォール型システム開発工程の流れのなかで、詳細設計は基本設計のあと、プログラム実装(プログラミング)の直前に位置付けられています。

※ウォーターフォール型システム開発についてより詳しく知りたい方は、以下の記事も参考にしてください。

関連記事ウォーターフォール型システム開発とは?開発工程・メリット・アジャイル型との違いを解説! | システム幹事

詳細設計のインプットは基本設計書

基本設計の後工程となる詳細設計では、基本設計書をインプットにして、機能をどのように実装していけばいいのか、プログラマーへの指示書となる設計図を制作していきます。詳細設計のインプットとなる基本設計書の内容は以下の通り。

成果物(基本設計書)の内容

概要

システム設計

ハードウェア・ソフトウェア・ネットワーク構成図、

システム機能構成図など

画面設計

画面一覧、画面レイアウト・遷移図、入出力項目、

画面アクション定義図など

帳票設計

帳票一覧、帳票レイアウト、入出力項目、帳票編集定義図など

バッチ(一括処理)設計

バッチ処理一覧、処理フロー図、バッチ処理定義書など

データベース設計

テーブル・ファイル一覧、ER図(実体関連図)、

テーブル・ファイル定義、CRUD図(情報分析図)など

ファイル設計

ファイル一覧、ファイルレイアウト図など

外部インターフェース設計

外部インターフェース一覧、

外部インターフェースレイアウト図など

※システム開発の基本設計についてより詳しく知りたい方は、以下の記事も参考にしてください。

参考記事:システム開発の基本設計とは?その位置付け・重要性・発注者としての関わり方を解説!

システム開発における詳細設計の役割

ここから詳細設計に関して詳しく説明していきます。
冒頭で述べたように、詳細設計はプログラマーへの指示書となる設計図を制作することなので、発注される側は、完全に理解しなくて大丈夫です。どんなことが行われるのか、全体像を把握するのにお役立てください。

・具体的に詳細設計フェーズではどのような作業が進められているのか?
・詳細設計がシステム開発で果たす役割とはなにか?

少し難しくなりますが、上記について理解するためには、Webシステム・業務システムで採用される「3階層アーキテクチャ」を把握することが肝心。以下から、順を追って解説していきましょう。

3階層アーキテクチャとは

3階層アーキテクチャとは、システムのパフォーマンスや開発・保守の効率性を高めるため、以下の3階層に分離した構造を持つソフトウェアのこと。

・プレゼンテーション層
・アプリケーション(ビジネスロジック)層
・データ層

利用者であるユーザーが目にするインターフェースを受け持つのが「プレゼンテーション層」、各種データを保存・管理するデータベースが「データ層」、リクエストに応じたデータ処理を受け持つのが「アプリケーション層」であり「ビジネスロジック層」とも呼ばれます。

3階層アーキテクチャ

画像引用:基本的な業務Webアプリの開発手順

図をご覧いただければおわかりのように、外部から見える部分の機能を定義付ける基本設計では、「プレゼンテーション層」「データ層」を具体化する作業が中心です。

機能・ビジネスロジックの整理

一方、ユーザーのアクションを反映させる処理フローも基本設計で定義されますが、すべてのフローをロジックとして詳細設計していたのでは効率がよくありません。共通化できるインターフェースなどのロジック、処理フローとしてのビジネスロジックはひとつにまとめて設計・実装することが理想

これを実現するステップであるのが詳細設計です。つまり、システム開発における詳細設計の役割は、実際のプログラミングに移る前に機能・ビジネスロジックを整理し、開発時の生産性・保守時の効率性を高めることです。

機能・ビジネスロジックの整理

画像引用:基本的な業務Webアプリの開発手順

ビジネスロジックとは?

ビジネスロジックとは、ビジネス・業務に関する固有のルール・ワークフローなどがシステム・ソフトウェアに反映されたもののこと。ビジネス・業務で取り扱うデータ、およびデータの関連性、処理の手順などをプログラムとして実装したものが、ビジネスロジックだと考えればわかりやすいでしょう。

実装する機能の割り振り

整理した機能・ビジネスロジックをどこにどのように実装していくのか、割り振っていくことも詳細設計フェーズの役割です。

たとえば、一般的なWebアプリケーションの場合、ビジネスロジックがある程度共通化できます。そのため、既存のフレームワークやアプリケーションサーバなどをアプリケーション層の基盤として活用し、固有の機能・ビジネスロジックを中心に追加設計・実装していく場合があります。

Webブラウザを端末として利用するなら、プレゼンテーション層はサーバ側に実装することになります。しかし、クライアントサーバシステムであれば、プレゼンテーション層の大半をクライアントソフトに実装。サーバ側にAPI(外部サービス機能を共有させられるインターフェース)連携を実装することになります。

詳細設計の成果物・ドキュメント

それでは、開発時の生産性・保守時の効率性を高める役割を担う詳細設計では、成果物としてどのようなドキュメントが制作されるのでしょうか?

システム開発会社の体制、方針、どのようなシステムを開発するのかによって、アウトプットされる成果物は異なります。主な成果物となるドキュメントには、以下のようなものが挙げられます。

成果物(詳細設計書)の内容

概要

クラス図

システムを構成するクラスの関係を示す静的な資料

モジュール構成図

各機能の処理に必要な処理をモジュールごとに示す

静的な資料

アクティビティ図

ユーザー操作・システム処理の流れがわかる動的な資料

シーケンス図

クラス・オブジェクト(データ構造)間の

やり取りを時間軸に沿って表した動的な資料

IPO(処理機能記述)

入力・処理・出力の流れを表した動的資料。

バッチ処理など

開発方針・ルール

ライブラリ・プログラミング言語の指定

記述ルール書など

単体・結合テスト設計

単体・結合テストの計画書・仕様書・設計書など

ドキュメントがアウトプットされない場合も

ただし、開発の生産性向上の観点からドキュメントがアウトプットされない場合も。

たとえば、データベースの論理設計書となるER図(実体関連図)、CRUD図(情報分析図)、テーブル・ファイル定義などは基本設計の段階で作成されます。しかし、詳細設計で物理設計書を作成せず、すぐにプログラミングに取りかかることも。これは論理設計がそのまま物理設計に転換できるデータベースならではの特徴です。

情報処理推進機構(IPA)「ソフトウェア開発技法実践的演習教育コンテンツ」

画像引用:情報処理推進機構(IPA)「ソフトウェア開発技法実践的演習教育コンテンツ」

また、シンプルなWebアプリケーションやWebメディアなどの開発では、詳細設計よりも素早い公開が重視されることも。そのため、設計書なしで実際のプログラミング・テストに取りかかる場合もあります。

詳細設計のドキュメント例:静的資料

詳細設計フェーズではどのような作業が行われているのか知りたい。そんな方が具体的なイメージを描きやすいよう、以下からは詳細設計のサンプルドキュメントをいくつか紹介していきましょう。静的資料となるのは以下の2つです。

・クラス図
・モジュール構造図

ここでいう静的資料とは、システム内部の構造を静的に表現する資料のこと。主に、システムの機能・ビジネスロジックを整理する際に活用される資料です。

クラス図

クラス図とは、システムを構成するクラスの関係性を表現したドキュメントのこと。基本設計書をもとに、開発するシステムに必要なクラスを洗い出し、それぞれの関係性を整理してまとめたものです。

クラス図

画像引用:情報処理推進機構(IPA)「ソフトウェア開発技法実践的演習教育コンテンツ」

クラスとは、オブジェクト指向(データや物理対象そのものに重点を置く考え方)プログラミングにおける「オブジェクトの設計図」のこと。オブジェクトから生成された実体をインスタンスといい、たとえば「認証コントロールクラス」が持つデータから生成されたインスタンスによって「ログオン」「ログオフ」を実行します。

モジュール構造図

モジュールとは、システムを構成する機能をプログラムのまとまり単位で分解したもの。各モジュールがどのような機能を持ち、システムをどのように構成しているのかを表現した設計図がモジュール構造図です。

モジュール構造図

画像引用:情報処理推進機構(IPA)「ソフトウェア開発技法実践的演習教育コンテンツ」

システムをモジュールに分割することで、複数のメンバーにプログラミングを割り振って開発生産性を向上させる、メンテナンス性・拡張性を確保するなどのメリットが得られます。機能の関連を把握し、共通化可能なモジュールを見つけていくためにもモジュール構造図は有効です。

詳細設計のドキュメント例:動的資料

続いて、動的資料となる詳細設計のサンプルドキュメントを紹介していきましょう。代表的なものは以下の3つです。

・アクティビティ図
・シーケンス図
・IPO(処理機能記述)

ここでいう動的資料とは、システム内部の処理の流れを動的に表現する資料のこと。主に、整理されたシステム機能・ビジネスロジックをどのように配置・割り振っていくのかを決める際に活用される資料です。

アクティビティ図

アクティビティ図とは、システムの処理・実行の流れと条件による分岐を図式化したもののこと。具体的には、どのようなユーザー行動(アクティビティ)が発生するのかという観点にもとづき、ある作業・機能の開始から終了までの流れを実行される順番通りに記述したものです。

アクティビティ図

画像引用:情報処理推進機構(IPA)「ソフトウェア開発技法実践的演習教育コンテンツ」

どのようなユーザー行動(アクティビティ)が発生するのか、それを処理する機能をどこに実装すべきかを視覚的に判断しやすいため、プレゼンテーション層の機能を割り振る場合などに活用されます。

シーケンス図

シーケンス図とは、プログラムの処理の流れ・概要を、時間軸の流れに沿って表現した図式のこと。文字通り、プログラムのシーケンス(連続・順序)を把握するためのドキュメントです。

シーケンス図

画像引用:情報処理推進機構(IPA)「ソフトウェア開発技法実践的演習教育コンテンツ」

シーケンス図では、ユーザーのアクションに対する「クラス」「オブジェクト」間の関係・やり取りを表現するため、業務フロー図・画面設計書・クラス図などをもとに作成されます。

IPO(処理機能記述)

IPO(処理機能記述)とは、システムの機能・ビジネスロジックの処理内容を「入力(Input)」「処理(Process)」「出力(Output)」の3形式で表現した図式のこと。

出力データを作成するために、入力データをどのように処理するかを把握するための図式です。バッチ処理(複数の処理をある程度まとめて行う処理方式)などのビジネスロジック設計で活用される場合が多いようです。

IPO(処理機能記述)

画像引用:情報処理推進機構(IPA)「ソフトウェア開発技法実践的演習教育コンテンツ」

システム開発における詳細設計まとめ

詳細設計がどのように進められているのか?どのようなドキュメントが制作されているのか?気になる方に向け、本記事では、詳細設計フェーズがシステム開発でどのように位置付けられているのか、どのような役割を果たしているのかをわかりやすく解説するとともに、イメージしやすい詳細設計のサンプルドキュメントも紹介してきました。

詳細設計の作業、成果物ドキュメントのおおまかなイメージがつかめたのではないでしょうか?発注者がタッチすることのほぼない、詳細設計・プログラミング工程を滞りなく進めるためには、システム開発会社の実力がカギ。信頼のおける優良なシステム開発会社の選定が重要になります。

※もし開発パートナーとしてタッグの組める、優秀なシステム開発会社を探している方はシステム幹事にご相談ください。予算や目的から最適な開発会社を選定させていただきます。相談料などは一切かかりません。

コンサルタントのご紹介 システム幹事 コンサルタント 岩田真 岩田 専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。

必ず開発会社に発注する必要はありません。システム開発の相場情報から最適な会社選びまで無料でサポートします。お気軽にご相談ください。

【無料】おすすめのシステム開発会社を紹介してもらう