2
votes

I am trying to model a software system using Sparx Enterprise Architect 13. In our system, the software components are divided into sub-components (nothing extraordinary).

I know precisely what interfaces the sub-components provide, require and how they are interconnected. So in my model, all the links are defined at sub-component level and not at a component level.

Now, I would be able to produce diagrams representing the big picture, whose elements would be the components and not the sub-components. The idea would be to drag my existing components into a diagram to be able to see the links between them, automatically populated from the links that I have already defined between sub-components.

I found no way to achieve this goal, and I have tried using the following EA element combinations:

  • components containing other components
  • packages containing components
  • packaging components containing components
  • components containing ports

Is there a way to do that in EA ?

Thank you :)

1

1 Answers

3
votes

What I do is to actually use ports on components. An outer component

enter image description here

is set to be composite (note the lying 8 bottom right). When dbl-clicked it will open the composite diagram showing the inner structure like so (the layout must be arranged manually by enlarging the outer and positioning the inner):

enter image description here

Required/provided interfaces can and should be added to the ports as needed. And of course they can be shown and hidden in different diagrams as well.

They key to it all is the composite diagram (context in browser: Add/Composite) which in the end will create a navigable model.

Ports and interfaces can be created via context Structural Elements.


Note: To make an element composite you need to right-click in Project Browser | Add | Composite Structure Diagram. That goes for V13.5 and many other versions (it had been different in the past). And you never know in which place some EA developer will put that functionality in the next version :-/