Domain-Driven Analysis and Design using UML & URDAD
Why? Domain-Driven design aims to close the gap between business requirements and code. This course teaches Domain-Driven Design using the Unified Modelling Language (UML) and the Use-Case, Responsibility-Driven Analysis and Design (URDAD) method. The outcome is a services-oriented domain model containing, across levels of refinement, services contract based requirements and the corresponding business process design specifications. The grouping of services into responsibility domains which can be cleanly mapped onto different implementation technologies including distributed micro-services based systems. The requirements and design model remains in the business domain and is technology neutral so that business processes and software architecture 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.
- 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