Welcome to our blog. This is an archived post, most of our knowledge and advice remain valid but some material or links may be outdated. Click here to see our most recent posts.
After my webinar on “building a data management capability with TOGAF and ArchiMate” I received several emails with interesting questions and useful suggestions. In one of those conversations we touched upon an issue that I stumble across in practice a lot: how to effectively use the classic ‘conceptual / logical / physical’ dichotomy when modelling with ArchiMate. After some emails back and forth, I found myself writing a rather long note which might be useful for a broader audience. I’ve included it below. I left out a few sentences here and there due to privacy considerations. If you have any related thoughts or suggestions, please drop me a note or leave a comment.
If you like the work of Halpin, then I can recommend Kent as well. His classic book on "Data and reality" is now available as e-book. Good read with some thoughts that are still more than relevant. Let’s dive in […]. There are 2 aspects that are relevant in my opinion: (1) the dichotomy of architecture and design, and (2) the conceptual / logical / physical distinction.
ad 1: dichotomy of architecture and design
For some reason this remains tricky for many practitioners. Constantly confusing the two "levels". Of course we can argue that Enterprise Architecture is also a form of design... but that's not the point. Following the generally accepted definitions, architecture deals with the fundamental organisation of a system as well as the principles guiding design and evolution. It's high level, about coherence, and about how "things" in the enterprise are put together. The actual details of how things are organized in reality are more "Design" or "implementation". For a previous Webinar I made the following illustration:
ArchiMate is very usable for architecture models. For identifying solutions (i.e. the SBB's in TOGAF), ArchiMate is very usable too. For fleshing out the details, we need more detailed solution models and tend to use different notations, such as UML, BPMN, SBVR and so on.
ad b. conceptual / logical / physical
Unfortunately here too we see many different interpretations. You'd think we have figured it out by now. Here are two interpretations that are used a lot:
TOGAF seems to follow the interpretation close to Capgemini's IAF where conceptual is about "what", logical is about "how" and physical is about "with what". In that case, conceptual/logical appears to map on the architecture level, whereas physical seems to map on the design/ implementation level. All three are somewhat in line but in practice we still see people mix-and-match between abstraction levels.
My personal view is that we should pay close attention to the "level" (architecture / design) and "abstraction" (conceptual / logical / physical) that we're working on. Don't mix them. Also, I tend to merge the conceptual/logical levels at least for my ArchiMate models. That makes it easier to understand for many stakeholders in practice. Consider this simple example to see how it can work:
If you follow the strict definitions then you could argue that:
conceptual: what is needed is the two application services s1 and s2
logical: how we go about realizing it? In this case (due to some principles), apparently we chose for a solution with a single application component. For example "the ERP package"
physical: with what is not in this model. There we have to look for physical counterparts of this ERP package. For example "SAP R/3"
The same line of reasoning can be repeated between the application layer and the technology layer. Great, but what about the information/data world? I really like the way ArchiMate decided to not introduce a separate layer for information/ data […] I want to be able to talk about "what information is needed in the context of some business process or organisational role", or about "which data sits in what system" or "how did we organize information storage in in the infrastructure". Of course the data dissemination (one of the viewpoints in TOGAF) is part of that.
While I agree that the definition of business object / data object / artefact / representation can be improved further, the intention behind them does work in practice. Let’s start with the conceptual/ logical level (incomplete, but it gives an idea):
Here we see the following:
In some process we need a bit of information (bo1). With bo1 (which is what I called an Entity in my webinar) we can represent attributes and all sorts of metadata.
In order to get to this information, we need two data objects. That is, it appears that there are two data objects, both managed by the same system, which together realize the information that is needed for bo1. Remember that this is the architecture level. If we really want to dive into mappings between definitions, attributes, fields and so on then (in my opinion) we cross over into the realm of design. I'd be much happier using my favourite ORM2 or ERD tool for that!
We also see that the application component needs (at least) two bits of infrastructure in order to function. Data storage and rule execution. Note that I haven't specified what type of storage this will be. That's an implementation choice that can be made later. Are we going for relational? or xml db? or flat file? At this point I don't care!
Diving into the solution would be something along the lines of:
Here we see the actual deployment of the executables that make up the SAP R/3 component (the two top artefacts) on the system software in the infrastructure. We also see how the artefacts are accessed by this system software. Note the dual use of the artefact concept: on the one hand it is used as the manifestation of data in the infrastructure, on the other it is used as an executable. Not ideal, but it is what it is...
One thing that we still have to do is linking our conceptual / logical models to the physical models. There is no built-in mechanism in ArchiMate to handle this (the specialisation relation comes close but doesn't do what you want it to do). Most tools these days (BiZZdesign Architect included) use the idea of "dependency relations" to create links across models.
I think that it is high time for some best practices on how to deal with these issues. I also agree that a lot can be learned from the past. It's up to us to make that happen!
SUBSCRIBE TO BIZZDESIGN'S BLOG
Join 10.000+ others! Get BiZZdesign's latest articles straight to your inbox. Enter your email address below: