ドメイン駆動設計(DDD)とは?どめいんくどうせっけい
ドメイン駆動設計(DDD)とは、システムが扱う業務の領域(ドメイン)を、業務の専門家と開発者が共通の言葉(ユビキタス言語)で整理し、その業務知識をそのままプログラムのモデル(ドメインモデル)として中心に置く設計手法。技術の都合よりも業務の本質にコードの構造を合わせる考え方で、エリック・エヴァンスが2003年の著書で体系化した。
最終更新:2026-10-09
基本情報を最短で暗記・合格する →背景
業務担当者が「注文」と呼ぶものを、開発者がテーブル名やクラス名では別の言葉で扱っていると、仕様の食い違いがテスト段階まで見つからない。かつては画面やデータベースの構造からプログラムを組むことが多く、業務のルール(ドメインロジック)があちこちに散らばって修正しにくくなっていた。DDDはその反省から、業務の言葉と構造を1か所に集めることを設計の軸にした。基本情報ではオブジェクト指向設計と並んで「考え方と用語」が問われる。
具体例
大学の履修登録システムなら、「履修」「単位」「先修条件」を教務課の職員と同じ言葉でクラスにし、「先修科目を落とした学生は登録できない」というルールを画面側ではなく履修クラスの中に書く。ネット通販のシステムなら「商品の掲載」「注文と配送」「決済」を別の領域として分け、同じ「商品」という言葉でも、掲載の領域では写真や説明文、配送の領域では重さや大きさのように、領域ごとに持つ情報を変えてよいとする。こうした領域の区切りを境界づけられたコンテキストと呼ぶ。
試験での引っ掛け
エンティティや集約といった用語を並べる技術の話ではなく、業務の複雑さにどこまで投資するかの方針。一覧と登録だけの単純なシステムに使うと層が増えて手間だけ増える。またマイクロサービス(サービス分割)と同じものではなく、DDDの領域の区切りが分割の目安になるという関係にすぎない。
関連用語
出典・参考
公式シラバスの4 開発技術 > 2. 設計 > (9) ソフトウェア設計手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。