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 ... 576
1
Hi,

Filters are useful to hide or grey out elements or connectors from a diagram.
There are currently 3 filter sets: Element, Connector and TagValue. The last set applies to elements' tagged values. Would it be possible to support connectors tagged values as a new option?
Working on a UML profile with stereotyped relationships, it would be great to easily filter such links based on their "stereotype" tagged value.

Thanks
+1

2
I don’t disagree with any of that, but it depends on the context, like almost everything.

[SNIP]
You’re right, of course, Modesto, but it also depends on the intent (as Geert and I have said).

Allow me a small digression...   Some forty years ago, I was sent from Melbourne (Victoria) to Hobart (Tasmania) to assist a customer of Digital Equipment Corporation (DEC) - some of us will remember them...
While there, I noticed that the LA36 console typewriter would “bing” (Ctrl+G - Bell character) several times a minute.  I asked the operators, and they said it would do this when issuing an error message due to anomalous sensor data.  The cause (I was later told) was a mixture of bad data and a bug.  I had occasion to return about a month later for another reason.  The room was silent!

“I see you’ve fixed the issue!” I said.  “No, we turned off the speaker,” came the reply.

It depends on your intent: to fix the issue or the symptom.   ;)

Cheers,
Paolo



3
OK... after some googling, the values I listed above match those in the "t_connectortypes" table.

Can anyone tell me exactly how that is populated? If I create a local model, it has the full list, whereas the cut-down list is in our shared repo model.

TIA...Eric
Are both repositories using the same MDG?  If NOT, that’s your likely cause.  In recent versions, EA has become adept at providing restricted views to help new users avoid being overwhelmed by so many choices.  The downside is that if you’re unaware you’re in a restricted view, it can be confusing. I’ve been caught by that many times.

Hopefully, that’s your answer.
Paolo

4
I am relatively certain that I did with an earlier version of Sparx EA, many years ago, when features did not change, and you knew what you were doing or what you needed to do.  Please accept my apologies for the slight rant.

I know if it’s guesswork, but XML has become guesswork; there aren’t many XSD’s published.

I also know there are many tools out there, but they tend to cost money, and if they are online, there is always a data privacy/sensitivity issue.
Hi Modesto,
As Geert implies, reverse engineering an XSD from an XML is ais an almost pointless exercise.  Even tools like XMLSpy (which I love) can only infer one (of many - as Geert says) XSDs that will validate that particular XML and some nominal variants.  If the intent (as it should be) is to validate a set of incoming (or outgoing) XMLs, then you’ve (as you suggested) “bought a plug nickel”.  If you know what the validation rules are (or should be, or even would like to be), then you should be creating XSDs and check the XMLs against them.

I mourn the passing of XSDs (as I suspect you do), but in the era of “post truth” and “Vibe Coding”, it IS about guesswork.  “I’m sending you some informationin this XML, but you need to decide if it’s misinformation or disinformation!  That’s not my job!”

Paolo

5
I think the term "composite diagram" is a bit unfortunate, as it has connotations that it probably shouldn't have.

When explaining the concept to EA users, I often use "linked diagram". I explain to them that this works like a hyperlink. It is the diagram that is opened when double-clicking on the element.
For me, it does not have any other meaning, and it only exists to help us humans navigate the model.

Geert
Wot 'e sed!

Paolo


6


Would a user care whether it is an owned or an other-referenced diagram?  I think only one of the two can be added to an element.  And both are diagrams.

Or just adding composite to get_element_information?
I asked Google Gemini what the difference was between Composite and Composite Structure Diagrams:
While the terms are often used interchangeably, there is a technical distinction in how they are defined in the UML specification versus how they are used in industry jargon and modelling tools.
1.  The Official Term: Composite Structure Diagram.  The UML Composite Structure Diagram is the formal name for the diagram type introduced in UML 2.0.  It is a structural diagram that lets you “peek inside” a complex classifier (such as a Class or Component) to see how its internal parts work together.
  • Focus: It shows the internal structure of a single class or component at runtime.
  • Key Elements: It uses Parts, Ports, Connectors, and Collaborations.
  • Use Case: You would use this to model how a “Car” class is internally composed of an “Engine”, “Wheels,” and “Transmission,” and how those parts are wired together via specific ports.
2.  The Shorthand: Composite Diagram.  In most conversations, “Composite Diagram” is simply a shorthand for “Composite Structure Diagram.” There is no official diagram type in the UML 2.5 standard named just “Composite Diagram.”
However, there are three common ways this term is used that can confuse:
  • Tool-Specific Features: In tools such as Sparx Enterprise Architect, a “Composite Diagram” is a child diagram nested beneath a parent element.  For example, if you double-click a Class and it opens a sub-diagram, that sub-diagram is called a “composite diagram,” regardless of whether it is a state machine, activity, or structure diagram.
  • Composition in Class Diagrams: Some beginners use “composite diagram” to describe a standard Class Diagram that heavily uses the Composition relationship (indicated by the solid black diamond line).
  • Design Patterns: It is occasionally confused with a diagram illustrating the Composite Design Pattern, which is a specific way of organising objects into tree structures to represent part-whole hierarchies.
So, everybody is confused...

Unless this is a hallucination, then a UML Composite Structure Diagram is an EA Composite Diagram; but not vice-versa!

Another problem is that EA sometimes conflates Composition with Nesting (I’ve spoken about the difference many times in the past).  You’ll see Gemini did not make that conflation.  What EA calls a Composite diagram is, in fact, a Nested diagram.

These days, of course, language isn’t important.  It’s the “vibe” that counts...

HTH,
Paolo

7
Following our adventures with External References (where we need to transport one or more specific packages between two or more repositories), we’ve considered the issue and decided we need a more robust solution for our purposes. (see https://sparxsystems.com/forums/smf/index.php/topic,49201.0.html)
So we came up with the concept of “Mirror Nodes”.  A Mirror Node is a clone of its “Master” Node, so that if the Master is updated, we (automation) will also update the “Mirror” to maintain the “Mirror” status.
A new edge metatype, mirroring, will connect the two nodes.
We can thus use the Mirror node in the package to be exported, and it will appear as a full participant in the other repository.  We can also use Mirror Nodes within the same repository.
Architecturally, we propose adding a property, MirrorStatus, to the node, with the following enum values: None, Master, and mirror.  Note that the absence of the property implies None.  The node will also have the property LastMirrorActionTimepoint, which specifies when the last Mirroring action occurred.  If the MirrorStatus is None (whether set or implied), then the LastMirrorActionTimepoint is set to Not Applicable.  If implied, then the LastMirrorActionTimepoint property may be absent.
Additionally, the mirroring edge will also have the LastMirrorActionTimepoint property.
While conceptually we could allow a two-way link (i.e., will enable the mirror to change and the change to be pushed back to the Master), we have opted to allow only forward mirroring.
We have also decided not to allow “Mirrors of Mirrors”!  That is, if the user attempts this, they will be guided to mirror the original Master.
As you can see, this is a mix of the existing Sparx functionality for Time-Aware Modelling (TAM) and Virtual Connector Ends (VCEs), with an extra one thrown in.
I will leave it to the reader to consider what would happen if the mirror were transported to another repository, while the Master is not.

Before we go ahead with implementation, can anyone see any issues with the proposal?

TIA,
Paolo

8
General Board / Season's Greetings to all forum members!
« on: December 25, 2025, 10:54:57 am »
Have a great holiday season and please stay safe and look out for all your loved ones (and anyone else...).

Paolo

9
I need to move a package with subpackages between at least two repositories regularly for the present.

I usually use the XMI 1.1 format.  I have set it up as a Controlled Package with the "create placeholders for external references" marked.  The package transfers (almost) correctly (see below), with the external references indicated on the diagram.

I tried using the XEA format since it's a direct EA-EA transfer.  The external references weren't transported, and the Project integrity check "went berserk"!

This seems to be a defect, but I thought I'd check if this was the expected (or even correct?) behaviour.

The "almost correct" note above was that even though the nodes transferred as external references, there were two nodes connected by two edges but only one edge came across as an external reference.  Is this also correct behaviour?  I'd see it as a defect.

TIA,
Paolo

PS: I haven't investigated further because I’ve wasted a lot of time in the past, before checking what the expected behaviour ought to be.

10
I can confirm this behavior in v17, but also in v15.2.1560

Geert
Thanks, Geert,
I rechecked my v15.2.1560, and I must have waved a magic wand because this morning it also behaves as the others.
Did you notice the 32-bit - 64-bit difference also?

Paolo

11
I need to rename some items to add guillemets «» to some words.  Imagine my surprise as I went into the Name field of the Properties window and added the left guillemet « to the beginning of the word in question (using the keystroke Alt0171), only to find that the field was cleared and the « was the only character left in the field.

I was surprised because I was sure it didn’t use to behave like that, and indeed it behaves correctly in v15!

To enter guillemets successfully, I have to open the item (using [Alt-Enter]) and use the Name field therein.

The problem occurs in both v16 and v17, and in both the 32-bit and 64-bit versions, although the behaviour of the 64-bit version is subtly different (EAUI!).  If the guillemets are added at the end of the field, they are entered.  Elsewhere in the field, they replace the original value!

Is this just on my machine, or do others observe this weird behaviour?

Reported,
Paolo

12
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

13
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

14
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

15
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

Pages: [1] 2 3 ... 576