Author Topic: Best Way to Extend Archimate2?  (Read 10294 times)

Rich Anderson

  • EA User
  • **
  • Posts: 142
  • Karma: +8/-0
    • View Profile
    • LinkedIn
Best Way to Extend Archimate2?
« on: March 22, 2016, 01:06:18 pm »
I would like to extend the Archimate2 MDG to add some tagged values to the stereotypes.  For example, or the ApplicationComponent type, I would like to add tagged values for things like:

  • Activation Date
  • Number of Users
  • Criticality (High, Medium, Low)

... which would then give me a new MDG (let's call it Archimate2+) that I could use going forward.   

However, I cannot find a straightforward way to do this.   Can I take the Archimate2 MDG file in XML and somehow import it as a set of UML, diagram and toolbox profiles, and then make the changes and regenerate a new MDG?

The other thing I was able to do was edit the Archimate2 MDG file directly to add the tagged values.  Like this....

Code: [Select]
            <TaggedValues>
              <Tag name="ActivationDate" type="Date" description="" unit="" values="" default=""/>
            </TaggedValues>

I got this to work as a POC after some fiddling around, but I'm not really convinced this is the best way to do this.

Anyone have any suggestions for this?   
Rich Anderson
Urgnt Limited

Dermot

  • EA Administrator
  • EA User
  • *****
  • Posts: 591
  • Karma: +7/-0
    • View Profile
Re: Best Way to Extend Archimate2?
« Reply #1 on: March 22, 2016, 02:33:28 pm »
There is documentation on creating extentions to existing MDG techologies like ArchiMate on:
http://sparxsystems.com/enterprise_architect_user_guide/12.1/building_models/non-uml_metatypes.html

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13387
  • Karma: +566/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Best Way to Extend Archimate2?
« Reply #2 on: March 22, 2016, 02:50:33 pm »
Hi Rich,

The "proper" way to do it would be to create your own Archimate2+ stereotypes that extend the standard Archimate2 stereotypes.
See this help page for a way to accomplish that: http://sparxsystems.com/enterprise_architect_user_guide/12.1/building_models/non-uml_metatypes.html

You can then build your own toolboxes where you can mix your extended Archimate2+ stereotypes with standard Archimate stereotypes, and you can even replace the standard Archimate toolboxes with yours. See http://sparxsystems.com/enterprise_architect_user_guide/12.1/building_models/overriding_default_toolboxes.html (note that you have set your technology as the Active one for this to work.

There is currently no way to reverse engineer an MDG file into a profile model.
Editing the Archimate2 MDG file would work, but that's a bit like "hacking" isn't it?

Geert

Rich Anderson

  • EA User
  • **
  • Posts: 142
  • Karma: +8/-0
    • View Profile
    • LinkedIn
Re: Best Way to Extend Archimate2?
« Reply #3 on: March 23, 2016, 05:56:33 am »
Thanks, guys!  I will give it try.  And, yes Geert, it was a deeply slimy hack and I felt bad about it.
Rich Anderson
Urgnt Limited

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Best Way to Extend Archimate2?
« Reply #4 on: March 23, 2016, 07:16:41 am »
To my mind, it's tidier all around to specialize Archimate elements than to add attributes to them.  I don't think that Archimate element extension is well supported or properly analogous to stereotyping.  See http://pubs.opengroup.org/architecture/archimate2-doc/chap09.html

Sunshine

  • EA Practitioner
  • ***
  • Posts: 1319
  • Karma: +121/-10
  • Its the results that count
    • View Profile
Re: Best Way to Extend Archimate2?
« Reply #5 on: March 24, 2016, 08:20:10 pm »
Yep its a lot of effort to extend archimate 2 in an mdg. If all you want to do is add tag values to existing archimate elements then I know a few people addressed this by running a script to add tag values if they don't exist. You can do this via jScript or vbScript and put this script in the project browser so you can limit it to a package. Its not ideal but its effective and quicker to implement.
Happy to help
:)

Rich Anderson

  • EA User
  • **
  • Posts: 142
  • Karma: +8/-0
    • View Profile
    • LinkedIn
Re: Best Way to Extend Archimate2?
« Reply #6 on: March 26, 2016, 06:37:00 am »
Thanks, Sunshine.  I had a look at all the other options suggested and was coming to the same conclusion.  I'm quite happy with the Archimate stereotypes and I'm actually not all that keen on extending the language.   All I want is to add additional properties to the stereotypes provided.   I know there is a view that custom MDGs are desireable, but my experience has convinced me otherwise.   In a previous life, I led a team using ABACUS, which is very, very good and easy at building all kinds of custom metamodels.  What I found is that really just wasted lots of time second guessing what the standards bodies had already hammered out with much more research and thought than we could have done with our limited experience. In hindsight, we would have been far better off to just to use Archimate out of the box.   So, I've come to the conclusion that for most teams it is far better to spend the time learning an established standard and living with whatever shortcomings that may have (which are usually not really shortcomings, but just stuff we didn't understand) than to spend cycles tweaking the metamodel.   

But back to the immediate problem at hand.  My thought was to create a package that contains the objects with the same name as the stereotypes to use as a pattern.  I would put the tagged values in those pattern objects and then use that to synchronize the tagged values in all other elements of the same stereotype.  That way, i could just add a  new tagged value to the pattern object and re-run the script.   (I would also need a clever way to delete a tagged value too).   What do you think about that?
Rich Anderson
Urgnt Limited

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13387
  • Karma: +566/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Best Way to Extend Archimate2?
« Reply #7 on: March 26, 2016, 06:26:49 pm »
Hi Rich,

If you are going the scripting way, I would suggest to look at EA-Matic

This free and open source add-in I developed forwards the EA events to the scripting environment, so you can have a script executed immediately after creating a new element.
For the users that would mean that they don't have to do something specific to get the new tagged values on their elements, which for them would be the same as having an extended MDG.

Let me know if that works for you.

Geert

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Best Way to Extend Archimate2?
« Reply #8 on: March 29, 2016, 07:17:04 am »
So, I've come to the conclusion that for most teams it is far better to spend the time learning an established standard and living with whatever shortcomings that may have (which are usually not really shortcomings, but just stuff we didn't understand) than to spend cycles tweaking the metamodel.   

Archimate very much has shortcomings and you need to understand how to compensate for them or you'll have a lot of wasted time and confused models.

A good place to start is the Open letters to TOG that you'll find here http://masteringarchimate.com/

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8607
  • Karma: +257/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Best Way to Extend Archimate2?
« Reply #9 on: March 30, 2016, 10:36:05 am »
And then, if you still want to use ArchiMate, get Gerben's book:  Mastering ArchiMate Edition 2.

As Karl Malden used to say:  "Don't leave home without it..."

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Best Way to Extend Archimate2?
« Reply #10 on: March 30, 2016, 01:44:39 pm »
As Karl Malden used to say:  "Don't leave home without it..."

I had to look that up on Wikipedia.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8607
  • Karma: +257/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Best Way to Extend Archimate2?
« Reply #11 on: March 30, 2016, 06:16:43 pm »
As Karl Malden used to say:  "Don't leave home without it..."

I had to look that up on Wikipedia.
That's 'coz you're not an old fart...  ;)

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Rich Anderson

  • EA User
  • **
  • Posts: 142
  • Karma: +8/-0
    • View Profile
    • LinkedIn
Re: Best Way to Extend Archimate2?
« Reply #12 on: April 03, 2016, 05:17:02 am »
Agreed. I have the book.  Also, Enterprise Architecture at Work is pretty good.
Rich Anderson
Urgnt Limited