7.1 論理設計で行うこと
7.1.1 アプリケーション開発の観点から確認すべき内容
アプリケーション開発の工程から業務分析した結果を、主要な2つのドキュメントを参照しながら説明します。
まず、各アプリケーションを、開発工程の観点からサブシステム分割した結果、各サブシステムでどのような処理を行うかをまとめたものが、以下のプロセス処理リストです。
各サブシステムの基本機能
プロセス処理リスト-(1)販売管理サブシステム
サブシステム間、システムの中の登場人物の間でどのように情報が流れるかを表したものが、図7-1のデータフロー図です。
この図から次のようなことが読み取れます。
- このシステムの中に登場するすべてのコンポーネント間でどのようなデータが必要とされ、どのように情報が受け渡されるか
- サーバをどこに配置するか、それによってどのようなデータがどこで管理されるか
また、プロセス処理リストで記述されたプロセスが、どのエンティティを、いかにアクセスするのかをマトリクスで表したものが図7-2のCRUD図です。
CRUD図を作成する過程で、次のようなことを検証します。
- 必要なエンティティがすべて抽出されているか
(プロセス側から見て必要なエンティティがすべて揃っているか) - エンティティを処理するプロセスがすべて揃っているか
(Create、Reference、Update、Delete) - プロセス分割が適切に行われているか
(1つのプロセスで複数のエンティティに対する処理が詰め込まれていないか) - エンティティの正規化が適切に行われているか
(1つのエンティティにアクセスが集中していないか)
このCRUD図からは、顧客マスタや、商品マスタなどのマスタ表や在庫表へのアクセスが複数のサブシステムから実行されていることがわかります。
もし、必要であれば、このようなマスタ表やイベント表を、営業所や倉庫などの拠点ごとに分散させることを考えます。
各拠点にデータベースサーバを配置し、そこに表を配置します。
その場合、マスタ表やイベント表の同期をとるために、定期的に最新の状態に更新されたデータを、最新の状態になっている表からコピーする必要があります。
解説トレーナー