When defining a context's item groups and adding items to the same item group in a context more than once, you can define how they are handled. This article describes the two options that are available.
Prerequisites
- Familiar with the SystemWeaver meta model building blocks (e.g., Items, Parts and Attributes)
- Familiar with the SystemWeaver Explorer Interface and common operations
- Familiar with the SystemWeaver Script Language
- Familiar with Using the XML Editor
- An installation of the SystemWeaver Explorer client (swExplorer)
- Knowledge of XML (A good resource is w3schools' XML tutorials)
- Assignment of the SW Architect role in the server
There are two ways to add a part:
Outer Join
A "+" sign preceding the group name (defined by defobj="") indicates that you want to perform a union operation, adding all the newly found items to the already existing group, establishing relations to items already existing in that group. So, an outer join adds all resulting defobjs to the group. The first time the group is defined, outer join is implicit, and the plus sign is not necessary.
Inner Join
An inner join is different from the outer join, by not adding any items to the defobj group. It only adds the parts to the part group thereby establishing relationships to items in an already defined defobj group. In other words, omitting the "+" symbol means new items will not be added to the group, but you establish relations to items already existing in that group.
Example Use Case
For each component, list the Design Signals that it sends and the components that receive that design signal.
Example Solution
<Report> <Context name="context1"> <AddParts owner="main" sid="XESX" part="archToSoftware" defobj="Software"/> <AddParts owner="Software" sid="EXAC" part="softwareToComps" defobj="Components"/> <AddParts owner="Components" sid="ITOS" part="sendPorts" defobj="DesignSignals"/> <AddParts owner="Components" sid="ITIS" part="receivePorts" defobj="+DesignSignals"/> </Context> </Report>
By combining groups of items, it is possible to ”Move forward” along one part defined into a group and then ”Move back” following another part:
From Components, follow sendPorts down to DesignSignals.
From Design Signals follow receivePorts up to Components.