Improving model quality using a Sparx EA reference model
Maintain quality with tools to find and fix mechanical errors in your modelling
I’m currently working with a client who is capturing a load of project knowledge into a single (EA) repository, pulling the skills & wisdom of 20-30 IT experts into one place.
Before they started doing this, they split up the problem into bits, so that each modeller could work semi-independently of the others, and not have everyone trip over everyone else. And this worked well for quite a while. They even had a small part of the model for obviously re-usable stuff, such as master lists of Actors and Components.
Now they are starting to put the bits together, and some other problems are emerging. To help them to make their model more consistent, and easier for other people to understand and re-use, I’ve been creating a family of tools & techniques to help them.
We’ve chosen to put the errors in the model into two broad categories:
- “Mechanical” errors, which can be fixed by applying some simple (ish) rules, with minimal human involvement and bags of automation. Mechanical errors are self-defining: they are the kinds of errors which can be found by mechanical means.
- “Content” errors, are where, even though the ‘mechanics’ are correct, the model is still wrong. These can’t be fixed – or even detected – by mechanical means. Another human needs to look at the content and think hard.
The remainder of this post is about the mechanical errors, and talks about using some new techniques we’ve used to find and fix the problems for users of Sparx Enterprise Architect.
Deciding what it's supposed to look like
Finding mechanical errors is about deciding what you think a model should look like, then checking to see if the model looks that way.
There are some things we need to describe when defining what a model should look like:
- Which types of element you should use (e.g. ‘Requirement’, ‘User Story’, ‘Stakeholder’)
- Which stereotypes of those elements you should use (if any) e.g. you might decide to have <<Functional>> and <<Non function>>Requirements
- Which links you allow between those elements/stereotypes, and what those links mean
- Which of the built-in or additional attributes you’re going to use (in EA, additional attributes are called Tagged Values). For example, you might decide that each ‘User Story’ has an attribute called ‘Story points’, which, in EA, needs to be a Tagged Value
- What kinds of diagrams you are going to draw, and what they should/may/must contain
A description of this is called a meta-model: a model of what a model should or does look like. Some people call this an ontology, which is a shame, because even most first-language English speakers don’t know the word, so I won’t use it again. But’s it’s in the article now, in case some smart person Googles it.

Your model may be very large, but may still have a simple meta-model. For example, if your model contains 100s of Stakeholders and 1000s of Requirements –
then your meta-model is really easy:
This says you’re only allowed two kinds of ‘thing’, and one kind of link between them.
But in reality, meta-models are much more complicated. The one I’m working on at the moment – a blend of Archimate, UML, BPMN and some bespoke stuff – has just over 100 types of element, and a few 100s of possible types of link between them.
And that’s just what it’s supposed to look like: when we look at what individual modellers have done, there are quite a few more, which shouldn’t be here.

Quality checking against a Reference Model
You might say at this point that we should have decided what kinds of ‘things’ our model should contain before we started. This is excellent advice, but sadly, at the start of the project, we didn’t know what we’d need, so the meta-model has evolved very quickly.
This model of ‘what the model is supposed to look like’ we have called a ‘Reference Model’. If the meta-model which we see in our day-to-day model is the same as the Reference model, then we have no (mechanical) issues.

What we have developed is set of tools which allow a day-to-day model to be analysed and fixed, by comparing it to a Reference model.
What we do is:
- Analyse the day-to-day model to see what it’s reference model is like: it’s meta-model
- Compare that meta-model to the reference meta-model, to see where it differs: these are flagged as issues, or ‘violations’
- Finally, once we have identified the issues, fix them.
See Model Expert for more details
More Insights
Using Excel to create an EA dashboard
16 February 2021
A simple example of an EA dashboard, to show how you can create your own and show the information in your EA model to your project team
Learn MoreWhere's the best place to start modelling?
19 October 2020
Advice for the new modeller #1 - Where do you start?
Learn MoreProcess based model styles
25 August 2020
How to use BPMN and UML to make models which last.
Learn MoreModels matter - nearly as much as deliverables
25 August 2020
Models matter - nearly as much as model deliverables
Learn MoreFixing your meta-model
25 August 2020
Advice for the new modeller #3 – Fixing your meta-model
Learn MoreHow much domain modelling is enough?
25 August 2020
Advice for the new modeller #2 – (not) Melting the Pan
Learn MoreWhat needs to be included in your EA model content?
25 August 2020
Advice for the new modeller #4 – (not) Modelling The World
Learn MoreKnowing when to give up
25 August 2020
Knowing when to step back makes for better Business Analysts
Learn MoreUsing Enterprise Architect to document decision making
25 August 2020
Make your models more useful for future modellers
Learn MoreBeck’s Map: an EA model abstraction example
25 August 2020
Possibly the best model abstraction in the world
Learn MoreSimplifying ideas in a BPMN Process Diagram
25 August 2020
How to find the right number of ideas to include in your model.
Learn MoreExplaining EA Sparx Systems to non-modellers
25 August 2020
Model driven analysis - the best way to define what we do?
Learn MoreHow to simplify BPMN Data Models
25 August 2020
Why simplifying your diagrams can actually make them more informative.
Learn MoreCreate useful models using the Sparx EA Tool
18 August 2020
Advice for the new modeller #3 - Producing useful outputs with your new EA tool.
Learn MoreBeginners guide to Enterprise Architect software
18 August 2020
Our advice for new EA modellers
Learn MoreUML Business Analyst Solutions
14 August 2020
Using UML to resolve inconsistencies, gaps and overlaps.
Learn MoreCleaning: How to Simplify Enterprise Architecture Models
14 August 2020
Model Curation Techniques # 1 - Cleaning your EA model before you let other people see it
Learn MoreIncluding Sparx EA Model Provenance
14 August 2020
Sparx EA model help to explain to others why your models look the way they do.
Learn MoreWhat to include in your enterprise architect documentation
29 July 2020
How to create documents which communicate your ideas efficiently and effectively to stakeholders.
Learn MoreOrganising an Enterprise Architect Model
28 July 2020
Seven ways to organise your EA models so that other people can understand them
Learn MoreChoosing Your UML Subset
27 July 2020
Narrowing down the modelling ideas in your Enterprise Architect model to make consistent, understandable models.
Learn MoreWebinar: Using Interactive Documents to Collate Sparx EA Model Feedback
17 July 2020
A webinar from the EA Global Summit 2020.
Learn MoreWebinar: How to successfully scale up your Enterprise Architect team
30 June 2020
A webinar from the EA Global Summit 2020.
Learn MoreNavigating Models: Enterprise Architect Help and Techniques
16 April 2020
EA Model Curation Techniques #2 - Making models easy to navigate.
Learn MoreValidation: Improving your Enterprise Architecture Model Structure
16 April 2020
EA Model Curation Techniques #3 - Validating your model
Learn MoreExplaining the General with a Specific
16 April 2020
Explaining ideas using Object diagrams
Learn MoreDifferent documents for Different People
16 November 2018
How to tailor information to each user - making it as easy as possible for everyone to engage with your work, project or deliverables.
Learn MoreColor your Knowledge
25 April 2018
A while ago a client asked me to look at some process diagrams which had been created for them by a well-known consultancy.
Learn MoreModel Curation
6 March 2018
How cleaning, navigating and validating your EA model makes sharing and collaborating much more effective.
Learn MoreContext - Where are we?
20 October 2017
I’m occasionally asked “What’s the most re-usable bit of a model – where should I start?“.
Learn MoreGlossary
12 October 2017
In a recent talk, I asked the audience of about 100 BAs which of them maintained a glossary as part of their work.
Learn MoreHard and Soft
11 October 2017
No, not about Brexit… More about styles of Business Analyst.
Learn MorePrinting connectors
18 October 2016
Creating documents that start with the connections between the things in your model
Learn MoreUsing Multi-hop relationships to display Branch/Merge with EA13
11 August 2016
One of the most common requests we see from new EA users is: "Why can’t I do branch/merge with EA?
Learn More