Metamodel 101

I was just privy to a conversation about the value of creating a specific kind of metamodel, and it made me wonder… if I had to explain the concept of a metamodel to someone, how would I do it? 

First, let’s start by defining the term “metamodel.”  The IEEE Online Software Engineering Vocabulary (SEVOCAB) provides 12 different definitions for the term ‘metamodel’.  In my opinion, the definition most applicable to enterprise architecture is this one:

CDIF semantic metamodel. (1) the description of the set of concepts and notations used to define a model (ISO/IEC 15474-1:2002 Information technology — CDIF framework — Part 1: Overview, 4.2) Note: The CDIF semantic metamodel defines an Entity-Relationship-Attribute model that is used to construct and define models used in systems development.

Peel away the jargon, and you get this: a metamodel defines the stuff that you put into your models. 

For example, I created this model of a fictitious company, Contoso.  They have created some strategies, and the Enterprise Architect has tied those strategies to business initiatives and those business initiatives to the business units that are impacted by those initiatives.  (A simple traceability model).

Contoso Traceability

If the diagram above is a model, what is in the metamodel?   That’s the diagram below:

Metamodel

In this metamodel, we provide definitions for three terms: strategy, initiative, and business unit.  They are meaningful in the context of the model and should have a single definition.  In addition, the metamodel defines every relationship that is allowed between these elements.  We can say that an initiative may involve a business unit, but our model cannot show the relationship of a business unit to a strategy UNLESS there is an initiative that is aligned to that strategy and which involves the business unit.

A metamodel restricts what you can draw.  It prevents you from drawing things that don’t make sense.  And it clearly defines the terms so that when someone reads your model, they know WHY you described some things as strategies and other things as initiatives (for example). 

A metamodel is the grammar and definitions of words.  It provides the dictionary.  The model itself is the story you tell with those words. 

Tutorial over for the day!

By |2011-05-26T17:42:17+00:00May 26th, 2011|Enterprise Architecture|2 Comments

About the Author:

President of Vanguard EA, an Enterprise Architecture consulting firm in Seattle focused on the Pacific coast of the US. Nick has over 30 years of professional experience in management, systems, and technology. He is the co-author of the influential paper "Perspectives on Enterprise Architecture" with Dr. Brian Cameron that effectively defined modern Enterprise Architecture practices, and he is frequent speaker at public gatherings on Enterprise Architecture and related topics. He coauthored a book on Visual Storytelling with Martin Sykes and Mark West titled "Stories That Move Mountains".

2 Comments

  1. Anthony Draffin May 26, 2011 at 7:22 pm - Reply

    A good introductory article to metamodels Nick.  Unfortunately this concept isn't as well understood as I think it should be.  I think that there is plenty of scope for expanding this post into a series and explaining about the OMG's MOF and tools that allow people to create there own metamodels and instantiate them.

  2. Nic Plum May 30, 2011 at 10:27 pm - Reply

    Indeed. I'd go further and state that for every model you must declarer what your metamodel is otherwise how can anyone understand, extend etc. .? It also stops folks cheating by relating anything to anything else. Importantly a metamodel provides a filter with which to view the world – if it doesn't fit is the metamodel correct or are you trying to fit the wrong piece? It also prompts questions if you find that a part of your metamodel isn't covered and it's always far easier to do this with the metamodel (being small) than a model.

Leave A Comment

one × 2 =