Author Topic: Archimate instance of class  (Read 417 times)

jimflip

  • EA Novice
  • *
  • Posts: 10
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Archimate instance of class
« on: May 09, 2022, 09:57:42 am »
There was a rather rambling debate some time ago on this subject https://sparxsystems.com/forums/smf/index.php/topic,43276.90.html

I was wondering if any sensible pattern has emerged since (I suspect its a deficiency in Archimate itself, but I'm no expert)?

A simple example is I have Business Role of 'Data Owner', which makes sense as a class, however, I obviously have many instances of this role.  Without some means of differentiating the instance from the class I'm left only being able to model a generic patterns of the 'Data Owner' class, and not any of the domains of my business without the model becoming nonsensical i.e.  the single 'Data Owner' object would have relationships to all 'Business Actors' and 'Data Objects', we wouldn't be able to tell whom is linked to what.


Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 7718
  • Karma: +101/-18
    • View Profile
Re: Archimate instance of class
« Reply #1 on: May 09, 2022, 10:21:26 am »
I don't think I've looked at it at all since that discussion.

From memory, ArchiMate as a bit weird. I believe it actually recommends modeling instances as a specialization of the the type. So if you have an instance of 'Data Owner' that you want to model, you create a new Business Role with a specialization to Data Owner.
Eve

support@sparxsystems.com

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8157
  • Karma: +231/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Archimate instance of class
« Reply #2 on: May 09, 2022, 02:38:26 pm »
I don't think I've looked at it at all since that discussion.

From memory, ArchiMate is a bit weird. I believe it actually recommends modelling instances as a specialization of the type. So if you have an instance of 'Data Owner' that you want to model, you create a new Business Role with a specialization to Data Owner.
That's, effectively, how we went.  Our placeholder items are generalizations of specific items.  However, we have TWO kinds of specializations:  (the more common) inheritance (IS A TYPE OF) and restriction (IS WHERE). The specific items are restrictions on the placeholders.  You can consider the placeholders the equivalent of a query "A Data Owner is an X where".  If the specific item meets the query requirements, then it is a restriction on the placeholder.

Works REALLY well for us!

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

Modesto Vega

  • EA User
  • **
  • Posts: 813
  • Karma: +23/-8
    • View Profile
Re: Archimate instance of class
« Reply #3 on: May 09, 2022, 06:17:59 pm »
In ArchiMate you could model the concept of a Data Owner as a Business Actor, a Business Role, a Business  Object, Data Object, or a combination of all of them. The 1st 3 are elements from the Business Layer while the later is from the Application layer. It all depends on your business requirement; for example are trying to capture a collection of names of people owning the data and the data they own or are you trying to describe the process.

For different types of data owners - e.g., Product Catalogue Data Owner, I will use specializations, probably even if I was not using ArchiMate. However, if you want to model the fact that somebody - e.g., Joe Smith - is the owner of the Product Catalogue, you probably need to use an instance and may not be able to use ArchiMate.

A point we discussed in thread you refer to is that ArchiMate is a featureless modelling language, it does support attributes or operations. Because it is featureless you cannot instantiate the way you will in, lets say, UML.

jimflip

  • EA Novice
  • *
  • Posts: 10
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: Archimate instance of class
« Reply #4 on: May 09, 2022, 06:43:36 pm »
Using generalization kinda works, however, issue then is what to name the specialization, having to re-assign a stereotype if you want it presented as the Archimate type (in this case a Business Role), and some complexity around querying (now need to find all specialization of the Class I want).

I'm not sure what you mean by Archimate being featureless, I come at the definition of Class more from an RDF perspective, which may be a better way to have modelled Archimate, instead of via UML and all the OO baggage, which I don't see as being particularly relevant from an end user modelling enterprise architecture, or maybe thats just me!

I think looking at page 30 here https://sparxsystems.com/resources/user-guides/modeling/mdg-technologies.pdf
and from a comment in the previously linked discussion, that it might be possible to extend archimate to support instances. While not part of the standard, I suspect the standard has gone down a cul-de-sac, with some of its design choices.


Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8157
  • Karma: +231/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: ArchiMate instance of class
« Reply #5 on: May 09, 2022, 09:10:52 pm »
Hi Jim,
I would recommend re-reading (and attempting to absorb) my post #9. in the original thread, you referenced.  I believe it contains the solution to the problem. Note especially my final comment about standards...

We decided to create a modelling environment that works rather than one that adheres to standards that don't actually work.  However, it DOES require that you actually think about what you are trying to do rather than blindly follow "authority".  Yes, if you look at many of my posts, I DO hold contrarian views.

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

jimflip

  • EA Novice
  • *
  • Posts: 10
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: Archimate instance of class
« Reply #6 on: May 10, 2022, 12:06:04 am »
Thanks Paolo, trying to absorb :)

Does anyone know how to enable overriding the ability to create instances, tried a few things out in my profile with no joy?
Specifically how to redefine a stereotype so that an instance can be made?