Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Practical_Domain-Driven_Design_-_A_Modeling_Exe...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Mufrid Krilic Mufrid Krilic
September 18, 2026
60

 Practical_Domain-Driven_Design_-_A_Modeling_Exercise_NDC_Oslo_2026.pdf

Avatar for Mufrid Krilic

Mufrid Krilic

September 18, 2026

More Decks by Mufrid Krilic

Transcript

  1. The users are…. 1. Applying their own mental model of

    reality Solving business problems through software requires abstraction of reality Are you able to replicate that mental model while building the software product?
  2. The users are…. 2. Exposed to constraints External constraints might

    cause user to interact with the system in unexpected ways Can you replicate the same constraints while building software product?
  3. The users are…. 3. Operating within a context Context: The

    users have specific needs they are trying to fulfill in a particular moment Context changes over time
  4. Who is the User? • Somebody solving a business problem

    through abstraction of reality • Somebody operating under a set of constraints • Somebody with specific needs
  5. Users vs. Software Products • Why do we keep on

    building systems with generic models of user’s needs?
  6. Who is the User? Why is this “The Most Important

    Question in Software Industry”? Because…. this is why complex IT-systems fail!
  7. The gap between specific needs and generic models • The

    users are expected to adapt to the system, not the other way around • The responsibility for fulfilling user needs is shifted to outside the system
  8. The most important question in software industry “The hardest single

    part of building a software system is deciding precisely what to build.” (Fred Brooks, No Silver Bullet)
  9. What can you expect to learn in the next 2

    hours? Get comfortable with doing modeling in your context Do not settle at the first model!
  10. What can you expect to learn in the next 2

    hours? Do not settle at the first model!
  11. How does a model look like? • Formal model •

    With constraints in the modeling language
  12. How does a model look like? • Code • The

    most formal model of them all
  13. How does a model look like? • Anything you prefer….

    • My preference • Free-form modeling constructing visual sentences
  14. 29

  15. Today’s challenge Understand the model of the business domain Model

    the product/system that solves the needs of the business domain
  16. Bridge between problem and solutions space • Model is a

    language. • We need to speak the same language both in the problem space and solution space.
  17. Detect the Boundaries! • Boundaries from different perspectives • •

    • • End-user Testing Product architecture Software architecture
  18. Detect the Boundaries! • Boundary means multiple models! • •

    Test to see if multiple models could address end-user needs better Model is language • Watch out for language differences
  19. Agenda When What 1020 About Modeling Part 1 Modeling by

    Functions/Tasks 15 minutes Exercise/Skill Builder Part 2 Modeling by Roles 15 minutes Exercise/Skill Builder Learn from each other – visit other groups 1120-1140 Break What happened in real-life story? Part 3 Modeling by Roles and Time 15 minutes Exercise/Skill Builder Part 4 Modeling by Capabilities 15 minutes Exercise/Skill Builder Learn from each other – visit other groups 1230 What happened in real-life story? Wrap-up  You are Here
  20. Domain: Healthcare – Patient Referrals ▪ Referral • Exchange of

    clinical information about the patient ▪ Communication between • Primary healthcare i.e. General Practitioner (GP) • Secondary healthcare i.e. hospitals • Including in-between hospitals
  21. Domain use-cases: Referral Pathways ▪ Referral Reception: • Assigning to

    correct clinical expertise for referral assessment ▪ Referral Assessment: • Evaluating the clinical information in the referral sent from GP/referrer to decide on the most appropriate clinical pathway for the patient
  22. Your role today: Product team! • Model a product/system that

    can help your client support referral process in a better way than with the existing system • Client: • Head of a moderate-size hospital in Norway • 14000 employees • 1 million patient appointments per year
  23. What do we have at our hospital? • Legacy patient

    record system in production for many years • Many manual routines added to “keep the system afloat”
  24. You just showed us a model! • This was a

    model indeed! • • Model of problem space You will model solution space ☺
  25. Different kinds of models As-Is To-Be • Model of the

    existing sociotechnical process • We want a new model for improved product/system support This was presented with Event Storming This is your task for today!
  26. Functional Decomposition • Boundaries in the system follow the function

    that a user needs to do hers/his job • Classic approach • Boundary = Function
  27. Model a product/system for Referral Pathway thus far • Build

    a model based on functions/tasks • Example of a function/task: Sending a letter to patient • Be clear about boundaries in the product/system • Test the model on the scenario in the problem space • If time
  28. Agenda When What 1020 About Modeling Part 1 Modeling by

    Functions/Tasks 15 minutes Exercise/Skill Builder Part 2 Modeling by Roles 15 minutes Exercise/Skill Builder Learn from each other – visit other groups 1120-1140 Break What happened in real-life story? Part 3 Modeling by Roles and Time 15 minutes Exercise/Skill Builder Learn from each other – visit other groups Part 4 Modeling by Capabilities 15 minutes Exercise/Skill Builder 1230 What happened in real-life story? Wrap-up  You are Here
  29. Role-based decomposition • Boundaries in the system based on which

    roles perform different functions • Leads to more task-oriented model • Boundary = Role based function
  30. Model a product/system for Referral Pathway thus far • Build

    a model based on roles added to the presented model • Example of a role: human and system actors • Be clear about boundaries in the product/system • Model boundaries around which roles perform different functions • Test your model on the scenarios from problem space • If time
  31. Agenda When What 1020 About Modeling Part 1 Modeling by

    Functions/Tasks 15 minutes Exercise/Skill Builder Part 2 Modeling by Roles 15 minutes Exercise/Skill Builder Learn from each other – visit other groups 1120-1140 Break What happened in real-life story? Part 3 Modeling by Roles and Time 15 minutes Exercise/Skill Builder Learn from each other – visit other groups Part 4 Modeling by Capabilities 15 minutes Exercise/Skill Builder 1230 What happened in real-life story? Wrap-up  You are Here
  32. Time- and role-based decomposition • Boundaries in the system based

    on which roles perform different function at different times • Supports context-oriented systems • Boundary = Role-based function in a user context
  33. Model a product/system for Referral Pathway thus far • Build

    a model based on roles and time • Can you model Time explicitly? • Hint: What do you think happens first? Look at the Hot-Spots! • Be clear about boundaries in the product/system • Model boundaries around which roles perform different functions at different times • Test the model on the scenarios from the problem space • If time
  34. Agenda When What 1020 About Modeling Part 1 Modeling by

    Functions/Tasks 15 minutes Exercise/Skill Builder Part 2 Modeling by Roles 15 minutes Exercise/Skill Builder Learn from each other – visit other groups 1120-1140 Break What happened in real-life story? Part 3 Modeling by Roles and Time 15 minutes Exercise/Skill Builder Learn from each other – visit other groups Part 4 Modeling by Capabilities 15 minutes Exercise/Skill Builder 1230 What happened in real-life story? Wrap-up  You are Here
  35. Departments •Accident and Emergency Department •Anaesthesia and Surgical Services •Cancer

    Treatment and Medical Physics •Children and Youth Clinic •Clinical Nutrition •Communication •Department of Occupational Therapy •Dermatology •Emergency Clinic •Emergency Department Short Stay Unit •Finance •Haukeland hotel •Heart Disease •Human Resources •Internal Medicine •International Collaboration •Laboratory Medicine and Pathology •Maternity Ward •Medical Biochemistry and Pharmacology MBF •Medical Genetics •Neurology •Neurosurgery •Occupational Medicine •Occupational Outpatient Clinic •Ophthalmology •Oral Surgery •Orthopedic Clinic •Radiology department •Physiotherapy •Recruitment and Temporary Staffing Office •Psychiatry •Regional Centre for Asthma, Allergy and Other Hypersensitivity illnesses in Western Norway •Research and Development •Rheumatology •Secretariat for hospital management •Surgical Clinic •The Cancer Center for Education and rehabilitation- CCER •The Norwegian Arthritis Registry NorArthritis •The Norwegian Porphyria Centre NAPOS •Thoracic Medicine •Treatment abroad •Tuberculosis clinic •Women's Clinic
  36. • Emergency Department: • Acceptance of emergency aid (medical and

    surgical). • Internal Medicine Department: • Treatment of diseases of the internal organs, cardiovascular, and geriatrics. • Surgical Department: • General surgery, often focused on day surgery and planned procedures. • Maternity Ward / Birth center: • Services for pregnant women with expected normal births (some small hospitals only have midwife-led units). • Radiology / X-ray Department: • Image diagnostics such as CT, ultrasound and conventional x-ray. • Laboratory Medicine / Blood Bank: • Blood sample collection and analysis, including a blood bank in some places. • Anesthesia and Intensive Care Unit: • Handling of critically ill and pain management. • Ambulance Service: • Often closely linked to the hospital.
  37. Decompositions by business capabilities • Boundaries in the system follow

    the capabilities that the business offers its’ customers • Boundary = Business Capability • • Boundary ≠ Function Model around the way the business is organized!
  38. Model a product/system for Referral Pathway thus far • Build

    a model based on capabilities in the hospital • Hint: Look out for the differences in the working process • Hint: Look out how the hospital is organized • Be clear about boundaries in the product/system • Model boundaries around the purpose for the hospital
  39. Product Architecture Which users are we tailoring our products for?

    The cost of developing separate products for separate user groups The cost of customizing the product for diverse user groups
  40. Software Architecture Aligning system boundaries with business intent Specific domain

    model highly aligned with needs of specific user groups Re-usable generic domain model that can be adapted to serve needs of multiple user groups
  41. Core Domain • The thing that distinguishes you from the

    competitors • “Not every part of the system will be well-designed” • • Generic subdomain Supporting subdomain
  42. Thank You! Interested in mentoring on DDD and Software Architecture?

    Get in touch! • [email protected] Helping Build Domain-Driven Product Organizations
  43. Images • Vecteezy.com • Tim Hüfner • https://unsplash.com/@joshua_hoehne • https://unsplash.com/@kattyukawa

    • https://unsplash.com/@brett_jordan • https://unsplash.com/@andrewtneel • https://unsplash.com/@modestasu