データの取り扱い方を決める!!〜CRUDマトリクス分析〜#1

データの取り扱い方を決める!!〜CRUDマトリクス分析〜#1

会員番号のようにデータがどのように生成・参照・更新・削除されるのかシステム開発を行う際には必ず決めなければいけない項目です。データの取り扱い方のベースを決める方法をお伝えできればなと思います。また、CRUDマトリクス分析の具体的な手順に関しては、データの取り扱い方決める!!〜CRUDマトリクス分析〜#2の方で紹介しています。

CRUDマトリクスの重要性

昨今、企業経営の視点から「データ駆動経営」が提唱されています。データ駆動経営とは、データに基づいて仮説検証型経営を行うことです。もちろん、データは経営資源の一つに過ぎませんが、重要な要素であり、その重要性は益々増していくことでしょう。データの活用度は、データが参照される環境にまるごと依存します。データを参照したいときに、したい形で、参照できるようになっているかが重要です。
これは Web系の解析データであろうが、基幹系システムの伝票データであろうが変わりません。データを参照できる環境を構築する際、気を付けなくてはならないことがあります。それは、前提として「データがきちんと生成されていること」です。

極めて当たり前のことですが、これがものごとの絶対的な原則です。そしてまた、データを生成する個々の業務プロセスが、業務の流れの中で滞りなく遂行されることが基本であることも、忘れてはいけません。デーダが生成され参照される環境を、業務がスムーズに行われる中で実現するのです。

そのためにはまず、データの連鎖に着目します。生成したものの参照されないデータや、いつまでも削除されないデータがあるとしたら、そもそも
①そのデータ自体が不要であるか、あるいは、
②参照·削除するプロセスが欠けているか、
③プロセスの機能が欠けていることになります。このことを確認するのが、CRUDマトリクス分析の目的です。

データ及びデータを操作するプロセスと機能が、データライフサイクルを全うするよう正しく定義されているかを、CRUDマトリクスで確認するのです。

CRUDマトリクスとは?

「CRUD」はC(生成)、R(参照)、U(更新)、D(削除)という4種類のデータ操作の頭文字をとったものです。データとプロセス、データと機能のマトリクスがつくる欄に、4種類のアルファベット頭文字を並べることにより作成します。
要件定義でCRUDマトリクスの作成を行う意味は、定義したプロセスと機能がデータライフサイクルを全うしているかを確認するためです。

もちろん、CRUD を配置した欄に対して、更新要領とロジックを定義する必要がありますが、それは設計工程以降で行うべき作業とします。ここでは、「データ要件の明確化」で定義した論理データモデルの、各エンティティのデータライフサイクルまでを確認します。

CRUDマトリックス分析の実施

具体的には、各エンティティ(プロジェクトに関わるステークホルダーやシステムなどプロジェクトに重要な役割を持つ存在)が、理想の業務フロー図に現れるどの業務プロセスにおいてもきちんと、生成(C)·参照(R).更新(U).削除(D) の操作がなされているかをCRUDマトリクスの作成により確認します。

CRUDマトリクスの作成

各UI· 機能の操作対象となるデータ(エンティティおよびUIに現れた属性)を集め終わったら、ここではそのデータを横軸、各業務プロセスおよび機能を縦軸にとり、マトリクス表を作ります。個々の業務プロセスおよび機能と、データとの交差点(マトリクスを構成するひとつひとつのセル)は、そのデータに何らかの操作が行われるタイミングを交わしています。

操作の内容は生成(C)·参照(R)·更新(U)·削除(D)のとかであり、それを業務プロセスまたは機能が実現するわけです。ここでは、業務プロセスごと、機能ごとに、どのデータに対してどの操作を行うのかを表わすために、該当するセルに、C·R.U·Dの4文字のどれかを記載していきます。

データ(エンティティ)側からの登録・確認

CRUDマトリクスができたら、データ (エンティティ)側からプロセスと機能を確認します。エンティティがきちんと生成(C)·参照 (R)·更新(U).削除(D)されているかをデータ視点で登録し、各エンティティのデータライフサイクル(CRUD)に漏れがないか確認します。

プロセス機能側からの確認

プロセス·機能の側からデータを確認します。更新対象となるデータ (=ンティティ)に対して、プロセス·機能が行う登録·更新の内容を確認しますプロセスとして不足している更新·参照操作がないか確認します。

CRUDの配置方法

CRUDマトリクスのプロセスとエンティティ、もしくは機能とエンティティが交差する欄においてC·R·U·Dを配置する場所を決めておきます。左上がC、右上がR、左下がU、右下がDといった配置が一般的です。

エンティティと業務プロセスの並び順について

エンティティは、サブジェクトエリア単位に分割して管理した上で、イベント系とリソース系に分けて並べた方が分かりやすくなります。さらにイベント系については、業務フローを参照してデータ発生の時系列を想定・確認して、その順番通りに左から右へ順にエンティティを並べます。

業務プロセスも、同様に業務フローを参照して、発生の時系列順に並べます。エンティティと昨日の並び順に関しても、同様の考え方で並べていきます。

テックカテゴリの最新記事