The FaultFailurePropagationLink metaclass represents the links for the propagations of faults/failures across system elements. In particular, it defines that one error model provides the faults/failures that another error model receives.<br/><br/>A fault/failure link can only be applied to compatible ports, either for fault/failure delegation within an error model or for fault/failure transmission across two error models. A FaultFailurePropagationLink can only connect fault/failure ports that have compatible types. <br/><br/>Constraints:<br/>[1] Only compatible fromPort-toPort pairs may be connected.<br/><br/>[2] Two fault/failure ports are compatible if the EADatatype of the fromPort represents a subset of the Fault/Failure set represented by the toPort’s EADatatype. <br/><br/><br/>Semantics:<br/>The FaultFailurePropagationLink defines a Failure propagation path, from the fromPort on one error model to the toPort of another error model. <br/><br/><br/>Extension:<br/>UML::Connector<br/><br/>
inv: not self.otherRelatedPropagations = self<br/>
propagationMeans
OCL
Proposed
Details:
inv: (self.throughADLEntity-#gt;isEmpty xor self.throughARElement-#gt;isEmpty) xor self.throughADLRealization-#gt;isEmpty <br/>inv: (self.throughARElement-#gt;notEmpty) implies (self.from.portOwner.targetARType-#gt;notEmpty and self.to.portOwner.targetARType-#gt;notEmpty) and (self.throughADLEntity #lt;#gt; self.to.portOwner.targetARType and self.throughARElement #lt;#gt; self.from.portOwner.targetARElement)<br/>inv: (self.throughADLEntity-#gt;notEmpty) implies (self.from.portOwner.targetADLType-#gt;notEmpty and self.to.portOwner.targetADLType-#gt;notEmpty) and (self.throughADLEntity #lt;#gt; self.to.portOwner.targetADLType and self.throughADLEntity #lt;#gt; self.from.portOwner.targetADLType) and (self.throughADLEntity.oclIsKindOf(ADLFunctionPrototype) or self.throughADLEntity.oclIsKindOf(ADLConnectorPrototype))<br/>