外部設計と内部設計における違いとは?

外部設計と内部設計の記事のアイキャッチ画像

外部設計と内部設計とは何かご存知でしょうか。

聞いたことはあるけど意味は分からない、そんな方も多いのではないでしょうか。

 

今回はこの外部設計と内部設計について違いも含めて詳しく解説していきます。

IT企業として20年以上の事業実績を持つ当社の蓄積データを活用しながら、執筆しております。

ぜひお読みいただき参考にしていただければ幸いです。

 

オフショアのお問い合わせはこちら

1.外部設計と内部設計の違い

外部設計は基本設計、内部設計は詳細設計と同じ意味ではありますが、

それぞれの違いをみていきましょう。

 

1-1 開発におけるフェーズがそもそも違う

システム開発の基本的な流れのイメージ図

外部設計は基本設計、内部設計は詳細設計と同義であることから、

開発におけるフェーズがそもそも違います。

基本的に開発の全体的な流れとしては、

  • ①要件定義
  • ②基本設計
  • ③詳細設計
  • ④実装
  • ⑤テスト
  • ⑥リリース
  • ⑦運用・保守

この流れが基本となります。

この流れにおいて外部設計は②、内部設計は③にあたります。

そのため異なるフェーズとなり、実施内容も異なります。

1-2 外部設計は表面、内部設計は裏面

外部設計と内部設計の違いのイメージ図

前項で開発フェーズにおいて異なると解説しましたが、当然実施内容も異なります。

 

外部設計(②基本設計)はシステムの外観となる部分、つまりUIを設計するため表面側の部分を対応します。

内部設計は外部設計で設計された内容を実装するための方法を設計していきます。「このように実装すれば、外部設計で設計された内容が実現できる」ように裏面の部分を対応していきます。

 

外部設計

内部設計

基本設計

詳細設計

システムの外側となる見た目などを設計

システムの内側となる実装内容などを設計

 


2.外部設計とは

外部設計について解説していきます。

2-1 システムの使い方や見た目などを設計する

外部設計とは要件定義された内容を基に、システムの使い方や見た目など、

システムのユーザーとなる使用者が目で見て動かす部分の設計を行います。

 

例えば、在庫管理システムを思い浮かべてみましょう。

在庫管理システムは今抱えている在庫で何がどれだけあるかを管理しますね。

外部設計ではそのシステムを使う人が実際に触る場所を設計します。

ボタンの配置場所や画面遷移した際の表示場所などがあげられます。

 

特に分かりやすいが大事な「機能設計」部分を先に伝えましたが、外部設計は大きく分けて下記の3つの設計をする必要があります。

  • 方式設計
  • 機能設計
  • その他の設計

 

内容

方式設計

システムの実装方法やどのようなハードウェアで構成されるか設計します。ハードウェアやソフトウェアの機能や開発言語などを決定します。

機能設計

システムをモジュール単位で分割し、使用するデータベースなどを設計していきます。

具体的にはデータの入出力やデータの受け渡し、使用者による操作、帳票の出力などを設計します。

また、画面の見た目、UIの仕様を決めていきます。

その他の設計

セキュリティ設計や納期など方式設計と機能設計で立てた計画を遂行するための業務方針を定めます。

 

2-2 基本設計と同義

外部設計は基本設計と同じ意味です。

以前は外部設計と呼ぶケースが多かったようですが、現在は基本設計と呼ぶのが一般的となっております。

そのため、言葉は違いますが、やることは同じと認識しましょう。

2-3 要件定義後に外部設計を行う

外部設計は要件定義の次に行う開発フェーズの1つです。

外部設計を基に内部設計が行われ、実装へと進んでいきます。

 

オフショアのお問い合わせはこちら

3.内部設計とは

内部設計について解説していきます。

3-1 システムの内部動作や機能などの設計を行います。

内部設計はシステムの内部機能を設計していきます。

使用者からは見えない部分となりますが、使用者が触る部分が正常に動作するようにシステムを構築するためのベースになります。

 

例えば自己管理システムを思い浮かべましょう。

在庫を入力する画面などの完成した際に使用者の目に触れる部分を作るためには開発言語を使用しコーディング(プログラミング)をしていく必要があります。

このコーディングをするための説明書を作ることが内部設計の役割です。

 

また内部設計を行うためには次の3つの構成で実施します。

  • 機能分割
  • 物理データ設計
  • 入出力の詳細設計

 

内容

機能分割

機能をモジュール単位に分割し、それぞれのモジュールで実装する内容や、機能間のデータ処理のフローを設計します。

物理データ設計

内部のファイルやデータのやり取りに関する部分の設計をします。

入出力の詳細設計

外部設計で定めたUIなどをどのように実装をするか設計します

例えば表示メッセージ、入力データのチェック方法など実装フェーズでの説明書となるようにしていきます。

 

3-2 詳細設計と同義

以前は内部設計と呼ぶケースが多かったようですが、現在は詳細設計と呼ぶのが一般的となっております。

そのため、言葉は違いますが、やることは同じと認識しましょう。

 

3-3 外部設計後に内部設計を行う

内部設計は外部設計後に行う開発フェーズです。

外部設計で定められた内容を実装できるように詳細な設計を行い、実装へと進めていきます。

 


外部設計と内部設計のまとめ

外部設計、内部設計について解説してきましたが、

基本設計、詳細設計と同じ意味であることを覚えておいてください。

IT業界では似たような意味を持つ単語も複数存在しますが、

それぞれのポイントを掴んでおくだけでも、技術的な話になっても大方ついていけます。

 

お読みいただいた皆様の参考となっていますと幸いです。

お客様の課題をワンストップで解決!
お客様の声をカタチに変えて満足頂ける
ソリューションを提供いたします。

お客様が抱える課題を、システム開発で解決しています。ご要件のヒアリングからシステム設計、開発、保守をワンストップで提供します。

ベトナムのエンジニアマーケットから人員調達ができるため、お客様が必要とする人員数を当社のみで提供できる強みがあります。

author-avatar
プログラマー、システムエンジニアを経て2001年にサイバーエイド株式会社を設立。
2008年に株式会社インタラクティブ・コミュニケーション・デザインにジョイン後は、2014年にベトナム・ホーチミンでオフショア開発拠点を立ち上げ、2017年に現地法人ICD Vietnam Limited Liability Companyを創業し現在に至る。
創業以降は東京のみならず、各国内地方拠点(札幌、名古屋、大阪)においても積極的にオフショア開発を推進し、国内のITエンジニア不足の解消を目指す。
ICDベトナムがエンジニア不足を解決します!
ICDベトナムがエンジニア不足を解決します!