Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[osee-dev] Relation Type Definition Improvement

The current system makes relation type multiplicity definitions
extremely confusing. Part of the reason for the confusion is that
relation type definitions are defined to be the number of  a and b node
connection points instead of thinking of allowed artifact instances on
the a and b side.

Example 1:
To define the default hierarchy relation type, where 1 artifact is a
parent of 1 or many children, we would define it in the excel
spreadsheet as follows:
Artifact Type	Relation Type		Side A Max		Side B
Max
Artifact		Default Hierarchy	UNLIMITED
1

To properly understand this, we would have to say the artifact on side A
has an unlimited number of connection points that use relation type
"default hierarchy" where each connection leads to a single child
artifact on side B.
I think this is confusing since under UML you would say 1 parent
artifact instance can connect to multiple artifact instances. Therefore,
the values for side a and b are inverted.

To further complicate matters, multiple rows can be entered in the
spreadsheet making the side a and side b max definitions even more
confusing.
Example 2:
Artifact Type		Relation Type		Side A Max
Side B Max
Universal Group		Universal Grouping	UNLIMITED
UNLIMITED
Artifact			Universal Grouping	0
UNLIMITED

These two lines indicate that for the relation of type universal
grouping, artifacts of type universal group will be allowed only on the
A side and artifacts of type artifact will only be allowed on the B
side.
The a side will have multiple connection points leading to multiple
connection point on the b side. 


Given our current relation type definitions, it appears that we only
support the following multiplicities: 1-1, 1-many, and many to many. 
Therefore, I think we can make this easier to understand by using the
following 4 columns:
	relation type
	allowed artifact type on side A 
	allowed artifact type on side B
	multiplicity between a and b

Using this scheme, example 1 and 2 become the following:
Relation Type		Side A Artifact Type		Side B Artifact
Type	Multiplicity
Default Hierarchy	Artifact				Artifact
1-to-many
Universal Grouping	Universal Group			Artifact
many-to-many


What do you guys think?

	





Back to the top