Recently, I have been asked to map complete blueprint a portfolio of products and develop a holistic view of all the products available at a client. This view encapsulates all the relationships between the products and the standard technology used/reused across the board. Now, with people familiar with architecture, a practice of modeling any domain might take the architect to a rabbit hole. The architect might get lost in gathering more info then what the business need. Yes, systems are complex, and entirely gathering the characters of any system becomes a fruitless effort. Take mapping the capability of an enterprise, till which level should the architect stops? Level 4, 5, or even 6? Thus, before starting the practice of blueprinting, an approach should be followed to maximizing the returns while minimizing the effort.
So before starting the practice, I suggested driving a Metamodel or the elements defining my system. And for that, I went to Archimate to pick some elements along with a weak relationship type. As for choosing this Architecture Description Language, I have expressed multiple times my fondness in Archimate, and I genuinely believe it is an excellent modeling language by the Open Group. Nevertheless, Archimate evolved at a rapid pace, and right now has more than fourteen elements that are overkill for most scenarios, even for huge enterprises. But the good thing about Archimate is that its metamodel allows for any extensions and derivations to suit the architect’s need, which fits my situation.
I didn’t want to overkill the metamodel, so I picked only five elements:
As for the semantics, I tried to make them simple and straightforward:
- Capability: Presents high-level capability the client’s needs to acquire, like Managing Applicants.
- Business Object: An information mapping from a business perspective. Mostly, this defines a concept within a business, e.g., insurance paper, correspondence, car.
- Application Component: The application component that was developed or acquired, e.g., Site Postal. Any component that is displayed and functional to the end user fall within this group( e.g., User Management).
- System Software: A technology that serves the custom application component like the OS, Database, or application container.
- Artifacts: Any binary that supports the development of products, e.g., Libraries, frameworks, media.
As for the relationships, I just picked the association as it represents the weakest type of within Archimate. Plus, it abstracts a much more complicated relationship through the derivation feature in Archimate. The reason for one type of relationship is to prevent complicating the models & viewpoints; plus, from my experience, architects tend to fall into analysis paralysis state when it comes to modeling.
This metamodel should be enough to bootstrap the process and should present the necessary architecture without overcomplicating the products’ architecture.
As for the modeling tool, I suggest starting small with no financial burden to carry. One particular tool I suggest to people is Archi, which is a wonderful one for Archimate modeling. And it is free!