BUSINESS TIPS発注担当者の方へ、発注成功の為のお役立ち情報

「外部設計」「内部設計」とは?主な作業や設計書の概要までわかりやすく解説

目次

「外部設計」「内部設計」とは?主な作業や設計書の概要までわかりやすく解説

システムを外注したいけれど、何からはじめたらいいかわからず、困っている方も多いかもしれません。そんな方は、はじめに外部設計内部設計の違いについて理解するとよいでしょう。外部設計・内部設計の違いを理解することで、システム開発をスムーズに進めることができるようになります。

そこで本記事では、システム開発で必須となっている外部設計・内部設計について、以下の内容を説明します。

  • システム開発の流れ
  • 外部設計・内部設計とは
  • 外部設計における設計作業
  • 内部設計における設計作業
  • 外部設計書・内部設計書で書かれる内容

ぜひ最後までお読みください。

システム設計について相談可能な会社一覧をご覧になりたい場合は、「見積依頼が可能なソフトウェア・業務システム開発の会社一覧」をご覧ください。

システム開発の依頼先探しならリカイゼンにお任せください!

リカイゼンでは、システム開発実績を多数持つ会社の中から、ご要望に合う会社を厳選して無料でご紹介します。
企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は 03-6427-5422
受付時間:平日10:00~18:30

1. まずはシステム設計の流れを確認しよう

外部設計・内部設計の話をする前に、どのようにシステム開発に取り組まれるかについて、おさらいしましょう。

①要件定義

はじめに、要件定義を行います。要件定義とは、システム開発を行う前に、発注者の要望をどのようにして叶えるか、方針をはっきりさせることです。

要件定義を行うことで、システムに必要な機能を明記できるので、仕様がスムーズに決まっていくでしょう。要件定義書がきっちり仕上がっていれば、後戻りが少なくて済みます。

②外部設計

要件定義ができれば、外部設計に入ります。要件定義で明らかになった機能や制約条件を満たすために、どのようなシステムにするかをまとめていきます。

要件定義から外部設計は、発注者のヒアリングを中心にして設計担当者がまとめる工程になります。そのため、発注者がシステムに対する要望をまとめて、設計担当者とやりとりを行わなければなりません。

発注者がシステムへの要望を正しく伝え、設計担当者とともに共通認識を持てるような設計書を作るように心がけましょう。

③内部設計

内部設計は、設計担当者が開発を担当する社内に向けて取り組む設計です。外部設計で決めた内容をもとに、どのようにシステム内部を作り込むかを決めます。

このように順番に設計書が仕上がっていくため、上流工程のドキュメントの質が、下流工程のドキュメントの質を決めるといっても過言ではありません。

2. 「外部設計」「内部設計」とは?

具体的に外部設計・内部設計について、ご説明します。

外部設計:システムの方式・機能を決定する

外部設計は、基本設計や概要設計といわれることもあります。外部設計では要件定義の段階で作成された要件定義書をもとに、開発するシステム画面や操作の方法を決めなければなりません。

外部設計の目的は、システムの仕様を明確にすることです。システムの仕様が明確にならなければ、システム開発は不可能でしょう。

なぜなら、設計担当者がどこまで作り込んだらよいか、わからなくなるからです。仕様が不確定なまま開発を進めていると、担当者だけしかわからないシステム構造となってしまい、保守性が著しく低くなります。保守性が低くなるのを防ぐためにも、仕様を満たした開発をお願いできる状態にしましょう。

内部設計:システム内部の機能やデータの詳細を決定する

内部設計では、外部設計で決めた仕様を満たすために、システムの内部やデータ構造の詳細を決めていきます。内部設計の目的は、設計担当者ならシステムがどのように作られているかわかる状態にしておくことです。

設計担当者は、設計が不具合の原因にならないように、徹底的に内部設計を行わなければなりません。内部設計に不備がないようにするためには、上流工程である要件定義および外部設計を適切に行う必要があります。

外部設計と内部設計の違いをわかりやすく解説

外部設計は、発注者側が体感できる部分を設計します。体感できる部分とは、画面や機能、性能などが該当します。開発のスケジュールやコストも、外部設計で取り決めなければなりません。

内部設計は、設計担当者のために作られます。システムのコードの書き方やデータベースの内部構造など、仕様を満たすためにどのような設計にするべきかをまとめます。したがって、内部設計は、設計担当者向けにわかるようにしなければなりません。

すなわち、簡単に言い換えるなら、外部設計は対発注者向け、内部設計は対設計担当者向けの設計書といえるでしょう。

3. 外部設計で行う主な作業

それでは、具体的に外部設計で行う設計内容について説明します。

画面設計

システム画面のレイアウトはもちろんのこと、機能ごとに画面がどのように遷移していくのかを決めていきます。たとえばある画面において、チェックボックスを何個配置するのか、どういった情報を表示するのかといった詳細まで決めていきます。

画面設計のコツとしては、見ただけで、画面に使用する部品やその状態がわかるようにするとよいでしょう。わかりやすくするには、以下の要素を細かく指示しておくのがおすすめです。

  • 画面配置
  • 入力項目
  • ボタン
  • 文字列

そして、操作手順と操作に対するリアクションを記述しておきます。そうすることで、設計担当者がシステムを使用するユーザーをイメージしやすくなるでしょう。さらに入出力が発生するかどうかを明確にしておくことで、画面設計がスムーズに進みます。

機能設計

機能設計とは、仕様を満たすためにどのような機能を実装すればよいか設計することを指します。機能設計の際には、モジュールと呼ばれる機能を構成する部品単位にわけて設計されます。

モジュールに分割する考え方は、システムに応じてさまざまなので、唯一の正解はありません。機能設計をより最適に行うためには、下記の内容に注意するとよいでしょう。

  • システム化する業務一覧を明記する
  • 業務フローを明記する
  • 業務詳細を説明する

方式設計

方式設計では、ハードウェアの構成や開発するプログラミング言語、開発環境などシステムの全体構成を設計します。方式設計の際には、以下の内容にわけて設計検討を行います。

  • ハードウェアで実現する内容
  • ソフトウェアで実現する内容
  • ユーザーが手動で実現する内容

このように分割することによって、ユーザーの作業範囲が明確にでき、効率的な運用・保守を踏まえたシステム構成の設計が進めやすくなります。

他のアプリケーションとの連携

他のアプリケーションと連携する場合は、どのようなデータをやりとりするのか、接続方法やセキュリティについて設計します。

4. 内部設計で行う主な作業

次に、内部設計で行う設計内容について説明します。

機能分割

外部設計にて取り決めたモジュールの内部構造を、具体的に設計していきます。したがって、外部設計の精度が、機能分割に影響をおよぼします。機能分割するには、以下に注意しなければなりません。

  • 機能の流れが連続になるように分割する
  • 機能が選択的になるように分割する
  • 繰り返し行う機能は分割する
  • 入力・処理・出力を分割する
  • 個々の機能は1つの入力に対し、1つの出力があるように分割する

以上の点に気を付けることで、不具合を防ぐことができます。もし不具合が発生したとしても、見つけやすい設計になっているので、スムーズに解決できるでしょう。

物理データ設計

物理データ設計では、ユーザーからはわからないファイルやデータのやりとりを設計します。ファイルの形式やレイアウトも物理データ設計の段階で設計します。物理データ設計では、以下に注意しなければなりません。

  • データの保存期間を明確にする
  • データの更新量を明確にする
  • 数年後のデータ量を見積もる

入出力の詳細設計

外部設計で取り決めた入出力設計をもとに、具体的な形式を設計していきます。たとえば画面設計においては、入力データをどのようにチェックするのか、初期値・デフォルト値を設計します。また、帳票設計では、データの検索ルールやエラー処理を設計する必要があるでしょう。

5. 外部設計書・内部設計書にかかれる内容

外部設計書・内部設計書に書かれる内容をまとめると、以下の表のようになります。

外部設計書 内部設計書
記載内容 ・システムの概要
・設計指針
・通信仕様
・システム構造
・機能仕様
・製造指針 etc...
・クラス図
・モジュール構成図
・フローチャート
・シーケンス図 etc...

外部設計書では、はじめにシステムの概要を記載します。全体構成や開発対象範囲を示さなければなりません。設計指針では、セキュリティ機能の設計について概要をまとめます。通信仕様では、機能ごとにどのように通信を行うかの概要を定義します。

システム構造では機能を構成する大まかなブロックにわけて、構造を網羅しなければなりません。機能仕様はシステム構造でわけたブロックをさらに分類して、機能を網羅します。製造指針では、実装にあたっての留意すべき項目をまとめます。

内部設計書では、システムを作るのに必要な情報をまとめなければなりません。そのため、図解で説明されることが多いです。たとえば、システム内部のプログラムをどのように設計するかを示したクラス図や、モジュール間の繋がりを示したモジュール構成図などが該当します。

機能ごとにどういったフローで内部処理が進められるかを示したフローチャートや、設計するオブジェクトがどのように作用するかを示すシーケンス図によって、プログラムがどのように動くかを明記します。

6. 設計書の作成は開発会社への依頼もおすすめ

システム開発を外注する場合、設計書の作成を開発会社に任せるのがおすすめです。ただし、外注するからといって、任せっきりにしてはいけません。なぜなら任せっきりにしてしまうと、本当に使いたいシステムが開発できるとは限らないからです。

使えるシステムを開発してもらうには、要件定義時に要望を予算内でしっかりまとめられるようにしなければなりません。したがって任せっきりにするのではなく、要望は設計担当者にしっかり伝えられるように心がけましょう。

7. まとめ

外部設計・内部設計についてまとめます。

  • システム開発の流れには、要件定義・外部設計・内部設計のフェーズが存在する
  • 外部設計は要件定義書をもとに、開発するシステムの画面や操作方法を決めるフェーズ
  • 内部設計は外部設計で決めた仕様を満たすために、システムの内部やデータ構造の詳細を決めるフェーズ
  • 外部設計は発注者が中心、内部設計は設計担当者が中心となってドキュメントを作成
  • 外部設計では、画面設計・機能設計・方式設計を行うことで、システム概要や通信仕様などを決める
  • 内部設計では、機能分割・物理データ設計・入出力の詳細設計を行うことで、モジュール構成図やフローチャートなどを決める

システムを外注するにおいて、外部設計・内部設計は非常に重要ですので、参考にしてください。

ソフトウェア・業務システム開発依頼先探しなら、
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社をご紹介いたします!

かんたん3ステップ
お急ぎの方はお電話で 03-6427-5422
※サポートデスク直通番号
受付時間:平日10:00〜18:00

ソフトウェア・業務システム開発依頼先探しでこんなお悩みはありませんか?

お悩み
  • 会社の選び方がわからない
  • 何社も問い合わせるのが面倒くさい
  • そもそも依頼方法がわからない
  • 予算内で対応できる会社を見つけたい

発注サポート経験豊富な専任スタッフが
あなたのご要望をお聞きし、最適な会社をご紹介いたします!
ご相談から会社のご紹介まで全て無料でご利用いただけます。
お気軽にご相談ください!

ソフトウェア・業務システム開発
依頼先探しなら
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社を無料でご紹介いたします!

サポートデスク

まずはご質問・ご相談なども歓迎!
お気軽にご連絡ください。

この記事の監修
リカイゼン サポートデスク 
吉田・新町
BtoBマッチングサービスであるリカイゼンにおいて、発注企業からのご相談のヒアリング、企業選定のフォローなどを行う部門の担当です。出展企業であるシステム開発やWEB制作、クリエイティブ制作会社ともコミュニケーションを取りながら、年間数百件の受発注のサポートを行っています。

ソフトウェア・業務システム開発の関連記事

オフショア開発とは?メリットやデメリット、失敗しないためのポイントを解説

オフショア開発とは?メリットやデメリット、失敗しないためのポイントを解説

新規事業や業務改善で開発プロジェクトを立ち上げる際に、肝となるのは開発手法です。なかでもオフショア開発は、コスト削減・人材確保におけるメリットがあるため、選択肢に加えるケースも少なくありません。 しかし、「オ...

スクラッチ開発とは?意味やメリット・デメリット、開発の流れを解説

スクラッチ開発とは?意味やメリット・デメリット、開発の流れを解説

「スクラッチ開発」は、システム・ソフトウェアにおける開発手法の一種です。「事業にフィットさせやすい」「競合他社にない独自性が得られる」などのメリットを聞いたことがあるかもしれません。 しかし、具体的にどのよう...

要件定義書とは?必要項目や書き方、発注企業が意識したいポイントを解説

要件定義書とは?必要項目や書き方、発注企業が意識したいポイントを解説

システム開発を依頼する際は、開発に入る前に「要件定義書」という書類の作成が欠かせません。しかし、システム開発を外注した経験がない場合、要件定義書の意味や活用方法がイメージこともあると思います。 そこで今回は、...

システム開発の「品質管理」とは?品質保証との違いや手法、注意点を解説

システム開発の「品質管理」とは?品質保証との違いや手法、注意点を解説

開発会社へシステム開発を依頼する際に、「品質管理」というワードが出てくるかもしれません。しかし、非エンジニアの人やシステム開発を専門的に依頼を行ったことがない担当者の方にとっては、具体的に品質管理が何を指すのか、なぜ重要なの...

アジャイル開発とは?メリットやデメリット、流れを初心者にもわかりやすく解説

アジャイル開発とは?メリットやデメリット、流れを初心者にもわかりやすく解説

「アジャイル開発」は、2000年台初頭から注目を集め始めました。開発期間の短縮や顧客ニーズへの対応力を高められるとして、以前の主流だったウォーターフォール開発からシフトしつつあります。 しかし、顧客側としては...

記事を探す

キーワードで探す

カテゴリーで探す