Sparx Systems Forum

Enterprise Architect => General Board => Topic started by: Rhys Lewis 2 on September 18, 2019, 02:06:50 pm

Title: Where did "instance" go?
Post by: Rhys Lewis 2 on September 18, 2019, 02:06:50 pm
I've just upgraded to v15, and when I drag an element onto a diagram from the project browser I can only choose "Child" or "Link".  In the past there was also "Instance".  Child has some similarities to Instance, but all my objects are currently instances, so it would be a pain to swap over.

Is there still a way to do instances?
Title: Re: Where did "instance" go?
Post by: KP on September 19, 2019, 08:54:40 am
That dialog provides different choices in different contexts, so what kind of element are you dragging from the Project Browser and what kind of diagram are you dropping it onto?
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 19, 2019, 10:08:42 am
It happens with a few things.  A situation I'm in a lot is creating a classifier as an Archimate 3 Technology element, such as TechnologyObject or ArchiMate_Node.  Then I will create an Archimate 3 Technology diagram and drag the Archimate_Node from the project browser to the diagram.

For example, I might create an ArchiMate_Node that is "Switch", then drag the switch onto a Archimate 3 Technology diagram, where I want it to be "Server Room: Switch", an instance of a switch that is the one in the server room.

One of the good things about Instances when you are doing Archimate 3 diagrams is that the raw elements (eg. ArchiMate_Node) don't show their elements (attributes, tags etc.) in a diagram, but an instance does.
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 19, 2019, 05:08:59 pm
I am not sure an Instance is the best/correct way of doing this.

A Switch element is at the logical level of abstraction (or above). A specific Switch, is  equipment, it can only be depicted in a physical diagram, it has a physical level of abstraction. Personally, I would hesitate to use an Instance relationship for this, if not using ArchiMate, and it is unlikely to be legal in ArchiMate 3, as KP noted.

If you must model at both the technology and physical levels, I would use a Device for the logical Switch, possibly a Node for the room, an Equipment element for the physical Switch and a permitted relationship between the the Device and Equipment (likely) to be some sort of generalisation/specialisation.

Title: Re: Where did "instance" go?
Post by: Glassboy on September 20, 2019, 07:54:32 am
One of the good things about Instances when you are doing Archimate 3 diagrams is that the raw elements (eg. ArchiMate_Node) don't show their elements (attributes, tags etc.) in a diagram, but an instance does.

Instances are a UML concept.  They're not part of ArchiMate.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 20, 2019, 10:58:53 am
The Archimate 3 specification anticipates the issue of specific instantiation, and implicitly delegates it to UML representations that sit outside the "Enterprise Architecture". (see below)

It really gets back to the problem of Theseus' ship.  The switch in the server room and the switch in the guard cabinet are both switches, but they are not the same switch.  We can speak of "switch" as well as "the" switch, and these are both valid speech acts in the business context.  Then when we upgrade the switch in the guard cabinet to PoE, it is still the instance of a switch that exists in that cabinet.  In this sense it shares an ontological continuity with the previous unpowered switch, but can no longer be considered to be the same physical object.  It is possible to place them side by side and observe that they are in fact different objects.

Which reminds me of my original question.  Where did the instance option in the dialog box go?

https://pubs.opengroup.org/architecture/archimate3-doc/chap03.html#_Toc489945972

Quote
The ArchiMate language intentionally does not support a difference between types and instances. At the Enterprise Architecture abstraction level, it is more common to model types and/or exemplars rather than instances. Similarly, a business process in the ArchiMate language does not describe an individual instance (i.e., one execution of that process). In most cases, a business object is therefore used to model an object type (cf. a UML class), of which several instances may exist within the organization. For instance, each execution of an insurance application process may result in a specific instance of the insurance policy business object, but that is not modeled in the Enterprise Architecture.
Title: Re: Where did "instance" go?
Post by: KP on September 20, 2019, 11:59:21 am
I believe the instance option has been explicitly removed for ArchiMate elements. Because ArchiMate doesn't model instances. Rhys' quote is spot on in that regard:

Quote
The ArchiMate language intentionally does not support a difference between types and instances. At the Enterprise Architecture abstraction level, it is more common to model types and/or exemplars rather than instances. Similarly, a business process in the ArchiMate language does not describe an individual instance (i.e., one execution of that process). In most cases, a business object is therefore used to model an object type (cf. a UML class), of which several instances may exist within the organization. For instance, each execution of an insurance application process may result in a specific instance of the insurance policy business object, but that is not modeled in the Enterprise Architecture.

It is not modeled in the Enterprise Architecture, from which I infer that instances should be modeled outside of the ArchiMate model, for example on a UML Object diagram.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 20, 2019, 12:54:05 pm
Thanks - that explains it then.  I've experimented with some more combinations, and it appears that the diagram type makes no difference, but the Archimate elements have had the Instance option removed.
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on September 20, 2019, 02:48:29 pm
I believe the instance option has been explicitly removed for ArchiMate elements. Because ArchiMate doesn't model instances. Rhys' quote is spot on in that regard:

Quote
The ArchiMate language intentionally does not support a difference between types and instances. At the Enterprise Architecture abstraction level, it is more common to model types and/or exemplars rather than instances. Similarly, a business process in the ArchiMate language does not describe an individual instance (i.e., one execution of that process). In most cases, a business object is therefore used to model an object type (cf. a UML class), of which several instances may exist within the organization. For instance, each execution of an insurance application process may result in a specific instance of the insurance policy business object, but that is not modelled in the Enterprise Architecture.

It is not modelled in the Enterprise Architecture, from which I infer that instances should be modelled outside of the ArchiMate model, for example on a UML Object diagram.
That's a bit unfortunate because ArchiMate 3 says in section 8.2.1 Business Actor:
A business actor may be assigned to one or more business roles. It can then perform the behaviour
to which these business roles are assigned. A business actor can be aggregated in a location. The
name of a business actor should preferably be a noun. Business actors may be specific
individuals or organizations; e.g., “John Smith” or “ABC Corporation”, or they may be generic;
e.g., “Customer” or “Supplier”.


What are “John Smith” and “ABC Corporation” other than specific instances of actors?
Additionally, as I've mentioned before, describing  “Customer” and “Supplier” as "generic" is conceptually invalid.

We've taken the view that ArchiMate is primarily about instances (yes, it doesn't make much distinction between classifiers and instances, because there are very few real Classifiers)  some instances are specific instance such as “John Smith” and “ABC Corporation” and others are placeholder instances such as “a Customer” and “a Supplier”.

Once we made the mental shift above, we were able to make models that we both rigorous and expressive of reality.

We believe (part of) the problem is that people misapply the metaphor of Class and (runtime) Object to ArchiMate models.

Just my AU$0.05.

Paolo

(Let's hear it for self-inconsistent standards! ;) )
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 20, 2019, 05:52:22 pm
The Archimate 3 specification anticipates the issue of specific instantiation, and implicitly delegates it to UML representations that sit outside the "Enterprise Architecture". (see below)

It really gets back to the problem of Theseus' ship.  The switch in the server room and the switch in the guard cabinet are both switches, but they are not the same switch.  We can speak of "switch" as well as "the" switch, and these are both valid speech acts in the business context.  Then when we upgrade the switch in the guard cabinet to PoE, it is still the instance of a switch that exists in that cabinet.  In this sense it shares an ontological continuity with the previous unpowered switch, but can no longer be considered to be the same physical object.  It is possible to place them side by side and observe that they are in fact different objects.

Which reminds me of my original question.  Where did the instance option in the dialog box go?

https://pubs.opengroup.org/architecture/archimate3-doc/chap03.html#_Toc489945972

Quote
The ArchiMate language intentionally does not support a difference between types and instances. At the Enterprise Architecture abstraction level, it is more common to model types and/or exemplars rather than instances. Similarly, a business process in the ArchiMate language does not describe an individual instance (i.e., one execution of that process). In most cases, a business object is therefore used to model an object type (cf. a UML class), of which several instances may exist within the organization. For instance, each execution of an insurance application process may result in a specific instance of the insurance policy business object, but that is not modeled in the Enterprise Architecture.
The Theseus' ship problem is about levels of abstraction,

2 other points:
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on September 20, 2019, 07:15:06 pm
[SNIP]
2 other points:
  • Please note the use of articles - i.e., a switch, a guard house, a switch in a guard house, the switch. It is very important, "The" denotes physicality.
  • you cannot model the relationship between these 3 levels - i.e., conceptual, logical/technology, and physical - using an Instance relationship because they are not really instances of the same object. It is not correct to model abstraction using Instance relationships.
Yes, we came to the same conclusion about placeholder instances. they should be preceded by the indefinite article.

Paolo
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 20, 2019, 10:17:16 pm
I think the answer to the original question is simple: Instances in this context are not permitted and Sparx 15 has gotten better at enforcing this.

I believe the instance option has been explicitly removed for ArchiMate elements. Because ArchiMate doesn't model instances. Rhys' quote is spot on in that regard:

Quote
The ArchiMate language intentionally does not support a difference between types and instances. At the Enterprise Architecture abstraction level, it is more common to model types and/or exemplars rather than instances. Similarly, a business process in the ArchiMate language does not describe an individual instance (i.e., one execution of that process). In most cases, a business object is therefore used to model an object type (cf. a UML class), of which several instances may exist within the organization. For instance, each execution of an insurance application process may result in a specific instance of the insurance policy business object, but that is not modeled in the Enterprise Architecture.

It is not modeled in the Enterprise Architecture, from which I infer that instances should be modeled outside of the ArchiMate model, for example on a UML Object diagram.
[SNIP]
We believe (part of) the problem is that people misapply the metaphor of Class and (runtime) Object to ArchiMate models.


The fact that ArchiMate does not differentiate between types and instances does not mean that
Instantiation is not about physical things, it is about soft(ware) things. You create an instance of a class which becomes a soft(ware) object and not a physical object. Classes are templates for soft(ware) objects.

A physical object, the laptop I am using to write this, is not an instantiation of a class (or abstract Kantian category). Instantiation cannot apply to physical objects. Physical objects (or whatever device is used to model them) are "of a type" and this can be represented through generalisations/specialisations.

You could even argue that using Classes for abstract/conceptual modelling, the bread and butter of enterprise architecture, is a potential misuse of the original concept of class. Classes were introduced to help with object oriented programming.
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on September 21, 2019, 11:05:20 am
[SNIP]
You could even argue that using Classes for abstract/conceptual modelling, the bread and butter of enterprise architecture is a potential misuse of the original concept of class. Classes were introduced to help with object-oriented programming.
Yes, Modesto,  That's the conclusion we've come to.  We don't use classes and (run-time) objects, we use instances and classifiers.

Paolo
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 23, 2019, 07:20:35 am
2 other points:
  • please note the use of articles - i.e., a switch, a guard house, a switch in a guard house, the switch. It is very important, "The" denotes physicality.
  • you cannot model the relationship between these 3 levels - i.e., conceptual, logical/technology, and physical - using an Instance relationships because they are not really instances of the same object. It is not correct to model abstraction using Instance relationships.

There is another reason why you cannot model this relationship.  It's because Sparx took it away!

If you stick with the "you can do anything" class diagram, when an object is an instance you can right click on it and choose Advanced | Instance Classifier, and go to the thing that it is an instance/specialization/etc. of.  However if an object is a child, then that is not available from the context menu any more.

So according to the https://www.philosophybasics.com/movements_pragmatism.html (https://www.philosophybasics.com/movements_pragmatism.html) school, a thing is true if it works.  And it worked in the previous version.

I know someone is going to take the multiverse approach and say that you could use the relationship toolbox to see relationship, but I would argue it doesn't apply in this context (box), which is the problem.
Title: Re: Where did "instance" go?
Post by: Glassboy on September 23, 2019, 07:55:53 am
It's Monday morning, I've just started my second coffee and I probably watched too much rugby over the weekend but there some basic ontological (not the computer science definition) issues with the discussion since I last participated.

It's clear that ArchiMate - as it so often does - uses the common English meaning;  instance (basically a thing) not the computer science meaning - a thing that can be created through instantiation.  One should never forget that ArchiMate is created by a committee of marketers who still fondly remember floppies and mainframes.

Also the example of switches, do they have the same set of Technology Functions.  Well no if only one of them has PoE.  Therefor they are not the same node/device.  Nor are they realized from the same node/device.  Might they both serve they same Technology Service, yes they might.

Does any of the discussion about switches using the definite or indefinite article belong in ArchiMate, No!  Could we model this as a [computer science] ontology using a UML class diagram, why yes we can.

Does Sparx Enterprise Architect offer us a hammer only?  Why no it doesn't.  Because every problem isn't a nail.
Title: Re: Where did "instance" go?
Post by: Richard Freggi on September 23, 2019, 11:17:47 am
It is my understanding that Archimate does not have a robust+carefully thought out metamodel like UML does (someone correct me if I'm wrong).  So my thinking is that a lot is let to interpretation.
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 24, 2019, 03:22:55 am

So according to the https://www.philosophybasics.com/movements_pragmatism.html (https://www.philosophybasics.com/movements_pragmatism.html) school, a thing is true if it works.  And it worked in the previous version.
Once upon a time there was a very accurate heliocentric astronomical prediction model that used the concepts of nested spheres and epicycles to predict the movement of celestial bodies. For centuries it was “true”, and it took centuries of observations to find it inaccurate.

Because something was “true”, it doesn’t have to be “true” now. Likewise because you could do it in v13 doesn’t mean it was correct, “true”. If we adopt that mindset we will never have progress, in general, and technological progress, in particular; we will still be stuck with punch cards and mechanical computers.

It's clear that ArchiMate - as it so often does - uses the common English meaning;  instance (basically a thing) not the computer science meaning - a thing that can be created through instantiation.  One should never forget that ArchiMate is created by a committee of marketers who still fondly remember floppies and mainframes.
My argument is that if ArchiMate uses the common meaning of instance, it is inappropriate to use the computing science meaning of instance. Using the computing science meaning just confuses matters.

Also the example of switches, do they have the same set of Technology Functions.  Well no if only one of them has PoE.  Therefor they are not the same node/device.  Nor are they realized from the same node/device.  Might they both serve they same Technology Service, yes they might.

Does any of the discussion about switches using the definite or indefinite article belong in ArchiMate, No!  Could we model this as a [computer science] ontology using a UML class diagram, why yes we can.
Considering that not all switches have the same technology functions, a proper ontology model using a UML class diagram may be required depending, of course, on the modelling problem at hand - if all switches in the modelling scope are POE, this may not be required.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 24, 2019, 07:28:01 am

So according to the https://www.philosophybasics.com/movements_pragmatism.html (https://www.philosophybasics.com/movements_pragmatism.html) school, a thing is true if it works.  And it worked in the previous version.
Once upon a time there was a very accurate heliocentric astronomical prediction model that used the concepts of nested spheres and epicycles to predict the movement of celestial bodies. For centuries it was “true”, and it took centuries of observations to find it inaccurate.

Because something was “true”, it doesn’t have to be “true” now. Likewise because you could do it in v13 doesn’t mean it was correct, “true”. If we adopt that mindset we will never have progress, in general, and technological progress, in particular; we will still be stuck with punch cards and mechanical computers.

When you are at the "normal science" part of the Kuhn cycle it is easy to look back at previous paradigms and imagine that this time we have it right.  Pragmatism says that there is only true "now".  Taken from the frame of reference of v.13, it was true at that moment.  v.15 is seeking to establish a new truth that is merely a misguided novelty.

I would also hesitate to throw stones at people who could literally hold their code in their hands, while we melt the Arctic by running billions of copies of the same flawed anti-malware code.  "Progress" is really just having to buy a more expensive CPU-GPU combination because someone in an ad agency decided that a more complex 3D rendering looks pretty.  I'm still just typing into a box on a screen.

Perhaps I would accept that progress had occurred if each day did not bring news of young people stampeding to the latest JS library over the lifeless bodies of those who try to say with their last breath, "but there's no testing framework for it yet".
Title: Re: Where did "instance" go?
Post by: Eve on September 24, 2019, 11:26:31 am
literally hold their code in their hands
*twitch*  :-X

When you are at the "normal science" part of the Kuhn cycle it is easy to look back at previous paradigms and imagine that this time we have it right.  Pragmatism says that there is only true "now".  Taken from the frame of reference of v.13, it was true at that moment.  v.15 is seeking to establish a new truth that is merely a misguided novelty.
What makes the v13 truth valid but the v15 truth become novelty?

The v13 behavior took an ArchiMate construct and created a UML one out of it. By changing the behavior of the drop to prevent that EA helps to assist the integrity of the model. It's still possible to create a UML Object explicitly, then set the classifier to the ArchiMate type. But at least if someone does that they know what they are doing.

Another possibility in v15 is to create your own profile containing one or more stereotypes extending Object. If you then add a metarelationship { umlRole=classifier } to ArchiMate3::ArchiMate_Node, your stereotype will show up as an option when dropping an ArchiMate Node from the Project Browser.

Here's XMI for a sample profile that does exactly that. Just import it into your project, select the package and select Specialize > Technologies > Publish-Tech > Import Package as UML Profile.

Code: [Select]
<?xml version="1.0" encoding="windows-1252"?>
<xmi:XMI xmi:version="2.1" xmlns:uml="http://schema.omg.org/spec/UML/2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0" xmlns:EAUML="http://www.sparxsystems.com/profiles/EAUML/1.0" xmlns:Profile_Constraints="http://www.sparxsystems.com/profiles/Profile_Constraints/1.0">
   <xmi:Documentation exporter="Enterprise Architect" exporterVersion="6.5"/>
   <uml:Model xmi:type="uml:Model" name="EA_Model" visibility="public">
      <packagedElement xmi:type="uml:Profile" xmi:id="EAPK_C8A75B7D_1FB3_48a8_9451_F1CB99203617" name="ArchiMateInstances" visibility="public">
         <packagedElement xmi:type="uml:Stereotype" xmi:id="EAID_D05A372F_86E4_4216_8FAF_BE2E7C273854" name="ArchiMate3::ArchiMate_Node" visibility="public" isAbstract="true"/>
         <packagedElement xmi:type="uml:Stereotype" xmi:id="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F" name="Device" visibility="public">
            <ownedAttribute xmi:type="uml:Property" xmi:id="EAID_2FF8B6E7_5682_4af3_8220_9BE405A1D256" name="_metatype" visibility="public" isStatic="false" isReadOnly="false" isDerived="false" isOrdered="false" isUnique="true" isDerivedUnion="false">
               <lowerValue xmi:type="uml:LiteralInteger" xmi:id="EAID_LI000001_5682_4af3_8220_9BE405A1D256" value="1"/>
               <upperValue xmi:type="uml:LiteralInteger" xmi:id="EAID_LI000002_5682_4af3_8220_9BE405A1D256" value="1"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Dependency" xmi:id="EAID_39A9C32B_5E11_40e8_AE90_3DEC035964D3" visibility="public" supplier="EAID_D05A372F_86E4_4216_8FAF_BE2E7C273854" client="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F"/>
         <packagedElement xmi:type="uml:Dependency" xmi:id="EAID_C575B08F_87E3_4597_9829_1526C14AE85A" visibility="public" supplier="EAID_878F289B_EF83_4034_919D_750B40797FED" client="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F"/>
         <packagedElement xmi:type="uml:Class" xmi:id="EAID_878F289B_EF83_4034_919D_750B40797FED" name="Object" visibility="public"/>
      </packagedElement>
      <Profile_Constraints:metaconstraint base_Dependency="EAID_39A9C32B_5E11_40e8_AE90_3DEC035964D3" umlRole="classifier"/>
      <thecustomprofile:metaclass base_Class="EAID_878F289B_EF83_4034_919D_750B40797FED"/>
      <EAUML:profile base_Package="EAPK_C8A75B7D_1FB3_48a8_9451_F1CB99203617"/>
   </uml:Model>
   <xmi:Extension extender="Enterprise Architect" extenderID="6.5">
      <elements>
         <element xmi:idref="EAPK_C8A75B7D_1FB3_48a8_9451_F1CB99203617" xmi:type="uml:Package" name="ArchiMateInstances" scope="public">
            <model package2="EAID_C8A75B7D_1FB3_48a8_9451_F1CB99203617" package="EAPK_9C9D301B_B54D_44fb_898A_0412497D39AA" tpos="0" ea_localid="1248" ea_eleType="package"/>
            <properties isSpecification="false" sType="Package" nType="0" scope="public" stereotype="profile"/>
            <project author="ebarnes" version="1.0" phase="1.0" created="2019-09-24 11:21:00" modified="2019-09-24 11:21:19" complexity="1" status="Proposed"/>
            <code gentype="Java"/>
            <style appearance="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=1;HSwimLanes=1;BorderStyle=0;"/>
            <tags/>
            <xrefs value="$XREFPROP=$XID={E61064EC-79C7-4fbb-8F04-125EFFBE046C}$XID;$NAM=Stereotypes$NAM;$TYP=element property$TYP;$VIS=Public$VIS;$PAR=0$PAR;$DES=@STEREO;Name=profile;FQName=EAUML::profile;@ENDSTEREO;$DES;$CLT={C8A75B7D-1FB3-48a8-9451-F1CB99203617}$CLT;$SUP=&lt;none&gt;$SUP;$ENDXREF;"/>
            <extendedProperties tagged="0" package_name="Getting Started"/>
            <packageproperties version="1.0"/>
            <paths/>
            <times created="2019-09-24 11:21:00" modified="2019-09-24 11:21:19"/>
            <flags iscontrolled="FALSE" isprotected="FALSE" usedtd="FALSE" logxml="FALSE"/>
         </element>
         <element xmi:idref="EAID_D05A372F_86E4_4216_8FAF_BE2E7C273854" xmi:type="uml:Class" name="ArchiMate3::ArchiMate_Node" scope="public">
            <model package="EAPK_C8A75B7D_1FB3_48a8_9451_F1CB99203617" tpos="0" ea_localid="15000" ea_eleType="element"/>
            <properties isSpecification="false" sType="Class" nType="0" scope="public" stereotype="stereotype" isRoot="false" isLeaf="false" isAbstract="true" isActive="false"/>
            <project author="ebarnes" version="1.0" phase="1.0" created="2019-09-24 11:22:15" modified="2019-09-24 11:22:15" complexity="1" status="Proposed"/>
            <code gentype="Java"/>
            <style appearance="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=1;HSwimLanes=1;BorderStyle=0;"/>
            <tags/>
            <xrefs value="$XREFPROP=$XID={0DDE510A-CA27-40f8-A8C3-FC1FA05CC250}$XID;$NAM=Stereotypes$NAM;$TYP=element property$TYP;$VIS=Public$VIS;$PAR=0$PAR;$DES=@STEREO;Name=stereotype;GUID={344B0ADE-B00C-41d8-8A38-73F1F5D8B498};@ENDSTEREO;$DES;$CLT={D05A372F-86E4-4216-8FAF-BE2E7C273854}$CLT;$SUP=&lt;none&gt;$SUP;$ENDXREF;"/>
            <extendedProperties tagged="0" package_name="ArchiMateInstances"/>
            <links>
               <Dependency xmi:id="EAID_39A9C32B_5E11_40e8_AE90_3DEC035964D3" start="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F" end="EAID_D05A372F_86E4_4216_8FAF_BE2E7C273854"/>
            </links>
         </element>
         <element xmi:idref="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F" xmi:type="uml:Class" name="Device" scope="public">
            <model package="EAPK_C8A75B7D_1FB3_48a8_9451_F1CB99203617" tpos="0" ea_localid="14999" ea_eleType="element"/>
            <properties isSpecification="false" sType="Class" nType="0" scope="public" stereotype="stereotype" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
            <project author="ebarnes" version="1.0" phase="1.0" created="2019-09-24 11:21:44" modified="2019-09-24 11:21:47" complexity="1" status="Proposed"/>
            <code gentype="Java"/>
            <style appearance="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=1;HSwimLanes=1;BorderStyle=0;"/>
            <tags/>
            <xrefs value="$XREFPROP=$XID={4B5FCA42-3409-43db-A921-26437C41CBF2}$XID;$NAM=Stereotypes$NAM;$TYP=element property$TYP;$VIS=Public$VIS;$PAR=0$PAR;$DES=@STEREO;Name=stereotype;GUID={344B0ADE-B00C-41d8-8A38-73F1F5D8B498};@ENDSTEREO;$DES;$CLT={D427A768-E6EC-467a-ACE8-978765E91F3F}$CLT;$SUP=&lt;none&gt;$SUP;$ENDXREF;"/>
            <extendedProperties tagged="0" package_name="ArchiMateInstances"/>
            <attributes>
               <attribute xmi:idref="EAID_2FF8B6E7_5682_4af3_8220_9BE405A1D256" name="_metatype" scope="Public">
                  <initial body="Device"/>
                  <documentation/>
                  <model ea_localid="1849" ea_guid="{2FF8B6E7-5682-4af3-8220-9BE405A1D256}"/>
                  <properties collection="false" static="0" duplicates="0" changeability="changeable"/>
                  <coords ordered="0"/>
                  <containment position="0"/>
                  <stereotype/>
                  <bounds lower="1" upper="1"/>
                  <options/>
                  <style/>
                  <styleex/>
                  <tags/>
                  <xrefs/>
               </attribute>
            </attributes>
            <links>
               <Dependency xmi:id="EAID_39A9C32B_5E11_40e8_AE90_3DEC035964D3" start="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F" end="EAID_D05A372F_86E4_4216_8FAF_BE2E7C273854"/>
               <Extension xmi:id="EAID_C575B08F_87E3_4597_9829_1526C14AE85A" start="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F" end="EAID_878F289B_EF83_4034_919D_750B40797FED"/>
            </links>
         </element>
         <element xmi:idref="EAID_878F289B_EF83_4034_919D_750B40797FED" xmi:type="uml:Class" name="Object" scope="public">
            <model package="EAPK_C8A75B7D_1FB3_48a8_9451_F1CB99203617" tpos="0" ea_localid="14998" ea_eleType="element"/>
            <properties isSpecification="false" sType="Class" nType="0" scope="public" stereotype="metaclass" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
            <project author="ebarnes" version="1.0" phase="1.0" created="2019-09-24 11:21:42" modified="2019-09-24 11:21:42" complexity="1" status="Proposed"/>
            <code gentype="Java"/>
            <style appearance="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=1;HSwimLanes=1;BorderStyle=0;"/>
            <tags/>
            <xrefs value="$XREFPROP=$XID={ABA818E1-3DC1-47e4-8AA3-B528F8E58BB9}$XID;$NAM=Stereotypes$NAM;$TYP=element property$TYP;$VIS=Public$VIS;$PAR=0$PAR;$DES=@STEREO;Name=metaclass;GUID={651D58B8-71E3-483b-9436-5E8A62EAE46D};@ENDSTEREO;$DES;$CLT={878F289B-EF83-4034-919D-750B40797FED}$CLT;$SUP=&lt;none&gt;$SUP;$ENDXREF;"/>
            <extendedProperties tagged="0" package_name="ArchiMateInstances"/>
            <links>
               <Extension xmi:id="EAID_C575B08F_87E3_4597_9829_1526C14AE85A" start="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F" end="EAID_878F289B_EF83_4034_919D_750B40797FED"/>
            </links>
         </element>
      </elements>
      <connectors>
         <connector xmi:idref="EAID_39A9C32B_5E11_40e8_AE90_3DEC035964D3">
            <source xmi:idref="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F">
               <model ea_localid="14999" type="Class" name="Device"/>
               <role visibility="Public" targetScope="instance"/>
               <type aggregation="none" containment="Unspecified"/>
               <constraints/>
               <modifiers isOrdered="false" changeable="none" isNavigable="false"/>
               <style value="Union=0;Derived=0;AllowDuplicates=0;Owned=0;Navigable=Non-Navigable;"/>
               <documentation/>
               <xrefs/>
               <tags/>
            </source>
            <target xmi:idref="EAID_D05A372F_86E4_4216_8FAF_BE2E7C273854">
               <model ea_localid="15000" type="Class" name="ArchiMate3::ArchiMate_Node"/>
               <role visibility="Public" targetScope="instance"/>
               <type aggregation="none" containment="Unspecified"/>
               <constraints/>
               <modifiers isOrdered="false" changeable="none" isNavigable="true"/>
               <style value="Union=0;Derived=0;AllowDuplicates=0;Owned=0;Navigable=Navigable;"/>
               <documentation/>
               <xrefs/>
               <tags/>
            </target>
            <model ea_localid="12150"/>
            <properties ea_type="Dependency" stereotype="metaconstraint" direction="Source -&gt; Destination"/>
            <documentation/>
            <appearance linemode="3" linecolor="-1" linewidth="0" seqno="0" headStyle="0" lineStyle="0"/>
            <labels mb=" «metaconstraint»"/>
            <extendedProperties conditional=" «metaconstraint»" virtualInheritance="0"/>
            <style/>
            <xrefs value="$XREFPROP=$XID={54CC631D-C336-4d4e-B0A1-F310B2D71A26}$XID;$NAM=Stereotypes$NAM;$TYP=connector property$TYP;$VIS=Public$VIS;$PAR=0$PAR;$DES=@STEREO;Name=metaconstraint;FQName=Profile Constraints::metaconstraint;@ENDSTEREO;$DES;$CLT={39A9C32B-5E11-40e8-AE90-3DEC035964D3}$CLT;$SUP=&lt;none&gt;$SUP;$ENDXREF;"/>
            <tags>
               <tag xmi:id="EAID_3482D0E0_17FD_8617_867A_055ABD00B4BC" name="umlRole" value="classifier" notes="classifier"/>
            </tags>
         </connector>
         <connector xmi:idref="EAID_C575B08F_87E3_4597_9829_1526C14AE85A">
            <source xmi:idref="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F">
               <model ea_localid="14999" type="Class" name="Device"/>
               <role visibility="Public" targetScope="instance"/>
               <type aggregation="none" containment="Unspecified"/>
               <constraints/>
               <modifiers isOrdered="false" changeable="none" isNavigable="false"/>
               <style value="Union=0;Derived=0;AllowDuplicates=0;Owned=0;Navigable=Non-Navigable;"/>
               <documentation/>
               <xrefs/>
               <tags/>
            </source>
            <target xmi:idref="EAID_878F289B_EF83_4034_919D_750B40797FED">
               <model ea_localid="14998" type="Class" name="Object"/>
               <role visibility="Public" targetScope="instance"/>
               <type aggregation="none" containment="Unspecified"/>
               <constraints/>
               <modifiers isOrdered="false" changeable="none" isNavigable="false"/>
               <style value="Union=0;Derived=0;AllowDuplicates=0;Owned=0;Navigable=Navigable;"/>
               <documentation/>
               <xrefs/>
               <tags/>
            </target>
            <model ea_localid="12149"/>
            <properties ea_type="Extension" direction="Source -&gt; Destination"/>
            <modifiers isRoot="false" isLeaf="false"/>
            <parameterSubstitutions/>
            <documentation/>
            <appearance linemode="3" linecolor="-1" linewidth="0" seqno="0" headStyle="0" lineStyle="0"/>
            <labels/>
            <extendedProperties virtualInheritance="0"/>
            <style/>
            <xrefs/>
            <tags/>
         </connector>
      </connectors>
      <primitivetypes>
         <packagedElement xmi:type="uml:Package" xmi:id="EAPrimitiveTypesPackage" name="EA_PrimitiveTypes_Package" visibility="public"/>
      </primitivetypes>
      <diagrams>
         <diagram xmi:id="EAID_BB03CB2B_7A35_4c2c_9574_78D00E3DF1BE">
            <model package="EAPK_C8A75B7D_1FB3_48a8_9451_F1CB99203617" localID="1219" owner="EAPK_C8A75B7D_1FB3_48a8_9451_F1CB99203617"/>
            <properties name="ArchiMateInstances" type="Logical"/>
            <project author="ebarnes" version="1.0" created="2019-09-24 11:21:24" modified="2019-09-24 11:22:51"/>
            <style1 value="ShowPrivate=1;ShowProtected=1;ShowPublic=1;HideRelationships=0;Locked=0;Border=1;HighlightForeign=1;PackageContents=1;SequenceNotes=0;ScalePrintImage=0;PPgs.cx=0;PPgs.cy=0;DocSize.cx=826;DocSize.cy=1169;ShowDetails=0;Orientation=P;Zoom=100;ShowTags=0;OpParams=1;VisibleAttributeDetail=0;ShowOpRetType=1;ShowIcons=1;CollabNums=0;HideProps=0;ShowReqs=0;ShowCons=0;PaperSize=9;HideParents=0;UseAlias=0;HideAtts=0;HideOps=0;HideStereo=0;HideElemStereo=0;ShowTests=0;ShowMaint=0;ConnectorNotation=UML 2.1;ExplicitNavigability=0;ShowShape=1;AllDockable=0;AdvancedElementProps=1;AdvancedFeatureProps=1;AdvancedConnectorProps=1;m_bElementClassifier=1;SPT=1;ShowNotes=0;SuppressBrackets=0;SuppConnectorLabels=0;PrintPageHeadFoot=0;ShowAsList=0;"/>
            <style2 value="ExcludeRTF=0;DocAll=0;HideQuals=0;AttPkg=1;ShowTests=0;ShowMaint=0;SuppressFOC=1;MatrixActive=0;SwimlanesActive=1;KanbanActive=0;MatrixLineWidth=1;MatrixLineClr=0;MatrixLocked=0;TConnectorNotation=UML 2.1;TExplicitNavigability=0;AdvancedElementProps=1;AdvancedFeatureProps=1;AdvancedConnectorProps=1;m_bElementClassifier=1;SPT=1;MDGDgm=;STBLDgm=;ShowNotes=0;VisibleAttributeDetail=0;ShowOpRetType=1;SuppressBrackets=0;SuppConnectorLabels=0;PrintPageHeadFoot=0;ShowAsList=0;SuppressedCompartments=;Theme=:119;SaveTag=22068BE0;"/>
            <swimlanes value="locked=false;orientation=0;width=0;inbar=false;names=false;color=-1;bold=false;fcol=0;tcol=-1;ofCol=-1;ufCol=-1;hl=0;ufh=0;hh=0;cls=0;bw=0;hli=0;SwimlaneFont=lfh:-10,lfw:0,lfi:0,lfu:0,lfs:0,lfface:Carlito,lfe:0,lfo:0,lfchar:1,lfop:0,lfcp:0,lfq:0,lfpf=0,lfWidth=0;"/>
            <matrixitems value="locked=false;matrixactive=false;swimlanesactive=true;kanbanactive=false;width=1;clrLine=0;"/>
            <extendedProperties/>
            <elements>
               <element geometry="Left=358;Top=202;Right=448;Bottom=272;" subject="EAID_D05A372F_86E4_4216_8FAF_BE2E7C273854" seqno="1" style="DUID=9D55A550;"/>
               <element geometry="Left=122;Top=202;Right=229;Bottom=272;" subject="EAID_D427A768_E6EC_467a_ACE8_978765E91F3F" seqno="2" style="DUID=5BAA520C;"/>
               <element geometry="Left=130;Top=62;Right=220;Bottom=132;" subject="EAID_878F289B_EF83_4034_919D_750B40797FED" seqno="3" style="DUID=B5D454A2;"/>
               <element geometry="SX=0;SY=0;EX=0;EY=0;EDGE=2;$LLB=;LLT=;LMT=;LMB=CX=115:CY=28:OX=-54:OY=2:HDN=0:BLD=0:ITA=0:UND=0:CLR=-1:ALN=1:DIR=0:ROT=0;LRT=;LRB=;IRHS=;ILHS=;Path=;" subject="EAID_39A9C32B_5E11_40e8_AE90_3DEC035964D3" style="Mode=3;EOID=9D55A550;SOID=5BAA520C;Color=-1;LWidth=0;Hidden=0;"/>
               <element geometry="SX=0;SY=0;EX=0;EY=0;EDGE=1;$LLB=;LLT=;LMT=;LMB=;LRT=;LRB=;IRHS=;ILHS=;Path=;" subject="EAID_C575B08F_87E3_4597_9829_1526C14AE85A" style="Mode=3;EOID=B5D454A2;SOID=5BAA520C;Color=-1;LWidth=0;Hidden=0;"/>
            </elements>
         </diagram>
      </diagrams>
   </xmi:Extension>
</xmi:XMI>
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 24, 2019, 03:57:46 pm
Firstly my reply contained a factual inaccuracy nobody has picked: the said astronomical prediction model was indeed geocentric and not heliocentric. Whether, it was a intentional or accidental mistake, I you decide but I find very interesting that nobody spot it, it seems that it could more important to be “right” than inaccurate.

There are plenty of “negationists” around who believe that the melting of the ice caps is natural and not human made, this is despite the prevalent view of science. For those people burning fossil fuels is fine.

Thankfully, the topic under discussion is not so serious. But it shows a not very similar frame of mind: if I could do it, it couldn’t be wrong and, therefore, I should continue doing it.

I think Eve is right, modelling has to be semantically and lexically correct and consistent and with v15 it is.

I’ll rather have a version of Sparx which allows me to create more correct and consistent models. But that is just a professional preference.

Title: Re: Where did "instance" go?
Post by: Eve on September 24, 2019, 04:43:14 pm
Firstly my reply contained a factual inaccuracy nobody has picked: the said astronomical prediction model was indeed geocentric and not heliocentric. Whether, it was a intentional or accidental mistake, I you decide but I find very interesting that nobody spot it, it seems that it could more important to be “right” than inaccurate.
Honestly, I skimmed it and summarized as "old thing was good until it was demonstrated to be bad". Even if I looked at it in detail I wouldn't know without looking it up what geocentric or heliocentric are, let alone what the prediction model you were referring to was.
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 24, 2019, 06:14:28 pm
Firstly my reply contained a factual inaccuracy nobody has picked: the said astronomical prediction model was indeed geocentric and not heliocentric. Whether, it was a intentional or accidental mistake, I you decide but I find very interesting that nobody spot it, it seems that it could more important to be “right” than inaccurate.
Honestly, I skimmed it and summarized as "old thing was good until it was demonstrated to be bad". Even if I looked at it in detail I wouldn't know without looking it up what geocentric or heliocentric are, let alone what the prediction model you were referring to was.
No worries  :), "old thing was good until it was demonstrated to be bad" is a good summary. To which I would add, continuing to do something that was "good" and "demonstrated bad" is a bad habit, a habit which may be better to overcome.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 25, 2019, 07:34:27 am
Firstly my reply contained a factual inaccuracy nobody has picked: the said astronomical prediction model was indeed geocentric and not heliocentric. Whether, it was a intentional or accidental mistake, I you decide but I find very interesting that nobody spot it, it seems that it could more important to be “right” than inaccurate.
Honestly, I skimmed it and summarized as "old thing was good until it was demonstrated to be bad". Even if I looked at it in detail I wouldn't know without looking it up what geocentric or heliocentric are, let alone what the prediction model you were referring to was.
No worries  :), "old thing was good until it was demonstrated to be bad" is a good summary. To which I would add, continuing to do something that was "good" and "demonstrated bad" is a bad habit, a habit which may be better to overcome.

The deconstructionists would love that.  Meaning and language were literally dissociated, and yet everyone was left with the feeling of communication as if it had occurred.
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on September 25, 2019, 08:35:14 am
[SNIP]

The deconstructionists would love that.  Meaning and language were literally dissociated, and yet everyone was left with the feeling of communication as if it had occurred.
Isn't that always the case with metaphors etc?

Paolo
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 25, 2019, 09:11:20 am

The deconstructionists would love that.  Meaning and language were literally dissociated, and yet everyone was left with the feeling of communication as if it had occurred.
Isn't that always the case with metaphors etc?

Paolo

The difference is authorial intent.  If the intent was to reference geocentrism but the speech act referenced heliocentrism, then it's malapropism, not metaphor.
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on September 25, 2019, 09:35:52 am

The deconstructionists would love that.  Meaning and language were literally dissociated, and yet everyone was left with the feeling of communication as if it had occurred.
Isn't that always the case with metaphors etc?

Paolo
The difference is authorial intent.  If the intent was to reference geocentrism but the speech act referenced heliocentrism, then it's malapropism, not metaphor.
Ah...  You're speaking about the specific instance (pun intended) whereas I was talking about the classifier.  Agreed! Maybe we could say it was a malpropistic metaphor. ;)

Paolo
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 25, 2019, 09:46:30 am
I've started using "Child (Generalization)" instead of "Instance", and the sky hasn't fallen.  I'm going to miss being able to navigate easily between the thing and the parent/classifier, but I have to accept that this is bigger than I am.
Title: Re: Where did "instance" go?
Post by: RoyC on September 25, 2019, 09:59:03 am
"... but I have to accept that this is bigger than I am."

So.... you have set aside your rhyslewispoalcentric model?   Oh I'm sorry, I couldn't resist it!
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 25, 2019, 10:01:45 am
"... but I have to accept that this is bigger than I am."

So.... you have set aside your rhyslewispoalcentric model?   Oh I'm sorry, I couldn't resist it!

Yes, it was true for a time ;-)
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on September 25, 2019, 10:02:39 am
I've started using "Child (Generalization)" instead of "Instance", and the sky hasn't fallen.  I'm going to miss being able to navigate easily between the thing and the parent/classifier, but I have to accept that this is bigger than I am.
While the child inherits stuff from its parent.  We often (colloquially) use the concept of parent-child when talking about meronymies.  So for me, that's not precise enough.  For inheritance I use "inheritor".

Paolo
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 25, 2019, 10:08:08 am
I've started using "Child (Generalization)" instead of "Instance", and the sky hasn't fallen.  I'm going to miss being able to navigate easily between the thing and the parent/classifier, but I have to accept that this is bigger than I am.
While the child inherits stuff from its parent.  We often (colloquially) use the concept of parent-child when talking about meronymies.  So for me, that's not precise enough.  For inheritance I use "inheritor".

Paolo

Yes, I am looking for a hyponym, not a meronym.
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 25, 2019, 10:37:53 pm
[SNIP]and the sky hasn't fallen.
The sky rarely falls and the day it does we can all stop worrying  ;)

[SNIP]

The deconstructionists would love that.  Meaning and language were literally dissociated, and yet everyone was left with the feeling of communication as if it had occurred.
There are 2 fundamental differences between natural languages and artificial languages, such as modelling languages and those used in mathematics and logic, namely:

Now let's jump into the very interesting aspects of this thread.

[SNIP]
I'm going to miss being able to navigate easily between the thing and the parent/classifier, but I have to accept that this is bigger than I am.
What are you trying to achieve with having easy navigation? Traceability? Navigation? Both? Please note this a genuine question.

I've started using "Child (Generalization)" instead of "Instance", and the sky hasn't fallen.  I'm going to miss being able to navigate easily between the thing and the parent/classifier, but I have to accept that this is bigger than I am.
While the child inherits stuff from its parent.  We often (colloquially) use the concept of parent-child when talking about meronymies.  So for me, that's not precise enough.  For inheritance I use "inheritor".

Paolo

Yes, I am looking for a hyponym, not a meronym.
Red, Blue and Green are hyponyms of Colour, with the hyponym specialising the hypernym Colour. A hyponym is a type of the hypernym, in UML the hypernym generalises the hyponym or the hyponym specialises the hypernym.

A wing is a meronym of a plane, likewise a port is meronym of a switch or router. This is in UML is depicted by composition (or aggregation).

Typically inheritance is something associated with hyponyms and hypernyms and not with meronym.

The difficulty I always had with Sparx "Child (Generalization)" is what it does with the elements: adds "_child" at the end, and ignores the stereotypes (at least in V13). If it did not do that I will be a bit more helpful.
Title: Re: Where did "instance" go?
Post by: qwerty on September 26, 2019, 03:12:53 am
I'm pretty sure you can express metaphors also in artificial languages.

q.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 26, 2019, 07:21:00 am
Now let's jump into the very interesting aspects of this thread.

[SNIP]
I'm going to miss being able to navigate easily between the thing and the parent/classifier, but I have to accept that this is bigger than I am.
What are you trying to achieve with having easy navigation? Traceability? Navigation? Both? Please note this a genuine question.

Navigation for the author of the model and diagrams, rather than a function of the published artifacts.  As the model grows, and as other people add to it, I am often wanting to make sure that it remains coherent.  One of the problems I try to avoid is multiple copies of the same element - either because I have forgotten that I created one earlier or because some other person has created it.  I try to have as many ways to audit the integrity of the model as possible, including:


The thing that makes EA useful beyond the frustrations of its quirks and transient features is the model, which allows this kind of navigation.  If it were not for that I might as well use Visio or crayons.
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on September 26, 2019, 09:58:14 am
[SNIP]

Yes, I am looking for a hyponym, not a meronym.
Quote
Red, Blue and Green are hyponyms of Colour, with the hyponym specialising the hypernym Colour. A hyponym is a type of the hypernym, in UML the hypernym generalises the hyponym or the hyponym specialises the hypernym.

A wing is a meronym of a plane, likewise, a port is meronym of a switch or router. This is in UML is depicted by composition (or aggregation).

Typically inheritance is something associated with hyponyms and hypernyms and not with meronym.

The difficulty I always had with Sparx "Child (Generalization)" is what it does with the elements: adds "_child" at the end and ignores the stereotypes (at least in V13). If it did not do that I will be a bit more helpful.
Hey Modesto,

reading your post triggered a thought in my head (dangerous, I know)

Looking at your colour example, I would have said that "Red, Blue and Green are instances of Colour".  I thought (and you agreed) hyponyms were a TYPE_OF.

One "trick" I use is to use the indefinite article to determine if I have an inheritance or restriction (IS_WHERE).  Thus I can say a spoon is a TYPE_OF cutlery, but it is more difficult to say a green is a TYPE_OF colour.

That's because Green IS a colour WHERE the frequency is x.

In our modelling technology (as I've said before) we have Inheritance, Restriction and unspecified Specialization (not sure yet whether it's an inheritance or restriction).

As I said, just a thought.

Paolo
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 26, 2019, 10:47:34 am

One "trick" I use is to use the indefinite article to determine if I have an inheritance or restriction (IS_WHERE).  Thus I can say a spoon is a TYPE_OF cutlery, but it is more difficult to say a green is a TYPE_OF colour.

That's because Green IS a colour WHERE the frequency is x.


A PoE switch is a switch that is a type of switch.  The IE-4000-4T4P4G-E is a switch that is a type of PoE switch.  The switch in the guard house is the IE-4000-4T4P4G-E that used to be in the storeroom.

In this diagram we have the inventory of PoE switches, showing the location that each is allocated to.  The switch with serial number 12345 is now assigned to the guard house location instead of the storeroom location.  This increments the version of the diagram to 1.2.

Version 1.1 was an instance of the switch diagram that has been superseded by version 1.2.

The logical diagram shows a camera connected to a PoE switch.
The PTZ technology diagram shows a PTZ camera connected to a PoE switch, and the bullet technology diagram shows a bullet camera connected to a PoE switch.
The guard house physical diagram shows the PTZ camera with serial number 12346 connected to the IE-4000-4T4P4G-E with serial number 12345, and includes their IP addresses.

IE-4000-4T4P4G-E is a hyponym of PoE switch, which is a hyponym of switch.  Switch is a hypernym of PoE switch, which is a hypernym of IE-4000-4T4P4G-E.

So does the "Realized by" arrow point from the logical switch to the technology one, or the other way around?
Title: Re: Where did "instance" go?
Post by: Glassboy on September 26, 2019, 10:54:08 am
So does the "Realized by" arrow point from the logical switch to the technology one, or the other way around?

ArchiMate relationships should form a coherent English sentence when read from source to target.  They're also generally the opposite direction to UML.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 26, 2019, 11:04:21 am
So does the "Realized by" arrow point from the logical switch to the technology one, or the other way around?

ArchiMate relationships should form a coherent English sentence when read from source to target.  They're also generally the opposite direction to UML.

I always thought that too.  So the "Realized by" arrow should point from blue (logical) to green (technology).  Ie. The switch in the guard room instance of the camera plus switch logical pattern is realised by a IE-4000-4T4P4G-E.

However I have seen a lot of green to blue "Realized by" arrows, including in Gerben Wierda's Mastering Archimate, so I am beginning to doubt my understanding of it.
Title: Re: Where did "instance" go?
Post by: Glassboy on September 26, 2019, 11:19:23 am
I always thought that too.  So the "Realized by" arrow should point from blue (logical) to green (technology).  Ie. The switch in the guard room instance of the camera plus switch logical pattern is realised by a IE-4000-4T4P4G-E.

However I have seen a lot of green to blue "Realized by" arrows, including in Gerben Wierda's Mastering Archimate, so I am beginning to doubt my understanding of it.

Are you looking at the shapescript direction or the underlying tracability view?  They're the opposite of each other.
Title: Re: Where did "instance" go?
Post by: KP on September 26, 2019, 11:33:27 am
The more tangible entity (source) realizes (makes real) the more abstract entity (target).
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on September 26, 2019, 11:36:07 am
The more tangible entity (source) realizes (makes real) the more abstract entity (target).

So in the passive voice convention of ArchiMate, the Realized by arrow goes from abstract to tangible to show the relationship you have described?
Title: Re: Where did "instance" go?
Post by: KP on September 26, 2019, 12:08:36 pm
As long as the arrowhead is at the abstract end  :)
Title: Re: Where did "instance" go?
Post by: Glassboy on September 26, 2019, 12:57:01 pm
As long as the arrowhead is at the abstract end  :)
As long as the ArchiMate shapescript arrowhead is at the abstract end.  If you lose the stereotype it will be drawn the other way.
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 26, 2019, 05:15:08 pm
Now let's jump into the very interesting aspects of this thread.

[SNIP]
I'm going to miss being able to navigate easily between the thing and the parent/classifier, but I have to accept that this is bigger than I am.
What are you trying to achieve with having easy navigation? Traceability? Navigation? Both? Please note this a genuine question.

Navigation for the author of the model and diagrams, rather than a function of the published artifacts.  As the model grows, and as other people add to it, I am often wanting to make sure that it remains coherent.  One of the problems I try to avoid is multiple copies of the same element - either because I have forgotten that I created one earlier or because some other person has created it.  I try to have as many ways to audit the integrity of the model as possible, including:

  • Searching the model for objects of the same name/ip address
  • Looking at other objects that should have a relationship to the object in question to see if a relationship leads me to the object with a name I wasn't expecting
  • Going to the parent/classifier, then searching for that in all diagrams.  For example go from this switch to the platonic switch, and then from there I can find all diagrams that have "a" switch.

The thing that makes EA useful beyond the frustrations of its quirks and transient features is the model, which allows this kind of navigation.  If it were not for that I might as well use Visio or crayons.
I’ll tackle the other post replies when I have a better screen and keyboard. To tackle the issue of duplication we have created a dashboard with a custom SQL statement to list just those elements in the repository with the same name, base class, stereotype and belonging to the same root branch.

By checking regularly, we got duplicates more or less under control.
Title: Re: Where did "instance" go?
Post by: Modesto Vega on September 26, 2019, 07:50:02 pm
[SNIP]

Yes, I am looking for a hyponym, not a meronym.
Quote
Red, Blue and Green are hyponyms of Colour, with the hyponym specialising the hypernym Colour. A hyponym is a type of the hypernym, in UML the hypernym generalises the hyponym or the hyponym specialises the hypernym.

A wing is a meronym of a plane, likewise, a port is meronym of a switch or router. This is in UML is depicted by composition (or aggregation).

Typically inheritance is something associated with hyponyms and hypernyms and not with meronym.

The difficulty I always had with Sparx "Child (Generalization)" is what it does with the elements: adds "_child" at the end and ignores the stereotypes (at least in V13). If it did not do that I will be a bit more helpful.
Hey Modesto,

reading your post triggered a thought in my head (dangerous, I know)

Looking at your colour example, I would have said that "Red, Blue and Green are instances of Colour".  I thought (and you agreed) hyponyms were a TYPE_OF.

One "trick" I use is to use the indefinite article to determine if I have an inheritance or restriction (IS_WHERE).  Thus I can say a spoon is a TYPE_OF cutlery, but it is more difficult to say a green is a TYPE_OF colour.

That's because Green IS a colour WHERE the frequency is x.

In our modelling technology (as I've said before) we have Inheritance, Restriction and unspecified Specialization (not sure yet whether it's an inheritance or restriction).

As I said, just a thought.

Paolo
The use of the indefinite article may be of assistance to establish if something is a type of something else but it is not bullet proof. "Spoon" is a type of cutlery irrespective of the article preceding, likewise "POE Switch" is a type of Switch irrespective of the article preceding it. I'll get into colours shortly.

According to Merriam-Webster, the definite article is used in English to refer to a person or thing that is identified or specified. While the OED, states "The main function of the definite article (in English, the) is to specify the noun given, while the indefinite article (in English, a or an) marks a noun as being generic."

To take Rhys' example, the use of a definite article before "Switch" or "POE Switch" denotes a switch (of a particular make and model) with a specific IP address. It is not the actual physical switch but a representation of a physical switch. Whether a Realization is the right or wrong way to depict the relationship between the representation of a physical switch and its hypernyms, I don't know and need to ponder about it.

Colours are one of those examples where the "article" rule to decide if something is a type does not work, but there many others: water, methane, and Sodium chloride are chemical compounds (there types of of chemical compounds), and a AFIK, in English, preceding them by an article without further lexicalisation does not work. The fact that red has a dominant wavelength of approximately 625–740 nanometres and that reds range from the brilliant yellow-tinged scarlet and vermillion to bluish-red crimson, and vary in shade from the pale red pink to the dark red burgundy, does not mean red is not a type of colour and that vermillion, crimson, and so on are not types of red.

In other words, because you can define something based on physical parameters does not mean there are not a type of.

Incidentally, POE Switch is also an example of lexicalisation.

To sum up, lexicalisation plays a role when trying to decide if something is a type of.

 
Title: Re: Where did "instance" go?
Post by: Ian Mitchell on October 25, 2019, 07:50:17 pm
I'm very much enjoying this thread - always good when a simple product question grows up, eats all its greens, and becomes fully formed philosophy!
But back down in the mud, I saw a great gadget the other day from some very clever Swiss (German?) guys who had a ServiceNow plugin which interrogated a physical network, found what devices exist, what they contain and how they are connected, and pushed it into EA.
Their idea was to then make these undoubtedly physical 'things' into instances of types from a conceptual architecture. Partly to validate that architecture, and also to help with impact assessments. Oh, and their architecture assumed Archimate. (That's how clever they were).
So is what they are proposing :
- good Archimate?
- useful
- possible in EA15 ?

Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on October 29, 2019, 07:00:44 am
Do you remember the name of the tool or the company?  It doesn't appear on the 3rd party list:  https://sparxsystems.com/products/3rdparty.html
Title: Re: Where did "instance" go?
Post by: qwerty on October 29, 2019, 09:51:00 am
ServiceNow is some SAP spawn (IIRC). Just google for the name.

q.
Title: Re: Where did "instance" go?
Post by: Glassboy on October 29, 2019, 12:07:16 pm
ServiceNow is some SAP spawn (IIRC). Just google for the name.

Nothing to do with SAP.  It's an American SaaS platform.
Title: What is a Classifier anyway?
Post by: Paolo F Cantoni on October 30, 2019, 03:13:16 pm
I originally was going to post this in Modesto's topic: Multiple projects sharing/working on a common baseline (https://www.sparxsystems.com/forums/smf/index.php/topic,43332.msg257416.html#msg257416)

But it seems more pertinent to this topic.  In that topic, I asked Modesto: "Am I correct in understanding that for your context, you are dealing with the relationships between specific systems, actors, processes etc.  Thus, leaving aside whether or not ArchiMate is "the greatest thing since sliced bread", you are dealing with ArchiMatey things, in an ArchiMatey way,  rather than UMLy things in a "UMLy" way?  Reiterating that you're looking to model the reality your business user encounter and not the software development paradigm they use to interact with it.  I know you've more (rather than less) said so  ;)  but I've put a slightly different slant on what you said, and I want to know if you're happy with that."  So for the purposes of this topic, I'm going to assume we're "dealing with ArchiMatey things, in an ArchiMatey way".

In UML, "A classifier is a category of elements that have some common features, such as attributes or methods".  Further, "A classifier describes a set of instances that have common behavioural and structural features (operations and attributes, respectively)". And... "A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers."  NOTE: How the definitions do NOT say that the Classifier is, itself, an Element.  They DO say that it is a categorisation mechanism. 

As an aside, we use the term Classification in the Linnaean sense "Screw, Whitworth, 3/4 inch"  In any specific dimension, an item can have, at most, one classification.  Classifications can be "deep".  We use the term Categorisation to mean a shallower, grouping mechanism: animals with multiple stomachs, humans between the ages of 13 and 20  etc.  Unlike Classifications, Categorisations can overlap.  So, for us, the concept that a "Classifier provides categorisation" is somewhat self-contradictory! ;)

So, let's investigate an ontology with specializations.  Vehicle::Motor Vehicle::Motor Car::BMW::BMW X1:BMW X1 with VIN# 12345
In normal usage, we might say that the "BMW X1 with VIN# 12345" specific instance of a BMW X1 (since we can specifically identify the item). We can also say: THE BMW X1 with VIN# 12345 IS a BMW X1 which IS a BMW, which IS a Motor Car which IS a Motor Vehicle which IS a Vehicle.    Notice I'm not (directly) saying BMW IS A TYPE OF Motor Vehicle.

In a colloquial discussion, we often use "type of" when we mean an "instance of" (and vice versa).  This only serves to confuse and conflate things.

In ArchiMate, much of the items that we deal with are specific instances, the Business Process "XYZ", the Actor "Fred", the Business Role "Bank Manager".  In these cases, is the classifier "Business Process", "Actor" and "Business Role" respectively?  If not, then what is the classifier?  Do ArchiMate items have classifiers anyway?  Searching the ArchiMate 3.0 specification for Classifier yields NO results!

Thoughts?
Paolo
Title: Re: Where did "instance" go?
Post by: Eve on October 30, 2019, 05:16:43 pm
ArchiMate uses the words generic and specific for effectively the same concept. Unfortunately, they also appear in too many other contexts to be a useful search term.

Quote
Business actors may be specific individuals or organizations; e.g., “John Smith” or “ABC Corporation”, or they may be generic; e.g., “Customer” or “Supplier”.
Quote
The name of a product is usually the name which is used in the communication with customers, or possibly a more generic noun (e.g., “travel insurance”).

From my reading of the spec, if you want to use both and explicitly specify the relationship between specific and generic you would have to use the Specialization relationship. (Well you could use Association. That's the equivalent of Dependency in UML. It can mean anything)

I'm not sure if you can have specific versions of elements other than actors. eg. The definition of Business Role (to me at least) seems to require that it is the generic version.

Quote
ArchiMate modelers may represent generic organizational entities that perform behavior as either business actors or business roles.

In ArchiMate, much of the items that we deal with are specific instances, the Business Process "XYZ", the Actor "Fred", the Business Role "Bank Manager".  In these cases, is the classifier "Business Process", "Actor" and "Business Role" respectively?  If not, then what is the classifier?  Do ArchiMate items have classifiers anyway?  Searching the ArchiMate 3.0 specification for Classifier yields NO results!

I would say the Business Process "XYZ" is instantiated when it is executed on a specific set of source input. (And by a specific set of actors)

"Bank Manager" is probably a generic Business Actor. It's not "the responsibility for performing specific behavior".

"Business Process", "Actor" and "Business Role" are the metatypes. Any elements of those types are instances of those types, but from an ArchiMate perspective they aren't meant to be thought of as instances.
Title: Metatypes and Instances
Post by: Paolo F Cantoni on October 30, 2019, 05:50:08 pm
Thanks, Eve,

That's useful, but to clarify, I'm using the idea of "ArchiMatey" to distinguish from "UMLey" as to the rationale for the nature of the modelling.  I'm not restricting the discussion to how ArchiMate looks at the world.

I agree that down to "BMW X1 with Vin#12345" appear to be specializations.  Hence my use in the past of the term specific vs placeholder (rather than specific vs generic, since - to me - generic is not the correct concept to apply)

Interestingly, I view ArchiMate Roles as specific instances also. Each one is uniquely identifiable and definable.  Similarly with Busines Processes, as with Actors.  Note: I make specific distinction between the Role Specification and the Agent - the actor playing the role (at run-time so to speak).  So Roles don't DO anything, but constrain what can be done, Actors don't, of themselves, do anything, but only exhibit behaviour when enacting the role (that is, acting as an Agent).

As you suggest, the Business Process is more complex.  In the case of the BMW, you can't get any more specific than "BMW X1 with Vin#12345" - it's essentially a leaf node in the graph.  However, we have the Business Process Specification (a specific instance - leaf) and we have the Business Process execution (another specific instance).  I suggest that the relationship between the Business Process execution and the specification is exactly the relationship between the run-time object and the compile-time specification.  In other words, their nature is (quite?) different and we aren't talking about the same kind of thing, but intimately related things.

A couple more things...

"Bank Manager" is probably a generic Business Actor. It's not "the responsibility for performing specific behaviour". 

We may all be falling into the trap that there are different metatypes that can be named the same.  I certainly fell into that trap for many years.  In my view, placeholder Actors can ONLY be specified by reference to their structural features - sine they don't DO anything, per se.  Thus we can talk about male actors, British actors etc.  Bank Manager is NOT an actor, it is, at least, a Role and most likely an Agent named after the principal role that it undertakes.

"Business Process", "Actor" and "Business Role" are the metatypes. Any elements of those types are instances of those types, but from an ArchiMate perspective, they aren't meant to be thought of as instances.

Did you mean that an instance of the metatype Actor is NOT an instance (of Actor)?  If so, seems strange!

Paolo
Title: Re: Where did "instance" go?
Post by: Modesto Vega on October 31, 2019, 07:49:30 am
There is a lot to digest here and will have to read the last 3 messages, 2 from Paolo and 1 from Eve, carefully (and possibly more than once).

Let’s start with the following because I think it relates to the question asked by Ian Mitchell
[SNIP]
I agree that down to "BMW X1 with Vin#12345" appear to be specializations.  Hence my use in the past of the term specific vs placeholder (rather than specific vs generic, since - to me - generic is not the correct concept to apply)
I agree that "BMW X1 with Vin#12345" appears to be a series of hierarchical specialisations, at least in a UML sense of the term. However, I look at it from a slightly different angle as Paolo, insofar as "BMW X1 with Vin#12345"  is a physical car, a car/motor vehicle on the road or inside a showroom or in storage.

This is relevant to Ian Mitchell’s question and to what was the originally discussed in this thread because of the word "physical", this is the key word within this thread. The switches previously referred to are "physical" switches insofar as they have a serial number, the electronic equipment equivalent of a VIN, and most likely an asset identifier.

In contrast  "POE Switch" and/or  "POE Switch Model" are both classifiers or elements that are/can be specialised or generalised.

This is were ServiceNow comes into the picture. ServiceNow is supposed to give a physical view of the infrastructure and software deployed on it. As a result anything that ServiceNow gives you cannot not be further specialised (but may be generalised/classified, INMHO outside ServiceNow). ServiceNow does not give you a conceptual or logical view of the infrastructure and the Information Systems and Applications deployed and should not be used on its own to produce such views, although it could be of assistance in producing such views

Anything physical - i.e.., deployed or to be deployed- can be properly modelled in ArchiMate using 11 Physical Elements (http://“https://pubs.opengroup.org/architecture/archimate3-doc/chap11.html#_Toc489946104”), specifically the Equipment element, please see “11.2.1 Equiment”, but not with any element in the Business, Application and Technology layers. ServiceNow collects physical data and, therefore, the data could be used to construct a physical view. Furthermore, the data could reach enough to partially construct a classification.

Returning to Paolo’s comments regarding specialisation and classification
[SNIP]
In UML, "A classifier is a category of elements that have some common features, such as attributes or methods".  Further, "A classifier describes a set of instances that have common behavioural and structural features (operations and attributes, respectively)". And... "A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers."  NOTE: How the definitions do NOT say that the Classifier is, itself, an Element.  They DO say that it is a categorisation mechanism. 
From a UML point of view, assuming we are using a Class element, a couple of questions arise:
1) do we ’classify’ via Class elements and explicit specialisation relationships or via classifiers, which are not elements, in the UML sense of the word?
2) if the former, do we need to add classifiers to the mix and when?

From an ArchiMate point of view, I am assuming that the following elements (from the Business and Application layers) can be generalised/specialised in this way: Business Object, Representation, and Data Object. AFIK ArchiMate does not have the concept of classifier but could be wrong.

By the way "Screw, Whitworth, 3/4 inch" is a model of a screw and not a physical screw to which an serial number could be assigned to. In ArchiMate terms it should not go on under “11 Physical Elements (http://“https://pubs.opengroup.org/architecture/archimate3-doc/chap11.html#_Toc489946104”)/11.2.1 Equipment.”

[SNIP]
As an aside, we use the term Classification in the Linnaean sense "Screw, Whitworth, 3/4 inch"
Modern Linnaean classifications use the concept of taxonomic ranks of which there are many types - e.g., Domain, Kingdom, Phylum, Class, Order, Family, Genus and Species. Are these types classifiers or elements? Before answering please consider that taxonomic ranks are organised into a ragged parent/child hierarchy where levels can be skipped.

Please also note that Linnaean classifications stop and species (or sub-species) and do not instantiate each species or sub-species to physical animals, such as my dog or horse.

[SNIP]
ArchiMate uses the words generic and specific for effectively the same concept.

Quote
Business actors may be specific individuals or organizations; e.g., “John Smith” or “ABC Corporation”, or they may be generic; e.g., “Customer” or “Supplier”.
Quote
The name of a product is usually the name which is used in the communication with customers, or possibly a more generic noun (e.g., “travel insurance”).

From my reading of the spec, if you want to use both and explicitly specify the relationship between specific and generic you would have to use the Specialization relationship. (Well you could use Association. That's the equivalent of Dependency in UML. It can mean anything)
I agree with Eve’s comments and interpretation. Furthermore, if I take Paolo’s example below, I am likely to end up with something like the table after the quote.
[SNIP]
So, let's investigate an ontology with specializations.  Vehicle::Motor Vehicle::Motor Car::BMW::BMW X1:BMW X1 with VIN# 12345
In normal usage, we might say that the "BMW X1 with VIN# 12345" specific instance of a BMW X1 (since we can specifically identify the item). We can also say: THE BMW X1 with VIN# 12345 IS a BMW X1 which IS a BMW, which IS a Motor Car which IS a Motor Vehicle which IS a Vehicle.    Notice I'm not (directly) saying BMW IS A TYPE OF Motor Vehicle.

Element nameRelationship (with comments) CommentPossible UML TypePossible ArchiMate Element
VehicleRoot (cannot be further generalised)ClassBusiness Object, Representation or Data Object
Motor VehicleAn specialisation of VehicleClass Business Object, Representation or Data Object
Motor CarAn specialisation of Motor VehicleClassBusiness Object, Representation or Data Object
BMW X1A instance of a Motor Car ModelObject (instantiating a Motor Car Model) a missing element in this puzzleNot sure, possibly an instance of “Motor Car Model” Business Object (or Representation or Data Object)
BMW X1 with VIN# 12345Not sure because we have transition the physical realmPossibly a Node or a Device (which is a specialised type of node)Equipment

Lastly concerning,
[SNIP]
"Business Process", "Actor" and "Business Role" are the metatypes. Any elements of those types are instances of those types, but from an ArchiMate perspective, they aren't meant to be thought of as instances.

Did you mean that an instance of the metatype Actor is NOT an instance (of Actor)?  If so, seems strange!
I don’t think an instance of a Business Process “Assess a Mortgage Application” is a business process. The same way I don’t think an instance of an the actor carrying the process out is an actor. Furthermore, I think it is semantically incorrect to state that the instantiated and the result of the instantiation have the same metatype.

Please think about it, a Class and an instance of it - i.e., an Object - don’t have the same metatype.

What the instantiated Business Process, Actor and Role is, I do not know and I think this were ArchiMate starts creaking.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on October 31, 2019, 08:47:22 am
I don't think it's a good idea to jump straight from a business object "BMW X1" to the technology element equipment for "BMW X1 with VIN# 12345".

Personally I prefer to have business objects at the highest level of abstraction (Driver role, Driving function etc.), solution patterns in the application layer (Vehicle has transportation function), and physical implementations in the technology layer (BMW X1 #12345 implements or realises the Vehicle Application Component).

Perhaps the confusion here is the problem of types of implementation.  If we model the driving solution at an application layer, it should be generic enough to be implemented in a variety of ways.  An abstraction in the technology layer is a way of grouping implementation solutions rather than having direct links from the concrete technology implementation back to the abstract application layer (and certainly not directly back to the business layer).

So filling that out, with simplifications and omissions for clarity:

Business Layer - Driver Role carries out the Driving Function as part of the Transportation Process
Application Layer - Motor Vehicle Component realizes the Driving Function, and the Pathway Component is used by the Motor Vehicle Component
Technology layer: Off-Road Pattern - Offroad vehicle device realizes Motor Vehicle Component and uses Muddy Road Node that realises the Pathway Component
Technology layer: On-Road Pattern - On-road vehicle device realizes Motor Vehicle Component and uses Asphalt Road Node that realises the Pathway Component
Technology layer: Off-Road Implementation Pattern - BMW X1 device is a specialization of On-road vehicle device and uses Muddy Road with < 200mm puddles Node that is a specialization of the Muddy Road Node
Technology layer: X1 #12345 Implementation - BMW X1 VIN #12345 device is a realization of BMW X1 device and uses Woodhill Forest Road #2 Node that is a realization of the Muddy Road with < 200mm puddles Node

The other comments will require a bit more reading before I can say something sensible about them.

Note that this is also just a restatement of

The Theseus' ship problem is about levels of abstraction,
  • a Switch is a concept, it does not belong to the technology or physical views (though) with a somersault you may be able to squeeze it into the the logical view)
  • a Switch in a guard house is a logical element, it belongs to the technology view
  • the Switch in the guard house of Bishop Rock in the Isles of Scilly (assuming there is one) is physical equipment and belongs to the physical view

Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on October 31, 2019, 08:57:15 am
In the IT world, the yellow diagrams are for sales people and the project sponsors.  The blue diagrams are the ones that you draw on the whiteboard at the beginning of each argument.  The green ones are what the vendor was supposed to build, and they grow in number and detail as you iterate through the delivery mistakes.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on October 31, 2019, 09:02:48 am
Did I say "argument"?  I think I meant "meeting".
Title: Re: Metatypes and Instances
Post by: Eve on October 31, 2019, 02:44:51 pm
Interestingly, I view ArchiMate Roles as specific instances also. Each one is uniquely identifiable and definable.  Similarly with Busines Processes, as with Actors.  Note: I make specific distinction between the Role Specification and the Agent - the actor playing the role (at run-time so to speak).  So Roles don't DO anything, but constrain what can be done, Actors don't, of themselves, do anything, but only exhibit behaviour when enacting the role (that is, acting as an Agent).
I'm not sure how a role can be a specific instance. It is a way of describing what can be one by one or more Actors. In your terminology those actors then become Agents when instantiated, but the Role itself can't be directly instantiated. Which is why I'd say Bank Manager is an Actor not a Role. (Distinguishing between the ArchiMate concept of Role from Role as a synonym for Position) Bank Manager may be assigned roles of Loan Approver, Hirer etc. Having said that, you could of course treat Bank Manager as a Role Aggregating and Composing the Roles that it is made up of.

(Because of ArchiMate's rules about derived relationships it's probably exactly the same thing. Coming down to a choice about notation)

Did you mean that an instance of the metatype Actor is NOT an instance (of Actor)?  If so, seems strange!
I mean in an "ArchiMatey" way, don't look behind the curtain at the person manipulating a (meta)model.

I don’t think an instance of a Business Process “Assess a Mortgage Application” is a business process.
My comments around that based on interpreting ArchiMate through a UML lense. ie. ArchiMate Process is like a UML Activity. Any UML Behavior is a specialization of a class. It starts running when it is instantiated, and is usually destroyed when completed. I haven't seen many situations where modeling an instance of a UML Behavior was needed and don't think you could do that in ArchiMate. But conceptually the instance of a Business Process would be a "Business Process execution". An instance of "Assess a Mortgage Application" would be something like "Assess Mortgage Application no. 42".
Title: Re: Where did "instance" go?
Post by: Modesto Vega on October 31, 2019, 07:25:23 pm
I agree it is a good idea to jump straight from a business object "BMW X1" to the technology element equipment for "BMW X1 with VIN# 12345".

Like Eve I have never seem where modelling instances of a UML behaviour. I also think Eve is correct when she states that conceptually the instance of a Business Process, "Assess a Mortgage Application", would be a Business Process Execution, something like "Assess Mortgage Application no. 42". Indeed, I cannot think of a situation where I would want to model like this - i.e., having an actor (or instance of) call " John Smith" and a business process (or instance of) "Assess Mortgage Application no. 42".

However, this thread is all about nuances. I’ll try to address some below.

Nuance 1 - Technology and physical equipment are not the same thing
[SNIP]
So filling that out, with simplifications and omissions for clarity:

Business Layer - Driver Role carries out the Driving Function as part of the Transportation Process
Application Layer - Motor Vehicle Component realizes the Driving Function, and the Pathway Component is used by the Motor Vehicle Component
Technology layer: Off-Road Pattern - Offroad vehicle device realizes Motor Vehicle Component and uses Muddy Road Node that realises the Pathway Component
Technology layer: On-Road Pattern - On-road vehicle device realizes Motor Vehicle Component and uses Asphalt Road Node that realises the Pathway Component
Technology layer: Off-Road Implementation Pattern - BMW X1 device is a specialization of On-road vehicle device and uses Muddy Road with < 200mm puddles Node that is a specialization of the Muddy Road Node
Technology layer: X1 #12345 Implementation - BMW X1 VIN #12345 device is a realization of BMW X1 device and uses Woodhill Forest Road #2 Node that is a realization of the Muddy Road with < 200mm puddles Node
Agree with one exception, your last bullet ("Technology layer: X1 #12345 Implementation") does not belong to the technology layer. It belongs to the physical, to use an ArchiMate term, layer or to the deployment layer, to use a UML term.

Nuance 2 - Perhaps we are mixing terms
[SNIP]
Perhaps the confusion here is the problem of types of implementation.
Aren’t we mixing 3 terms with different meanings: implementation, instantiation and generalisation (or specialisation if you prefer)? You can only classify using the latter (or classifiers).

Nuance 3 - What certain instances may be?
I'm not sure how a role can be a specific instance. It is a way of describing what can be one by one or more Actors.
Could I confuse things by suggesting that an instance of a Role is a runtime permission or set of permissions to do something?

Could I confuse things further by suggesting that an instance of an Actor is a runtime user session with an associated set of permissions?

Nuance 4 - From green to yellow
In the IT world, the yellow diagrams are for sales people and the project sponsors.  The blue diagrams are the ones that you draw on the whiteboard at the beginning of each argument.  The green ones are what the vendor was supposed to build, and they grow in number and detail as you iterate through the delivery mistakes.
Lastly, sometimes I have the feeling that architecture is going the yellow way instead of the green way. At times I see a trend, almost a paradigm shift, whereupon things are architected through yellow or blue diagrams with green diagrams almost confined to oblivion.

Hopefully the iPhone or iPad were not designed this way.

Nuance 5 - How do we represent relationships between objects in different layers?
For some reason, this possibly boils down to this question. In particular, what to do when the limits of generalisation/specialisation are reached?
Title: Re: Where did "instance" go?
Post by: Glassboy on November 01, 2019, 07:04:20 am
Nuance 4 - From green to yellow
In the IT world, the yellow diagrams are for sales people and the project sponsors.  The blue diagrams are the ones that you draw on the whiteboard at the beginning of each argument.  The green ones are what the vendor was supposed to build, and they grow in number and detail as you iterate through the delivery mistakes.
Lastly, sometimes I have the feeling that architecture is going the yellow way instead of the green way. At times I see a trend, almost a paradigm shift, whereupon things are architected through yellow or blue diagrams with green diagrams almost confined to oblivion.

You seem to be confusing architecture and engineering.  Generally architects are shit engineers and engineers are shit architects.  I've spent a lot of time over the last two years producing local network views for customers where they would have previously received a visio diagram which looked like a cross between noodles and fruit salad.  The network architecture communicates how the products/services the customer is investing in, achieve the outcomes needed to achieve their business goals.

If I were to relate this to actual real world devices in ServiceNow, I would have a set of "paragon" views that were a template to how sites were deployed, and then all of the ArchiMate nodes, devices, and system software that did this would realise the elements on the paragon view.
Title: Re: Where did "instance" go?
Post by: Rhys Lewis 2 on November 01, 2019, 02:28:26 pm
I've just learned an embarrassingly large thing via this thread:


Nuance 1 - Technology and physical equipment are not the same thing


Up until now I have conflated the Archimate Technology and Physical layers into one by assuming that they map to the TOGAF D: Technology Architecture domain.  In the words of Job, I will place my hand over my mouth at this point.
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on November 01, 2019, 05:33:33 pm
I've just learned an embarrassingly large thing via this thread:


Nuance 1 - Technology and physical equipment are not the same things


Up until now, I have conflated the Archimate Technology and Physical layers into one by assuming that they map to the TOGAF D: Technology Architecture domain.  In the words of Job, I will place my hand over my mouth at this point.
Well, my understanding was that Physical Elements were those things in the real world other than those already handled by the Technology Layer.
(from ArchiMate v3.0)
Technology: Device A physical IT resource upon which system software and artifacts may be stored or deployed for execution.
Physical: Equipment One or more physical machines, tools, or instruments that can create, use, store, move, or transform materials.

ArchiMate "creaks" quite badly in places.

Paolo
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on November 01, 2019, 06:37:37 pm
What do we mean by instance anyway?

Re-reading this thread and other sources, I've got confused about the use of the term instance.

I propose the following definition (for use in natural language discussion):

Instance
An example or single occurrence (specific and identifiable) of something more abstract.  We should distinguish between persistent instances (that have a lifetime extending beyond the duration of a single process) and transient instances (run-time only - existing only for the duration of a process).

For the purposes of this discussion, it seems to me that we are dealing only with persistent instances.

Can we agree on that?  Or use the above definition as a starting point for the amending it to create agreement?

Paolo

[Edit: on a colleague's suggestion, I altered ephemeral to transient.]
Title: Re: Where did "instance" go?
Post by: Modesto Vega on November 02, 2019, 11:30:57 pm
Nuance 1 - Technology and physical equipment are not the same thing
Well, my understanding was that Physical Elements were those things in the real world other than those already handled by the Technology Layer.
(from ArchiMate v3.0)
Technology: Device A physical IT resource upon which system software and artifacts may be stored or deployed for execution.
Physical: Equipment One or more physical machines, tools, or instruments that can create, use, store, move, or transform materials.

ArchiMate "creaks" quite badly in places.
I note the use of the past tense, instead of the present tense. If your understanding was correct, why would there be a need for the physical layer, after all both contain physical items?

The minute you enter the physical realm, the realm of serial or VIN numbers (even asset identifiers), you are in the physical layer. But there is a complication, please see paragraph below regarding architecture vs engineering.

By the way, I have never seen the UML concept to Node as a direct representation of something physical, please note the emphasis.

Nuance 3 - What certain instances may be?
[SNIP]
Instance
An example or single occurrence (specific and identifiable) of something more abstract.  We should distinguish between persistent instances (that have a lifetime extending beyond the duration of a single process) and ephemeral instances (run-time only - existing only for the duration of a process).

For the purposes of this discussion, it seems to me that we are dealing only with persistent instances.
Except for the part highlighted in red, this is how I always understood instance. However, I am not sure that we are dealing is this thread with persistent (or persistable) instances. However, you are touching an interesting issue underlying this discussion: hopefully we agree that something persisted is a row/record on a data entity/data store, please take both pairs of terms loosely and find the appropriate ArchiMate equivalents.

If we agree and have the following elements (> represent specialisations):
I) Vehicle > Motor Vehicle > (Motor) Car and Motor Car Model where (Motor) Car, and Motor Car Model both as Classes and Data Entities.
II) I propose that
II.a) The (Motor) Car data entity realises the (Motor) Car class, and the Motor Car Model data entity realises the Motor Car Model class.
II.b) An instance of a (Motor) Car Class is a row/record on the (Motor) Car Data Entity, and an instance of a Motor Car Model Class is a row/record in the Motor Car Data Entity.
[/list]

I was going to say I never had or seen a need to model this way but, but this thread may indicate otherwise. There are 2 aspects to this thread that could point towards such a need:
Personally, I am more interested in the later. For example, should a Digital Shopper actor be instantiated? If so, what metaclass does the instance use? If the instance of a Digital Shopper actor is to be persisted, what is persisted to (a Session class or data entity) and does the Session realise the instantiated actor? Furthermore, in the digital world a Digital Shopper is or, at some point gets transformed into a User Credential that is authenticated.

Nuance 4 - From green to yellow (building without engineering, engineering without architecting, architecting without understanding the requirements)
You seem to be confusing architecture and engineering.  Generally architects are shit engineers and engineers are shit architects.  I've spent a lot of time over the last two years producing local network views for customers where they would have previously received a visio diagram which looked like a cross between noodles and fruit salad.
I am not sure if I am confusing architecture and engineering but you do have a point. Architecting and engineering are separate things. In my simple mind, the engineers ‘world’ is the deployment layer (UML), and the technology and physical layers (ArchiMate).

My comment was more about diagrams looking “like a cross between noodles and fruit salad”. The abundance of such diagrams, I have also seen a fair amount of them, points out to a malaise that has afflicted IT for a long time, and does not seem to be getting any better: build without engineering, engineer without architecting, architecting without requirements. The good JFDI methodology.

This results on systems that look “like a cross between noodles and fruit salad” and on having to reverse engineering them to understand how it was constructed. ServiceNow plays a role in there.

Before somebody makes this point, I don’t think architects, engineers and developers are always required for anything we build in IT. But considering the complexity of some if the systems and ecosystems we developed, the frequent absence of building without engineering and engineering without architecting is staggering. The fact that this systems and ecosystems work and interact with each other may be proof that chaos theory applies to information systems and that somehow they are self organising.
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on November 03, 2019, 10:33:09 am
Hi Modesto,

Thanks for your usual thoughtful observations.  Lots to digest, as usual.  But, before I do I want to clarify one thing.

In my missives, I'm NOT (yet) discussing things line Classes, objects, elements etc.  That is, I'm not yet looking at the implementation of the model, but the requirements for the model (hopefully, negating the JFDI paradigm you so adroitly observed).  I'm dealing with the ontology of modelling.  Using the Helsinki Principle, we need to agree on what mean by what we say.

Can we keep it at that level for the present?  Looking at what you just wrote, a lot of it can feed upward to the more abstract level I'm dealing with.

Paolo
Title: Re: Where did "instance" go?
Post by: Glassboy on November 04, 2019, 08:16:58 am
Before somebody makes this point, I don’t think architects, engineers and developers are always required for anything we build in IT. But considering the complexity of some if the systems and ecosystems we developed, the frequent absence of building without engineering and engineering without architecting is staggering. The fact that this systems and ecosystems work and interact with each other may be proof that chaos theory applies to information systems and that somehow they are self organising.

Well if we were following the built environment paradigm that we like to steal protected terms from, someone would be responsible for town/district planning, someone would be responsible for the appearance of a building, and a small team of engineers would be responsible for areas where technology needs to be applied.   Unfortunately in computing anyone can have ago and nothing is protected to ensure human safety.
Title: Re: Where did "instance" go?
Post by: Paolo F Cantoni on November 04, 2019, 11:00:01 am
    Nuance 1 - Technology and physical equipment are not the same thing
    Well, my understanding was that Physical Elements were those things in the real world other than those already handled by the Technology Layer.
    (from ArchiMate v3.0)
    Technology: Device A physical IT resource upon which system software and artifacts may be stored or deployed for execution.
    Physical: Equipment One or more physical machines, tools, or instruments that can create, use, store, move, or transform materials.

    ArchiMate "creaks" quite badly in places.
    I note the use of the past tense, instead of the present tense. If your understanding was correct, why would there be a need for the physical layer, after all both contain physical items?

    The minute you enter the physical realm, the realm of serial or VIN numbers (even asset identifiers), you are in the physical layer. But there is a complication, please see paragraph below regarding architecture vs engineering.

    By the way, I have never seen the UML concept to Node as a direct representation of something physical, please note the emphasis.

    Past tense: If you mean "my understanding was that", then that was just a "turn of phrase".  My understanding still is that.  As I suggested, though, I came to the same question you did; "why do you need both?"  But I don't write the ArchiMate Standard. ;)  Was your question there, rhetorical? (Just asking)  If not, what is your understanding of the difference in the two layers (it's too hard right now on the bus to go back through the posts to see if you expressed a view)?

    Paolo[/list]
    Title: Re: Where did "instance" go?
    Post by: Modesto Vega on November 04, 2019, 08:56:53 pm
    [SNIP]
    But I don't write the ArchiMate Standard. ;)  Was your question there, rhetorical? (Just asking)  If not, what is your understanding of the difference in the two layers (it's too hard right now on the bus to go back through the posts to see if you expressed a view)?
    Well unsurprisingly, the standard does not help, it indeed creaks badly, having re-read the relevant sections, this is what I found:
    Technology Layer
    Quote
    The Technology Layer is typically used to model the technology architecture of the enterprise, defined by the TOGAF framework [4] as: “the structure and interaction of the platform services, and logical and physical technology components”.

    Node definition
    Quote
    A node represents a computational or physical resource that hosts, manipulates, or interacts with other computational or physical resources.

    Device definition
    Quote
    A device is a physical IT resource upon which system software and artifacts may be stored or deployed for execution.

    Physical Elements
    No definition but the following metamodel, indicating that Equipment is an specialisation of Node.
    (https://pubs.opengroup.org/architecture/archimate3-doc/ts_archimate_3.0.1-final-rev_files/image193.png)

    Equipment definition
    Quote
    Equipment represents one or more physical machines, tools, or instruments that can create, use, store, move, or transform materials.

    My reading of all of this is that in the technology layer you stop at the level of Cisco SGE2000P 24-Port Gigabit Switch - PoE and that a switch installed in a comms room with serial number 123456789-0986 and connected to a physical network is/should be represented using the Equipment element.

    Of course, since the standard mentions the word “physical” many times when describing the technology layer, anybody who wishes to you Node and Device to represent a Cisco SGE2000P 24-Port Gigabit Switch - PoE with serial number 123456789-0986 is well within the boundaries defined by the standard.

    I can only hazard to guess that a future version of the standard will elaborate the technology layer and physical elements in such a way that physical things will be represented just with physical elements.
    Title: Re: Where did "instance" go?
    Post by: Glassboy on November 05, 2019, 07:26:22 am
    I can only hazard to guess that a future version of the standard will elaborate the technology layer and physical elements in such a way that physical things will be represented just with physical elements.

    I wouldn't hold my breath.  My take on the people who work on ArchiMate is they still think floppy discs are a thing.
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 05, 2019, 02:17:22 pm
    I can only hazard to guess that a future version of the standard will elaborate the technology layer and physical elements in such a way that physical things will be represented just with physical elements.

    I wouldn't hold my breath.  My take on the people who work on ArchiMate is they still think floppy discs are a thing.
    Floppy disks!? 'Twert Lookshoory!
    Ma ferst storadge was a 2.5Mb RK05!  (Radius about 20cm) https://www.youtube.com/watch?v=twyBcWdPL4E (https://www.youtube.com/watch?v=twyBcWdPL4E)

    (with apologies to Monty Python https://www.youtube.com/watch?v=VKHFZBUTA4k (https://www.youtube.com/watch?v=VKHFZBUTA4k) - to be read, if possible, in a north country accent)

    Paolo
    Title: Re: Where did "instance" go?
    Post by: RoyC on November 05, 2019, 03:15:37 pm
    LOOKsherie! Kedz theeze dehzz...

    MAH fust storadge were a disk pak 30 centemeeters rehdioos an' 20 centemeeters deep, whut we put in drahve laike woshin' masheene. Ahh. Then we got pit pony t' roon in' cer-cle to mek disk spin t' reed it.

    RK05...pfft!
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 05, 2019, 04:22:10 pm
    LOOKsherie! Kedz theeze dehzz...

    MAH fust storadge were a disk pak 30 centemeeters rehdioos an' 20 centemeeters deep, whut we put in drahve laike woshin' masheene. Ahh. Then we got pit pony t' roon in' cer-cle to mek disk spin t' reed it.

    RK05...pfft!
    Them thar's RP06's (that was the month after).  My colleague took mine out the drive and put it on top of the "washing machine" and put his in.  He didn't put mine away and as he was booting up the RSTS operating system, it wobbled off the drive and smashed to the floor!  "Not happy, Jan!"

    Paolo
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 05, 2019, 04:41:44 pm
    "Dearly Beloved. We are gathered here in the sight of Sparx and of this congregation (forum) to join together the concept of instance and Sparx EA.

    Having duly defined the concept of instance as below, if anyone can show just cause why this definition and thread cannot lawfully be joined together in matrimony, let them speak now or forever hold their peace!"

    Instance
    An example or single occurrence (specific and identifiable) of something more abstract.  We should distinguish between persistent instances (that have a lifetime extending beyond the duration of a single process) and transient instances (run-time only - existing only for the duration of a process).

    For the purposes of this discussion, we are dealing only with persistent instances.

    (with apologies to melodramatic movies)

    Paolo
    Title: Re: Where did "instance" go?
    Post by: Modesto Vega on November 05, 2019, 08:14:21 pm
    Depth, an agreed definition and good humour. What else can you ask for on this forum?  ;)

    Hopefully we have not gone “Full Circle”, as a Cisco SGE2000P 24-Port Gigabit Switch - PoE with serial number 123456789-0986 is only persisted on something like the ServiceNow database, and the physical item on a comms room is not a instance of a Node or Device.

    P.S.: Glassboy - As I may have before nothing wrong with floppy disks.
    Title: Re: Where did "instance" go?
    Post by: qwerty on November 05, 2019, 09:03:27 pm
    What is matter anyhow? Do we exist at all? Did(/will) all philosophers die in vain?

    q.
    Title: Re: Where did "instance" go?
    Post by: Glassboy on November 06, 2019, 07:12:53 am
    What is matter anyhow? Do we exist at all? Did(/will) all philosophers die in vain?

    I think what Paolo is saying is that there is the real you (probably only known to yourself) and then there is the mythic you - the story you tell the rest of the world.
    Title: Re: Where did "instance" go?
    Post by: Rhys Lewis 2 on November 06, 2019, 07:49:02 am
    What is matter anyhow? Do we exist at all? Did(/will) all philosophers die in vain?

    I think what Paolo is saying is that there is the real you (probably only known to yourself) and then there is the mythic you - the story you tell the rest of the world.

    This is really getting back to Theseus' Ship.  The original ship was an instance of the Platonic ideal of Theseus' Ship, and then at every point where another plank was swapped out it created a new instance of the ship that shared some substance with prior and subsequent instances.  The instances themselves were not the ship itself, which was a technology node rather than a device.

    If you were to take the gradual degradation that caused the planks to need to be replaced, then there is an almost infinite series of instances of the ship, so the instances recorded at the swapping of the planks could be determined by a swinging door algorithm on a time series of the decay.

    Hope that's helpful.
    Title: Re: Where did "instance" go?
    Post by: Rhys Lewis 2 on November 06, 2019, 07:56:35 am
    In a rather dramatic development it appears that the Open Group has published a new version of the Archimate standard and has included the new Directed Association relationship https://blog.opengroup.org/2019/11/05/archimate-3-1-specification-the-new-version-of-the-standard/amp/ (https://blog.opengroup.org/2019/11/05/archimate-3-1-specification-the-new-version-of-the-standard/amp/).

    If I read this correctly, they have enhanced the "it means anything you like" relationship to allow an arrow and a stereotype, with the ominous warning,
    Quote
    Now you do need to exercise some caution in using this feature. It would not be very helpful, for example, to define your own relationship if something very close is already offered natively by the standard.
      We wouldn't want that to happen now, would we?

    I can also picture a scenario where EA including the derived relationships by default would save a lot of "hide this connector in other diagrams" admin.
    Title: Re: Where did "instance" go?
    Post by: Glassboy on November 06, 2019, 08:12:27 am
    In a rather dramatic development it appears that the Open Group has published a new version of the Archimate standard and has included the new Directed Association relationship https://blog.opengroup.org/2019/11/05/archimate-3-1-specification-the-new-version-of-the-standard/amp/ (https://blog.opengroup.org/2019/11/05/archimate-3-1-specification-the-new-version-of-the-standard/amp/).

    Marc Lankhorst was asking on LinkedIn what changes the working group should be looking at next.  I haven't bothered to comment as I've gained the view that a lot of the people discussing ArchiMate on LinkedIn don't really use it.
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 06, 2019, 10:40:04 am
    Depth, an agreed definition and good humour. What else can you ask for on this forum?  ;)

    Hopefully, we have not gone “Full Circle”, as a Cisco SGE2000P 24-Port Gigabit Switch - PoE with serial number 123456789-0986 is only persisted on something like the ServiceNow database, and the physical item on a comms room is not an instance of a Node or Device.

    P.S.: Glassboy - As I may have before nothing wrong with floppy disks.
    (my emphasis)  We aim to please!  Yesterday, I must have got up on the right side of the bed as I was feeling quite playful...

    No, we haven't gone full circle!  At least, we have travelled along what I call the "rising spiral".  In 2D we may appear to be over the same 2D point, but in 3D we have moved along the z-axis.

    More on your switch later (especially after I check out the ArchiMate "thang").

    Paolo
    Title: Re: Where did "instance" go?
    Post by: Rhys Lewis 2 on November 08, 2019, 09:41:43 am
    ... as a Cisco SGE2000P 24-Port Gigabit Switch - PoE with serial number 123456789-0986 is only persisted on something like the ServiceNow database ...

    Not necessarily.  At a large site it is important to plan these things ahead of time so that when the deployment team goes out they put the right thing in the right place.  The first round of planning is "what do we need?", which is the yellow and blue diagrams.  Then there is the "what technical solution are we going to roll out to solve that need?", which is the technology layer (1st green diagrams).  And finally there is the "what is the field technician going to deploy at site #3?" plan which is the equipment/device layer (2nd green diagrams).

    Then in the subsequent months or years when people ask, "what ended up at site #3?" you pull out the diagram to show what is there.

    Speaking of full circle, it's the 1st to 2nd layer green diagrams where the instance functionality was useful.  I have started using the Child Generalisation option in EA, which may not be canonical Archimate but produces readable diagrams.
    Title: Re: Where did "instance" go?
    Post by: Modesto Vega on November 08, 2019, 07:30:50 pm
    ... as a Cisco SGE2000P 24-Port Gigabit Switch - PoE with serial number 123456789-0986 is only persisted on something like the ServiceNow database ...

    Not necessarily.  At a large site it is important to plan these things ahead of time so that when the deployment team goes out they put the right thing in the right place.  The first round of planning is "what do we need?", which is the yellow and blue diagrams.  Then there is the "what technical solution are we going to roll out to solve that need?", which is the technology layer (1st green diagrams).  And finally there is the "what is the field technician going to deploy at site #3?" plan which is the equipment/device layer (2nd green diagrams).

    Speaking of full circle, it's the 1st to 2nd layer green diagrams where the instance functionality was useful.  I have started using the Child Generalisation option in EA, which may not be canonical Archimate but produces readable diagrams.
    You are essentially describing an architecting (in blue), engineering (in green) and building approach (the 2nd green diagrams) process. In this case I have no objection if the word engineering is used to describe the work behind producing the 2 green diagrams.

    Just to get this clear in my head out of curiosity:
    - Do you have a Node element for the Cisco SGE2000P 24-Port Gigabit Switch without a serial number in the blue or 1st green diagram?
    - Do you then create (or want to create) green diagrams where the Cisco SGE2000P 24-Port Gigabit Switch without the serial number is replaced by an instance of it and add the serial number to it?
    - What object type does Sparx EA use (or would you Like Sparx EA to use) for the instance?
    Title: Re: Where did "instance" go?
    Post by: Rhys Lewis 2 on November 11, 2019, 07:44:33 am
    Just to get this clear in my head out of curiosity:
    - Do you have a Node element for the Cisco SGE2000P 24-Port Gigabit Switch without a serial number in the blue or 1st green diagram?
    - Do you then create (or want to create) green diagrams where the Cisco SGE2000P 24-Port Gigabit Switch without the serial number is replaced by an instance of it and add the serial number to it?
    - What object type does Sparx EA use (or would you Like Sparx EA to use) for the instance?

    It varies by how much of the full set of possible documents a project requires.  In the 1st green diagram I used a lot of nodes, but have also started using devices and equipment a lot more lately.

    If I am creating a few instances of a thing, then I will make a Node, Device, Equipment or Technology Object in a special folder called "Types".  At the moment I have an Archimate_Node in that folder called "Switch", but if I were doing that again I think it would be a Device.  When I have a diagram with one or more particular switches, then if they are older diagrams they are Instances of that type, and for newer ones they are now Child Generalisations.

    Otherwise I often create the instances of the 2nd level green diagram from the objects of the 1st level green diagram.

    When it comes to real-world project documentation there are a variety of ways that it will diverge from the idealised set, but they are centred around that ideal even if they are not all carbon copies.

    One of the huge advantages of using instances or generalizations rather than raw Archimate objects is that they assume the visual properties of a Class, and you can view or hide the tags.  So for almost every instance I have a tag "IP" that has it's IP address.  Other types of device have other things that are useful to include in tags, such as type (eg. IE-4000-8T4G-E).  That way you can toggle the Tag feature for a diagram to have a clean "just what's there" view, or a more detailed "tell me everything" view that includes details about each box.
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 11, 2019, 10:27:22 am
    Hi Rhys,

    I'll bite.  What's a "Child Generalization"?  In normal modelling usage, that would be an oxymoron.  Generalization is a directed relationship from the origin (so-called child) to the destination (so-called parent).  Specialization is the antonym of Generalization and therefore directed from the more general to the more specific.

    Paolo

    Title: Re: Where did "instance" go?
    Post by: Rhys Lewis 2 on November 11, 2019, 10:37:53 am
    I'll bite.  What's a "Child Generalization"?  In normal modelling usage, that would be an oxymoron.  Generalization is a directed relationship from the origin (so-called child) to the destination (so-called parent).  Specialization is the antonym of Generalization and therefore directed from the more general to the more specific.

    That really is the life blood of this thread.  On the one hand is the canonical forms suggested by the Archimate standard, and on the other is the things that actually happen when you drag Archimate objects from the project browser onto a diagram.

    As it stands, if I drag an Archimate technology object (Node, Device, Equipment etc.) onto a diagram I have two choices: Link (ie. put the existing one onto the diagram) or "Child (Generalization)", which is the only way to create a relationship from the existing object to the new thing that is to be represented on the diagram. 

    I suppose that another way around the problem would be drag the first object onto the diagram, create a new object of a suitable type, then connect them with a relationship from Toolbox, then remove the first object from the diagram.  However this won't visually embed the relationship in the new object.

    Which returns me to my original question, "Where did "instance" go?"
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 11, 2019, 11:17:04 am
    Ah... My Apologies... As you probably have realised, I'm somewhat of a pedant (many pedants here would say I'm an absolute pedant  ;)).  But hey, "Let's hear it for pedantry!"  ;D

    Child Generalization and Child (Generalization), aren't the same thing and Sparx has helpfully added to the confusion by making the link generate a non-ArchiMate term (Generalization)  The term is used EXACTLY once in the standard and then ONLY to point out that the ArchiMate concept is Specialization (and I suspect to give UML a "Serve" for defining Generalization the wrong way round).

    Anyway, now I understand and I agree that (as the Standard says) "a specialization relationship is always allowed between two instances of the same element".

    This thread has REALLY got me thinking about the nature of instances and as you said, it's the lifeblood of this thread.

    I'm still refining my thoughts (while tryng to get on with my day job).  Hopefully, I'll have some input soon.

    Paolo
    Title: Re: Where did "instance" go?
    Post by: Rhys Lewis 2 on November 11, 2019, 11:34:00 am
    many pedants here would say I'm an absolute pedant 

    "Absolute" in the sense of undiminished, independent of other things, or a pedant for things that are themselves absolutes?
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 11, 2019, 04:19:10 pm
    many pedants here would say I'm an absolute pedant 

    "Absolute" in the sense of undiminished, independent of other things, or a pedant for things that are themselves absolutes?
    Would you accept Both?  ;)

    And to illustrate that... What do you understand by: "a specialization relationship is always allowed between two instances of the same element".

    Is BMW X3 a specialization of BMW X1 - surely not?  Can there be a specialization of BMW X1 with Vin#?  Where is the element?  What is the Element?  Is it a metatype?  Why do Actors "get a guernsey" as an Element, but Motor Vehicles don't?

    Thoughts?
    Paolo
    Title: Re: Where did "instance" go?
    Post by: Modesto Vega on November 12, 2019, 01:01:25 am
    Just a number of random comments:

    1) "Child (Generalization)" is Sparxian for Specialise, by choosing "Child (Generalization)" you are creating a new element with an specialisation relationship to its parent.

    2) According to section "7.3.20 Generalization (from Kernel, PowerTypes)" of OMG Unified Modeling LanguageTM (OMG UML), Superstructure - Version 2.2: "A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier."

    I cannot see too much wrong with this. But the use of the word instance (with small 'i') is interesting. It suggests that as Paolo has been suggesting a specialised element is an instance, with small "i", of its classifier/parent element.

    3) When "Instance (Object)" is used in Sparx EA, all Sparx EA does is to set the classifier of the new/child element to the parent without creating a relationship. This may be an Sparxian, and perhaps incorrect, interpretation of UML because my understanding, hopefully not incorrect, is that classifiers can be applied to classes, actors, components and so on.

    4) ArchiMate is a name only modelling language, the ArchiMate specification does not mention attributes and operations anywhere when describing the metamodel. As a result, no features are inherited when specialising in ArchiMate because there are features to be inherited. The fact that tags can be added is most likely a Sparxian deviation from the standard.

    My conclusion is that Generalisation/Specialisation is likely to be the most semantically correct way to achieve what Rhys has in mind.

    Interestingly, I cannot find a definition for Instance or Object in OMG Unified Modeling LanguageTM (OMG UML),
    Superstructure - Version 2.2
    . There are plenty of definitions including both words but none for each word on its own with a capital letter.

    Title: Re: Where did "instance" go?
    Post by: Glassboy on November 12, 2019, 08:14:33 am
    Why do Actors "get a guernsey" as an Element, but Motor Vehicles don't?

    I love that you mix pedantry with a colloquialism that even I, as someone who is fluent in 'straln, had to look up :-)
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 12, 2019, 11:04:04 am
    Why do Actors "get a guernsey" as an Element, but Motor Vehicles don't?

    I love that you mix pedantry with a colloquialism that even I, as someone who is fluent in 'straln, had to look up :-)
    As I said to Modesto, "We aim to please".   ;)

    Of course, being a Kiwi, you'd mispronounce 'Strine.  :-X But you're forgiven... 

    Paolo

    [In some seriousness, as a person for whom English wasn't, technically, my first language I like to encourage our non-EFL correspondents to explore some of the more esoteric areas of this fascinating language]
    Title: Re: Where did "instance" go?
    Post by: Rhys Lewis 2 on November 12, 2019, 12:02:52 pm
    Of course, being a Kiwi, you'd mispronounce 'Strine.  :-X But you're forgiven... 

    There's a class differentiation.  A person who says 'Strun probably went to a better school than a person who says 'Stroine
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 12, 2019, 12:43:59 pm
    Of course, being a Kiwi, you'd mispronounce 'Strine.  :-X But you're forgiven... 

    There's a class differentiation.  A person who says 'Strun probably went to a better school than a person who says 'Stroine
    [haughty tone]indeed! As one, as mentioned, for whom English is not one's first language, one attended the type of school that taught one how to pronounce Cholmondeley.[/haughty tone]  ;)

    Paolo
    Title: Re: Where did "instance" go?
    Post by: Glassboy on November 12, 2019, 12:57:57 pm
    Of course, being a Kiwi, you'd mispronounce 'Strine.  :-X But you're forgiven... 

    Yeah it's hard when you make vowel sounds in your mouth, not your nose :-)
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on November 29, 2019, 10:37:26 am



    Just reiterating that, for the present, I'm NOT interested in the elements in a repository (UML or ArchiMate things), but merely the language we use to converse.  I don't know where Modesto or Rhys are located (I suspect the UK), but they and I (as examples) have never met and need to be able to communicate unambiguously using only the written word.  Having (as per the Helsinki Principle) agreed on our terminology/ontology, we can then look at how we put these things in a repository.

    Previously Modesto said:
    "ArchiMate is a name only modelling language, the ArchiMate specification does not mention attributes and operations anywhere when describing the metamodel. As a result, no features are inherited when specialising in ArchiMate because there are no features to be inherited."

    I agree with his statement (about ArchiMate) however, it seems to me that the concept of a "name only modelling language" is a non-sequitur!

    One can't create falsifiable models when, as in Alice in Wonderland[2], a "word can mean whatever I want it to mean".  There need to be more formal differentiation mechanisms than just the name, otherwise, I can say BMW X3 is a specialization of BMW X1!

    So, let us accept that the things we are modelling can be characterised by their features.  Features are defined by their nature (Structural and Behavioural) and by the characteristic they describe.  Thus a structural feature for a motor car might be body type, for a bird a behavioural feature might be migration behaviour.

    Some things are specializations of other things.  In modelling, we normally associate specialization with "inheritance" of features.  In order to be an inheritor, the specialized item must have a different feature set than the more general item.  Cetacean is a special form of Mammal.  Hierarchies of this type of inheritance are classification schemes.  Classification schemes have depth and the item can only be one classification in one scheme.  However, schemes can be orthogonal.

    But colloquially, we also observe a different type of specialization, that of restriction.  A completed order is a special form of an order.  Non-modellers would certainly say they were talking about specialization.  Restrictions are Categorisations - shallow and overlapping.

    Thoughts?

    Paolo

    [2] Alice in Wonderland: "When I use a word," Humpty Dumpty said, in rather a scornful tone, "it means just what I choose it to mean—neither more nor less." "The question is," said Alice, "whether you can make words mean so many different things." "The question is," said Humpty Dumpty, "which is to be master—that's all."
    Title: Re: Where did "instance" go?
    Post by: Rhys Lewis 2 on November 29, 2019, 11:02:13 am
    I don't know where Modesto or Rhys are located (I suspect the UK), but they and I (as examples) have never met and need to be able to communicate unambiguously using only the written word.

    I have existed in the UK, but at the time of writing I could not be much further from the UK without being on a boat.  Which is perhaps an interesting example of the need to add a temporal dimension to the representations of modelling, because structural and behavioral dimensions would only be sufficient in a presentist view of reality.

    So, let us accept that the things we are modelling can be characterised by their features.
    ...
    Some things are specializations of other things.

    This is a useful approach for considering the taxonomy of modelling, but reality is in the opposite direction, where certain things can be considered to exist, and our models abstract away details to either:
    1. Create patterns that are sufficiently vague that they can be usefully applied to multiple realities, or
    2. Chronicle our journey from optimistic planning free of the burdens of detail through to the robust compromises of delivery

    Inheritance and specialization are relevant to that second situation where the journey from platonic ideal to reality may branch to multiple realities (eg. Site A vs. Site B, UAT vs. Prod, Phase 1 vs. Phase 2...)
    Title: Re: Where did "instance" go?
    Post by: Glassboy on November 29, 2019, 11:06:42 am
    I agree with his statement (about ArchiMate) however, it seems to me that the concept of a "name only modelling language" is a non-sequitur!

    The introduction for the ArchiMate specifications says it is for

    Quote
    for the representation of Architecture Descriptions
    .

    I'd contend that they shouldn't have switched from calling it "a notation" to a language.  It lacks most of the features of a language.
    Title: Re: Where did "instance" go?
    Post by: Modesto Vega on November 29, 2019, 09:28:34 pm
    I am not sure if stating that ArchiMate is "a name only language" is a "non-sequitur" because this thread shows that perhaps we do not fully understand the implications. This is because as @Glasboy has noted it lacks most of the features of a language and it is the absence of some of these features that erases the boundary between an "instance of" and "type of".

    We all understand and agree what "type of", generalisation/specialisation, means. The issue that this thread highlights, in my opinion, is that the same does not apply to "instance of", at least not with the same clarity.

    Strictly speaking an "instance" represents the occurrence of something more abstract and describes its distinguishing characteristics by attributing values to its features.

    In ArchiMate, the problem with this definition is that the only feature is the "name", and this means that the only way of describing any distinguishing characteristics is by adding words to the name - e.g., Being > Human Being > Female Human Being or Male Human Being, Vehicle > Motor Vehicle > Car > BMW X1 with VIN 13456789, or Switch, POE Switch, POE Switch with Serial Number ABC-123456. This does not look very efficient or elegant to me.

    Consider the following, if ArchiMate elements represent types of words and the relationships the grammar, then
    1) the words are featureless (unless the specification defines their features), and
    2) all features must be represented through the grammar

    What does having featureless words mean? Consider a natural language with featureless words, unless the grammar supports it, a natural language without features lacks inflection. Inflection is the process of word formation whereupon words are modified to express different grammar categories such as tense, case, voice, person, number, gender and so on.

    I know this is a bit more complex but it is a good starter.

    P.S.: Because relationships are also featureless, a similar argument may apply is the elements represented nouns and relationships verbs.

    P.S. (2): There is nothing wrong with a featureless (or nearly featureless) language but it has expressive limitations, and this has to be acknowledged.

    P.S. (3): Somehow, this reminds of W.V. Quine concept of radical translation, whereupon a linguist encounters a community whose language is completely unrelated to any language familiar to the linguist and the linguist has to attempt to fully translate the unfamiliar language. We are linguists attempting to translate a technical language to plain English and discussing how different technical languages are to be translated into each other. I think the later is a good exercise. I always have some resistance to the former because technical languages are there to express something non-technical languages cannot express.
    Title: Re: Where did "instance" go?
    Post by: Glassboy on December 02, 2019, 06:58:47 am
    P.S. (3): Somehow, this reminds of W.V. Quine concept of radical translation, whereupon a linguist encounters a community whose language is completely unrelated to any language familiar to the linguist and the linguist has to attempt to fully translate the unfamiliar language. We are linguists attempting to translate a technical language to plain English and discussing how different technical languages are to be translated into each other. I think the later is a good exercise. I always have some resistance to the former because technical languages are there to express something non-technical languages cannot express.

    I couldn't disagree with this point more. One of the goals of ArchiMate was to render technical descriptions in plain language (I'm unsure if this was meant to be English or Dutch).  The translation problem isn't because ArchiMate is an unknown or alien language, it's because it's the equivalent of operating with the understanding of vocabulary and grammar of a three year old.
    Title: Re: Where did "instance" go?
    Post by: Paolo F Cantoni on December 02, 2019, 10:32:07 am
    P.S. (3): Somehow, this reminds of W.V. Quine concept of radical translation, whereupon a linguist encounters a community whose language is completely unrelated to any language familiar to the linguist and the linguist has to attempt to fully translate the unfamiliar language. We are linguists attempting to translate a technical language to plain English and discussing how different technical languages are to be translated into each other. I think the later is a good exercise. I always have some resistance to the former because technical languages are there to express something non-technical languages cannot express.

    I couldn't disagree with this point more. One of the goals of ArchiMate was to render technical descriptions in plain language (I'm unsure if this was meant to be English or Dutch).  The translation problem isn't because ArchiMate is an unknown or alien language, it's because it's the equivalent of operating with the understanding of vocabulary and grammar of a three-year-old.
    I think Glassboy has "hit the nail on the head".  It's what prompted my post last week.  To say that business-level items don't have properties of features is a non-sense to me.  It's a simplistic (NOT simple, TOO simple) view.

    Also, the notion that you have to separate the structural properties from the behaviour properties is suspect.   I have actor "X" and I have a business object "data about actor X" (if I haven't misunderstood) seems stupid to me.

    Paolo
    Title: Re: Where did "instance" go?
    Post by: Modesto Vega on December 02, 2019, 07:47:09 pm
    If what Glassboy and Paolo are saying is that having a featureless notation/language, such as ArchiMate, is an oversimplification, I could not agree more. I was also trying to communicate this point. For the absence of doubt, I think most of the things we need to model have and should have features.

    Despite Glassboy’s disagreement, I still think that we are doing in this thread is a ‘radical translation’ exercise insofar AFIK the ArchiMate specification does not explain how to translate a featurefull instance into a featureless instance. For example, if we had an Organisation element with a couple of attributes as its features - e.g., name and year created, one could argue that both Sparx Systems and the OMG groups are instances of an Organisation with a year created of 1986 and 1989. However, this is trickier with a featureless notation/language as all I can have is 3 elements with the names Organisation, Sparx Systems and OMG and a arbitrary relationship to show that last 2 elements are an instance of the first element.

    Please keep in mind that there is no instantiation relationship in ArchiMate or UML. If I remember correctly in Sparx this is handled by setting the classifier to the instantiated element.
    Title: Re: Where did "instance" go?
    Post by: Glassboy on December 03, 2019, 06:55:44 am
    Despite Glassboy’s disagreement, I still think that we are doing in this thread is a ‘radical translation’ exercise insofar AFIK the ArchiMate specification does not explain how to translate a featurefull instance into a featureless instance.

    If you compare ArchiMate to FIBO, for example, you'll see the difference between what happens when there is a group that cares about the epistemological and ontological issues. :-)  If EA supported a tool like Git for MDGs I think what you might find is that a) there'd be community made ArchiMate profile, and b) there'd be UML based MDG that did "ArchiMate" properly.  I personally have a number of items from when I contributing to Nick Malik's Enterprise Business Motivation Model revisions that I'd like to incorporate into business views in a proper Enterprise focused architecture tool.