Mechanical- and Content quality

Maintain quality with tools to find and fix mechanical errors in your modeling

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:

  1. “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.
  2. “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.

Content Quality

Before we look at how we can ensure Mechanical quality in our models, a few words about the other side of the coin – content quality.

This is the kind of quality that it’s currently hard, or impossible, to check using any kind of automation. Even an AI would find it hard to check that a requirement which says ‘All wibbles shall be blue‘ is correct. We can only ask the originator of the requirement what color they want their wibbles to be.

Achiving and maintining content quality is about making sure that those prople who know what the requirement should look like have had a chance to review it. And that probably isn’t by asking them to review a 500 page document over the weekend. It’s the result of carefully thought out programme of engagement with the knowledge holder, maybe in workshops, or by small, readable, well-presented documents, or by giving them the information in the form of a Prolaborate website.

In all cases, if your model is mechanically correct, then you’re still only part way to a good quality model. Content quality is critical. Mechanical quality is important too. And mechanical quality can be checked quick and easily, so there’s no need to spend time on it. Much better to concentrate on content.

That’s all about content quality – the rest of this is about making the checking of mechanical quality as painless as possible.

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 modelers 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.

Model Expert is a set of tools which allow a day-to-day model to be analyzed and fixed, by comparing it to a Reference model.

What we do is:

  1. Analyze the day-to-day model to see what it’s reference model is like: it’s meta-model
  2. Compare that meta-model to the reference meta-model, to see where it differs: these are flagged as issues, or ‘violations’
  3. Finally, once we have identified the issues, fix them.

See the Help for more details

More Insights

A model without validation is just some pictures

22 June 2023

Why you need your models to be validated.

Learn More

Using Derived Connectors to simplify your models

7 June 2023

..and make them more valuable

Learn More

Top 11 model quality tips for Sparx EA modelers

3 November 2022

Discover new insights into your model, and spot and resolve problems.

Learn More

How to get your EA models ready for Prolaborate

6 July 2022

To make the most of Prolaborate it's a good idea to start by doing some housekeeping

Learn More

Step by step to a tailored UI for Enterprise Architect

28 March 2022

The 'out-of-the-box' EA element properties window can be intimidating for a new user, and it's easy to get overwhelmed, miss critical data, or more...

Learn More

Only Connect - Exploring traceability in Sparx EA models

1 November 2021

This webinar looks at the importance of consistency to get value from traceability.

Learn More

Webinar - How to improve model quality and consistency

16 June 2020

This webinar from the EA Global Summit 2020 provides hints and tips for managing models as they grow.

Learn More

Hard and Soft

11 October 2017

No, not about Brexit… More about styles of Business Analyst.

Learn More

Model curation techniques for EA

6 September 2016

How cleaning, navigating and validating your EA model makes sharing and collaborating much more effective.

Learn More

Compare licence prices

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


Download Model Expert

Take a free, no obligation, 30-day trial of Model Expert.  Model Expert is part of eaTeamWorks, so you can also trial eaDocX, Revision Manager, eaSheets and PortfolioManager. Plus free for life features. Discover for yourself why it’s the world’s best-selling Enterprise Architect extension.