設計工程 †基本計画で立案した構想に基づき、それを実現するシステムの設計を行います。システム仕様を決め、プログラムの構造を設計します。 設計工程はさらに「外部設計工程」「内部設計工程」「詳細設計工程」の三つの工程に分けられます。 外部設計工程 †システム機能を業務の運用単位として、プロセスに分割することが目的です。プロセスとは、ユーザーがコンピューターを利用して仕事を行うときに、ユーザーから見た処理の単位です。システムの内部ではなく、ユーザーから見た(すなわち外部から見た)部分を設計するので、外部設計といいます。 内部設計工程 †外部設計工程で分割したプロセスをプログラムに分割し、プログラム概要を定義することを目的としています。この工程からシステムの内部について設計するので内部設計と言います。プロセスをシステムでどう動かすのか、そのためにどんなシステム構造にすべきかを考え、設計する工程です。 詳細設計工程 †内部設計工程で分割したプログラムをモジュールという処理機能単位に分割し、プログラム構造を定義することが目的です。プログラミングをするためには、この詳細設計工程での成果物である詳細設計書(プログラム仕様書)が必須になります。 外部設計 †「外部設計」とは、ユーザの目に映る部分(画面に写す情報とかですね)、 コンピュータから見ると外側部分の設計を行うフェーズのことを言います。 お客様からの要求仕様を元に、
また、他にも、
お客様から見える部分の仕様を決定するのがこのフェーズの役割です。 「外部設計」は、基本的にはお客様に向けて行われるものなんですね。 ソフトウェアの開発工程の1つで設計フェイズのうち、開発しようとするシステムが外部(ユーザーや外部システム)に対してどのような機能、インターフェイスを提供するかを設計すること。 簡単にいえば、要求仕様に基づいて“開発するシステムの機能”を決定する工程で、例えば、「Aを入力するとBを画面に出力する」というように実装を意識せずに、ユーザー視点で記述する。これによりおよそのシステム規模が明らかになり、開発スケジュールと予算が試算できるようになる。ユーザー(システム発注者)とSE(設計者)の間で行われる工程である。 具体的には、システム分割(アーキテクチャの決定)、入出力概要設計(画面/帳票設計)、コード設計(データ形式/構造)、論理データ設計(データベースの論理設計)などの作業がある。 一般に、基本設計/概要設計と同一視されるが、方法論やスコープによっては別の工程とされることがある。また、ハードウェアやネットワークなどの制約条件を考慮に入れて決定しなければならないため、これらの選定を含めて“外部設計”と称する場合もある。 基本仕様書(外部設計) †ナンのためのシステムか? どう使われるか? 使用するコンピュータやOSは? といったシステムの使われ方や構成を規定する仕様書。 要求仕様書を元に、お客様の希望をどうしたら実現できるか、 ということを念頭に書かれる。 内部設計 †「内部設計」とは「外部設計」を元に、
お客様からは見えないけれども、実際に稼動する部分の仕様を決定する。 それがこのフェーズの役割です。 ソフトウェアの開発工程の1つで設計フェイズのうち、外部設計で作成された仕様に基づいて、ソフトウェア内部のアーキテクチャ、データ処理や管理の方法、アルゴリズムなどを設計すること。詳細設計ともいう。 外部設計では実装を意識しないで機能を定めていくが、内部設計ではソフトウェア内部における具体的な処理手順を設計していく。SE(設計者)がビルダ(プログラマ)に対する指示を決定する工程である。 作業内容としては、機能分割、物理データ設計、入出力詳細設計に分類される。 機能仕様書(内部設計) †システムが実現する機能を整理し、機能ごとにサブシステム化する。 基本仕様書を元に、システムが実現する機能を中心に書かれる仕様書。 ちなみにこのあとには、機能仕様書で規定した機能ごとに、 プログラミングできるレベルまで細かく設計する 「詳細設計」というフェーズが待ってます。 ※上記の外部設計/内部設計や、基本設計書/詳細設計書という分け方は、やや古いものです。 今後は、オブジェクト指向に基づいた設計手法が使われていきます。 リンク集 † |