内部設計

Detailed Design システム開発技術

プログラムやシステムの設計図の中で「中身の動き方」を決める作業のこと

簡単な説明

内部設計ってのは、システムの「中身の作り方」を考える時間。
「このボタン押したら、どう動かす?」「データはどこに置く?」ってのを決める感じ。
つまり、プログラムをちゃんと書くための下準備ってことです!

由来

「内部設計」という言葉は、システム開発の工程の中でも「基本設計(外部設計)」の後に行われる工程です。英語では “Detailed Design”(詳細設計) とも呼ばれます。利用者から見える画面や操作を決めるのが外部設計、実際にプログラムがどう動くかを設計するのが内部設計です。

具体的な説明

内部設計では以下のような内容を決めます:

  • データの流れ(入力→処理→出力)
  • モジュール(部品)の分け方と役割
  • データベースのテーブル構造
  • プログラムの関数・クラス設計
  • 使うアルゴリズムやロジックの詳細

これにより、プログラマーがソースコードを書ける状態にすることが目的です。

たとえば、銀行のATMシステムを作る場合、外部設計で「暗証番号を入力してお金を引き出す」画面の動きが決まったら、内部設計では以下のような中身を決めます:

  • 暗証番号はどう保存して、どう照合するのか
  • 1日に引き出せる上限はいくらかをどう管理するか
  • 入出金の履歴はどのデータベースに保存するか
  • 画面でエラーが出たらどんな処理を行うか

ソフトウェア工学では、構造化設計手法(Structured Design)やオブジェクト指向設計(Object-Oriented Design)を用いて内部設計を行います。

  • モジュールの凝集度(Cohesion)と結合度(Coupling)に注意して、効率の良い設計を目指します。
  • UML(統一モデリング言語)などでクラス図・シーケンス図を使って設計を文書化します。

開発現場では、内部設計の品質が高いと、バグの発生率が最大40%減少するという調査もあります。設計段階でロジックや構造をしっかり決めることで、後のプログラミングやテストがスムーズになることが分かっています。

例文

「内部設計をしっかり行っておけば、プログラムを書くときに迷わずにすみます。」

疑問

Q: 外部設計と内部設計の違いは何ですか?

A: 外部設計はユーザーから見える部分の設計で、内部設計はプログラムの中の動きや処理の仕組みを決める設計です。

Q: 内部設計をしないで開発するとどうなりますか?

A: プログラムにバグが増えたり、チーム内で作業の方向がバラバラになってしまうリスクがあります。

Q: 内部設計の成果物には何がありますか?

A: モジュール設計書、データ設計書、処理フロー図、クラス図などがあります。

Q: 内部設計は誰が担当しますか?

A: システムエンジニア(SE)が主に担当し、プログラマーと連携して行います。

Q: 内部設計の段階で使われる図や記号には何がありますか?

A: フローチャート、クラス図、シーケンス図、ER図(データベース設計)などがあります。

理解度を確認する問題

次のうち、内部設計で決めるべき内容として最も適切なものはどれか?

A. ユーザーが操作する画面のデザイン
B. プログラムの処理手順やモジュール構成
C. システム導入後の運用マニュアル
D. プロジェクトの予算とスケジュール

正解:B

関連論文や参考URL

「内部設計の品質がプログラムの保守性に与える影響」

結果: 内部設計の段階で高凝集・低結合を意識して設計されたプログラムは、保守工数が平均30%削減されるという結果が得られました。これは、変更が必要な場合に影響が広がりにくい設計となっていたためです。

まとめ

内部設計とは、プログラム内部の処理や構造を詳細に設計する工程です。
モジュールの役割分担やデータベース設計、処理フローを明確にします。
プログラミングを正確に行うための「設計図」として重要な役割を持ちます。

コメント

タイトルとURLをコピーしました