| <?xml version="1.0" encoding="UTF-8"?> |
| <uml:Profile xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_KLcn0FDtEeOA4ecmvfqvaw" name="UMLRealTimeStateMach" URI="http://www.eclipse.org/papyrus/umlrt/statemachine" metaclassReference="_wVhWMFDtEeOA4ecmvfqvaw _CWExkFDuEeOA4ecmvfqvaw _CWExkVDuEeOA4ecmvfqvaw _CWExklDuEeOA4ecmvfqvaw _imhMgGfLEeO447LqwGjc0A" metamodelReference="_KLcn0VDtEeOA4ecmvfqvaw"> |
| <elementImport xmi:type="uml:ElementImport" xmi:id="_wVhWMFDtEeOA4ecmvfqvaw" alias="StateMachine"> |
| <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#StateMachine"/> |
| </elementImport> |
| <elementImport xmi:type="uml:ElementImport" xmi:id="_CWExkFDuEeOA4ecmvfqvaw" alias="Pseudostate"> |
| <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Pseudostate"/> |
| </elementImport> |
| <elementImport xmi:type="uml:ElementImport" xmi:id="_CWExkVDuEeOA4ecmvfqvaw" alias="Region"> |
| <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Region"/> |
| </elementImport> |
| <elementImport xmi:type="uml:ElementImport" xmi:id="_CWExklDuEeOA4ecmvfqvaw" alias="State"> |
| <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/> |
| </elementImport> |
| <elementImport xmi:type="uml:ElementImport" xmi:id="_imhMgGfLEeO447LqwGjc0A" alias="Operation"> |
| <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/> |
| </elementImport> |
| <packageImport xmi:type="uml:PackageImport" xmi:id="_KLcn0VDtEeOA4ecmvfqvaw"> |
| <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/> |
| </packageImport> |
| <packageImport xmi:type="uml:PackageImport" xmi:id="_KLcn0lDtEeOA4ecmvfqvaw"> |
| <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/> |
| </packageImport> |
| <packagedElement xmi:type="uml:Stereotype" xmi:id="_xie4kFDtEeOA4ecmvfqvaw" name="RTStateMachine"> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_7YHrgFDuEeOA4ecmvfqvaw" name="An RT state machine has exactly one region" constrainedElement="_xie4kFDtEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_PzHwEFDvEeOA4ecmvfqvaw"> |
| <language>OCL</language> |
| <body>base_StateMachine.region->size() = 1</body> |
| </specification> |
| </ownedRule> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_T5csQFDvEeOA4ecmvfqvaw" name="An RT state machine is never re-entrant" constrainedElement="_xie4kFDtEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzObEFDvEeOA4ecmvfqvaw"> |
| <language>OCL</language> |
| <body>not base_StateMachine.isReentrant</body> |
| </specification> |
| </ownedRule> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_6wToIFDvEeOA4ecmvfqvaw" name="RT state machines do not have parameters or parameter sets" constrainedElement="_xie4kFDtEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_aJvJIFDwEeOA4ecmvfqvaw"> |
| <language>OCL</language> |
| <body>(base_StateMachine.ownedParameter->size()=0) and 
 |
| (base_StateMachine.ownedParameterSet->size() = 0)</body> |
| </specification> |
| </ownedRule> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_IKB9EGe_EeO447LqwGjc0A" name="RT state machines must have a context and it must be a Class" constrainedElement="_xie4kFDtEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_Xs7DMGe_EeO447LqwGjc0A"> |
| <language>OCL</language> |
| <body>(base_StateMachine.context->size()=1) 
 |
| and (base_StateMachine.context.oclIsKindOf(Class))</body> |
| </specification> |
| </ownedRule> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_ZzQdkGe_EeO447LqwGjc0A" name="Passive state machine are only allowed on passive data classes" constrainedElement="_xie4kFDtEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_v7hfwGfAEeO447LqwGjc0A"> |
| <language>OCL</language> |
| <body>isPassive = not (base_StateMachine.context.oclAsType(Class).isActive) </body> |
| </specification> |
| </ownedRule> |
| <ownedAttribute xmi:type="uml:Property" xmi:id="_0bVVAFDtEeOA4ecmvfqvaw" name="base_StateMachine" association="_0bVVAVDtEeOA4ecmvfqvaw"> |
| <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#StateMachine"/> |
| </ownedAttribute> |
| <ownedAttribute xmi:type="uml:Property" xmi:id="__J-uUGe9EeO447LqwGjc0A" name="isPassive" visibility="public"> |
| <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> |
| <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AuCiEGe-EeO447LqwGjc0A" value="1"/> |
| <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AuDwMGe-EeO447LqwGjc0A" value="1"/> |
| <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_KGCMMGe-EeO447LqwGjc0A"/> |
| </ownedAttribute> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Extension" xmi:id="_0bVVAVDtEeOA4ecmvfqvaw" name="E_RTStateMachine_StateMachine1" memberEnd="_0bVVAlDtEeOA4ecmvfqvaw _0bVVAFDtEeOA4ecmvfqvaw"> |
| <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_0bVVAlDtEeOA4ecmvfqvaw" name="extension_RTStateMachine" type="_xie4kFDtEeOA4ecmvfqvaw" aggregation="composite" association="_0bVVAVDtEeOA4ecmvfqvaw"/> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Stereotype" xmi:id="_H1bWMFDuEeOA4ecmvfqvaw" name="RTRegion"> |
| <ownedAttribute xmi:type="uml:Property" xmi:id="_P_3BAFDuEeOA4ecmvfqvaw" name="base_Region" association="_P_3BAVDuEeOA4ecmvfqvaw"> |
| <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Region"/> |
| </ownedAttribute> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Stereotype" xmi:id="_KKLAAFDuEeOA4ecmvfqvaw" name="RTState"> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_a-6ywFDyEeOA4ecmvfqvaw" name="A composite RT state has exactly one region" constrainedElement="_KKLAAFDuEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_-FbpgFDyEeOA4ecmvfqvaw"> |
| <language>OCL</language> |
| <body>base_State.isComposite implies 
 |
| (base_State.region->size() = 1)</body> |
| </specification> |
| </ownedRule> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_b79CwFDyEeOA4ecmvfqvaw" name="RT does not support submachine states" constrainedElement="_KKLAAFDuEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_PFqQUFDzEeOA4ecmvfqvaw"> |
| <language>OCL</language> |
| <body>not base_State.isSubmachineState</body> |
| </specification> |
| </ownedRule> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_dXOG4FDyEeOA4ecmvfqvaw" name="RT state machines do not support "do" activities" constrainedElement="_KKLAAFDuEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_gXHxEFDzEeOA4ecmvfqvaw"> |
| <language>OCL</language> |
| <body>base_State.doActivity->size() = 0</body> |
| </specification> |
| </ownedRule> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_eTI8kFDyEeOA4ecmvfqvaw" name="RT state machines cannot have any deferred triggers " constrainedElement="_KLcn0FDtEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_1bPEEFDzEeOA4ecmvfqvaw"> |
| <language>OCL</language> |
| <body>base_State.deferrableTrigger->size() = 0</body> |
| </specification> |
| </ownedRule> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_fRL5MFDyEeOA4ecmvfqvaw" name="Constraint5" constrainedElement="_KKLAAFDuEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:LiteralString" xmi:id="_fRL5MVDyEeOA4ecmvfqvaw" name="constraintSpec"/> |
| </ownedRule> |
| <ownedAttribute xmi:type="uml:Property" xmi:id="_UsH70FDuEeOA4ecmvfqvaw" name="base_State" association="_UsH70VDuEeOA4ecmvfqvaw"> |
| <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/> |
| </ownedAttribute> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Stereotype" xmi:id="_NHLjsFDuEeOA4ecmvfqvaw" name="RTPseudostate"> |
| <ownedRule xmi:type="uml:Constraint" xmi:id="_C1PjYFD6EeOMYqaaVdNqwA" name="RT state machines do not support concurrency or shallow history" constrainedElement="_NHLjsFDuEeOA4ecmvfqvaw"> |
| <specification xmi:type="uml:OpaqueExpression" xmi:id="_bx6cUFD6EeOMYqaaVdNqwA" name=""> |
| <language>OCL</language> |
| <body>let knd = base_Pseudostate.kind in 
 |
| (knd <> UML::PseudostateKind::shallowHistory) and
 |
| (knd <> UML::PseudostateKind::fork) and
 |
| (knd <> UML::PseudostateKind::join)</body> |
| </specification> |
| </ownedRule> |
| <ownedAttribute xmi:type="uml:Property" xmi:id="_WoF5QFDuEeOA4ecmvfqvaw" name="base_Pseudostate" association="_WoF5QVDuEeOA4ecmvfqvaw"> |
| <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Pseudostate"/> |
| </ownedAttribute> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Extension" xmi:id="_P_3BAVDuEeOA4ecmvfqvaw" name="E_RTRegion_Region1" memberEnd="_P_3BAlDuEeOA4ecmvfqvaw _P_3BAFDuEeOA4ecmvfqvaw"> |
| <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_P_3BAlDuEeOA4ecmvfqvaw" name="extension_RTRegion" type="_H1bWMFDuEeOA4ecmvfqvaw" aggregation="composite" association="_P_3BAVDuEeOA4ecmvfqvaw"/> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Extension" xmi:id="_UsH70VDuEeOA4ecmvfqvaw" name="E_RTState_State1" memberEnd="_UsH70lDuEeOA4ecmvfqvaw _UsH70FDuEeOA4ecmvfqvaw"> |
| <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_UsH70lDuEeOA4ecmvfqvaw" name="extension_RTState" type="_KKLAAFDuEeOA4ecmvfqvaw" aggregation="composite" association="_UsH70VDuEeOA4ecmvfqvaw"/> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Extension" xmi:id="_WoF5QVDuEeOA4ecmvfqvaw" name="E_RTPseudostate_Pseudostate1" memberEnd="_WoF5QlDuEeOA4ecmvfqvaw _WoF5QFDuEeOA4ecmvfqvaw"> |
| <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_WoF5QlDuEeOA4ecmvfqvaw" name="extension_RTPseudostate" type="_NHLjsFDuEeOA4ecmvfqvaw" aggregation="composite" association="_WoF5QVDuEeOA4ecmvfqvaw"/> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Stereotype" xmi:id="_j4X18GfLEeO447LqwGjc0A" name="RTTrigger"> |
| <ownedAttribute xmi:type="uml:Property" xmi:id="_lXb08GfLEeO447LqwGjc0A" name="base_Operation" association="_lXccAGfLEeO447LqwGjc0A"> |
| <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/> |
| </ownedAttribute> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Extension" xmi:id="_lXccAGfLEeO447LqwGjc0A" name="E_RTTrigger_Operation1" memberEnd="_lXccAWfLEeO447LqwGjc0A _lXb08GfLEeO447LqwGjc0A"> |
| <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lXccAWfLEeO447LqwGjc0A" name="extension_RTTrigger" type="_j4X18GfLEeO447LqwGjc0A" aggregation="composite" association="_lXccAGfLEeO447LqwGjc0A"/> |
| </packagedElement> |
| </uml:Profile> |