This project is a demonstrator of pattern instanciation on system engineering model (pseim), made by the MOISE project. It contains the metamodel of the pseim, graphical and textual editors, formal verification models (event-B) and examples.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

239 lines
24 KiB

6 years ago
<?xml version="1.0" encoding="UTF-8"?>
<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="seim" version="12.0.0.2017041100">
<ownedViewpoints name="SE model" modelFileExtension="seim seimx">
<ownedRepresentations xsi:type="description_1:DiagramDescription" name="System Engineering Diagram" initialisation="true" domainClass="seim::Model" enablePopupBars="true">
<metamodel href="http://www.irt-saintexupery.com/seim/0.1#/"/>
<defaultLayer name="Default">
<edgeMappings name="Ports 2 ports links" sourceMapping="//@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@borderedNodeMappings[name='Ports'] //@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@subContainerMappings[name='Sub%20components']/@borderedNodeMappings[name='Ports']" targetMapping="//@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@borderedNodeMappings[name='Ports'] //@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@subContainerMappings[name='Sub%20components']/@borderedNodeMappings[name='Ports']" targetFinderExpression="feature:dst" sourceFinderExpression="feature:src" domainClass="seim::Link" useDomainElement="true">
<style targetArrow="InputFillClosedArrow" routingStyle="manhattan" endsCentering="Both">
<strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<centerLabelStyleDescription showIcon="false" labelExpression="feature:name">
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</centerLabelStyleDescription>
</style>
<conditionnalStyles predicateExpression="[self.src.direction = PortDirection::IN and self.dst.direction = PortDirection::IN/]">
<style lineStyle="dash" targetArrow="NoDecoration" sizeComputationExpression="2">
<strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/>
<centerLabelStyleDescription showIcon="false" labelExpression="feature:name">
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</centerLabelStyleDescription>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="[self.src.direction = PortDirection::OUT and self.dst.direction = PortDirection::OUT/]">
<style lineStyle="dash" targetArrow="NoDecoration" sizeComputationExpression="2">
<strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/>
<centerLabelStyleDescription showIcon="false" labelExpression="feature:name">
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</centerLabelStyleDescription>
</style>
</conditionnalStyles>
</edgeMappings>
<containerMappings name="Model" semanticCandidatesExpression="[self/]" domainClass="seim::Model">
<subContainerMappings name="RootComponent" semanticCandidatesExpression="[self.modelElements->filter(seim::Component)->select(c | c.eContainer().oclIsTypeOf(seim::Model))/]" domainClass="seim::Component">
<borderedNodeMappings name="Ports" semanticCandidatesExpression="[self.content->filter(Port)/]" domainClass="seim::Port">
<style xsi:type="style:SquareDescription" showIcon="false" sizeComputationExpression="1" labelPosition="node">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_green']"/>
</style>
<conditionnalStyles predicateExpression="[self.direction = PortDirection::IN/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelAlignment="RIGHT" sizeComputationExpression="1" labelPosition="node">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<forbiddenSides>SOUTH</forbiddenSides>
<forbiddenSides>EAST</forbiddenSides>
<forbiddenSides>NORTH</forbiddenSides>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_green']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="[self.direction = PortDirection::OUT/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelAlignment="RIGHT" sizeComputationExpression="1" labelPosition="node">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<forbiddenSides>WEST</forbiddenSides>
<forbiddenSides>SOUTH</forbiddenSides>
<forbiddenSides>NORTH</forbiddenSides>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_red']"/>
</style>
</conditionnalStyles>
</borderedNodeMappings>
<subNodeMappings name="Property value element" semanticCandidatesExpression="[self.properties/]" domainClass="seim::BasicProperty">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="Unimplemented property type" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/>
</style>
<conditionnalStyles predicateExpression="[self.oclIsKindOf(seim::StringProperty)/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="['[' +self.key + '] ' + self.oclAsType(seim::StringProperty).value/]" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="[self.oclIsKindOf(seim::IntegerProperty)/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="['[' +self.key + '] ' + self.oclAsType(seim::IntegerProperty).value/]" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="[self.oclIsKindOf(seim::BooleanProperty)/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="['[' +self.key + '] ' + self.oclAsType(seim::BooleanProperty).value/]" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/>
</style>
</conditionnalStyles>
</subNodeMappings>
<subContainerMappings name="Sub components" semanticCandidatesExpression="[self.content->filter(Component)/]" domainClass="seim::Component" reusedContainerMappings="//@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@subContainerMappings[name='Sub%20components']">
<borderedNodeMappings name="Ports" semanticCandidatesExpression="[self.content->filter(Port)/]" domainClass="seim::Port">
<style xsi:type="style:SquareDescription" showIcon="false" sizeComputationExpression="1" labelPosition="node">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_green']"/>
</style>
<conditionnalStyles predicateExpression="[self.direction = PortDirection::IN/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelAlignment="RIGHT" sizeComputationExpression="1" labelPosition="node">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<forbiddenSides>SOUTH</forbiddenSides>
<forbiddenSides>EAST</forbiddenSides>
<forbiddenSides>NORTH</forbiddenSides>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_green']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="[self.direction = PortDirection::OUT/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelAlignment="RIGHT" sizeComputationExpression="1" labelPosition="node">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<forbiddenSides>WEST</forbiddenSides>
<forbiddenSides>SOUTH</forbiddenSides>
<forbiddenSides>NORTH</forbiddenSides>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_red']"/>
</style>
</conditionnalStyles>
</borderedNodeMappings>
<subNodeMappings name="Property value element" semanticCandidatesExpression="[self.properties/]" domainClass="seim::BasicProperty">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="Unimplemented property type" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/>
</style>
<conditionnalStyles predicateExpression="[self.oclIsKindOf(seim::StringProperty)/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="['[' +self.key + '] ' + self.oclAsType(seim::StringProperty).value/]" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="[self.oclIsKindOf(seim::IntegerProperty)/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="['[' +self.key + '] ' + self.oclAsType(seim::IntegerProperty).value/]" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="[self.oclIsKindOf(seim::BooleanProperty)/]">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="['[' +self.key + '] ' + self.oclAsType(seim::BooleanProperty).value/]" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/>
</style>
</conditionnalStyles>
</subNodeMappings>
<style xsi:type="style:FlatContainerStyleDescription" arcWidth="30" arcHeight="30" borderSizeComputationExpression="1" roundedCorner="true" widthComputationExpression="[name.size() * 5/]" heightComputationExpression="[content->filter(seim::Port)->size() * 5/]" backgroundStyle="GradientTopToBottom">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
<foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_green']"/>
</style>
</subContainerMappings>
<style xsi:type="style:FlatContainerStyleDescription" arcWidth="30" arcHeight="30" borderSizeComputationExpression="1" roundedCorner="true" widthComputationExpression="[name.size() * 5/]" heightComputationExpression="[content->filter(seim::Port)->size() * 5/]" backgroundStyle="GradientTopToBottom">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
<foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_green']"/>
</style>
</subContainerMappings>
<style xsi:type="style:FlatContainerStyleDescription" showIcon="false">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
<foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
</style>
</containerMappings>
<toolSections name="Container">
<ownedTools xsi:type="tool:ContainerCreationDescription" name="Container" containerMappings="//@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent'] //@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@subContainerMappings[name='Sub%20components']">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
<firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[container/]">
<subModelOperations xsi:type="tool_1:If" conditionExpression="[container.oclIsTypeOf(seim::Model)/]">
<subModelOperations xsi:type="tool_1:CreateInstance" typeName="seim::Component" referenceName="modelElements"/>
</subModelOperations>
<subModelOperations xsi:type="tool_1:If" conditionExpression="[container.oclIsTypeOf(seim::Component)/]">
<subModelOperations xsi:type="tool_1:CreateInstance" typeName="seim::Component" referenceName="content"/>
</subModelOperations>
</firstModelOperations>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool:NodeCreationDescription" name="Input port" nodeMappings="//@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@borderedNodeMappings[name='Ports'] //@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@subContainerMappings[name='Sub%20components']/@borderedNodeMappings[name='Ports']" iconPath="/com.irtsaintexupery.pseim.edit/icons/full/obj16/IPort.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
<firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[container/]">
<subModelOperations xsi:type="tool_1:CreateInstance" typeName="seim::Port" referenceName="content">
<subModelOperations xsi:type="tool_1:SetValue" featureName="direction" valueExpression="[PortDirection::IN/]"/>
</subModelOperations>
</firstModelOperations>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool:NodeCreationDescription" name="Output port" nodeMappings="//@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@borderedNodeMappings[name='Ports'] //@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@containerMappings[name='Model']/@subContainerMappings[name='RootComponent']/@subContainerMappings[name='Sub%20components']/@borderedNodeMappings[name='Ports']" iconPath="/com.irtsaintexupery.pseim.edit/icons/full/obj16/OPort.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
<firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[container/]">
<subModelOperations xsi:type="tool_1:CreateInstance" typeName="seim::Port" referenceName="content">
<subModelOperations xsi:type="tool_1:SetValue" featureName="direction" valueExpression="[PortDirection::OUT/]"/>
</subModelOperations>
</firstModelOperations>
</initialOperation>
</ownedTools>
</toolSections>
<toolSections name="Links">
<ownedTools xsi:type="tool:EdgeCreationDescription" name="Links" edgeMappings="//@ownedViewpoints[name='SE%20model']/@ownedRepresentations[name='System%20Engineering%20Diagram']/@defaultLayer/@edgeMappings[name='Ports%202%20ports%20links']">
<sourceVariable name="source"/>
<targetVariable name="target"/>
<sourceViewVariable name="sourceView"/>
<targetViewVariable name="targetView"/>
<initialOperation>
<firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[source.eContainer()/]">
<subModelOperations xsi:type="tool_1:CreateInstance" typeName="seim::Link" referenceName="content">
<subModelOperations xsi:type="tool_1:SetValue" featureName="src" valueExpression="var:source"/>
<subModelOperations xsi:type="tool_1:SetValue" featureName="dst" valueExpression="var:target"/>
</subModelOperations>
</firstModelOperations>
</initialOperation>
</ownedTools>
</toolSections>
<toolSections name="Properties">
<ownedTools xsi:type="tool_1:ToolDescription" name="String property">
<element name="element"/>
<elementView name="elementView"/>
<initialOperation>
<firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[element/]">
<subModelOperations xsi:type="tool_1:CreateInstance" typeName="seim::StringProperty" referenceName="properties" variableName="property_instance">
<subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[property_instance/]">
<subModelOperations xsi:type="tool_1:SetValue" featureName="value" valueExpression="['Type in the property content'/]"/>
<subModelOperations xsi:type="tool_1:SetValue" featureName="key" valueExpression="['[' + eContainer().oclAsType(PropertyHolder).name + ']'/]"/>
</subModelOperations>
</subModelOperations>
</firstModelOperations>
</initialOperation>
</ownedTools>
</toolSections>
</defaultLayer>
</ownedRepresentations>
</ownedViewpoints>
</description:Group>