Domain-Driven Design

Domain-Driven Analysis and Design using UML & URDAD

Why? Domain-Driven Design (DDD) and Behaviour-Driven Design (BDD) aim to close the gap between business requirements and code. This course extends on DDD and BDD by providing business analysts and software developers a common methodology (URDAD) and technology-neutral UML-based business model which can be extended and refined by both, business analysts and software developers. The resultant business model is a services-oriented domain model containing, across levels of refinement, services contract based requirements. the corresponding business process design specifications and the data structure of the value objects used to provide the required information and to update the business entities. The grouping of services into responsibility domains which can be cleanly mapped onto different implementation technologies including distributed micro-services based systems. Since the requirements and design model remain technology neutral (in the business domain) application/business business processes adressing the primary functional requirements and software architecture design adressing non functional requirements can be evolved independently. Furthermore, resultant systems remain close to the business domain and are understandable, maintainable, flexible and have a high level of code reusability. For software developers the course includes some additional material and additional face-to-face sessions covering formalization of the domain model to facilitate artefact generation like the generation of requirements and design documents, code and functional tests.

For whom is this course?

  • Business Analysts who want to learn UML and have a systematic approach for designing business processes and supporting business data.
  • Software developers who need to refine high-level requirements into detailed requirements and design a solution from which functional tests and the application code is generated either manually or using model-driven code generation tools.
  • Team leads who need to provide design guidance and review the detailed requirements and design.
  • Software architects who commonly focus on the analysis and design of critical system elements and who need to provide guidance for and oversee the application design processes.

Course content

  • A solid understanding of
    • Domain-Driven Design (DDD),
    • Behaviour-Driven Design (BDD), and
    • Test-Driven Development (TDD).
  • A solid coverage of the Unified Modelling Language (UML) with an emphasis on best practices covering
    • Use case diagrams for scoping
    • Class diagrams for data structure and service contract specification.
    • Specifying interactions using sequence diagrams.
    • Detailed process design using activity diagrams.
    • Package diagrams to show module dependencies
    • Deployment diagrams
  • Implementation Mapping guidelines
    • for object-oriented programming languages like Java
    • for XML
  • Use-Case, Responsibility Driven Analysis and Design (URDAD)
    • Overview of the systematic analysis and design method
    • The scope view
    • The service contract view
    • The process specification view
    • Transition across levels of granularity
    • Model verification
  • Optional: Model-Driven Engineering
    • Understanding of OMG’s Model Driven Architecture (MDA)
    • Generating documents, code and tests from an URDAD model



The Domain-Oriented Analysis and Design course using UML & URDAD is part of the

Scroll to Top