SysML 1.6 RTF Avatar
  1. OMG Issue

SYSML16 — Constraint#2 of the InvocationOnNestedPortAction stereotype is invalid

  • Key: SYSML16-341
  • Status: closed  
  • Source: Airbus Group ( Mr. Yves Bernard)
  • Summary:

    InvocationOnNestedPortAction constraint #2 states:

    The port at the first position in the onNestedPort list shall be owned (directly or via inheritance) by a block that types the target pin of the invocation action, or one of the block’s generalizations

    However the InvocationAction metaclass has no "target" pin, only some of its subclasses have.

  • Reported: SysML 1.5 — Thu, 7 Sep 2017 07:14 GMT
  • Disposition: Duplicate or Merged — SysML 1.6
  • Disposition Summary:

    Merged with SYSML16-274

    To be fixed as suggested by SYSML16-311.
    The principle of the resolution will be to write the OCL code so that each possible case is considered:

    let target: UML::InputPin = if self.base_InvocationAction.oclIsKindOf(UML::CallOperationAction) then 
    	self.base_InvocationAction.oclAsType(UML::CallOperationAction).target
    else if self.base_InvocationAction.oclIsKindOf(UML::SendSignalAction) then 
    	self.base_InvocationAction.oclAsType(UML::SendSignalAction).target
    else if self.base_InvocationAction.oclIsKindOf(UML::SendObjectAction) then 
    	self.base_InvocationAction.oclAsType(UML::SendObjectAction).target
    else
    	invalid
    endif endif endif in
    not target.oclIsUndefined() and (
    let target_type: UML::Class = Block.allInstances()->any(b | b.base_Class = target.type).base_Class in
    not target_type.oclIsUndefined() and target_type.allFeatures()->includes(self.onNestedPort->first()))
    
  • Updated: Mon, 1 Apr 2019 18:17 GMT