Hanatare's PaPa

Make life a little richer.

Virtual Space of Hanatare's PaPa

人生をほんの少しだけ充実させる

CRUD図の重要性と作成時のポイントまとめ

記事のポイント
  • CRUD図が必要になる場面(必ずしも必要ではない)
  • CRUD図の重要性
  • CRUD図の作り方

先日仕事でCRUD図を久々に作成しました。その際フォーマット含めて、すべて自由に作成して良いという指示を受けたので、 あらためて、CRUD図を書くときに考えるポイントやどう書くほうがよいかを考えました。 自分にとって基礎的な部分を振り返る良い機会だったと思うので、備忘の意味も含めて記事に残しておきたいと思います。

 CRUD図とは?

『Create』『Read』『Update』『Delete』の頭文字をとってCRUDと呼びます。データ操作を行う際の代表的なアクションは大きく以下の4つがあげられます。

データ操作のアクション

  • データの生成(Create)
  • データの読み込み・参照(Read)
  • データの更新(Update)
  • データの削除(Delete)

この4つデータ操作のアクションを表形式などのまとめた図をCRUD図(クラッド図)と呼びます。

 CRUD図はどういった場面で必要か?

個人的にCRUDは案件の規模によって作る・作らないの判断をされる気がします。 作ったほうが良いというのはあっても、資金や作業時間の関係上、規模が小さくなるほど作らないというケースは多いというのが私の経験です。

 CRUD図の作成要否を考える際の案件規模(筆者個人の考え)

案件の切り口はさまざまですが、今回はCRUD図を作成するにあたっての判断基準ということで、個人的見解で定義付けをします。

CURDを作成が必要になる規模案件5人以上または、人の流動性が大きい案件での開発・テスト・保守を行う場合を考えます。 機能・テーブル共に、10機能(テーブル)以上を目安に考えています。 逆に上記の規模よりも小さければCRUDの作成は不要と考えても良いと思います。

 CRUD図の重要性

では、なぜ規模間でCRUD図作成の要否が決まるのかというとCRUD図の使用されるケースを考えているからです。

私の場合、CRUD図があって助かったと思うケースは以下のようなケースです。

  • ・改修が入った場合の影響調査
  • ・結合テストなどでスタブを使ってのテストを実施する際のデータ作成

 機能改修の影響調査

機能改修が入った際に、テーブルのレイアウト変更などが必要になると、このCRUD図は非常に有効です。 テーブルレイアウトを変更する際、他機能への影響箇所をCRUD図で確認でき、機能修正範囲を洗い出すことが容易になります。

 結合テスト時のデータ作成

結合テスト実施時にすべての機能が完成していない場合、スタブを作ってテストをすることが多々あります。その際、対象の機能のテストをするために利用するテーブルはどれで、そのテーブルはどこでデータが作られ、また更新されるのか?といったことを確認する際にこのCRUD図は非常に役立ちます。CRUD図がない場合、テスターが自分でデータを作成するためには操作ログなどからDB操作を探したり、 設計書を1つ1つ開いて中身を確認して、DB操作をしている機能を探すということをしなくてはいけません。 CRUD図があれば、対象のDBに対して操作している機能を探すことが容易になるので、それだけで作業の時間短縮につながります。

 CRUD図の作り方

では、CRUD図はどのように作ればよいのでしょうか? ここでは、あくまで筆者がCRUD図を作成する際に気をつけているポイントを紹介したいと思います。 ここでは、前提としてExcelを使ったCRUD図の作り方という点で今回はお話をします。

私が作成する際に気を付けるのは以下の点です。

  • ・Excelのフィルター機能を活用できるようにする

 列に書く内容と、行に書く内容

CRUD図と設計書の大きな違いは、システムを網羅的に確認できるかどうかです。 そのため、テーブル(エンティティ)を列にして、機能を行にして表を作ることが私の場合は多いです。 そして、そして機能が操作するテーブルに対してそのアクションを『CRUD』で記載をします。 該当テーブルがどこで利用されているかを把握する際にその列のフィルターで項目を絞ることで 機能をすぐに洗い出すことができるからです。 具体的には以下のようなイメージです(ものすごく簡易な図です)

 まとめ

最初に記載した通りCRUD図は必ず作らないといけないものという資料ではないというのが私の考えです。 ただし、以下のような条件下では、CRUD図は効果を発揮し、必要であると私は感じます。

  • ・システムの規模大きくなり、一人ではすべてを把握できない
  • ・多くのメンバーが関わるプロジェクト

CRUD図は機能を横串で確認し、全体間を把握することを助けてくれます。 全体間を正確に把握することができれば、現場での障害を減らすことにもつながりますし、 要件漏れや確認不足といったことから起こる失敗・ミスを減らすことにもつながります。 今回の記事がこれからCRUDを書くことになる方、CRUDって何だ?と思われている方の参考になっていれば幸いです。