Archi Forum

Archi => General Archi Discussion => Topic started by: Xiaoqi on April 04, 2021, 22:04:42 PM

Title: [Need Advice] Practice of Using Junction
Post by: Xiaoqi on April 04, 2021, 22:04:42 PM

Wish to hear your advice on your practice of using Junction in Archi too.

I can feel with Junction can make the view illustration cleaner and nice of looking, however, when I compare as attached two view, one with Junction and the other without Junction, I think it's giving different during post analysis.

Putting "Provide Personal Assistant to Customer" requirement as sample, after having these 2 views, below two relationship is created:

Does it mean that using Junction leads to losing the direct relationship visibility?

I think it would be possible to give Junction a name but that will be also difficult, since unless the Junction's name covers both source and desination it's unclear, and also Junction normally is multi-to-one, so the naming is not good way.

Believe it could be possible, from another aspect, to create certain script to traverse nodes (e.g. set depth = 2 if encouter a Junction type), but that makes the game complex as well.

I have several views that having Junctions already, and now feel it may be not a good practice to use that since we need to having easier way to show same level's relationship, but losing Junction's advantage is also the hesitation.

Any of your good practice to balance on these situations?

Thanks and regards,
Title: Re: [Need Advice] Practice of Using Junction
Post by: Jean-Baptiste Sarrodie on April 08, 2021, 20:17:25 PM

There's no good solution for that.

Junctions have always had such practical issues which are mainly due to implementation constraints in tools. From a logical point of view, a junction should be nothing more than a kind of visual comment on multiple relationships from the same source to the same target, but this has become an element per se which sits in between several relationship "fragments", leading to all kind of analysis issues or complexity.

My approach is to try to avoid them for anything else than triggering relationships, but you sometime really need them. If you rely on them, then you have to code your own logic in jArchi if you need to extract information.

I do have some ideas for jArchi that would make it possible to work on "derived" relationships (including relationships derived through junction), but nothing for the near future.


Title: Re: [Need Advice] Practice of Using Junction
Post by: Xiaoqi on April 09, 2021, 05:52:49 AM
Thanks JB, it's clear from your evaluation and I think it's really need balance when considering to use Junction.

Really nice that possible jArchi in the future will work with "derived", but even we have that, I don't think it changes the "game", as that's not the native level 1 relation and still pop up mixing complexity of analysis.

So, for now, I'll try to prevent using Junction for the modeling, just keep minimize usage if really need the clean view for presentation purpose.