DDD / GLOSSARY


用語集 (P511)

要約

A B C D E F I L M R S U V W

A

AGGREGATE (集約)
データ更新の単位として関連づけられた一群のオブジェクト.外部からの参照は,ルートと呼ばれる集約の一要素に制限される.集約の境界内には一貫性の規則が適用される.
analysis pattern (アナリシスパターン)
ビジネスモデリングにおける共通の構造を表現した概念の集まり.それは一つのドメインに関連するものもあれば,複数のドメインに渡るものもある.
ASSERTION (表明)
プログラムの正しい状態の記述.その実現方法からは独立している.一般的に,表明は操作の結果やデザイン要素の不変性を規定する.

B

BOUNDED CONTEXT (コンテキスト境界)
特定のモデルに適用される境界.コンテキスト境界は,一貫性と独立性に対する明快で共有された理解をチームのメンバにもたらす.

C

client (クライアント)
設計された要素の能力を利用するために,その要素を呼び出すプログラム要素.
cohesion (凝集度)
論理的な協調性と依存性.
command (a.k.a. modifier) (コマンド,あるいは修飾子)
システムに変化をもたらす操作 (変数を設定するなど).副作用を意図した操作.
CONCEPTUAL CONTOUR (概念の輪郭)
ドメイン自体に内在する一貫性.それがモデルに反映されることにより,設計がより自然に適合することを助ける.
context (文脈)
単語や文の意味を決定する状況.BOUNDED CONTEXT も参照.
CONTEXT MAP (コンテキストマップ)
プロジェクトやモデルにおける,コンテキスト境界の表現.
CORE DOMAIN (中核ドメイン)
モデルの特徴的な部分,ユーザのゴールの中核,アプリケーションに違いをもたらし,価値を生むもの.

D

declarative design (宣言的デザイン)
特性の正確な記述が実際にソフトウェアを制御するようなプログラミング形式.実行可能な仕様.
deep model (深甚なモデル)
ドメイン専門家と彼らにもっとも関連した知識の主要な関心事の鋭い表現.深甚なモデルは,ドメインの表層と稚拙な解釈を削ぎ落としたものである.
design pattern (デザインパターン)
特定の状況における一般的な設計上の問題を解決するための,オブジェクトやクラス間のコミュニケーションの記述.
distillation (蒸留)
より多くの価値と利便性を得るために本質を抽出し,コンポーネントを分割するプロセス.ソフトウェア設計においては,モデルのキーとなる側面の抽出や,大きなシステムを分割して中核ドメインを表面化すること.
domain (対象領域)
知識,影響,活動の範囲.
domain expert (ドメイン専門家)
ソフトウェアの開発よりも,アップリケーションの対象領域を専門とするプロジェクトのメンバ.ソフトウェアの単なるユーザではなく,ドメイン専門家は主題に対する深い知識を持つ.
domain layer (ドメイン層)
層状アーキテクチャにおいて,ドメインロジックの設計と実装を責務とする部分.ドメイン層は,ソフトウェアとして表現されるドメインモデルが存在する場所である.

E

ENTITY (エンティティ)
自身の属性値ではなく,連続した生涯と同一性を基礎的な定義とするオブジェクト.

F

FACTORY (ファクトリ)
複雑な生成処理をカプセル化し,クライアントのためにオブジェクトを生成する方法を抽象化するメカニズム.
function (関数)
観測可能な副作用を伴わず,計算をして結果を返す操作.

I

immutable (不変性)
生成された後,観測可能な状態が変更されない特性.
implicit concept (暗黙的な概念)
モデルや設計の意味を理解するために必要だが,言及されることのない概念.
INTENTION-REVEALING INTERFACE (意図の明白なインタフェース)
クラス,メソッド,その他の要素の名前が,最初の作成時におけるオリジナルの開発者の目的と,それらを利用する開発者に提供する価値の,どちらにも意味のある設計.
invariant (不変条件)
メソッドの実行中や,データベーストランザクションがコミットされるまでなどの一時的な状況を除いて,常に真でなければならない設計要素の表明.
iteration (反復)
プログラムを改善する小さなステップを繰り返すプロセス,あるいはそのステップ.

L

large-scale structure (大まかな構造)
システム全体の設計パターンを確立するための高水準の概念またはルール,あるいはその両方.システムについて大まかな議論や理解を可能にする言語.
LAYERED ARCHITECTURE (層状アーキテクチャ)
ソフトウェアシステムの関心事,特にドメイン層を分離するテクニック.
lifecycle (ライフサイクル)
オブジェクトが生成されてから削除されるまでの一連の状態.特に,ある状態から別の状態に遷移する際の完全性を保証する制約.異なるシステムやコンテキスト境界との間でのエンティティの移行を含むこともある.

M

model (モデル)
対象領域から選択したある側面を記述し,対象領域の問題を解決するために使うことができる,抽象的なシステム.
MODEL-DRIVEN DESIGN (モデル駆動設計)
ソフトウェア要素の一部がモデルの要素に密接に対応するような設計.また,モデルと実装がそれぞれ連携して共同開発されるプロセス.
modeling paradigm (モデリングパラダイム)
対象領域の概念を切り出す特定の方法や,それらと概念に類似したソフトウェアを構築するためのツールの組み合わせ (例:オブジェクト指向プログラミング,論理プログラミング).

R

REPOSISTORY (リポジトリ)
オブジェクトの集まりに対して保管,回復,検索するメカニズムをカプセル化したもの.
responsibility (責務)
義務として実行すべきタスクや持つべき知識 (レベッカ・ワーフスブラック他著「オブジェクトデザイン」原書 P3).

S

SERVICE (サービス)
モデル内で独立していてカプセル化すべき状態を持たない,インタフェースとして提供される操作.
side effect (副作用)
更新しようとする意図があるかどうかに関わらず,操作の結果として観測される状態の変化.
SIDE-EFFECT-FREE FUNCTION (副作用の無い関数)
function 参照.
STANDALONE CLASS (独立したクラス)
システムのプリミティブやベーシックなライブラリを除いた他のオブジェクトを参照することなく,理解およびテストが可能なクラス.
stateless (ステートレス)
クライアントがある要素の履歴を気にすることなく,その操作を利用できるような設計要素の特性.ステートレスな要素は,グローバルにアクセスできる情報や,グローバルな情報の更新 (副作用によるかもしれない) に使われ,プライベートな状態や振る舞いには影響がない.
strategic design (戦略的設計)
システムの大部分に適用されるモデリングや設計上の決定.その決定は,全プロジェクトおよび,チームレベルの決定に影響する.
supple design (しなやかな設計)
開発者がモデルを深く推察する力を与え,明快さ,柔軟な表現,確実な結果を期待できるような設計.同様に重要なことは,同じ深いモデルは新たな洞察に対応する形成と再構築により,設計自体を容易にする.

U

UBIQUITOUS LANGUAGE (ユビキタス言語)
ドメインモデルの周囲に構築される言語.それはチームの全てのメンバと,ソフトウェアに関するチームの活動全てをつなぐために使われる.
unification (統一性)
各項目に曖昧さがなく,矛盾したルールもない,モデル内の一貫性.

V

VALUE OBJECT (値オブジェクト)
いくつかの特性や属性で記述され,識別性の概念を持たないオブジェクト.

W

WHOLE VALUE (全体価値)
単一で完全な概念をモデル化するオブジェクト.

担当者のつぶやき

みんなの突っ込み

  • ゆるふわ設計・・・いえ、何でもないです -- 2008-08-23 (土) 04:41:46

まとめ (議事録)