Support to user defined profiles

Started by victorio, April 16, 2018, 23:12:08 PM

Previous topic - Next topic


I am new to Archi and have a doubt concerning the language extension mechanisms provided by the tool.

I would like to "extend" the language creating special kinds of the language constructs. For example, I would like to define "Department" as a special type of business actor defining also some attributes do it. I imagine I could do that by creating a stereotype/profile. Then, I could create a business actor and just apply to it the "Department" profile/stereotype and give values to the defined attributes.

After reading the user guide and searching some topics in this forum I didn't find a way to do that in Archi. Reading the ArchiMate 3.0 specification I realized it introduces the notion of profile in the Language Customization Mechanisms section. But, I could not find anything related to profile definitions in Archi.

Is it possible to define/use profiles in Archi? If not, is there some other way I could extend the language by defining "specializations" of the constructs?


Jean-Baptiste Sarrodie


Language customization is not possible in Archi, but there are some ways to achieve something similar.

For profiles, you can use a naming convention that prefixes the "profile name" to your properties name. For example if you want a profile named "Cost" that contains two properties "build cost" and "run cost", then you can use the following properties: "Cost:Build cost" and "Cost:Run cost". By doing so it will then be easier to add needed properties in one go using the "New multiple..." feature of the properties's panel (see manual on page 65) as they will be listed by alphabetical order. Note that using the "Manage" feature (same page in the manual) you'll be able to rename them if needed in one operation. Of course if you later decide to add another property in the profile, you'll have to add it manually on all elements where the other properties appear. This can be done automatically, but you can use the search feature (see page 14 of the manual) to quickly find elements that already have the "profile" applied (ie. elements that have one of its properties).

For stereotypes, a first step can be done by simply adding a property named "Stereotype" (the value being the name of the stereotype). This allows you to quickly find elements that have this stereotype applied. If you want to associate a profile to this stereotype, then you'll have to add manually the properties as explained previously.

Of course, doing so manually can be time consuming, but another trick can help: pattern based modelling. In this case, instead of created full patterns, you simply create preconfigured "stereotypes" with all properties set. with this trick you will be able to quickly add a new elements.

You can also combine those tricks with the use of Herve's great plugins: Form and Specialization (which name is a bit confuising though as this is not ArchiMate specialization). The form plugin allows you create forms to set properties value in a simple and very effective way. The specialization plugin allows you to change label and icon of an element added to view. So you can, for example, set the label to a concatenation of the elemet name and the value of the Specialization property to achieve something like "ElementName <<StereotypeName>>".

Hope this help.


If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.


Hi JB! Thanks for your reply!

You have pointed vey interesting topics. Although the features you have explained will help me a lot, I believe I will not be able to achieve my main goal that is to define "type-level constructs". For example, I would like to define a "profile" (using the terms I found in ArchiMate specification) "Department" with attributes like "budget" and define that this profile is assignable to actors. Then when a user creates an actor "Sales Department" and applies to it the profile "Department" it would be asked to inform the department budget.
The ultimate idea is to define a set of rules combined with profiles to guide the user on defining the architecture. For example, I could also define a profile "Manager" and a rule that every department must be associated to one manager.

I have been searching other tools and found a paid tool that supports profiles definitions and allows to program some rules but I cannot try it since I don't have a license :(

Anyway, I will try to use the features you have commented and the creativity to find an intermediate solution using Archi. Thanks again!

Best Regards,