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.

123 lines
7.5 KiB

6 years ago
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="pseim" nsURI="http://www.irt-saintexupery.com/pseim/0.1" nsPrefix="pseim">
<eAnnotations source="http://www.eclipse.org/OCL/Import">
<details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
<details key="seim" value="seim.ecore#/"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="Library" eSuperTypes="seim.ecore#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="patterns" upperBound="-1"
eType="#//Pattern" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Pattern" eSuperTypes="seim.ecore#//Model">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeHS" ordered="false"
upperBound="-1" eType="#//PatternTypeHS"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeFailure" eType="#//PatternTypeFailureMode"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="alsoKnownAs" ordered="false"
upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="usedTactics" ordered="false"
upperBound="-1" eType="#//SafetyTactic">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="domain" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isSingleChannel" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="interfaceElements" upperBound="-1"
eType="ecore:EClass seim.ecore#//PropertyHolder"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="cardinalityElements" upperBound="-1"
eType="#//CardinalityElement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternTypeHS">
<eLiterals name="Hardware"/>
<eLiterals name="Software" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternTypeFailureMode">
<eLiterals name="Fail_safe"/>
<eLiterals name="Fail_over" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SafetyTactic">
<eLiterals name="Simplicity"/>
<eLiterals name="Substitution" value="1"/>
<eLiterals name="Sanity_Check" value="2"/>
<eLiterals name="Condition_Monitoring" value="3"/>
<eLiterals name="Comparison" value="4"/>
<eLiterals name="Diverse_Redundancy" value="5"/>
<eLiterals name="Replication_Redundancy" value="6"/>
<eLiterals name="Repair" value="7"/>
<eLiterals name="Degradation" value="8"/>
<eLiterals name="Voting" value="9"/>
<eLiterals name="Override" value="10"/>
<eLiterals name="Barrier" value="11"/>
<eLiterals name="Heartbeat" value="12"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CardinalityElement" eSuperTypes="seim.ecore#//PropertyHolder">
<eStructuralFeatures xsi:type="ecore:EReference" name="calculatedVia" upperBound="-1"
eType="ecore:EClass seim.ecore#//PropertyHolder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LinkType">
<eLiterals name="TRANSPOSE"/>
<eLiterals name="IDENTITY" value="1"/>
<eLiterals name="SHIFT" value="2"/>
<eLiterals name="FIRST" value="3"/>
<eLiterals name="ROTATE" value="4"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternComponent" eSuperTypes="#//MultiplicityElement #//IdentifiedElement seim.ecore#//Component">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="contentIsPatternContent"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="contentIsPatternContent" value="content->forAll(c | c.oclIsTypeOf(PatternComponent) or c.oclIsTypeOf(PatternPort) or c.oclIsTypeOf(PatternLink))"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mergeContent" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternPort" eSuperTypes="#//MultiplicityElement #//IdentifiedElement seim.ecore#//Port">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="dir" lowerBound="1" eType="#//PatternPortDirection"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternLink" eSuperTypes="#//IdentifiedElement seim.ecore#//Link">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="srcIsPatternPort dstIsPatternPort"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="srcIsPatternPort" value="src.oclIsTypeOf(PatternLink)"/>
<details key="dstIsPatternPort" value="dst.oclIsTypeOf(PatternLink)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="linkType" lowerBound="1"
eType="#//LinkType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//CardinalityElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MultiplicityElement" abstract="true"
interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="cardinalityAsElementOrMult"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="cardinalityAsElementOrMult" value="(not (cardinalityElement.oclIsUndefined())) implies multiplicityValue = 1"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicityValue" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="cardinalityElement" eType="#//CardinalityElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IdentifiedElement" abstract="true" interface="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="identifiedAs" eType="ecore:EClass seim.ecore#//PropertyHolder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternPortDirection">
<eLiterals name="UNSPECIFIED" value="3"/>
<eLiterals name="IN"/>
<eLiterals name="OUT" value="1"/>
<eLiterals name="INOUT" value="2"/>
</eClassifiers>
</ecore:EPackage>