内部設計とは?

外部設計を受けて、詳細設計を行うための中間工程です。内部設計と詳細設計を同一工程として扱う場合もあります。よりシステム内部に特化した設計を行う工程です。

内部設計(機能設計)

内部設計では、開発するシステム自身をターゲットとした設計を行います。要件定義や外部設計とは違い、顧客企業や外部システム開発チームとの仕様調整は通常は行いません。外部システムと、開発するシステム(=内部システム)との入出力インタフェースについては外部設計によって仕様が決定しているため、あとは内部システムの仕様を決めていくことになります。

インプット アウトプット
  • 外部設計書
  • 内部設計書
  • 機能仕様書
  • 帳票仕様書
  • データフロー図
  • データベース物理設計書

内部設計の目的は、次フェーズの詳細設計を行うための仕様を決めることです。特に、機能設計やデータベース論理設計では、内部システムの仕組みや取り扱うデータのあり方、管理方法などを定義する必要があり、これまでのシステムイメージを一気に具体化させる部分でもあります。下流工程のエンジニアとしては、システム開発においてこのフェーズが一番の醍醐味になるかもしれません。

内部設計の目的は、次フェーズの詳細設計を行うための仕様を決めることです。特に、機能設計やデータベース論理設計では、内部システムの仕組みや取り扱うデータのあり方、管理方法などを定義する必要があり、これまでのシステムイメージを一気に具体化させる部分でもあります。下流工程のエンジニアとしては、システム開発においてこのフェーズが一番の醍醐味になるかもしれません。


機能仕様書

システムは、幾つかの機能に分割することができます。システムを機能によって分割することを、機能分割といい、次フェーズの詳細設計で行うプログラム分割の上位業務に該当します。機能分割の単位は様々ですが、ある責任分解点に着目し、システムのメンテナンス性や障害の原因を特定しやすいように機能分割する必要があります。責任分解の観点は、機能分割に限った考え方ではなく、要件定義や詳細設計、ひいてはビジネスマンとしての基本的な行動基盤に通じるものです。また、システムが非常に小規模で、システム自体が1機能と判断できる場合には、機能分割を行わずに詳細設計フェーズでプログラム分割を行うことも可能です。

  • 機能分割(内部設計)
  • プログラム分割(詳細設計)
  • モジュール分割(詳細設計)

機能設計書には各機能の仕様を記述し、機能間のデータのやり取りや、システム内のデータの流れを示したデータフロー図を作成します。データフロー図を作成することによって、システム内の仕様の明確化と、矛盾(設計バグ)を洗い出すことができます。


画面設計を内部設計フェーズで行う場合がありますが、当サイトでは画面設計を外部設計フェーズで行うように解説しています。現在のシステム開発ではプロトタイピングが主流であり、リスクヘッジにもなるからでです。内部設計フェーズで画面設計を行った場合に、顧客と合意するタイミングはいつになるのでしょうか。顧客との調整が必要な業務は、できるだけ早い段階で合意しておくことが重要なのです。