設計

システム設計の流れ

More than 3 years have passed since last update.

昔のメモを整理してると出てきました。今となっては心底どうでもいい。

上流工程に関するあれこれ

大まかな流れ

基本的な流れとしては要件定義→外部設計→内部設計→開発の流れが採用される。
ここで外部設計は基本設計、内部設計は詳細設計とも呼ばれる。
一般にウォーターフォールモデルでの考え方では外部設計までが上流工程と考えられるようだ。

要件定義

要求開発(超上流工程)

[ 業務フロー ] 
業務とその流れを表現するもの。素人にもわかるように
 → アクティビティ図 業務機能関連図
[ 業務モデル ]
業務を静的に表現する。
→ ERD クラス図

要件定義

システムの範囲を決定する。何を作って何を作らないかを明確にすること。

1.機能要件
 ユースケース一覧 機能一覧
2.非機能要件(FURPS+)
 >機能 機能要求
 >使用性 UIの指針、ユーザ教育、マニュアル
 >信頼性 管理、監視、保守、復旧
 >性能 実行性能、スケーラビリティ
 >保守性 信頼性、可溶性、セキュリティ
 >その他 ハードウェア構成、ネットワーク構成、ソフトウェア構成

外部設計

外部設計(基本設計)では、要件定義をもとに開発しようとするシステムが外部にどのような機能を提供し、またどのようなインターフェイスを持つかを設計する。

基本設計の労力は要件定義の精度と反比例する。要するに要件定義フェーズの成果物たる機能要件、非機能要件、制約条件を、実際にプログラム可能な形にまで落としこむのが外部設計と考えて良い。要件定義で曖昧なまま進んだ項目や欠落した項目はここで再検討される必要がある。

外部設計は大きく3つの部分に分けて考えることができる。

方式設計(アーキテクチャ設計)

ハード/ソフトの構造や実装方針を決定する。
 →プラットフォーム設計(インフラ,ミドルウェア,プラットフォーム,フレームワークなどの決定)
 →アプリケーション・アーキテクチャ設計(アプリケーション全体の構造などの決定)
 →開発標準やテスト方式の決定

機能設計(アプリケーション設計)

システム全体をモジュール単位に分割し、各モジュールの外部仕様を決定する。
 →ビジネスロジック設計
 →データベース設計
 →画面・帳票設計
 →バッチ設計

その他の設計

 →性能/信頼性設計
 →セキュリティ設計
 →移行設計(システム/業務)
 →運用設計(システム/業務)

内部設計

1.機能分割
2.物理データ設計
3.入出力詳細設計

上流工程の手法:DFD

最も基本的な上流工程の方式としてDFD(Data Flow Diagram)モデルによる手法が挙げられる。

要件定義における成果物としてDFD4点セットを作成し,ここから外部設計において機能仕様を完成させるという手法が取られることが多い。

ここでDFD4点セットとは、DFD新論理モデル、データストア記述、データフロー記述、処理機能記述 の4点を指す。

DFD新論理モデル

DFDでは「データフロー」「データストア」「プロセス」「外部エンティティ」の4つのオブジェクトで業務全体を描画していく。
 
現行業務のデータの流れ(現物理モデル)から本質的なデータのみを抽出したモデルを現論理モデルと呼び、これに新システムへの要件を加えたものを新論理モデルと言う。

要件定義から渡された新論理モデルに、アーキテクチャ等の物理的特性を加味し新物理モデルを生み出すのが外部設計の役目である。

データストア記述

DFD図におけるデータストア部に関するリスト形式の記述。要件定義で作成されたデータストア記述を元に、正規化、ER図作成等の処理を経てデータベース定義が完成する。

データフロー記述

DFD図における各データフローに対し,実際にフローの流れるデータをリスト化したものがデータフロー記述である。

外部設計においては画面や帳票設計に用いられる資料となる。

処理機能記述

DFD図における各プロセスの内容を入力-処理-出力(IPO)の3列形式で記したもの。

外部設計においてはビジネスロジック設計等に用いられる資料となる。

参考URL

全体的な流れについて
http://salut.g.hatena.ne.jp/bbs/1/2

基本設計の方針について
http://itpro.nikkeibp.co.jp/article/lecture/20070702/276409/?ST=selfup

DFD
http://itpro.nikkeibp.co.jp/article/lecture/20070702/276410/?k2