Author Topic: Using Connectors on IBDs  (Read 16788 times)

Polymorph

  • EA User
  • **
  • Posts: 133
  • Karma: +4/-0
    • View Profile
Using Connectors on IBDs
« on: November 19, 2015, 07:36:34 am »
I have two questions, one specific to EA and a more general one about modelling best-practice:

1. Specific: The SysML spec says that connectors on IBDs may be typed by associations. Does EA support this?

2. It is not always necessary to link two parts on an IBD via a port - you may legally join the parts directly together without using ports. Can anyone offer some "best practice" tips on when to use each approach?

Here's my thinking: connectors between parts represent purely general, structural relationships (e.g. a wheel is connected to an axle) whereas connectors between ports emphasise the specific behavioural features that are exposed between (e.g. a connection to a car via the diagnositics port reveals "diagnositic data")

Thoughts? Comments? Rotten Tomatoes?

Thanks in advance!

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: Using Connectors on IBDs
« Reply #1 on: November 19, 2015, 07:57:11 am »
I can only comment on 2. When I used SysML some time ago I always used ports. The reason (as I saw it): a direct connector symbolized a tight coupling between blocks. And that is something one should avoid. I could imagine using the direct connectors in documenting legacy systems where such tight coupling is part of the design.

q.
« Last Edit: November 19, 2015, 07:58:17 am by qwerty »

KP

  • EA Administrator
  • EA Expert
  • *****
  • Posts: 2919
  • Karma: +54/-3
    • View Profile
Re: Using Connectors on IBDs
« Reply #2 on: November 19, 2015, 09:16:47 am »
Quote
1. Specific: The SysML spec says that connectors on IBDs may be typed by associations. Does EA support this?
Depends which version of EA you are using, but try selecting the connector and pressing Ctrl+L.
« Last Edit: November 19, 2015, 09:17:45 am by KP »
The Sparx Team
[email protected]

Polymorph

  • EA User
  • **
  • Posts: 133
  • Karma: +4/-0
    • View Profile
Re: Using Connectors on IBDs
« Reply #3 on: November 19, 2015, 09:49:04 am »
I'm using 12.1 Beta

Ctrl + L does not work, however I have been reading the SysML spec in more detail and Section 8.3.2.3 (of SysML version 1.3) talks about a "ConnectorProperty" which can "optionally be shown in an internal block diagram with a dotted line from the connector to the connector property". It goes on to state that this must be typed by "an association class stereotyped by a Block" (in other words an "Association Block")

Searching EA's help I found reference to a "Connector Property" in the IBD toolbox which "Creates an instance of an Association Block". What the EA help doesn't say is how I actually connect the connector and the connector property together (I'm guessing some kind of right-click?!?)

Polymorph

  • EA User
  • **
  • Posts: 133
  • Karma: +4/-0
    • View Profile
Re: Using Connectors on IBDs
« Reply #4 on: November 20, 2015, 10:11:55 pm »
After some investigations I have concluded that it is possible to type connectors on an IBD (useful for interface modelling). The steps to do this are a little involved

1. Create a BDD and places the two blocks you wish to represent on an IBD. e.g. "Computer" and "Power Outlet"
2. Create an Association Block and use this to link up the first two blocks (or right click on an existing block, go Advanced | Association Class, and select the appropriate association). E.g. "Power Cable"
3. Add an IBD for the association class (Power Cable)
4. Right click on diagram and go "Synchornise Structural Elements". This creates to participant properties owned by the Association Block (Computer and Power Outlet) and connect the two together using a connector
5. Create an IBD for whatever system owns the computer and power outlet blocks (e.g. create a block called "House" and the create aggreation relationships to the Computer and Power Outlet blocks)
6. Synchronise Structural Elements (to quickly get all of the parts onto the diagram)
7. Create a connector between Computer and Power Outlet parts
8. select the connector and then Ctrl + L and a diaglogue box appears allowing you to specify the assocation to type the interface

It is important that the IBD you create for the Association block has the right participant properites at the end. For example, if you were to try and connect your computer and power outlet blocks via ports (which are themselves typed by some other block/interfaceBlock) then EA will not allow you to type this connector unless the participant properties  of the association class match the ports

Whilst it is rather unclear why EA is not letting you type the connector (it doesn't for example give you a warning) this behaviour what you want because it stops you acciendially specifying inconsistent interfaces

Request to Sparx: Adding some kind of message when attemping to type a connector when no suitable association class exists would help avoid a lot of head scratching by the user!