archimatetool / archi

Archi: ArchiMate Modelling Tool
https://www.archimatetool.com
MIT License
973 stars 270 forks source link

New feature to add existing relationships to a view for a selected element #79

Open grmatthews opened 10 years ago

grmatthews commented 10 years ago

Sometimes 2 or more views have similar information, and during workshops, one view can be evolved to contain more relationships and details.

It would be very useful if there was an easy way to add those extra details across other similar views. e.g.

  1. Right click on a view element and select a new "Add all relationships" menu item (preferred), or
  2. Be able to drag/drop from the Visualiser onto the active view.

I know that there is a way to find and add any relationships to a view which exist in the underlying model but it is very fiddly and manual.

I think 1. above is probably the best way to go because there typically won't be a huge amount of relationships attached to a given model element and the modeller could then just delete those elements which were added by the "Add all relationships" function but not needed.

If this is still not clear, here's an example.

  1. I create View1 with App Component 1 (AC1)
  2. I create View2 with AC1 and AC2
  3. I go to View1 and associate App Function 1 (AF1) with AC1, and AF2 with AC2. I then also add a Flow relationship between AF1 and AF2.
  4. I go to View2. The problem here is that depending on the modelling requirements and viewpoint I may want to know all of the interesting modelling which has recently occurred.
    • If select AC1 on View 2 and choose "All all relationships" then AF1 should appear.
    • If if then choose AF1 on View 2 and choose "All all relationships" then AF2 should appear.
    • Finally, selecting AF2 and choosing "Add all relationships should make AC2 appear.

I know all of this is in the model and the visualiser but I'm lazy and think this would be a great way to blend discovery and modelling.

grmatthews commented 10 years ago

Sorry, example has a few inconsistencies. Here it is again, fixed.

AC = App Component AF = App Function

  1. I create View1 with AC1 and AC2
  2. I create View2 and add AC1
  3. I go to View1 and associate AF1 with AC1, and AF2 with AC2. I then also add a Flow relationship between AF1 and AF2.
  4. I go to View2. The problem here is that depending on the modelling requirements and viewpoint I may want to know all of the interesting modelling which has recently occurred.
    • If I select AC1 on View 2 and choose "All all relationships" then AF1 should appear.
    • If if then choose AF1 on View 2 and choose "All all relationships" then AF2 should appear.
    • Finally, selecting AF2 and choosing "Add all relationships should make AC2 appear.
Phillipus commented 10 years ago

You can do this with the Navigator.

After stages 1-3:

4 - I go to View2. I select AC1 and ensure that the Navigator is open. In the Navigator I can see AC1 and any connected concepts (toggle the "Show target relations" and "Show source relations" button in the Navigator to see incoming and outgoing relations from AC1).

5 - I drag and drop AF1 from the Navigator onto View2. Its relationship is also automatically added to View2.

6 - I then select AF1 in View2 and (depending on the "Show target relations" and "Show source relations" toggle button) I can reveal all of its relations and connecting concepts in the Navigator. I can then drag and drop any or all of these onto View2.

grmatthews commented 10 years ago

That seems like a bit of a workaround but I still need to go hunting for linkages, and I still think there would be value in the original request, to be able to right-click on an element and just have all related elements added which are not already in the view.

If I have 10 applications on a view and I want to ensure that all 10 applications have all defined application functions visible on a view then that's a lot of manual clicking and reviewing of the view to work out what I need to add. It's also quite error prone since it would seem easy to miss one relationship being added.

If I could just select all 10 application components, and then right-click and choose "Add Related Elements" and have everything that was missing added to the view it would be extremely useful and time saving.

pgartlan-kd commented 4 years ago

i know im late to the party but for models of significant size / complexity, this would be such a highly used and useful tool.

jbsarrodie commented 4 years ago

Hi, this can now easily be done through jArchi. I shared such script some time ago: https://gist.github.com/jbsarrodie/9bcab008be7f7e75b737e43bfab43048

pgartlan-kd commented 4 years ago

Hi, this can now easily be done through jArchi. I shared such script some time ago: https://gist.github.com/jbsarrodie/9bcab008be7f7e75b737e43bfab43048

awesome thank you for the prompt reply i'll give it a shot!