Hi Paolo,
Thanks for the considered response! I DO enjoy a good, and thought-provoking, discussion!...
You're always welcome! Thought-provoking discussions are a joy to enage because we're always bound to learn something from each other.
...Firstly, the concept of "instance" is problematic for me...
The "instance" concept was on my mind for a few days during our discussions, as I challenged
what is meant by "instance".
...the concepts of having multiple "instances" on the diagram implies multiple "instances" in the model, otherwise you have broken the one-to-one relationship you assert....
Yes, i realised the term "instance" was not clearly defined, since we both interpreted the word in a different context: my context was in reference to "diagram", your context was in reference to "model".
Isn't it amazing that this discussion demonstrates a real-world example of how often definitions mean different things to different people based on different
contexts? How important then is the use of a
common business vacabulary between "techies" (say as ourselves) and the "get-paid-a-lot-to-know-nothing" management of a business? This example, to me, shows the importance of
context.
How many times do we use words or terms that are not the same as what our target audience think? Because of this difference we end up teaching business people to speak our tech language. It's as if we proclaim,
"We say PO-TAY-TOOOOAH; thou shalt speak after our manner; and after our manner shalt thou speak. For thus say ye: POTAYTOW" And after this declaration, did many days pass. For the passing of many days did occur. And upon the third day of the passing of many days, did the Architects descend. And the people came with hearts glad. For the people inquired of them concerning the potatoes, grown high on Architect Mountain. And thus spake the people, "Oh Architects! We beseech thee, tell us! How doth thine 'pudding-toes' fare upon thine mopuntain?" (insert here dramatic scenes where the Architects once more school the people on the correct pronounciation of their glorious 'potty fate toes')I believe no argument exists for the statements that (1) a model must only EVER contain a single "instance" of an element, and (2) a diagram contains multiple
visual "instances"
...the (correctly implemented) VCE is the mechanism to consistently achieve this. So that the diagram and model are still "in synch"....
Absolutely. Problem is that this is difficult to achieve right now.
..However it will NOT materialize the relationship if none exists when you visually embed. This is unfortunate. We have written scripts to materialize such relationships into the repository....
Interesting... initial reaction is that this is "as-is". Since elements on a diagram should be related to
something, then surely this beahvior is correct? I'm intrigued to know more about why you wrote scripts to materialize these relationships... because... I'm thinking... "ArchiMate". (things like, when we embed elements, technically we are 'composing'/'aggregating' those elements, but Sparx won't create the relationships automatically because it's a UML modelling tool, not an ArchiMate tool. And that's why we'd have to script this logic)
...Similarly, if we have multiple rederings of the same item on a diagram we are expressing that the item is related to other items on the diagram in some way; else why place it thereon? If there is a relationship, then we can create a VCE....
..I assert, without any mathematical proof, that every item on a diagram has to be in a (conceptual) relationship with at least one other item on the diagram (which may or may not be materialized in the repository) and consequently can be rendered multiply according to the number of potential VCEs that exist for that item on that diagram....
Say hello to ArchiMate and derived relations. Derived relations are exactly what you describe in that they don't "exist" but are inferred based on rules of precendence and type of connector. The derivation is based on mathematics.
Here's a contrived example: (please don't model like this, it's just an example)
|---------------| |--------------------|
| SQL Server |----<<serves>>---->| Business Service A |
|---------------| |--------------------|
(technology layer) (business layer)
Technically this is not a good model because we should not model
physical software instances in a business model. BUT conceptually it's OK because ArchiMate permits hiding away of complex relations between components of a model. This is what "derived relations" address. As you mentioned, I believe they're the same as your thinking of "conceptual relationship even if it does not materialize in a repository".
So given the (incorrect) ArchiMate model above, the "<<serves>>" relationship is actually a "derived" relationship. If we analysed the connector further, and asked "
why is SQL Server USED by Business Service A?" we would then uncover an entire possible set of nodes, devices, application components, interfaces, collaborations and business processes etc. used to reach the business service.
...we came up with the notion of "presentation mode" where the item shape scripts can respond to the diagram type and become visually simplified automagically...
I wish you well if you ever decide to log this as a "feature" with the Sparx team.
...My point is that if we break the modelling paradigm (which the VCE - in my view - doesn't) then we aren't modelling any more, just drawing pictures....
Ah! Good question. When you present your pictures to stakeholders, which of the following do they tend to see
- Pretty pictures of boxes and line "thingies"?
They look at The Pretty and think "it looks pretty. Colour scheme is good. Wow there's a box that states "CRM" and another that states "SQL". OK. Got it! Let's build this thang! - A well-thought out conceptual model?
They heap praise on us for our chastity and purity in the UML presented before them but haven't got a clue what's going on. So, we have to declare what is a PO-TAY-TOOAH (see historical account above)
I think based on the question and your statement, that modelling and drawing pictures go hand-in-hand. The pictures must look good and be easily digested, while the model must enable us to maintain governance.