ドメイン駆動設計
ドメイン駆動型設計は、多くの高レベルの概念と実践を明確に示している。最も重要なのはドメインであり、ユーザーがプログラムを適用するサブジェクト領域は、ソフトウェアのドメインである。ソフトウェアのドメインは、そのコンテキスト、つまり、その意味を決定する単語またはステートメントが表示される設定を管理する。このことから、開発者はドメインモデルを構築する。これは、ドメインの選択された側面を記述し、そのドメインに関連する問題を解決するために使用できる抽象化のシステムである。ドメイン駆動設計のこれらの側面は、ユビキタス言語を促進することを目的としている。つまり、ドメインモデルは、システム要件、ビジネスユーザー、スポンサー、および開発者を記述するためにドメインの専門家によって共有されるcommon language(共通言語)を形成するべきである、という考えである。ドメイン駆動設計では、ドメイン層(英語版)はオブジェクト指向の多層アーキテクチャの共通層(英語版)の1つである。