Book a Demo

Author Topic: Connectors on composite models  (Read 14931 times)

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Connectors on composite models
« Reply #15 on: August 10, 2013, 05:37:18 am »
I can't help, but neither on the block itself nor in the diagram (since IBD means Internal Block Diagram) I find that option. So I really guess you installed the SysML MDG which might offer that. (Help! All you SysML guys, where are you?)

q.

rothnic

  • EA User
  • **
  • Posts: 91
  • Karma: +0/-0
    • View Profile
Re: Connectors on composite models
« Reply #16 on: August 10, 2013, 11:07:39 am »
Quote
I can't help, but neither on the block itself nor in the diagram (since IBD means Internal Block Diagram) I find that option. So I really guess you installed the SysML MDG which might offer that. (Help! All you SysML guys, where are you?)

q.

Ah, didn't know that was a EA specific to SysML feature. Yeah I have the systems engineering version of EA. I submitted a help request with a link to this thread. Thanks for looking at it.

rothnic

  • EA User
  • **
  • Posts: 91
  • Karma: +0/-0
    • View Profile
Re: Connectors on composite models
« Reply #17 on: August 11, 2013, 11:34:28 am »
Well I played around some more with the example EA model that is included and noticed they had done something similar to what I wanted to do, but had to mess with it a bit to figure it out.

They create the PowerSubsystem IBD on its own at a lower level, then show it in the context of the pwr:PowerSubsystem within the Portable Audio Player IBD at the higher level. If you change the name of the connector in either diagram, it instantly changes in the other. Exactly what I need!....however, there is a catch.

This is done with the copy diagram functionality, and with that they only allow links for one element at a time on one diagram. So, if they had two PowerSubsystems, you run into a roadblock. You can copy the lower level diagram in with connections and all for only one PowerSubsystem using the shallow copy functionality. To do it for the second PowerSubsystem, you must use the deep or smart copy, which means you loose the linkage between the elements for instant updates with a given change.

So, you have to manage copying a new diagram each time with new properties, then copying the duplicate diagrams into the IBD you want all of them in (or write a script to do so?). Or, one alternative I found would be to copy the diagram, then use the feature where you can apply an image to any element. Then script that process. But, that doesn't allow any minor reorganization of the copied diagram.

Also, it would be important to note that there is no indication that I can find that two elements are linked or not between two IBDs. There really should be a more intuitive way to just add the connections and layout for a property in an IBD.



Full Size Image: http://i.imgur.com/Q1tzrBB.png
« Last Edit: August 11, 2013, 02:54:35 pm by rothnic »

SRX

  • EA Novice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Re: Connectors on composite models
« Reply #18 on: August 12, 2013, 07:23:34 pm »
Hi...

i have the same problem as stated above.  :-[ Seems like an issue for EAs support?

Another option: Move the properties from the original lower-level block in database to the property-box in higher-level-ibd that represent the instance. EA will move the properties in database instead of copy them. When you move them back to their original place the internal-diagram seems to be linked including connectors. But later when you touch the property, ea will remove them again from their original place in model :(


SRX
« Last Edit: August 12, 2013, 07:51:42 pm by SRX »

rothnic

  • EA User
  • **
  • Posts: 91
  • Karma: +0/-0
    • View Profile
Re: Connectors on composite models
« Reply #19 on: August 29, 2013, 09:18:55 am »
A follow up on this one. Support said that what I experienced is as expected. I asked and they added a feature request.

Today I was working with EA's activity diagrams more extensively. I have worked more with magicdraw's, so wasn't super familiar with it. It seems that the approach for composite activities is the same thing.

Sparx expected people to want to embed the composite diagram into the element, so they included that as an option specifically in the composite activity. However....for some reason they chose to not give you the option to do that for an invocation of an activity (call action behavior).

Maybe I'm missing something here. You define the behavior with the activity. This is kind of the definition of what logic and functions are executed within it, and what information is required as input and output. Why, when invoking it as an action would you then lose context of the internal behaviors?

If you were ok with ignoring that it is suggested that you do not use activities in an activity diagram, then it isn't an issue. http://bellekens.com/2012/12/09/uml-best-practice-there-are-no-activities-on-an-activity-diagram/

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Connectors on composite models
« Reply #20 on: August 29, 2013, 04:19:06 pm »
I agree, there is no good reason why EA shouldn't allow you to select or add a composite diagram to an Action. That would be a nice feature request.

And in case of Actions that execute an Activity they could even automatically use the same diagram as composite diagram, that would make things a lot more user-friendly.

Now if you really want to, you can trick EA into having a composite diagram for an Action.
Here's how to do it:
- Change the type of your Action into Activity (Element|Advanced|Change Type)
- Select the appropriate composite diagram for your Activity
- Change the Activity back into an Action.
- Doubleclick on the Action and notice that it opens your composite diagram ;D

Geert

rothnic

  • EA User
  • **
  • Posts: 91
  • Karma: +0/-0
    • View Profile
Re: Connectors on composite models
« Reply #21 on: August 29, 2013, 04:44:51 pm »
I was able to make the action "hyperlink" to it's classifiers activity diagram without issue, which is a good point. Just by right clicking on the Activity, then choosing to create a composite structure diagram, the existing action automatically starts linking to the classifier's diagram.

I just want to be able to work in a more modular fashion and then at that point, if I worked on the classifier's activity diagram, I could then show that within the symbol of the action (like is available if it was an Activity instead of Action).

If you extend that to the IBD as well. With an IBD the parts do not link to their classifier's IBD if available. Then, as depicted above, it is possible to depict the IBD on the part with the copy diagram shallow one time per diagram, then if you want to do it a second time, it requires a deep or smart copy.

I'd prefer to have the functionality where any symbol can be "composite" for another diagram, then as you add more detail at the lower levels you could choose to expose it in certain cases without any work.

rothnic

  • EA User
  • **
  • Posts: 91
  • Karma: +0/-0
    • View Profile
Re: Connectors on composite models
« Reply #22 on: September 20, 2013, 09:30:44 am »
Follow up on this thread due to the recent 1009 update: http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi?num=1378706370

The changelog states: "Diagram frames can now be drawn in different ways including being completely hidden." So what does this mean?

With the example I had in above posts, you are able to paste via links to the lower level IBD properties. However, you can only do this once per diagram. To get around this, you need to do a deep copy for the second property you want to reflect the internal structure for. You can then paste in the identical properties in the IBD as with the first. However, this means that you need to maintain two lower level IBD's or perform this step each time there is a change to the primary lower level IBD.

With 1009, I think Sparx is providing somewhat of a workaround, although it has its own issues. Instead of pasting in the properties from the lower level IBD, you can drag the lower level IBD directly into the higher level IBD. At that point you choose to create a diagram frame. This appears in the diagram exactly how the diagram IBD looks, along with the block frame. The new feature is that you can modify the diagram frame so that the actual frame is not shown or a couple other options.

Pros:
You can then have the two copies of the lower level IBD in the same diagram.
They both will update on any change to the lower level diagram

Cons:
Unsure if you can handle connections to ports on the enclosing property within the high level IBD from the properties within the diagram frame
Cannot reorganize the elements within the property as with a shallow copy

Ultimately I would like to see the option to have each usage of of block within an IBD to show the same internal connections anytime structural elements within it are shown.