Adding New Elements and Relationships to Archi

Started by ChampagnePerry, September 21, 2016, 12:09:49 PM

Previous topic - Next topic

ChampagnePerry

OK I don't want to seem entirely insane ... But.
I am just having a quick look at incorporating our Architectural MetaModel into a customer version of Archi to make things easier for us. (strange definition of easier you may think)
I have been using the old instructions for extending archi with new elements http://archi.cetis.ac.uk/developer/model-new-element.html.
I have made some progress, however started with a difficult one which was a new element which is essentially a renamed "Business Process".
I think I must have missed something as I now have a new "process" element in the Business Layer called "Customer Journey" but it is not appearing properly, I can create it from the right mouse -> new context menu but has no icon or description, it just appears as an empty line  in the menu, I can create the element but cannot drop it on a diagram.
The properties dialog is also missing the header where you would expect to see <<icon>> Customer Journey (Customer Journey).
Any ideas from this description - I know the structure of the code has changed slightly and I must have missed something obvious.
I have attached a couple of pictures "add popup.PNG" showing the context menu with the nice space in it and "Business Toolbox.PNG" showing the slight offset that occurs when a new item without an icon has been added to the toolbox.
(I did add the customer-journey-16.png to the com.archimatetool.editor\img\archimate folder (after a while I even added a customer_journey1.png and customer_journey2.png to the figures folder as well as it looked like there might need to be one).
Probably missing something obvious - anyone got an idea what it is?
Thanks in advance (cos I might not feel like it later if its really difficult)

Phil Beauvoir

Hi, those instructions are way out of date and apply to a really old version. And even the next version 4 will be different. My advice is not to do this, as a model you create will only work if someone else has exactly the same customised build as you.
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

ChampagnePerry

Thanks,
Yes I realise both of those things but it is something that would be useful to us just at the moment.
It would be nice (though I realise this is much harder) if we could apply a profile to the model, and this would probably meet our needs almost as well.
Any hints where to look?
-When I come up with the solution I will publish if you want - With the appropriate warnings.
Thanks

Jean-Baptiste Sarrodie

Hi,

ArchiMate is really not a language that one can extend (add new concepts and relationships). The ArchiMate way of doing this is to define some specialized version of already existing elements (similar to UML notion of stereotypes).

In Archi, there are two ways of doing this (but that's far from perfect): either you define a naming convention and use the element name to add the new type (e.g. create a Business Process but name it "xxx (Customer Journey)", or you add a property to each element that allows you to know the "new type" (e.g. add a "Stereotype" property whose value is "Customer Journey".

TBH, I'd do both to be sure I can easily check things (and thus use Archi CSV export/import feature with some excel macro to make sure the element names are ok using the property value).

Regards,

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

ChampagnePerry

Yes its exactly that stereotyping that I'm trying to achieve, with UML the collection of stereotypes into profiles gives a really powerful way of reducing the bandwidth for variations due to exotic spellings to cause chaos.

The other useful thing about the UML stereotype mechanism is the ability to carry standard properties through to the elements by default.

I am also using the CSV export / import mechanism to reduce the legwork required by individuals who are creating the models.

The other difficulty with using the properties is that they can't be represented on the diagrams which are the primary customer interface to the model itself, which leads me on to another thing I have in my backlog, the ability to export and import diagrams.

Some of these things may be better addressed through model plugins I suppose.

I am trying to build an environment where many disciplines and levels of expertise can collaborate effectively so some of this is just experimentation and will inevitably be abandoned in the long run, but those things that prove useful I will share so they can be improved.

ChampagnePerry

If anyone is interested I now have a method to do this , I will document it soon.
As a warning though, as Phil said previously, this may not be a sensible course of action for you (or indeed anyone) as it seriously degrades the capacity to exchange models with people who do not have your MetaModel built into their version of Archi.
It actually seems easier due to some structural changes in the code which I think must have happened in preparation for Archi 4.0.

Hervé

Hi,

I'm very much interested as if I understood corretly what you wish to acheive, it is also something I would implement at my company.

If the procedure can be automated, I can add the MetaModel support in my export/import database plugin.

Best regards
Hervé

ChampagnePerry

Here is a set of instructions I used to do this.
Just a note of caution, models created with the new elements or relationships will not be able to be opened by an instance of archi that has not been similarly extended to have the new elements (or relationships).
A better solution would be to provide a plug in that enabled extension by adding a profile as can be done in many UML tools, but this may require more fundamental modifications to the codebase.

Phil Beauvoir

#8
Yes, that's about right.

> A better solution would be to provide a plug in that enabled extension by adding a profile as can be done in many UML tools.

Archi isn't a UML tool. See JB's post above about why we don't add new concepts. ArchiMate profiles might be implemented later when there is time and resources or even contributions to the code base.

>but this may require more fundamental modifications to the codebase.

a.k.a many weeks, if not months, of work.  ;)
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.