Propagating nested elements relations to their parents

Started by LapizLazuli, April 15, 2023, 08:37:19 AM

Previous topic - Next topic

LapizLazuli

Hi,

Context
[see attached Archi Model - please look at View1, then View2, then View3 - Thank you]
Nested.archimate

Application Component App1 has a sub-component Comp1
Application Component App2 has a sub-component Comp2

Comp1 sends some data to Comp2. Modeled as Comp1 flows to Comp2.

Facts

Drag-drop Comp1 and Comp2 on a view shows the relation.
Drag-drop App1 and App2 on a view does not show any relation.
This sounds logical. No direct relation from App1 to App2.

Problem statement

In reality, there are case were showing these implicit relations would make sense.
If we show an IT landscape of many applications, we might not want to be caught into the details of underlying components.
However, in this overarching view, we still would like to see all the inter-application interfaces, even when we've captured that they flow from more detailed sub-components that we don't show at this stage.

Question

Is there a way to achieve it with Archi?

Thanks and regards

Jean-Baptiste Sarrodie

Hi,

Quote from: LapizLazuli on April 15, 2023, 08:37:19 AMIs there a way to achieve it with Archi?

No, you have to create the relationship between App1 and App2 manually (or through some script).

Regards,

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

LapizLazuli

Hi,

Quote from: Jean-Baptiste Sarrodie on April 15, 2023, 19:18:11 PMNo, you have to create the relationship between App1 and App2 manually (or through some script).

Thank you for this reply. Worthwhile knowing it can't be done.
Regarding your suggestion, I'm afraid that it would not bring the expected result. Creating the relation in the view would create it in the model. Then, if on another view, the AppX *and* CompX are all four drag&dropped from the model tree, there would be *two* relationships from App1 to App2 for the same flow, instead of one. Thus introducing an unwanted duplicate.
And what if, as is often the case, App1 has several sub-components, each of them having several sub-components? Creating all possible relationships, would not only introduce duplicates, but make the diagram confused.

One workaround I would think of then, would be a script which, when displaying only App1 and App2 on the view:
- brings the components to the view
- reduces their size so that they fit within their parent (App1 and App2)
- and "hide" them behind their parent. That is, send them to back.
Obviously, a bit tricky...

Regards.

Jean-Baptiste Sarrodie

Hi,

Quote from: LapizLazuli on April 16, 2023, 01:30:47 AMCreating all possible relationships, would not only introduce duplicates, but make the diagram confused.

Such duplicates are not necessarily an issue, and doesn't make the diagram confused as you simply have to remove them (or best: don't add them in the first place by drag'n droping while keeping CTRL key pressed). As for any view, you decide what to show.

Quote from: LapizLazuli on April 16, 2023, 01:30:47 AMOne workaround I would think of then [...]

When trying to avoid duplicate (which again is not necessarily a bad thing in itself), then I tend to do the opposite: I keep only the higher level relationships (between application components in your example) and when I need to show which function is the real source or target, I then put this function inside the application component, but near the relationship so that people looking at the view can easily figure it out. That's something which is easilly done manually, so no need for a script.

Regards,

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

LapizLazuli

#4
Hi,

Quote from: Jean-Baptiste Sarrodie on April 17, 2023, 21:31:39 PMWhen trying to avoid duplicate (which again is not necessarily a bad thing in itself), then I tend to do the opposite: I keep only the higher level relationships (between application components in your example) and when I need to show which function is the real source or target, I then put this function inside the application component, but near the relationship so that people looking at the view can easily figure it out. That's something which is easilly done manually, so no need for a script.

Thanks for sharing the hint. If I understand well:
- It brings a visually clear display of the relationhsips.
- There is a drawback: it is not any more possible to answer questions such as: "Which sub-components are impacted by this relationship ?" or "Which dependencies sub-components have with external ones ?".

Before I investigate another workaround, is the above correct, or am I missing something?

Thanks and regards.



Jean-Baptiste Sarrodie

Hi,

Quote from: LapizLazuli on June 13, 2023, 11:31:20 AMBefore I investigate another workaround, is the above correct, or am I missing something?

That's correct.

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.