Friday, December 18, 2009

Is there a relation among Archimate and MDA?

I've been discussing with some experts about this question and this is part of that talks.
First of all, as enterprise architect you have several architecture frameworks to implement the EA of your company. Here, I assume we have selected TOGAF which is using Archimate as technical standard of phases B, C and D of the ADM; see Figure 1.

Figure 1: TOGAF and Archimate correspondence

Archimate is intended for describing an enterprise architecture with more level of abstraction (less detail) than MDA from an enterprise architect point of view; see Figure 2.

Figure 2: Archimate model example

MDA is also intended for describing an enterprise architecture by using CIM, PIM and PSM models, but from a software architect point of view; see Figure 3.

Figure 3: MDA models CIM, PIM and PSM

CIM is defined for part of the Business level, but it doesn't have a proper language to describe it in terms of a concrete model. Here is where I see that Archimate could be more useful than MDA. Archimate uses a semantics language for modeling EA instead of UML that is used for syntactic representations, e.g. PIM and PSM in MDA.

Therefore, if you model an EA with Archimate (enterprise architect), then
  • could you use PIM and PSM (of MDA) to have more details (less level of abstraction) for implementation phase (software architect)?
  • so, can you derive a PIM from an Archimate model?
In summary,
  • Is an Archimate model sufficient for a software engineer to implement an application?
I don't think so. In general, an enterprise architecture speaks using Archimate language while a software architecte speaks using UML.

As Archimate gives you an abstract view of (architecture) the application layer and its components, I think it's necessary to derive a more detailed model from it by using UML to give a more concrete artifact to software engineers for implementing an application. According to Archimate documentation it's possible to derive UML models from an Archimate model. However, this could imply rework since you're modeling twice.
Because each company has a particular problem (reality) and expertise of its enterprise architects and software architects, they should avoid such rework. These are more clear options for a company to avoid that:
  • Use TOGAF framework and Archimate as modeling language and derive less abstract models using the same language for software architects. Derive UML models for implementation purpose only if necessary.
  • Use TOGAF framework and UML as modeling language, but following the mapping of ADM and MDA.
Every company should select which path is going to walk by using TOGAF, Archimate or MDA to define its EA according to the expertise of its enterprise architects and software architects.

Ricardo Seguel

1 comment:

Donovan Johnson said...

Ricardo, I would submit that a combined approach is possible. It would require a Enterprise Architect who was previously a software architect, but also had infrastructure experience -- zITA's [IBM Mainframe Architects] come to mind as they are trained & function in manner where they are required to develop in nearly every phase of the different architecture disciplines. Someone with such a background who had progressed to Enterprise Architect could take both knowledge sets and build a repository of Building Blocks based upon MDA Architecture that would then be basis for your ArchiMate objects.

It would be a great deal of work, but for organizations such as financial institutions & the government, the rewards may soon outweight the risks.