ドメイン駆動設計
ドメイン駆動設計（、DDD）とは、ドメインの専門家からの入力に従ってドメインに一致するようにソフトウェアをモデル化することに焦点を当てるソフトウェア設計手法である。オブジェクト指向プログラミングに関しては、ソースコード（クラス名・クラスメソッド・クラス変数）の構造と名称がビジネスドメインと一致させる必要があることを意味する。例えばローンの申し込みを処理するソフトウェアには、"LoanApplication"や"Customer"などのクラスと、"AcceptOffer"や"Withdraw"どのメソッドが含まれることになる。ドメイン駆動設計は次の目標に基づいている。
ドメイン駆動設計では、開発者は通常モデルを純粋で有用な構造として維持するために大量の分離とカプセル化を実装する必要があると批判されているが、ドメイン駆動型設計は保守性などの利点を提供する。一方でMicrosoftは、モデルがドメインの共通理解を策定する上で明確な利点を提供する複雑なドメインにのみ推奨している。この名称は、Eric Evansが著作"Domain-Driven Design: Tackling Complexity in the Heart of Software"で用いた。