Book a Demo

Author Topic: Model Validation - ObjectFlow to MergeNode flagged  (Read 3575 times)

Van Lepthien

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
    • View Profile
Model Validation - ObjectFlow to MergeNode flagged
« on: December 01, 2009, 08:19:33 am »
In a SysML 1.1 Activity Diagram, I have two ObjectFlows going to a Merge node that has a single outgoing ObjectFlow.

When I run Model Verification, I get the message "MRV05002 - error(<anonymous>(ObjectFlow)): ObjectFlow is not legal for Synchronization --> MergeNode".

This is a problem in a couple of respects.

First, the UML specification says:
Constraints
[1] A merge node has one outgoing edge.
[2] The edges coming into and out of a merge node must be either all object flows or all control flows.

Second, a Merge node does not do synchronization. A Join node performs synchronization, a Merge node does not. A Join node with ObjectFlow inputs gets a similar message, but the Join node definition says:
Constraints
[1] A join node has one outgoing edge.
self.outgoing->size() = 1
[2] If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing
control flow.
(self.incoming.select( e | e.isTypeOf(ObjectFlow)->notEmpty() implies self.outgoing.isTypeOf(ObjectFlow)) and
(self.incoming.select( e | e.isTypeOf(ObjectFlow)->empty() implies self.outgoing.isTypeOf(ControlFlow))

So either a Merge Node or a Join node may have ObjectFlow inputs, but Model Verification flags them as errors. There are no additional restrictions in the SysML spec that affect this.

(EA version is 7.5.849, Corporate Edition)

I want to get other people to use Model Validation to clean up their models (and I'm considering augmenting the existing validation with add-ins to perform localized verification), but I need to make sure that validation behaves as it should before foisting it on others.

Has anyone else run into similar validation issues?

Van

Addendum: The problem seems to stem from a fork node (one ObjectFlow in, two ObjectFlows out) supplying one of the ObjectFlows to the merge node. I am in the process of checking out whether this is allowed UML.

Addendum 2: Figure 12.73 Control Node Examples (in the UML 2.1.1 Superstructure document) shows a ControlFlow from a Fork Node to a Merge node. Careful examination of the UML spec turned up no constraints that would disallow the same for ObjectFlows.
« Last Edit: December 01, 2009, 09:03:56 am by VLepthien »