執筆者:Haruka
都内IT企業でセキュリティエンジニアとして働きながら、Webライターとして活動中。本業では脆弱性診断を担当しており、セキュリティの観点からWebアプリケーションの開発や運用に携わっています。エンジニア兼ライターとして、専門知識を活かしたIT系記事を提供します。
この記事では、内部設計と外部設計の違いについて解説します。
システム開発は設計に基づいて行われ、設計はさらに内部設計と外部設計とに分かれます。
設計について理解することは、システム開発を円滑に進めるためのポイントの1つです。システム開発に携わる方はぜひ参考にしてみてください。
システム開発における設計の位置づけ
設計はシステム開発の重要なプロセスの1つです。
「こんなシステムを作りたい」というクライアントの抽象的な要望を具体的な機能やプログラムに落とし込むためには、的確な設計が必要です。
設計が曖昧なままシステム開発を行っても、クライアントが求める機能が実現できなかったり、メンバー間の意思共有がうまくいかなかったりと、良いことはありません。
外部設計の役割と内容
外部設計は基本設計とも呼ばれ、システムの大まかな概要や帳票等のインターフェースを設計するプロセスです。ユーザーが外部から操作できる部分を設計することから「外部設計」と呼ばれます。
外部設計の役割は、システム全体の概要と必要な機能、データを洗い出すことです。外部設計では、次のようなドキュメントを成果物として作成することを目指します。
なお、企業やプロジェクトによって作成するドキュメントや、作成するタイミングは異なります。
・機能一覧表
・画面設計図
・帳票設計図
・業務フロー図
・バッチ設計図
・データベース設計図
クライアントの要望を満たす機能の一覧や、画面や帳票のレイアウトを示した画面設計図・帳票設計図など、外的な設計図を作成します。
処理の流れを図を使って示す業務フロー図や、バッチ処理(一連の処理を自動で実行する処理のこと)の流れを示すバッチ設計図、データベース内のデータの保存構造を示すデータベース設計図など、後の内部設計のために役立つドキュメントもここで作成します。
内部設計の役割と内容
内部設計は詳細設計とも呼ばれ、外部設計によって決められたシステムの概要をプログラムに落とし込むための設計プロセスです。
クライアントやユーザーからは見えない、内部の処理を設計することから「内部設計」と言われます。
内部設計では、実際にプログラマーがプログラムを実装できる状態にしなければならないため、次のようなドキュメントの作成を目標としています。
・クラス図
・アクティビティ図
・シーケンス図
オブジェクト指向と呼ばれるプログラミングで使われる「クラス」の概念を整理したクラス図や、システムの処理の流れや条件分岐を整理したアクティビティ図、時間軸に沿ってクラスやデータ構造の流れを示すシーケンス図を作成します。いずれも専門性が高く、これらを元にプログラマーが実装を手がけます。
まとめ
外部設計と内部設計はそれぞれ、システムの外部と内部を設計するプロセスです。外部設計は、クライアントに開発するシステムの理解を深めてもらい、より詳しい設計につなげるために行われます。
それに対して内部設計は、クライアントではなくプログラマーに対して詳しい指示を与えるための設計です。
システム開発において、設計は非常に重要なプロセスの一部です。システム開発に関わる方は概要を把握し、ポイントを押さえておかなければなりません。
システム開発のポイントについては、こちらの動画コンテンツもご覧ください。
YouTube:
また、LINEオープンチャットで、ITやエンジニアに関わる方向けのコミュニティ「IT人財コミュニティ」も運営しています。ぜひご参加ください。
株式会社Desafios
営業代行から要件定義・開発・デザイン・マーケティング支援まで、ワンストップでサービスを展開。
お客様のビジネスの成長に貢献いたします。
- IT人財コミュニティ
(LINEオープンチャット) - フリーランスやエンジニアの方、起業を目指す方を対象としたオンライン・コミュニティ。
参加費無料。詳しい内容・参加条件などはこちらをご覧ください。
おすすめ記事
WEB開発
基本設計と詳細設計とは?やるべきことと違いについて解説
執筆者:Haruka 都内IT企業でセキュリティエンジニアとして働きながら、Webライターとして活動中。本業では脆弱性診断を担当しており、セキュリティの観点からWeb...
執筆者:Haruka 都内IT企業でセキュリティエンジニアとして働...
2022.12.14
7,588
WEB開発
工数見積もりはなぜ重要?4つの手法を徹底解説
執筆者:Haruka 都内IT企業でセキュリティエンジニアとして働きながら、Webライターとして活動中。本業では脆弱性診断を担当しており、セキュリティの観点からWeb...
執筆者:Haruka 都内IT企業でセキュリティエンジニアとして働...
2023.3.4
2,986
WEB開発
On-premiseとCloudの違いとは?特徴と選び方について解説
執筆者:Haruka 都内IT企業でセキュリティエンジニアとして働きながら、Webライターとして活動中。本業では脆弱性診断を担当しており、セキュリティの観点からWeb...
執筆者:Haruka 都内IT企業でセキュリティエンジニアとして働...
- セキュリティ
2022.12.14
634