#はじめに
IT企業に転職し、開発に携わる機会が増えてきたのでシステム開発の工程の一つである
『外部設計』と『内部設計』について調べたので記事にします。
#システム設計の流れ
基本的な流れとして最初に要件定義を行い、次に外部設計を行い、外部設計を基に内部設計を行う。
#要件定義とは
クライアントが求めている機能に対して、システムの使用や範囲を決める。
例として、必要な機能、性能、要求されている信頼性や保守性などクライアントの要望に合わせ要件定義書を作成する。要件定義書の精度が高ければ、外部設計が行いやすくなる。
###一言まとめ
クライアントが求めてる機能を、要件定義書に起こす。
#外部設計
要件定義で定義した、機能、性能、制約条件を基にシステム設計を行う。
主に、UIなどユーザーから見える部分の仕様を決定したり、セキュリティ、運用規定、システム開発のスケジュール、費用などの設計を行う。
###一言まとめ
ユーザー側のシステム開発を行う
#内部設計
外部設計を基に、システム内部の動作や機能、物理データなどのユーザから見えにくい詳細な部分の設計を行う。
プログラム機能を単体に分割し、そこで使用する物理データの入出力を設計をする。
###一言まとめ
ユーザーから見えにくい部分のプログラム設計
#外部設計の主な項目
###・方式設計
アプリの全体構造の設計、ハード、ソフトウェアの機能、構造、開発言語なを決める。アーキテクチャ設計とも呼ばれる。
###・機能設計
システムをモジュール単位に分割し、各モジュールや使用するデータベースの設計を行う。
データの入出力、データベース同士のデータの受け渡し、ユーザーによる操作、帳票の出力など。
システムの使いやすさなどUIの部分の仕様を決める役割もある。
###・そのほかの設計
クライアントに求められている、機能、セキュリティ、運用規定、納期、開発費など業務として運用に必要な部分を決定する。
#内部設計の主な項目
###・機能分割
各モジュールの機能を明確化する。機能間でデータが処理される際の流れ(データフロー)を設計する。
処理の明確化で、設計バグを洗い出せる。
###・物理データ設計
システム内部で使うファイルやデータのやりとりに関する部分の設計を行う。
###・入出力の詳細設計
『機能仕様書』、『データフロー書』、『データベース物理設計書』などを作成する。
#最後に
システム開発とは、クライアントの要件を要件定義書でまとめ、外部設計でユーザー側、内部設計でシステムの作り方を考える。
いきなりプログラムを書いても、修正に時間がとられたり、最悪最初からやり直す可能性もあるので、しっかり設計に時間を使い、質の高い制作物を効率良く作りましょう。
以上