Products

Home / Support for EA Modelling With eaTeamWorks / Insights / How to condense your domain class diagrams

How to condense your domain class diagrams

Advice for the new modeller #2 – (not) Melting the Pan

I was once loosely attached to a team who had been given the job of modeling a particular industry. Lets say it was Insurance.

They were given some money and some offices, and told to go away and create an industry model, which could be used as the basis for customer solutions. One model for all aspects of the industry – think of the time and money it would save in creating solutions, and even more in integrating them together.

The first time I saw the model, it was going OK. They had about 200 domain model classes, with things like Premium and Customer, Policy and Claim, but lots of gaps which they just hadn’t had time to fill.

Second time, a few months later, it was up to 600+. This model was now much more comprehensive, at least in the view of those who knew more about the industry than me. Had all the stuff from the first version, and a whole lot more. They looked to be nearly finished.

The final time, several months later, they had only just finished, and the model was visibly smaller. The pile of paper, which was the printout of the model, was a fraction of the height it had been last time. Back to fewer than 200 classes. What happened?

We looked at the detail. We looked for Policy – the heart of any insurance system.

Nowhere.

We looked again, at about where it was the last time we looked. There was something called maybe Entity_Offering_Link. Which if the Entity is a Customer, and the Offering is ‘Insurance’, then maybe is a policy.

So what had they done? They’d started out by modelling the terms they heard the experts used, then, like good modellers do, looked for common abstractions to make things simpler. And went on and on, finding ever more abstract ideas, to ‘simplify’ the model. Until the ‘Insurance-ness’ disappeared altogether. Entity-Offering_Link could equally be an airline ticket, or a order placed at McDonalds. And links between things no longer had real names. All the ‘stuff’ was connected though a generic class, where the purpose of the link was soft-coded as a variable in the link.

Super flexible. Super abstract.

Super hard to understand.

Melting the pan

If you’ve ever made stock for cooking, you know that you start out with all the ingredients, and a whole lot of water. What you want is the concentrated flavor, so you start to boil the mixture.

Gradually the water boils away, and you get to a rich, highly flavored liquid, which has the concentrated essence of the initial ingredients. Then you stop boiling.

Because if you carry on, what happens is the liquid gets thick and gunky, and eventually goes dry, and finally you start to melt the pan.

This isn’t concentrated anything. It’s a fire hazard.

So be aware when you do your solemn duty as a modeler and make abstractions. Don’t get so cute that the essence of the model goes away, It must still have the ‘stuff’ which makes it an insurance or an airline or a restaurant model. It should not need a modeling expert to explain it to a domain expert.

So if you’re managing such a team, beware of letting them model too long. And get the model reviewed frequently, by people who know the area but not the modeling style. Then get it reviewed for style by a modeling expert, before it’s too late, and your stock tastes of melted metal.

(first published on the “Artful Modeler” blog in 2015.)

More Insights

The eaTeamWorks product philosophy

22 November 2023

The eaTeamWorks product philosophy is simple - and it's all about you, the modeler.

Learn More

The role of diagrams in Enterprise Architect

20 November 2023

Not every modeling problem can be solved with a diagram. Some diagrams are essential, some are useful, but some may be misleading. But which ones?

Learn More

Explaining modelling

22 June 2023

..or, "how to reduce 20 years of modelling into 5 bullets". If you need to explain to someone what we do, try this short explanation.

Learn More

Where to start modelling

22 June 2023

Faced with an empty model and a problem to solve, where should you start? Some advice for people with no modelling experience

Learn More

Creating useful, long-lasting process models

22 June 2023

Process models are hard to maintain. Maybe that's because they have poor structure. Here are some ways to give them a longer life.

Learn More

eaTeamWorks Launch: What does this change mean for me?

15 June 2023

Information for existing eaDocX, Model Expert and Portfolio Manager license holders

Learn More

Create useful models using Sparx EA

1 June 2023

Advice for the new modeller #3 - Producing useful outputs with your new EA tool.

Learn More

What needs to be included in your EA model content?

1 June 2023

Advice for the new modeller #4 – (not) Modelling The World

Learn More

Beginners guide to Enterprise Architect software

1 June 2023

Our advice for new EA modellers

Learn More

Simplifying ideas in a BPMN Process Diagram

1 June 2023

How to find the right number of ideas to include in your model.

Learn More

Beck’s Map: an EA model abstraction example

1 June 2023

Possibly the best model abstraction in the world

Learn More

Process based model styles

1 June 2023

How to use BPMN and UML to make models which last.

Learn More

Where to start with Enterprise Architect data modeling

1 June 2023

BPM Tips: Advice for the new modeler #1

Learn More

Reading diagrams

1 June 2023

Why some diagrams are better than others, how to present diagrams, and how big or small to make them

Learn More

Putting EA at the heart of your business

1 June 2023

Ian's workshop at the EA Global Summit on September 14th 2022

Learn More

Compare licence prices

Choose the licence that’s right for you and your team

Prices

Download a free trial

Download eaTeamWorks today for several free for life features, plus no obligation, 30-day trials of all the products: eaDocX, ea Revision Manager, eaSheets, Model Expert and PortfolioManager. Discover for yourself why we sell the world’s best-selling Enterprise Architect extension.

Download