← Back to Training
Celtico

iSAQB® Accredited Training

CPSA Advanced Level - Domain Driven Design

CPSA-A Badge
Credit Points: 20 Methodological Competence + 10 Communicative Competence

Course Overview

Domain-Driven Design is an approach to software development that focuses on the complexity of software projects by focusing on the core business of the organization and its logic. Participants will learn the basic concepts and building blocks of DDD, including ubiquitous language, domains, subdomains, bounded contexts and context maps.

The training teaches how to effectively model complex business domains and how to map business processes into software. In strategic design, we learn how to divide a system landscape into bounded contexts and develop effective communication and integration between these contexts.

Learning Objectives

We deal with tactical patterns such as aggregates, entities, value objects, repositories and services. We use these to create a clean, modular and maintainable code base. After completing this training, you'll be able to apply DDD principles to your own projects and establish domain-driven practices in your organization.

Target Audience

Software developers, architects, enterprise architects, project managers, business analysts, product managers, and IT managers involved in the design, development and management of software products.

Prerequisites

  • Knowledge at CPSA Foundation Level (the CPSA-F certificate itself is not required)
  • Knowledge of agile methods (Scrum, Kanban, XP) is advantageous
  • Fundamentals of object-oriented software development
  • Experience in collaboration between specialist departments and developers

Detailed Curriculum

A. Basic Principles & Philosophy

  • Cognitive Team (over) Load & DDD
  • The central importance of the business domain in DDD
  • Other relevant concepts in DDD
  • Understanding complexity in software systems
  • The role of ubiquitous language

B. Strategic Design

  • The focus of Strategic Design
  • Generating and structuring business knowledge through collaborative modelling
  • Bounded contexts and the business domain
  • Context Mapping: Integration strategies for Bounded Contexts
  • Subdomains and their classification
  • Communication patterns between contexts

C. Tactical Design

  • The focus of Tactical Design
  • The key elements for Tactical Design
  • Aggregates and aggregate roots
  • Entities and value objects
  • Domain events and event sourcing
  • Repositories and services
  • Architectural styles in the context of DDD

D. Practical Application

  • The optimization of refactorings using DDD
  • Establish DDD in your own organisation
  • Suitable workshop setups & technical tooling
  • Event Storming and other collaborative techniques
  • Integrating DDD with existing architectures

Included Teaching Materials

  • Comprehensive slide deck
  • Vlad Khononov "Learning DDD" book
  • Prepared Miro Board
  • Interactive Kahoot quizzes
  • Exercise sheets with case studies