Book a Demo

Author Topic: Links between Block Instances  (Read 5179 times)

JohnRGladstone

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
  • I don't make predictions... and I never will
    • View Profile
Links between Block Instances
« on: January 04, 2012, 08:34:52 pm »
Please forgive if this is a silly question as I am a newcomer to EA and SysML.

I am modelling a satellite communications system that is intended to provide connectivity between multiple users scattered throughout the world.

Some users communicate directly with one another over a point-to-point satellite link (termed a “single hop” communication). Others send their signal via satellite to a hub, which then forwards the signal to the final user over a second satellite link (termed “double hop”).
 
To describe this system I have created a model which includes «flow» relationships between various actors to denote the communication paths that are permitted. A «flow» starts from a source user and terminates at the destination. If the link is bidirectional, a second «flow» is constructed in the opposite direction. Different users communicate over different types of satellite link and so further links are created between the user types and satellite links.

This approach has allowed me to nicely represent the types of communication that are possible in general however what I now need to do is describe how these different actors might communicate in a given situation. As you have probably guessed, there can be multiple types of each user accessing the system at any given instant.

Now to my problem: When creating a BDD, I appear to be restricted from creating more than one instance of an element on the diagram, assuming I choose the “Simple Link” option.

I am also given two alternative methods of adding elements to the diagram: "Property of Element" or "New Child".

Both these options allow me to place multiple instances of the selected element on the same diagram, however contrary to what I might have expected, doing so does not automatically display the «flow» relationships that were constructed between the original model elements.

Why can't I see these relationships? Aren't they implicit in the model? Am I missing something?

Please can any answers assume I am a complete idiot!

I am using EA 7.2 at the moment but hope to upgrade to the newest version soon...

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: Links between Block Instances
« Reply #1 on: January 04, 2012, 09:57:06 pm »
If you create an instance you will get a "clone" of your block. This clone does not inherit the associations of its "abstract" parent. If so you would create an instance with relations to other abstract blocks. Whenever you create such instance blocks you need to redraw connectors as they appear in the concrete instantiation you want to express.

q.

JohnRGladstone

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
  • I don't make predictions... and I never will
    • View Profile
Re: Links between Block Instances
« Reply #2 on: January 04, 2012, 10:12:00 pm »
Thanks for the prompt answer.

If creating a clone does not duplicate the relationships with other elements I am struggling to understand why one would ever choose to create one?!?

If you have to manually recreate all the information again, doesn't this risk the possibility of inconsistencies between the parent and child instances?

Is there no way to "copy" the relationships downwards to child elements?


qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: Links between Block Instances
« Reply #3 on: January 05, 2012, 02:23:32 am »
I intentionally put clone in quotes since it is not a clone but an instantiation. Your initial block is a blueprint and the "clone" is a concrete one. Like having a block "cell phone" and the concrete "your:cell phone". Both have a potential to communicate with an abstract block "base" but only "your:cell phone" can communicate with "xyz street bldg 5:base".

q.

JohnRGladstone

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
  • I don't make predictions... and I never will
    • View Profile
Re: Links between Block Instances
« Reply #4 on: January 05, 2012, 03:19:08 am »
Hmmm… I think I see what you are saying but let’s extend your analogy a little. I beg your indulgence just a little longer!!!

Suppose my communications system has three types of user and, according to my customer there are 100 users in total.

1. A fixed land-line user
2. A mobile cell phone user
3. A UHF Radio Transmitter user

Let’s suppose that the land-line users need to be able to talk to other land line users and also mobile users. Similarly, the mobile users need to talk to other mobile users or fixed land-lines. However the only person that needs to talk to a UHF radio transmitter user is another UHF radio transmitter user.

Now, there are a finite number of calls that my system can sustain at any given time. Suppose I have 2 design options (A) and (B) both of which can provide 200 “capacity units”.

Let’s assume for option A the “capacity cost” of placing a fixed land-line call is “1”, a mobile user “2” and a UHF user “5” – meaning that it is more costly to have large numbers of UHF users than it is fixed land-line users, and for option B the cost is “1” for each user type, but option B is 10 times as expensive as option A

Then suppose my customer provides an expected user population that is split 40/40/20 between fixed, mobile and UHF. Since UHF and mobile traffic is more “expensive”, this hurts my overall capacity and I find that for option A: 40 x 1 + 40 x 2 + 20 x 5 = 220 (i.e. more than the total overall capacity), so I am forced to choose option B (40 x 1 + 40 x 1 + 20 x 1 = 100)

What I want to be able to do is create the scenario as defined by my customer and show them why my system suddenly has increased in cost by a factor of 10.

If my customer then goes away and decides, actually they only needs 10 % of their users to use UHF radios then the user population demographic becomes 45/45/10 and the capacity cost for option A becomes 45 x 1 + 45 x 2 + 10 x 5 = 185, so I can use option A which is cheaper (and probably simpler).

Potentially I may need to assess many hundreds of different user demographics and possibly many more design options, each with its own “capacity cost” for a particular type of communication link. My customer may in time begin to specify the proportion of user traffic (say 50 fixed to fixed, 20% fixed to mobile, 10% mobile to mobile and 20% UHF to UHF). I will also need to add this sort of information to my model.

I cannot manually create each allowable link for each scenario that the customer dreams up because there are too many variations and the risk for error is too great. Instead what I want is a way to define a set of “abstract” rules that govern the types of connection and the “cost” of each and then drop “instances” of land-line, mobile and UHF users onto a diagram to define a specific scenario and determine the overall effect on the system in a repeatable way.

The able example is a (simplified) version of the problem I am facing and you may very well ask why I need to do this using EA at all. Well as you have probably guessed, the real problem is more complicated with many things to consider aside from the issue of communications “cost”.

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: Links between Block Instances
« Reply #5 on: January 05, 2012, 06:28:05 am »
Actually when I read that, I don't understand why you're using UML/SysML and not a simple spreadsheet. Your calculation is quite simple and straight forward. So I suppose it exactly expresses what you want. Expressing the cost of communication can simply be done by a calculation you used.

I can imagine that the cost calculation itself might be more complicated and SysML can be used to elaborate the algorithm. But that's another story which I can't see in your elaboration.

q.

philchudley

  • EA User
  • **
  • Posts: 745
  • Karma: +22/-0
  • EA Consultant / Trainer - Sparx Europe
    • View Profile
Re: Links between Block Instances
« Reply #6 on: January 05, 2012, 08:20:56 pm »
Hi John

You may give the following a try (can't be sure if this is available in version 7.2, but for sure it is in version 9.2):

1) Having modelled the relationships using Blocks/Classes etc, you could also model the costs using another set of Blocks / Classes with appropriate attributes (these may already be in your model)
2) For each cost scenario create a UML Object diagram and then re-use all appropriate classes from the Project Browser (you must select them all and drag them all onto the Object diagram)
3) In the dialog that appears chose Instance of Element (Object) and check the checkbox Copy Connectors
4) Reformat the diagram as appropriate

What you should have is an Object diagram created with instances of your classes together with the links as shown on the Class diagram

For each object, right-click and select Advanced | Set run state

You will then be presented with a dialog where a dropdown list Variable is set to the attributes from the object's classifier (ie the Block / Class)

You can choose an operator (probably =) and a value

If one of these attributes is a cost, then a script could be written to iterate the objects and come up with a total cost.

All the best

Phil
Models are great!
Correct models are even greater!

JohnRGladstone

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
  • I don't make predictions... and I never will
    • View Profile
Re: Links between Block Instances
« Reply #7 on: January 06, 2012, 02:54:57 am »
Doesn't seem that the "Copy connector" option is supported in 7.2. Any other suggestions welcome!

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: Links between Block Instances
« Reply #8 on: January 06, 2012, 08:50:34 am »
You could write a script to perform the Copy Connector. But I guess this is  not really an option for you.

q.