« 法務脳の作り方part1 | トップページ | マルチプロジェクトのWF型開発にはRedmineのどんな機能が必要なのか »

2016/09/21

ドメイン駆動設計の方程式はOO+XP=DDD

増田さんの資料に「OO+XP=DDD」と書かれていて、ああこれだ、と思ったのでメモ。
ドメイン駆動設計に関する素晴らしい資料だと思う。
以下はラフなメモ書き。
特に主張はなし。

「人間の知りたいこと/やりたいことを定義する。内部の実装(データ型と処理手続き)は見せない」
「業務の関心事を抽象データ型として表現する」
「変数名ではなく、「型(クラスとインタフェース)」と「メソッド名」で 意図を表現することを習慣にする」
などの文章がすごく心の琴線に触れた。

業務システムの設計では、まさにユーザの業務、たとえば、発注・販売・請求・入金などの業務のモデリングでも使える。

丁度、法務について勉強していると、法律の内容がすごく分かりにくく感じていて、フラストレーションが溜まっていた。
しかし、上記の資料を読んで、法律の内容はまさにドメインモデル、概念モデルに相当するな、と気づいた。

「AさんがBさんと結んだ金銭貸借消費契約を破って、お金を返さない」「Aさんが、Bさんの財産を勝手に盗んだという不法行為を行った」「AさんがBさんに土地を売ったのに、Cさんにも二重譲渡した。」などの要件事実に対し、法律の要件を当てはめて、誰が権利を主張できるのか、誰の権利を侵害したのか、を導き出す。
その時に、法律の内容は概念モデルであり、クラス、メタモデル。
それぞれの要件事実はインスタンス、オブジェクト図。
話しているレベルが違う。

更に、その内容はできるだけ、人が分かるようなドメインで表現した方が分かりやすい。

但し、ITエンジニアが概念モデルを描こうとすると、どうしてもプログラムぽく、内部の実装処理をイメージしてしまうため、メタモデルにしにくい時が発生するのは注意。

|

« 法務脳の作り方part1 | トップページ | マルチプロジェクトのWF型開発にはRedmineのどんな機能が必要なのか »

ERP・財務会計・経済学」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 法務脳の作り方part1 | トップページ | マルチプロジェクトのWF型開発にはRedmineのどんな機能が必要なのか »