Book a Demo

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Paolo F Cantoni

Pages: [1] 2 3 ... 575
1
You could also say it’s a prototype model.
You are making prototypes of the concepts to illustrate their usage.

Geert
Good thought!  Maybe a Metatype diagram, since that’s what’s going to be on it!


Paolo

2
Thanks, guys, for your input.  Most valuable!

I think, using (mainly) Geert’s reply, that what I am building is a profile diagram.  Its intent is similar to the poster, but drawn from an individual node’s perspective (like my Neighbourhood diagrams).

The next problem is that, unlike the paper or PDF poster, I’m creating a model.  So I think I need to distinguish my Concept Node item from the Concept item.  Perhaps I could name the Concept node “«Concept»”, since it embodies the metatype?  Thoughts, other suggestions?

Paolo

3
I take a very rigorous approach to nomenclature.  I reserve the term “nesting” for physical nesting, in which the identity of an item depends on its holonym.  I use the term “Visual Embedding” to describe the ability to move an item into or out of (just as important) another item on a diagram.
I know, and was aware I could get in trouble by using a less rigorous approach to nomenclature.  But I will blame the forum’s poor search engine for not allowing me to quickly find one of the posts where we discussed this in the past.  Perfectly happy with “nesting” meaning physical nesting, and using “visual embedding” to describe the ability to move an item in or out of another item on a diagram.  Having said this, Sparx EA doesn’t do “visual embedding” very gracefully at times. 
It wasn’t trouble, merely a gentle correction. :)  I agree with your point about the searching capability.  Why is searching SO hard (as a functionality)?  It’s not just here that one can criticise the searching as being less than optimal.  Anyway, another gentle correction (to myself, not the least), Nesting doesn’t actually apply to physical nesting; it applies to referential or access nesting - as I have indicated in the past, nesting defines the namespace of the meronym - in other words, you have to access the higher level items to get to the lower level item  (x.y.z).  The physical nesting in the browser is just a manifestation of that concept.
Quote
Also, “nesting” is really a form (de-)composition, but AFIK, there is no relationship for it in any modelling language I am familiar with.  Is this not the same as representing “car” as a group of interrelated elements - e.g., engine, wheels, chassis, body, and so on - or a one element with (physically) nested elements?
Yes, you are correct, it is a form of composition, but from the point of view of accessing the item via its FQN.  We use the Nestign Connector as described in the User Guide:
Index > Modeling Languages > Unified Modeling Language (UML) > UML Connectors > Nesting
extensively so that if the meronym and the holonym are on the same diagram, there will be a visual indication that there is a referential nesting, even if the name doesn’t show that (we use use-friendly Aliases a LOT).  The UG places it under UML Connectors (as you can see above), but I couldn't find any reference to it in the Superstructure. 

As Guillaume and I have shown, no redesign of the browser is required; all that is required is to redesign the concept in our brains.  It is easy enough to implement.

Just to clarify my point, I know you and Guillaume have proven you can do this with an MDG.  Actually, I have done it myself.  My point is two-fold:
1 - From previous interactions with Sparx Systems through the support desk, and with Eve and other people in this forum, I got the impression that changing the way the Grouping element works is considered a very significant change, not very high up in their plans.I, too, have observed this.
Quote
2 - From a usability point of view, the package browser, which is essentially a physically nested structure (almost an extended folder structure), often makes collaborative work on a single repository difficult and leads to unwanted data duplication. The collaboration problem would be easier to solve if a view, a Sparx EA view, could be constructed showing how elements are/or could be visually embedded.  If the browser could be hidden for certain users, this view could serve as the main entry point for work by some of the users we typically collaborate with.  After all, some relationships are a natural visual embedding: specialisation, aggregation, and composition.
Since we gave away the notion of the browser indicating any form of holonymy, we basically haven’t had that problem.  Only items that require referential nesting are nested.  All other items are in a "flat" structure (by type).  The diagrams are in a separate branch of the repository and can be structured however you like.  Consequently, we don't have as much of a problem as you do.

Paolo

4
We are familiar with creating an MDG, particularly in this section of the website.  The MDG defines the nodes that the technology allows you to create and the edges that can connect them.  It also allows you to define how the various nodes and edges will be rendered, along with any constraints that may apply.  It further allows you to define the nature and properties of the items.  This sounds suspiciously like a metamodel, but is it?  If it’s not a metamodel, what is it then?

I’m asking for your thoughts.

We currently create our MDGs in a separate repository that contains the MDG definitions.  We then generate the MDG and apply it to the repository that holds the actual models we are developing.  As the MDG developer, I can review the diagrams (in the MDG repository) for the items and visualise how they will appear in the model repository.  But this is too difficult for the user who just wants to model and understand the rules.  “The thigh bone’s connected to the knee bone, the knee bone’s connected to the leg bone... etc.”.  So I thought we’d create the equivalent diagram to the one in the MDG, but with the «stereotype» item replaced by the generated item and the «stereotyped relationship» replaced by the generated edge and so on.  This would provide a visual view of what the MDG can do.

What kind of diagram would this be?  Could I call it a metamodel diagram?  What about the items, both nodes and edges, on the diagram?  Are they the generated items or something else?
For example,  I have «stereotype» in the MDG whose _metatype is Concept.  Concepts are represented as nodes in the model (in fact, they look suspiciously like ArchiMate Meaning items).  Do I place a Concept on the diagram, or do I place a Concept Node on the diagram?  Similarly, do I place a Composition or a Composition Edge on the diagram?

Thoughts and suggestions would be much appreciated.

Paolo

5
We can indeed use Guillaume’s solution. I think I used it once in the past.

The Standard says: (4.5.1 Grouping)
“The grouping element is used to aggregate or compose an arbitrary group of concepts, which can
be elements and/or relationships of the same or of different types.”
As noted by Paolo, in a much more sophisticated language, the issue with the way this is implemented is that, from memory, it is not possible to draw aggregations and compositions between a grouping and the elements it groups.

This, of course, brings to the forefront the way the browser was designed and implemented —and one of Paolo’s favourite subjects: visual nesting vs. physical nesting (Paolo, sorry for paraphrasing).
I take a very rigorous approach to nomenclature.  I reserve the term “nesting” for physical nesting, in which the identity of an item depends on its holonym.  I use the term “Visual Embedding” to describe the ability to move an item into or out of (just as important) another item on a diagram.
Quote
The issue is that the browser enforces physical nesting, meaning an element can exist only in one package or as a composite of another element—i.e., it can have only 1 parent element (package or standard).  This means, the same version of an element can only exist once in the browser.  I suspect Sparx Systems sees implementing the ArchiMate grouping, which could be argued is a form of visual nesting (not physical nesting), as a complete redesign of both the browser and the underlying data model; something they may not want to undertake.
Not quite; Grasshopper...  The ArchiMate Grouping is a Holonym (either an aggregate or composite - as required), consequently, the convention of suppressing the holonymic relationships when visually embedding applies.  That is, the impetus is reversed from what your statement implies.

As Guillaume and I have shown, no redesign of the browser is required; all that is required is to redesign the concept in our brains.  It is easy enough to implement.

Cheers,
Paolo

6
Suggestions and Requests / Re: Connector multiple selection
« on: November 13, 2025, 03:52:51 pm »
I've recently become a user of Enterprise Architect again after several years away and this was the first pain point I ran into when trying to change the line style of my connectors.

I found a workaround for my (Data Model) case:
 - Select all diagram elements (Ctrl + a)
 - Open the "Relationships" window
 - Multi-select the relationships/connectors that you want
 - Right click - change line style
“Noice!”

Paolo

7


A key challenge in the Sparx Systems implementation of both the UML Package and the ArchiMate Grouping element is the conflation of an element’s type with its role as a container.  This design choice, while pragmatic in some respects, restricts the ability to create relationships to or from the container itself and other “proper” elements, fundamentally complicating modelling efforts such as the one described by the OP.
I basically agree with Modesto (surprise, surprise! ) with a few, hopefully minor, caveats (see below).  We also used Guillaume’s solution to create our own Grouping Element (with a set of supporting scripts).

The Standard says: (4.5.1 Grouping)
“The grouping element is used to aggregate or compose an arbitrary group of concepts, which can
be elements and/or relationships of the same or of different types.”
Now, you’ll note that there is NO mention of a boundary!  Notwithstanding the way the element is depicted in the associated diagram - the dotted borders to the Element, suggesting, in Sparx terms, a Boundary (a non-UML item), there is no mention of boundary in the entire definition section!

Just as “Correlation is NOT Causation”, “Rendering is NOT Implementation”! 

Now to the question of containment...  Our view is that, while the standard mentions aggregation and composition relationships, the definition of a grouping element is actually that of a holonym (the whole-holonym, rather than the parts-meronym)!  Also, the mention of aggregation and composition is to determine the nature of the holonymy (and thus the nature of the relationship between the meronym and the holonym).  That is, if a meronym can exist in more than one grouping at the same time, then the holonymy is an aggregate; otherwise, it is a composition.  This becomes a property of the Grouping element (which we surface as required with our shapescript).  There is NO implication of structural containment!

Consequently, the Grouping Element is neither a boundary nor a container, merely a normal element indicating that a set of other elements may be considered a group of related things.  Indeed, one could argue (and we do that the example shown in 4.5.1 of the Standard is a little misleading.  The REAL relationships are between the Service, the two processes, and the object.  The Grouping Element is merely a shorthand view—albeit a formal and rigorous one—to reduce visual complexity.

As I said earlier, we implemented our own Grouping Element that supports the Standard while providing the properties identified above.

HTH,
Paolo

8
I've had the same experience. It's a great timesaver if you know what the result should look like.

If you have no clue, it might be very time-consuming to figure out where exactly it goes astray.

Geert
This seems to be the problem with all AI tools: if you know what you are doing or what you are expecting, they can be a good productivity tool.  If you don’t, they just generate rubbish.
(my emphasis)
Not quite Modesto...
They MAY generate rubbish. The problem is that if you don't know what you’re doing, you can't tell if it is rubbish!  This is worse than consistently creating rubbish. ;)

Paolo

9
I downloaded the Lieber c4 model from Sparx website
I tried to change the appearance of some stereotypes changing the attribute cx, cy and bgcolor inside the XML file before loading into EA
Changed cx and cy are taken into account but the bgcolor change don't work
I weant only to change the default appearance when the stereotype is created living the user the option to modify
thanks for your answer.
Fausto
Ciao Fausto,
The usual reason for this behaviour is that the shapescript contains a statement overriding the "default" value shown in the XML file.
Remember the definition of "default" is:  "In the absence of a countervailing instruction, do this...".  Unfortunately, the shapescript - hidden in the base64 encoding - contains that "countervailing instruction".  It would appear the shapescript doesn't have an override for the cx and cy values.
HTH,
Paolo

10
General Board / Re: Can no longer post SQL Statements to this forum
« on: July 17, 2025, 08:11:41 pm »
Interesting, this is very specific and a very Sparxian solution was implemented. A simple select statement can be posted, please below.

Code: [Select]
SELECT * FROM t_object
But any statement starting with anything other than a SELECT statement cannot be posted.

SQL statements for most RDBMS do not have to start with a SELECT statement. A plea to Sparx Systems, please address that at least in the forum and, if possible, in the software.
(my emphasis)
Not necessarily, Modesto.  SQL injection is usually used to make some change to the database (i.e. delete it). SELECTS don't do that, so they are allowed.  It may be a more generic setting in the Cloudflare system.

My AU$0.05
Paolo

11
The dataverse is a semantic layer and I don’t think it can be reverse-engineered, which is what the database builder does.  Curiously, according to Microsoft, it can be explored/queried using SQL Server Management Studio.
(my emphasis)
It's the OLD you have  to use/buy OUR tools to do stuff...

Paolo

12
I found the issue. I had defined the toolbox item as
- ArchiMate_Realization(UML::Realization)
But in after looking in the MDG technology for ArchiMate 3, I found that the stereotype ArchiMate_Realization was actually an extension of UML Dependency, and not of UML Realization.
After changing my toolbox item definition to
- ArchiMate_Realization(UML::Dependency)
The problem was solved.

Geert
Yes, I've been caught by that kind of "discrepancy" before.  Can you see any rationale for this?  (not blaming Sparx, just observing anomaly in the standard)

Paolo

13

Hi Paolo,

Could you tell me please why VCEs are the correct way to manage multiple copies of elements on a diagram? How tells us that only an element can be represented only once on a diagram?

Issues are in fact: no possibility to resize, and not possibility to not use rectangle notation.

V.
Hi Viking,
I agree with your points about the issues regarding the VCEs. In essence, they aren't first-class diagram objects. I can't see why they couldn't have all the attributes of a standard diagram object and, indeed, have an entry t_diagramobject (with an indicator to say the item is a VCE)—which they don't at present.  In addition, their behaviour when arcs are suppressed must be the standard behaviour.

Now, to my reasons for believing VCEs are conceptually the correct way to achieve the ends of multiple instances of the SAME item on the diagram.

Firstly, we must agree that we deal with a diagram as a model view.  Consequently, only one instance of an object is in a given state in the model.  (See what I did?  I allowed multiple occurrences in different states - as with TAM ;) ).

Why do we put model items onto a diagram?  It is because they are related in some way.  The modelling technology that you use may not be able to express these relationships, but they exist nonetheless.  In addition, there are relationships that EA chooses NOT to express via t_connector entries but by other means.  In our technology, we surface all such relationships that we are interested in (including those implied by visual embedding).  Consequently, their relationships are notionally visible when we place items on a diagram.

If, for whatever reason, we wish to place more than one instance of the same item on a diagram, we are implicitly saying that (at least) one of those relationships) can be attached to the instance!
Similarly, that statement implicitly requires that the instance has access to all the item's inherent properties (but separate display properties if needed).

So far, so good.

The tricky part is deciding which relationships need to be assigned to the VCE and which to the original item, since there may be more than one. The current implementation only allows one, but conceptually, that may not be the case.  Still, the current implementation is good enough, mainly since we suppress relationships that don't have a diagram in most of our use cases.

To summarise, VCEs provide a conceptually valid vehicle for allowing multiple instances of the same item in the same state on a single diagram while preserving the integrity of the underlying model.  However, to resolve the outstanding issues, they need to be closer to first-class citizens of the diagram than they are at present.  Similarly, the diagram-specific connectors need to be enhanced to indicate which instance they will be connected to.  Lastly, both the vertices and arcs ned to be fully manageable from a rendering perspective to allow the modeller full expression.

Thoughts?
Paolo

14
General Board / Re: SQL Queries, Connectors, and 'Find in Diagram'
« on: May 21, 2025, 08:39:40 am »
I wouldn't get too excited just yet. AS CLASSTABLE was introduced a couple of years ago, and I haven't seen much change yet in the treatment of connectors.

I'll put the party balloons back in the bag...
Such a sad image :'(

In dutch we have a saying feels applicable: "Iemand blij maken met een dooie mus", which translates to "To make someone happy with a dead sparrow"

Geert
Who said the Dutch were blunt?    ;)
(I know Geert is Flemish)

Paolo

15
By now, I would have confirmed that the problem exists in v17.0 or v17.1.

Just a thought,
Paolo

(Experience has shown that to get any traction on a defect, it must be present in the latest version)

Pages: [1] 2 3 ... 575