Firstly, a decent UML modelling tool will let you hide all the internal guff, 
and concentrate on the public API. I’ve used Sparx Enterprise Architect for 
many years, would recommend.

If you still find that your diagrams are cluttered with public, but 
non-business-relevant properties, your domain objects may well ... not be 
domain objects, or at least may be additionally burdened with implementation 
concerns. This is very common, and normally (to me) indicates that behavioural 
aspects of the domain have not been modelled directly (as Policy objects and so 
forth), but are scattered through the ‘domain objects’ as methods.

Don’t worry if you don’t get it right first time. If at least you get to the 
point where the names of the classes on your UML model match the names of the 
entities as discussed with the business, you have at least started to get some 
of the benefits of DDD.

As an aside, for making the actual domain code itself readable by business 
users (without a UML abstraction), you should seriously consider working in a 
higher level language, for example F#. Scott Wlaschin makes an excellent case 
for why F# is awesome for DDD in this talk (slide 34 to 35 is the penny-drop 
moment): 
https://www.slideshare.net/ScottWlaschin/domain-driven-design-with-the-f-type-system-functional-londoners-2014
 (also on Vimeo with audio https://vimeo.com/97507575 ). NB: You do not need to 
be a FP wonk to appreciate this talk.

From: kirsten greed
Sent: Tuesday, 6 February 2018 5:22 AM
To: ozDotNet
Subject: Class diagrams and tools for communicating with clients

Hello all.
After revisiting "Domain Driven Design"
I want to try using class diagrams to communicate with my client.
However my classes are cluttered with internal properties that are not relevant 
to our conversations

I thought of trying interfaces for example


public interface ISnapInModel
        {
         
                IBlank Blank { get;  set;  }
        }

public interface IBlank
      {
            public int Height {get;set;}
            public int Width {get;set;}
      }


However when I try to create a class diagram in VS2017 no association draws 
between the two interfaces.

Is there a better way?
Thank you


Reply via email to