
データモデリングにより明確になったデータ入力系プロセスとエンティティの関連を、マトリックス分析表に定義していきます。
1.CRUDの定義
横軸、縦軸にエンティティもしくはプロセスを配置し、それぞれC(作成)R(検索)U(更新)D(削除)の対応を記入していきます。(マトリックス分析でCRUDの定義を行います。)
Xupperでは、エンティティとプロセス単位ではなく、エンティティの各属性単位にCRUDを定義することもできます。項目レベルに更新仕様を定義していきます。
項目レベルで定義したCRUDについては表示オプションにより自動的にCRUDが生成されます。
2.CRUDの内容分析
CRUD分析において各エンティティのCRUDが1つ以上存在することを確認します。CRUDの1つが存在しないという場合、以下の原因が考えられます。
① C(作成)・U(更新)が存在しない場合
データの追加・更新のないテーブルであるか、検討漏れのいずれかとなる。
② D(削除)のない場合 削除しないデータか、検討漏れのいずれかとなる。
③ R(検索)のない場合 作成しても利用するプロセスが存在しないということになり、不要なデータ(エンティティ)を作成することになるか、検討漏れのいずれかとなる。
このような分析も大規模なシステムとなれば、エンティティ数も数百~数千、プロセスも同様に数百~数千の数になってきます。
全ての、エンティティとプロセスの組合せを分析しようとすると、それだけで大変な作業となります。
Xupperでは、このような検査を簡単に行うことができるように、CRUD整合性検査という機能を設けています。
これは、検出するCRUDのパターンを指定し、指定したパターンに該当するエンティティを抽出するという機能です。
上記の例でいうと、商品在庫にはU(更新)しか定義されていません。
実際には商品在庫は、商品と倉庫の中間(関連)エンティティとして定義されていた場合、商品が追加されたら、当然、商品在庫のレコードも追加される必要があります。
しかし、そのような更新処理が定義されていないということは、商品追加の機能を定義する際に在庫データの作成処理が必要となることを検討していないということを意味しています。
3.CRUD再検討
CRUD分析において、検討漏れが存在するおそれがある場合には、再度CRUD分析を行い、内容を確認します。
①機能の検討漏れがある場合には、必要な機能を追加する。
②プロセス間で同一のエンティティに対して、CRUD関係を持つ場合は、プロセスの統合を検討する。
③1プロセスで(論理的に)複数のエンティティに対してCRUDを定義している場合は、プロセスの分割を検討する。
④ プロセスが更新・参照できるように、エンティティ間のリレーションが定義されていか確認する。
※コメント投稿者のブログIDはブログ作成者のみに通知されます