😽

DDD(ドメイン駆動設計)のドメインモデルを環世界(Umwelt)で抽出

2024/01/09に公開

記事の概要

この記事では DDD(ドメイン駆動設計) の ドメインモデル を Umwelt(環世界) を使用して抽出することを目的としています。
DDD(ドメイン駆動設計) において ドメインエキスパート とエンジニアが共同作業で ドメインモデル を抽出することを想定しています。
しかし、このアプローチは業務時間の関係上、非常に困難だというのが現状かと思います。
そこで、 Umwelt(環世界) と呼ばれる生物学的なアプローチを使用することを提唱します。
環世界(かんせかい、Umwelt) はドイツの生物学者である ヤーコプ・フォン・ユクスキュル が提唱した生物学の概念。
すべての動物はそれぞれに種特有の知覚世界をもって生きており、その主体として行動しているという考えです。
環世界(Umwelt) は環状リングモデルで生物の行動を 「知覚世界」 => 「活動世界」 に分割します。
環世界(Umwelt) でドメインモデルを 「知覚世界」「活動世界」 に分割して抽出するアプローチは エンジニア と ドメインエキスパート 双方にとって知的で有益な時間を作ることに貢献すると思います。

前提知識

1.ドメイン駆動設計(Domain-driven design)

MVCモデルを進化させた開発手法。コントロール層、ユースケース層、ドメイン層、インフラ層の4つの層に分割して開発を行う。データの構造、共通の業務知識をドメイン層に配置し、ドメイン層内部に共通ロジックを閉じ込めることで、堅牢で拡張性が高いプログラム開発を行うことできる。

2.ドメインモデル

ドメインモデルは、DDD において重要な概念の一つです。 ドメインモデルは、ビジネスドメインに関連する概念、ルール、関係性を表現したものです。 ドメインモデルは、ソフトウェアの開発者やドメインエキスパート(ビジネスの専門)家)と共通で作成され、ビジネスドメインの懸案事項やソフトウェアの要件や設計に反映させるための共通の言語として機能します。
ドメインモデルは、ビジネスドメインの構造や振る舞いを表現するために、クラスや関連、メソッドなどのオブジェクト指向の概念を使用して設計されます。反映させるための基盤となります。
ドメイン駆動設計では、ドメインモデルを中心に据えて、ドメインの問題を解決するためのモジュールやようなコンポーネントを構築していきます。この設計手法により、ソフトウェア開発者はビジネスドメインに集中し、ドメインの知識をもとに効果的なソフトウェアを開発することができます。

ドメインエキスパート(Domain Expert)は、特定のドメイン(業界、領域)に関して専門知識を持つ人物をに向かいます。ます。

3.ドメインエキスパート

ドメインエキスパートは、ソフトウェア開発プロジェクトにおいて、ソフトウェアの開発者や設計者と協力し、ビジネスの要件や目標を正しく、それをソフトウェアの要件や設計に反映させる役割を果たします。や経験、ソフトウェア開発における意思決定や設計上の課題解決に貢献します。

ドメインエキスパートは、業界の専門家、ビジネスアナリスト、マネージャー、エンドユーザーなど、さまざまなバックグラウンドを持つことがあります。彼らは、ビジネスの目標や権利を正しく、ソフトウェア開発チームとのコミュニケーション、ドメインモデルの設計やビジネスルールの明確化などの活動に関与します。

ドメインエキスパートの存在は、ソフトウェア開発において重要であり、彼らの専門知識と経験を活用することで、より正しいソフトウェアの開発や問題解決が可能になります。

4.Umwelt(環世界)とは

環世界(かんせかい、Umwelt) はドイツの生物学者である ヤーコプ・フォン・ユクスキュル が提唱した生物学の概念。
すべての動物はそれぞれに種特有の知覚世界をもって生きており、その主体として行動しているという考え。
ユクスキュルによれば、普遍的な時間や空間(Umgebung、「環境」)も、動物主体にとってはそれぞれ独自の時間・空間として知覚されている。
動物の行動は各動物で異なる知覚と作用の結果であり、それぞれに動物に特有の意味をもってなされる。
特定の生物にとって世界のすべての意味のある側面を含む、生物の記号論的世界です。
つまり、水、食物、避難所、潜在的な脅威、またはナビゲーションの参照点である可能性があります。
生物は、世界と相互作用するときに、独自の環世界を作成して再形成します。
これは「機能サークル」と呼ばれます。
環世界(かんせかい、Umwelt) は、生物のために世界を解釈するのは心であるため、心と世界は不可分であると述べています。
その結果、異なる生物の環世界は異なります。
これは、すべての単一の生物の歴史の個性と独自性に由来します。
2つの環世界が相互作用すると、これにより半球が作成されます。
用語として、環世界はまた、生物のすべての記号論的プロセスを全体に統合します。
内部的には、生物は機能的なサークルで動作するその部分の合計であり、生き残るためには、すべての部分が協調して機能する必要があります。
これは「集合的環世界」と呼ばれ、細胞レベルから上に向かって集中システムとして生物をモデル化します。
これは、必要記号過程連続同じ生物内で動作する他の任意の記号過程に接続されるいずれかの部分のを。
何かがこのプロセスを混乱させるならば、有機体は効率的に作動しません。

実践

環世界(かんせかい、Umwelt) のモデルでは 「知覚世界」 => 「活動世界」 の順番でプロセスが進行します。
知覚世界 とは人間の、興奮、好奇心、刺激を受動的に受け取るドメインを構成します。
知覚世界 においてコンテンツへのコミットメント、探索などが重要視されるため、 知覚世界 は 時間 に支配されています。
活動世界 とは、主体的に行動するドメインによって構成されています。
人間が活動する際に空間へアクセスする為、存在と持続の概念が必要です。
よって、 活動世界 は 身体 に支配されています。
環世界(かんせかい、Umwelt) では8段階プロセスのプロセスが想定されます。
「知覚世界」 => 「活動世界」 のプロセスを四段階ごとに区切って以下の順番でドメインモデルの抽出を行います。

知覚世界

1.政治・・・政府が決定した法律、業界ルール
2.メディア・・・SNS、CMSへ提供するApi
3.ユーザー・・・顧客情報
4.ショップ・・・商品を販売する場所

活動世界
5.従業員・・・店員、オペレーター、管理者
6.販売商品・・・取り扱う商品のカテゴリ、販売形式
7.契約・・・購入方法、B to B 、BtoC
8. 配送・・・配送方法
9.

Discussion