ドメイン駆動設計(DDD)
Domain-Driven Design
どめいんくどうせっけい
ビジネスドメインの知識を中心に据えてソフトウェアを設計する手法。ユビキタス言語、境界づけられたコンテキスト、集約、エンティティ、値オブジェクトなどの概念を用いる。Eric Evansが提唱した。
Related
他の資格での定義
ビジネスドメイン(業務領域)の知識を中心に据えてソフトウェアを設計する手法。ドメインモデル、ドメインロジック、ユビキタス言語などの概念を用い、業務の複雑さをソフトウェアに正確に反映する。DDDと略される。
業務ドメインの知識を中心にソフトウェアを設計する手法。ドメインモデル、ドメインロジック、コンテキストマップ、ユビキタス言語、エンティティ、値オブジェクト、サービスなどの概念を用いて、業務の本質をコードに反映する。
ビジネスドメインの知識を中心に据えてソフトウェアを設計する手法。ユビキタス言語、境界づけられたコンテキスト、集約、エンティティ、値オブジェクトなどの概念を用いる。Eric Evansが提唱した。
業務の対象領域(ドメイン)の知識をモデルとして表し、そのモデルを中心にソフトウェアを設計する手法で、エリック・エヴァンスが提唱した。業務の専門家と開発者がユビキタス言語でモデルを作り、境界づけられたコンテキストで範囲を区切り、エンティティや値オブジェクトなどの要素で実装する。
Related
関連キーワードの用語
Robert C. Martinが提唱したアーキテクチャパターン。エンティティ、ユースケース、インタフェースアダプタ、フレームワーク・ドライバの同心円構造で、依存関係を内側に向ける。ビジネスルールを外部技術から独立させることを目的とする。
明確に定義されたインタフェースを持ち、独立して開発・配備・置換が可能なソフトウェアの構成単位。再利用性が高く、コンポーネントベース開発(CBD)ではシステムをコンポーネントの組み合わせで構築する。
Alistair Cockburnが提唱したアーキテクチャパターン。ポートとアダプターによりアプリケーションのコアロジックを外部システム(UI、DB、外部サービス等)から分離する。テスト容易性と技術的変更への柔軟性を高める。
ソフトウェアをModel(データ・ビジネスロジック)、View(表示)、Controller(入力制御)の3つの役割に分離するアーキテクチャパターン。各要素の独立性を高め、保守性と拡張性を向上させる。
システムを、独立して開発・配置できる小さなサービスの集まりとして構成する方式。サービス単位で改修や増強ができる一方、サービス間の通信やデータの整合性の管理は複雑になる。
複数の要件や品質特性の間で、あるものを優先するとほかが犠牲になる関係を分析・評価すること。性能と保守性、コストと品質など、相反する要件間の最適なバランスを見つけるためにシステム設計で広く用いる。
