November 17, 2010
Modeling locations with Actors in ArchiMate
One of the issues that we bump into often is the question how to model a location in ArchiMate. Recently there was a long and interesting thread about this subject on the LinkedIn group for ArchiMate for example. Several options were suggested, including a suggestion that the ArchiMate language should be extended. In this blog post, I will set out my "solution" to the problem, as well as point out some issues with it.
First of all, note that the ArchiMate metamodel has three layers: business, information, technology. In this respect, it seems that location fits best in the business layer even though it can be argued that a node in a network can also be considered a location... For this post, I'll stick to the business layer. Even more, there are three columns. active structure, behavior, passive structure. Active structure concepts are able to beform behavior. Passive structure concepts undergo behavior. In my opinion, location doesn't naturally fit either, but I'm willing to accept the argument that an active structure concept fits best based on the fact that "in a location, certain behavior takes place". In my view, then, the best concept for location comes from the active structure part of the business layer and thus I select the Actor concept.
A simple example shows how this works. Assume that we are modeling a firm that develops tools and does consulting to support those tools. The company is based in two locations: Netherlands and Belgium. Typical behavior at a high level is modeled using Business Functions as these provide a nice stable basis for further develompent.
In this view, a labelview was applied to denote business processes that belong to certain business functions. It is easy enough to combine these processes into an "end to end" process for further analysis. For example, lets say we're launching a phone campaign to promote a new tool release where we offer clients advice (upgrade or not?), and do the actual deployment. Here's the diagram:
So far so good. Modeling becomes more interesting when realizing that the Actor concept is also used for other purposes. Most notably, the actor role is also used to denote who performs a certain role as illustrated in the following diagram
Here we see two things. On the one hand, the color view depicts that certain parts of the new campain can only be performed in the Netherlands whereas other parts can be executed in both countries. Another aspect that is visualized here is that the phone campaign is performed by a call center which can either be done by people from an external department or by people from the consulting department. The other parts of the process can all be done by someone from the consulting department.
Note that the Actor concept is used for two different "things" here. This works relatively well and in my opinion no new ArchiMate concept is required at all. It does seem that new ArchiMate users/readers might be confused by this double interpretation of a single concept. Therefore, some care should be taken to make sure that everyone is on the same page (i.e., by developing clear modeling guidelines). Also note that modern ArchiMate tools such as BiZZdesign architect have the option of using a profile to further stereotype model concepts which helps in analysis, visualization and communication with different groups of stakeholders.