Page 1 of 1

Relation mode explained

PostPosted: Fri Sep 09, 2011 9:16 am
by reto
I was asked to explain the mode of operation of the Property relationMode, found in the Class Relation.

The actifsource core Model supports different modes:


  • functional
  • structuralContainment
  • structuralDirect (default)
  • structuralIndirect


  • functional
  • structuralContainment (default)

Displaying relations in the diagram editor
The domain diagram editor has the following default behavior for visualizing relations:

  • useRelation: Shown as a line with an arrow between ressources
  • ownRelation: Shown as a containment

You may use the relationMode to alter this default behaviour.

relationMode: functional
If the relation mode is marked as functional, no relation between the resources is visualized.

If the relation mode is marked as structuralContainment, the relation between the resources is visualized as a containment.

If the relation mode is marked as structuralDirect, any useRelation is displayed as expected.

Let's have a look at the following class design: A component shall have a list of named collaborators, from which of the points to another component.

CollabDesign.png (4.71 KiB) Viewed 9636 times

Visualizing a main component having two sub components as collabs, one can see that:

  • Collabs are contained in the main component
  • Sub components are referenced via line and arrow from the collabs

StructuralDirect.png (8.71 KiB) Viewed 9636 times

If the relation mode is marked as structuralIndirect, a relation combination "ownRelation,useRelation" as seen in the example above ("collab,component") is visualized as an arrow directly from component to component. As you may have notized, the relations name is given by the Collab.

StructuralIndirect.png (6.65 KiB) Viewed 9636 times

Re: Relation mode explained

PostPosted: Fri Feb 03, 2012 5:59 pm
by matthias
I doubt whether structuralIndirect is a relation mode at all:

Relation modes on a property are used to transform structures of Resources that are connected with Properties into a simple model for graphical display. That model basically consists of the elements Body (containment) and Reference: A Body can contain other Bodies and can have References to other Bodies (or itself).

* structuralContainment is the Containment of bodies.
* structuralDirect is a Reference.

* structuralIndirect simplifies the model insofar as it merges a contained Body that is followed by Reference to a single Reference.
* functional simplifies the model by just ignoring a Property.

There are several topologies besides 'structuralIndirect' (on top) that could be treated the same way:

And it is of course possible to combine them as well.