Book a Demo

Author Topic: SysML IBD diagrams: How to do hierarchical diagram browsing/drilling down  (Read 21742 times)

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
2021-05(May)-05 - Edited: Improved the subject line; added separator lines; bolded headings
--------------------------------------------------------------------------------------------------------

Hi,
   Re : How to do hierarchical diagram browsing / drilling down in SysML IBD diagrams, i.e., from an IBD diagram to sub-IBD diagrams

The solution to my ‘problem’ should be a no-brainer for such a basic feature. I hope it is.

My EA design is in SysML. How do you do hierarchical diagram browsing / drilling down in IBD diagrams within the EA app, i.e., from an IBD diagram to its sub-IBD diagrams? For the UML Composite Diagram kind, you can do this readily.

And that one-liner should be sufficient to understand the question.

--------------------------------------------------------------------------------------------------------

But for the sake of completion, I add backgroud and detail.

Background: To the best of my understanding, I learned how to BDDs and their associated IBDs, which  is in accordance with what I understand by what is meant by the SysMLorg BDD best practice patterns section (in https://sysml.org/sysml-faq/what-is-block-definition-diagram.htmlb)
   
     “Recursively decompose ("nest") Block hierarchies by alternating between BDD definitions and IBD usages.”

Maybe it is this necessary fact of definition that is the ‘root of the challenge’. But nevertheless EA should make it possible to drill between IBDs.
IBD diagrams are the kind of block diagram I use for demonstrating systems to engineers who are not knowledgeable of UML/SysML, because IBDs look and meaning are similar to the type of diagrams they learned in school. So the most basic thing is that I need to know how to drill down in IBDs.
 

More detail:

(Terminology usage described at bottom of this pos.)
 
Question: In correctly defined SysML BDD and IBD diagrams on EA, how do you obtain “natural” links from IBD diagrams to sub-IBD diagrams? E.g., I want to be able to click an IBD Block X to open the sub-IBD Diagram X that defines the IBD Block X.

In EA, it seems that, from a BDD block you can create an IBD and then drill down to it (from the BDD block). But I could not find a way to associate (link) a Block X in an IBD with the sub-IBD Diagram X (which defines the usage/connectivity of the block X) to enable drilling down from an IBD block X.

And, no, it is not a solution to drag a hyperlink (to IBD block X) onto the IBD Diagram (on to the canvas), because such a link is not associated with the block.

Terminology used in this post:
Block X = Some block defined in a BDD diagram.
IBD Diagram X = An IBD diagram that describes (the internal usage and connectivity) of Block X.
Block Y = A sub-block of Block X. Block Y usage (as a part) appears in IBD Diagram X.
Sub-IBD Diagram Y = An IBD diagram that defines the (the internal usage and connectivity) of Block Y.

Thanks in advance,
Avi


« Last Edit: May 06, 2021, 05:20:09 am by avi10000 »

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
I have done a search for this question/problem* on the forum, and have indeed found a few instances. However, I found no complete solution.

(*imo, an obvious question/problem)

Avi

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
I don't understand your question, but you can link a diagram as the "composite diagram" to most elements to enable "drill through"

Right click | New Child Diagram | Select Composite Diagram

Geert

philchudley

  • EA User
  • **
  • Posts: 750
  • Karma: +22/-0
  • EA Consultant / Trainer - Sparx Europe
    • View Profile
I understand your problem.

I believe the issue is that on an IBD the parts are instances of the Block, (similar to Object is an instance of a Class), and hence making them a composite is not allowed.

Of course you can nest Parts within Parts, but there is a limit on this otherwise you end up with an "horrendagram".

I haven't yet found a solution, but I wonder if we could fool EA by using a script and setting a part as a composite?

Phil
Models are great!
Correct models are even greater!

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
I haven't yet found a solution, but I wonder if we could fool EA by using a script and setting a part as a composite?

Phil

I think you might not even need a script. If you change the type of the element to something like class, you can set a composite diagram.
And if you then change it back to the original type, the composite diagram link still works.

Tested this with Action, so I guess it should work with those SysML things as well  ;D

Geert

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Hi Geert,
Thank you for your response.

Quote
I don't understand your question, but you can link a diagram as the "composite diagram" to most elements to enable "drill through"
Right click | New Child Diagram | Select Composite Diagram

I cannot see such a command.
(Btw I recall that when in UML mode, there is indeed such a command. But I am in SysML mode.
Btw #2, on a BDD block you can do 'Right click | New Child Diagram | Composite Structure Diagram', but even that is not exactly the same thing.)

What would I need to do to my EA environment to make this command available?

Thanks
Avi


avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Hi Phil,
Thank you for your response.
Quote
I believe the issue is that on an IBD the parts are instances of the Block, (similar to Object is an instance of a Class), and hence making them a composite is not allowed.

I think I understand you. This is the way that SysML is designed (and I think it is a very good design - once you have learned BDDs & IBDs very well).

And given the way that SsML is designed, the procedue for correctly building BDDs & IBDs is by "alternating", so you cannot create sub-IBDs on the fly, and as I quoted before: “Recursively decompose ("nest") Block hierarchies by alternating between BDD definitions and IBD usages.” (from SysML.org section BDD best practice patterns )

Avi

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Hi Phil,

Quote
Of course you can nest Parts within Parts, but there is a limit on this otherwise you end up with an "horrendagram".

I am not going to "nest Parts within Parts". I am going to keep to the SysML philosophy and vision, otherwise I would be inclined to scrap the whole of SysML.

Avi

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Hi Phil, Geert,

Phil:
Quote
I haven't yet found a solution, but I wonder if we could fool EA by using a script and setting a part as a composite?

Geert:
Quote
I think you might not even need a script. If you change the type of the element to something like class, you can set a composite diagram.
And if you then change it back to the original type, the composite diagram link still works.
Tested this with Action, so I guess it should work with those SysML things as well  ;D

Thank you for your idea. I will try it, with Geert's ammendment.

Avi


avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
BTW, I am using EA v15.1

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Hi Geert,

Quote
If you change the type of the element to something like class, you can set a composite diagram.
And if you then change it back to the original type, the composite diagram link still works.

I have spent quite a while trying to find how to change an element type,  and I cannot find how to do this for my EA.

Some of the user guides state this user button: Design (tab) > Element (group) > Edit.

But on my EA installation for my ‘main’ IBD diagram I do not see the Edit. I see only ‘Add’ and ‘Manage’.

Further, the v14.0 user guide states: “Notes: This operation is effective on basic UML elements, but has limited use for profile-stereotyped elements such as those used in BPMN or ArchiMate modeling” (https://sparxsystems.com/enterprise_architect_user_guide/14.0/modeling_tools/changingobjecttype.html)

Actually, just the thought of changing the element type of an element that already have been connected , and defined, and has sub-parts etc etc etc gives me the shakes.

But anyway, how do you change an element type?

Thanks
Avi

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
"BTW,  I wanted to list previous instances on this forum of the question I am asking. My question has been asked on this forum several times over the years. But I wanted to try to give a more full treatment. And now I also want to a quick survey of past responses to this question, as follows.

"bdd and ibd multi level hierarchy"  –  https://www.sparxsystems.com/forums/smf/index.php?topic=42608.0 – (Read 869 times)

Responder answered: “It would be nice to be able to double-click a Property and go to its type's IBD, but it is not possible in EA, unfortunately. Maybe worth a feature request (link below). I think the best you can do is right-click -> Find -> Locate Property Type in Project Browser.”


"Link between idb"  – https://www.sparxsystems.com/forums/smf/index.php?topic=26022.0 – (Read 2435 times)

A responder answered: “It would be nice to be able to double-click a Property and go to its type's IBD, but it is not possible in EA, unfortunately. Maybe worth a feature request (link below). I think the best you can do is right-click -> Find -> Locate Property Type in Project Browser.”

Another responder answered: “Of these, I think the hyperlink approach is probably the most appropriate, if you are intent on navigating the model this way.”
My response to this: Not sufficient (to put it nicely…). 


I will be happy if other readers add to this list of past answers.

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Don't forget my question to Geert:

    How do you change an element type?

Thanks,
Avi

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
In my version (15.2.1559) it's under Design | Element | Manage | Change Type

You might need to re-set the correct SysML stereotype after changing it back to it's original type.

Geert

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Hi Geert,

Quote
In my version (15.2.1559) it's under Design | Element | Manage | Change Type
You might need to re-set the correct SysML stereotype after changing it back to it's original type.

Thank you for the response.

Ok – now I see it where you say: Design | Element | Manage | Change Type.

However, by me it is disabled (greyed out).

When you see Change Type enabled, which graphic language (=stereotype? e.g., UML/SysML/BPMN ) and which diagram kind do you have displayed? I am looking when I have SysML and IBD.

So how would you (temporarily) change the diagram's stereotype (from SysML to UML)?

Thanks
Avi