Bug 546151 - [MOKA][FMI] Provide Bus Support in SSP

Change-Id: If44325e4f06adf2ee1cb95765c1c18fba5912b5e
Signed-off-by: Sebastien Revol <sebastien.revol@cea.fr>
diff --git a/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/.gitignore b/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/.gitignore
index 8ba8959..91224e5 100644
--- a/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/.gitignore
+++ b/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/.gitignore
@@ -1,2 +1 @@
-/.BehaviorRegistryGenerator.xtendbin
-/.OpaqueBehaviorExecutionGenerator.xtendbin
+**/*
diff --git a/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/.gitignore b/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/.gitignore
deleted file mode 100644
index a2ea0f3..0000000
--- a/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/.BehaviorRegistryGenerator.java._trace
-/.OpaqueBehaviorExecutionGenerator.java._trace
-/BehaviorRegistryGenerator.java
-/OpaqueBehaviorExecutionGenerator.java
diff --git a/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/OpaqueBehaviorExecutionGenerator.java b/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/OpaqueBehaviorExecutionGenerator.java
deleted file mode 100644
index 998cf6b..0000000
--- a/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/OpaqueBehaviorExecutionGenerator.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * Copyright (c) 2016 CEA LIST.
- * 
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *  David LOPEZ BETANCUR (CEA LIST) - david.lopez@cea.fr
- */
-package org.eclipse.papyrus.moka.fuml.libraries.tools.annotations.xtend;
-
-import org.eclipse.papyrus.moka.fuml.libraries.tools.annotations.processor.FumlLibraryData;
-import org.eclipse.xtend2.lib.StringConcatenation;
-
-@SuppressWarnings("all")
-public class OpaqueBehaviorExecutionGenerator {
-  public static String className(final FumlLibraryData.OpaqueFunction f) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("� f.name.toFirstUpper �Behavior");
-    return _builder.toString();
-  }
-  
-  public static String genInputParamString(final FumlLibraryData.OpaqueFunctionParameter p, final int i, final int size) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("(� p.fqType �) in.get(� i �).getValues().get(0)� IF i != size - 1 �,");
-    _builder.newLine();
-    _builder.append("�ENDIF�");
-    _builder.newLine();
-    return _builder.toString();
-  }
-  
-  public static String generate(final FumlLibraryData.OpaqueFunction f, final FumlLibraryData lib) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("package � lib.packageName �;");
-    _builder.newLine();
-    _builder.append("�var hasOutput = f.countParams(ParameterDirection.OUT) > 0 �");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("�IF hasOutput�");
-    _builder.newLine();
-    _builder.append("import java.util.ArrayList;");
-    _builder.newLine();
-    _builder.append("�ENDIF�\t");
-    _builder.newLine();
-    _builder.append("import java.util.List;");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("import org.eclipse.papyrus.moka.fuml.Semantics.Classes.Kernel.IValue;");
-    _builder.newLine();
-    _builder.append("import org.eclipse.papyrus.moka.fuml.Semantics.CommonBehaviors.BasicBehaviors.IParameterValue;");
-    _builder.newLine();
-    _builder.append("import org.eclipse.papyrus.moka.fuml.Semantics.impl.CommonBehaviors.BasicBehaviors.OpaqueBehaviorExecution;");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("public class � className(f) � extends OpaqueBehaviorExecution{");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("@Override");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("public void doBody(List<IParameterValue> in, List<IParameterValue> out) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("�var inputIdx = 0 �");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("�IF hasOutput �");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("List<IValue> outputs = new ArrayList<IValue>();");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("�ENDIF�");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("�FOR op : f.params �");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("�IF op.direction == ParameterDirection.OUT �");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("� op.fqType � � op.name � = new � op.fqType �(); ");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("outputs.add(� op.name �);");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("�ENDIF�");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("�IF op.direction == ParameterDirection.IN �");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("� op.fqType � � op.name � = (� op.fqType �) in.get(� inputIdx++ �).getValues().get(0);");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("�ENDIF�");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("� ENDFOR �");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("�lib.classElement.simpleName�.�f.methodName�(�FOR op : f.params SEPARATOR \',\' ��op.name�� ENDFOR �);");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("�IF hasOutput �");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("out.get(0).setValues(outputs);");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("�ENDIF�");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("@Override");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("public IValue new_() {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("return new � className(f) �();");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("}");
-    _builder.newLine();
-    return _builder.toString();
-  }
-}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.genmodel b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.genmodel
index ed9c0f3..f26c07a 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.genmodel
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.genmodel
@@ -89,5 +89,21 @@
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//TLMConnection/base_Connector"/>
     </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="OMSimulatorProfile.ecore#//BusConnector">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//BusConnector/base_Connector"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//BusConnector/end1Component"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//BusConnector/end1Signals"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//BusConnector/end2Signals"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//BusConnector/end2Component"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="OMSimulatorProfile.ecore#//BusConnector/getEnd1Component"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="OMSimulatorProfile.ecore#//BusConnector/getEnd2Component"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="OMSimulatorProfile.ecore#//BusConnector/getEnd1Signals"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="OMSimulatorProfile.ecore#//BusConnector/getEnd2Signals"/>
+    </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.notation b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.notation
index 7378509..a7f3378 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.notation
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.notation
@@ -125,14 +125,6 @@
     <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
     <layoutConstraint xmi:type="notation:Bounds" xmi:id="_07wyKLgvEeizUOX0GlzCzg" x="500" y="320"/>
   </children>
-  <children xmi:type="notation:Shape" xmi:id="_08XPE7gvEeizUOX0GlzCzg" type="StereotypeComment">
-    <styles xmi:type="notation:TitleStyle" xmi:id="_08XPFLgvEeizUOX0GlzCzg"/>
-    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_08XPFrgvEeizUOX0GlzCzg" name="BASE_ELEMENT">
-      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-    </styles>
-    <element xsi:nil="true"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_08XPFbgvEeizUOX0GlzCzg" x="720" y="200"/>
-  </children>
   <children xmi:type="notation:Shape" xmi:id="__qWlcMVZEeiLVbFVoMGQrQ" type="Class_MetaclassShape">
     <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__qYaoMVZEeiLVbFVoMGQrQ" source="Stereotype_Annotation">
       <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__qZBsMVZEeiLVbFVoMGQrQ" key="StereotypeWithQualifiedNameList" value=""/>
@@ -145,14 +137,6 @@
     <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
     <layoutConstraint xmi:type="notation:Bounds" xmi:id="__qXzkcVZEeiLVbFVoMGQrQ" x="820" y="60"/>
   </children>
-  <children xmi:type="notation:Shape" xmi:id="__qyDQMVZEeiLVbFVoMGQrQ" type="StereotypeComment">
-    <styles xmi:type="notation:TitleStyle" xmi:id="__qyDQcVZEeiLVbFVoMGQrQ"/>
-    <styles xmi:type="notation:EObjectValueStyle" xmi:id="__qyqUMVZEeiLVbFVoMGQrQ" name="BASE_ELEMENT">
-      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
-    </styles>
-    <element xsi:nil="true"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="__qyDQsVZEeiLVbFVoMGQrQ" x="1320" y="160"/>
-  </children>
   <children xmi:type="notation:Shape" xmi:id="_DwWKcMVaEeiLVbFVoMGQrQ" type="Stereotype_Shape">
     <children xmi:type="notation:DecorationNode" xmi:id="_DwWKcsVaEeiLVbFVoMGQrQ" type="Stereotype_NameLabel"/>
     <children xmi:type="notation:BasicCompartment" xmi:id="_DwWKc8VaEeiLVbFVoMGQrQ" type="Stereotype_AttributeCompartment">
@@ -176,7 +160,7 @@
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwWKfMVaEeiLVbFVoMGQrQ"/>
     </children>
     <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_DwNAgMVaEeiLVbFVoMGQrQ"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwWKccVaEeiLVbFVoMGQrQ" x="660" y="180" width="221" height="101"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwWKccVaEeiLVbFVoMGQrQ" x="620" y="160" width="241" height="161"/>
   </children>
   <children xmi:type="notation:Shape" xmi:id="_xI4DkcVaEeiLVbFVoMGQrQ" type="Stereotype_Shape">
     <children xmi:type="notation:DecorationNode" xmi:id="_xI4Dk8VaEeiLVbFVoMGQrQ" type="Stereotype_NameLabel"/>
@@ -211,14 +195,6 @@
     <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
     <layoutConstraint xmi:type="notation:Bounds" xmi:id="__3fNE8VaEeiLVbFVoMGQrQ" x="820" y="380"/>
   </children>
-  <children xmi:type="notation:Shape" xmi:id="__3oXCsVaEeiLVbFVoMGQrQ" type="StereotypeComment">
-    <styles xmi:type="notation:TitleStyle" xmi:id="__3oXC8VaEeiLVbFVoMGQrQ"/>
-    <styles xmi:type="notation:EObjectValueStyle" xmi:id="__3oXDcVaEeiLVbFVoMGQrQ" name="BASE_ELEMENT">
-      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
-    </styles>
-    <element xsi:nil="true"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="__3oXDMVaEeiLVbFVoMGQrQ" x="760" y="40"/>
-  </children>
   <children xmi:type="notation:Shape" xmi:id="_4T2nEcVbEeiLVbFVoMGQrQ" type="Stereotype_Shape">
     <children xmi:type="notation:DecorationNode" xmi:id="_4T_xAMVbEeiLVbFVoMGQrQ" type="Stereotype_NameLabel"/>
     <children xmi:type="notation:BasicCompartment" xmi:id="_4T_xAcVbEeiLVbFVoMGQrQ" type="Stereotype_AttributeCompartment">
@@ -268,14 +244,6 @@
     <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
     <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6J1bQemMEeiRcfn1Mejhlg" x="1500" y="80"/>
   </children>
-  <children xmi:type="notation:Shape" xmi:id="_6KQ5EOmMEeiRcfn1Mejhlg" type="StereotypeComment">
-    <styles xmi:type="notation:TitleStyle" xmi:id="_6KQ5EemMEeiRcfn1Mejhlg"/>
-    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6KRgIOmMEeiRcfn1Mejhlg" name="BASE_ELEMENT">
-      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-    </styles>
-    <element xsi:nil="true"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6KQ5EumMEeiRcfn1Mejhlg" x="1500" y="60"/>
-  </children>
   <children xmi:type="notation:Shape" xmi:id="_AsWA0OmfEeiRcfn1Mejhlg" type="Stereotype_Shape">
     <children xmi:type="notation:DecorationNode" xmi:id="_AsWn4OmfEeiRcfn1Mejhlg" type="Stereotype_NameLabel"/>
     <children xmi:type="notation:BasicCompartment" xmi:id="_AsXO8OmfEeiRcfn1Mejhlg" type="Stereotype_AttributeCompartment">
@@ -293,22 +261,113 @@
     <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_AsULoOmfEeiRcfn1Mejhlg"/>
     <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AsWA0emfEeiRcfn1Mejhlg" x="1140" y="180" width="181" height="101"/>
   </children>
+  <children xmi:type="notation:Shape" xmi:id="_XecDkCYvEemDsJKy8GtZKA" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_XecDkiYvEemDsJKy8GtZKA" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_XecDkyYvEemDsJKy8GtZKA" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_jMbUsCYvEemDsJKy8GtZKA" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_jFtosCYvEemDsJKy8GtZKA"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_jMbUsSYvEemDsJKy8GtZKA"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_pA08QCYvEemDsJKy8GtZKA" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_o4gGsCYvEemDsJKy8GtZKA"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_pA08QSYvEemDsJKy8GtZKA"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_FC_mgCYwEemp-f1Vl6pDLw" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_FCw9ACYwEemp-f1Vl6pDLw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_FC_mgSYwEemp-f1Vl6pDLw"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_FDANkCYwEemp-f1Vl6pDLw" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_FCvH0CYwEemp-f1Vl6pDLw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_FDANkSYwEemp-f1Vl6pDLw"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_XecDlCYvEemDsJKy8GtZKA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_XecDlSYvEemDsJKy8GtZKA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_XecDliYvEemDsJKy8GtZKA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XecDlyYvEemDsJKy8GtZKA"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_XecDmCYvEemDsJKy8GtZKA" type="Stereotype_OperationCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_dW1k4CYwEemp-f1Vl6pDLw" type="Operation_ClassOperationLabel">
+        <element xmi:type="uml:Operation" href="OMSimulator.profile.uml#_dO04YCYwEemp-f1Vl6pDLw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_dW1k4SYwEemp-f1Vl6pDLw"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_oyz48CYwEemp-f1Vl6pDLw" type="Operation_ClassOperationLabel">
+        <element xmi:type="uml:Operation" href="OMSimulator.profile.uml#_oyw1oCYwEemp-f1Vl6pDLw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_oyz48SYwEemp-f1Vl6pDLw"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_tBxMsCYwEemp-f1Vl6pDLw" type="Operation_ClassOperationLabel">
+        <element xmi:type="uml:Operation" href="OMSimulator.profile.uml#_tBv-kCYwEemp-f1Vl6pDLw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_tBxMsSYwEemp-f1Vl6pDLw"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_zWD1QCYwEemp-f1Vl6pDLw" type="Operation_ClassOperationLabel">
+        <element xmi:type="uml:Operation" href="OMSimulator.profile.uml#_zV-8wCYwEemp-f1Vl6pDLw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_zWD1QSYwEemp-f1Vl6pDLw"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_XecDmSYvEemDsJKy8GtZKA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_XecDmiYvEemDsJKy8GtZKA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_XecDmyYvEemDsJKy8GtZKA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XecDnCYvEemDsJKy8GtZKA"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_XeSSkCYvEemDsJKy8GtZKA"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XecDkSYvEemDsJKy8GtZKA" x="100" y="340" width="241" height="201"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_2SHzMCYvEemp-f1Vl6pDLw" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_2SHzMSYvEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2SHzMyYvEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2SHzMiYvEemp-f1Vl6pDLw" x="700" y="320"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_2SauICYvEemp-f1Vl6pDLw" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_2SauISYvEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2SauIyYvEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2SauIiYvEemp-f1Vl6pDLw" x="1020" y="60"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_2StpFyYvEemp-f1Vl6pDLw" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_2StpGCYvEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2StpGiYvEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2StpGSYvEemp-f1Vl6pDLw" x="1020" y="380"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_2TKVAyYvEemp-f1Vl6pDLw" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_2TKVBCYvEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2TKVBiYvEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2TKVBSYvEemp-f1Vl6pDLw" x="1700" y="80"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_BxD7sCYwEemp-f1Vl6pDLw" type="Class_MetaclassShape">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BxHmECYwEemp-f1Vl6pDLw" source="Stereotype_Annotation">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BxINICYwEemp-f1Vl6pDLw" key="StereotypeWithQualifiedNameList" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BxINISYwEemp-f1Vl6pDLw" key="StereotypeList" value="StandardProfile::Metaclass"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BxINIiYwEemp-f1Vl6pDLw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BxINIyYwEemp-f1Vl6pDLw" key="PropStereoDisplay" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BxINJCYwEemp-f1Vl6pDLw" key="StereotypePropertyLocation" value="Compartment"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_BxGX8CYwEemp-f1Vl6pDLw" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BxGX8SYwEemp-f1Vl6pDLw" x="280" y="140"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_BxhOsCYwEemp-f1Vl6pDLw" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_BxhOsSYwEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_BxhOsyYwEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BxhOsiYwEemp-f1Vl6pDLw" x="480" y="140"/>
+  </children>
   <styles xmi:type="notation:StringValueStyle" xmi:id="_zJLsIbgtEeizUOX0GlzCzg" name="diagram_compatibility_version" stringValue="1.4.0"/>
   <styles xmi:type="notation:DiagramStyle" xmi:id="_zJLsIrgtEeizUOX0GlzCzg"/>
   <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_zJLsI7gtEeizUOX0GlzCzg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
     <owner xmi:type="uml:Profile" href="OMSimulator.profile.uml#_zIAAYLgtEeizUOX0GlzCzg"/>
   </styles>
   <element xmi:type="uml:Profile" href="OMSimulator.profile.uml#_zIAAYLgtEeizUOX0GlzCzg"/>
-  <edges xmi:type="notation:Connector" xmi:id="_08XPF7gvEeizUOX0GlzCzg" type="StereotypeCommentLink" source="_07wyJbgvEeizUOX0GlzCzg" target="_08XPE7gvEeizUOX0GlzCzg">
-    <styles xmi:type="notation:FontStyle" xmi:id="_08XPGLgvEeizUOX0GlzCzg"/>
-    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_08XPHLgvEeizUOX0GlzCzg" name="BASE_ELEMENT">
-      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-    </styles>
-    <element xsi:nil="true"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_08XPGbgvEeizUOX0GlzCzg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_08XPGrgvEeizUOX0GlzCzg"/>
-    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_08XPG7gvEeizUOX0GlzCzg"/>
-  </edges>
   <edges xmi:type="notation:Connector" xmi:id="_2AOf0LgvEeizUOX0GlzCzg" type="Extension_Edge" source="_8BDrwLgtEeizUOX0GlzCzg" target="_07wyJbgvEeizUOX0GlzCzg">
     <styles xmi:type="notation:FontStyle" xmi:id="_2AOf0bgvEeizUOX0GlzCzg"/>
     <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_1_pRALgvEeizUOX0GlzCzg"/>
@@ -316,33 +375,13 @@
     <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2A3ZALgvEeizUOX0GlzCzg" id="(0.4149377593360996,0.0)"/>
     <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2A3ZAbgvEeizUOX0GlzCzg" id="(0.4,1.0)"/>
   </edges>
-  <edges xmi:type="notation:Connector" xmi:id="__qzRYMVZEeiLVbFVoMGQrQ" type="StereotypeCommentLink" source="__qWlcMVZEeiLVbFVoMGQrQ" target="__qyDQMVZEeiLVbFVoMGQrQ">
-    <styles xmi:type="notation:FontStyle" xmi:id="__qzRYcVZEeiLVbFVoMGQrQ"/>
-    <styles xmi:type="notation:EObjectValueStyle" xmi:id="__qzRZcVZEeiLVbFVoMGQrQ" name="BASE_ELEMENT">
-      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
-    </styles>
-    <element xsi:nil="true"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__qzRYsVZEeiLVbFVoMGQrQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__qzRY8VZEeiLVbFVoMGQrQ"/>
-    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__qzRZMVZEeiLVbFVoMGQrQ"/>
-  </edges>
   <edges xmi:type="notation:Connector" xmi:id="_lvJLMMVaEeiLVbFVoMGQrQ" type="Extension_Edge" source="_DwWKcMVaEeiLVbFVoMGQrQ" target="__qWlcMVZEeiLVbFVoMGQrQ">
     <styles xmi:type="notation:FontStyle" xmi:id="_lvJLMcVaEeiLVbFVoMGQrQ"/>
     <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_lusfQMVaEeiLVbFVoMGQrQ"/>
     <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lvJLMsVaEeiLVbFVoMGQrQ" points="[1140, 220, -643984, -643984]$[1160, 130, -643984, -643984]"/>
-    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lvcGIMVaEeiLVbFVoMGQrQ" id="(0.6334841628959276,0.0)"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lvcGIMVaEeiLVbFVoMGQrQ" id="(0.5809128630705395,0.0)"/>
     <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lvcGIcVaEeiLVbFVoMGQrQ" id="(0.4,1.0)"/>
   </edges>
-  <edges xmi:type="notation:Connector" xmi:id="__3oXDsVaEeiLVbFVoMGQrQ" type="StereotypeCommentLink" source="__3fNEMVaEeiLVbFVoMGQrQ" target="__3oXCsVaEeiLVbFVoMGQrQ">
-    <styles xmi:type="notation:FontStyle" xmi:id="__3oXD8VaEeiLVbFVoMGQrQ"/>
-    <styles xmi:type="notation:EObjectValueStyle" xmi:id="__3oXE8VaEeiLVbFVoMGQrQ" name="BASE_ELEMENT">
-      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
-    </styles>
-    <element xsi:nil="true"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__3oXEMVaEeiLVbFVoMGQrQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__3oXEcVaEeiLVbFVoMGQrQ"/>
-    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__3oXEsVaEeiLVbFVoMGQrQ"/>
-  </edges>
   <edges xmi:type="notation:Connector" xmi:id="_A5mxYMVbEeiLVbFVoMGQrQ" type="Extension_Edge" source="_xI4DkcVaEeiLVbFVoMGQrQ" target="__3fNEMVaEeiLVbFVoMGQrQ">
     <styles xmi:type="notation:FontStyle" xmi:id="_A5mxYcVbEeiLVbFVoMGQrQ"/>
     <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_A5KsgMVbEeiLVbFVoMGQrQ"/>
@@ -376,7 +415,7 @@
     <element xsi:nil="true"/>
     <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QZps8sVdEeiLVbFVoMGQrQ" points="[720, 152, -643984, -643984]$[760, 180, -643984, -643984]"/>
     <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QaZT0MVdEeiLVbFVoMGQrQ" id="(0.5673758865248227,1.0)"/>
-    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QaZT0cVdEeiLVbFVoMGQrQ" id="(0.5429864253393665,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QaZT0cVdEeiLVbFVoMGQrQ" id="(0.4979253112033195,0.0)"/>
   </edges>
   <edges xmi:type="notation:Connector" xmi:id="_4Lo0UMVdEeiLVbFVoMGQrQ" type="Comment_AnnotatedElementEdge" source="_a4XHgcVdEeiLVbFVoMGQrQ" target="_xI4DkcVaEeiLVbFVoMGQrQ">
     <styles xmi:type="notation:FontStyle" xmi:id="_4Lo0UcVdEeiLVbFVoMGQrQ"/>
@@ -385,16 +424,6 @@
     <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4M1HIMVdEeiLVbFVoMGQrQ" id="(0.11049723756906077,1.0)"/>
     <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4M1HIcVdEeiLVbFVoMGQrQ" id="(0.7734806629834254,0.0)"/>
   </edges>
-  <edges xmi:type="notation:Connector" xmi:id="_6KSHMOmMEeiRcfn1Mejhlg" type="StereotypeCommentLink" source="_6JxJ0OmMEeiRcfn1Mejhlg" target="_6KQ5EOmMEeiRcfn1Mejhlg">
-    <styles xmi:type="notation:FontStyle" xmi:id="_6KSHMemMEeiRcfn1Mejhlg"/>
-    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6KTVUOmMEeiRcfn1Mejhlg" name="BASE_ELEMENT">
-      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-    </styles>
-    <element xsi:nil="true"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6KSHMumMEeiRcfn1Mejhlg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6KSuQOmMEeiRcfn1Mejhlg"/>
-    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6KSuQemMEeiRcfn1Mejhlg"/>
-  </edges>
   <edges xmi:type="notation:Connector" xmi:id="_7STfMOmMEeiRcfn1Mejhlg" type="Extension_Edge" source="_A48AsbguEeizUOX0GlzCzg" target="_6JxJ0OmMEeiRcfn1Mejhlg">
     <styles xmi:type="notation:FontStyle" xmi:id="_7STfMemMEeiRcfn1Mejhlg"/>
     <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_7QC1YOmMEeiRcfn1Mejhlg"/>
@@ -459,4 +488,61 @@
     <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i3k7EOmfEeiRcfn1Mejhlg" id="(0.0,0.12422360248447205)"/>
     <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i3k7EemfEeiRcfn1Mejhlg" id="(1.0,0.39603960396039606)"/>
   </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_g62ToCYvEemDsJKy8GtZKA" type="Extension_Edge" source="_XecDkCYvEemDsJKy8GtZKA" target="_07wyJbgvEeizUOX0GlzCzg">
+    <styles xmi:type="notation:FontStyle" xmi:id="_g62ToSYvEemDsJKy8GtZKA"/>
+    <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_gzSTECYvEemDsJKy8GtZKA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g62ToiYvEemDsJKy8GtZKA" points="[320, 360, -643984, -643984]$[500, 360, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hHlvICYvEemDsJKy8GtZKA" id="(1.0,0.19900497512437812)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hHlvISYvEemDsJKy8GtZKA" id="(0.0,0.8)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_2SHzNCYvEemp-f1Vl6pDLw" type="StereotypeCommentLink" source="_07wyJbgvEeizUOX0GlzCzg" target="_2SHzMCYvEemp-f1Vl6pDLw">
+    <styles xmi:type="notation:FontStyle" xmi:id="_2SHzNSYvEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2SHzOSYvEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2SHzNiYvEemp-f1Vl6pDLw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2SHzNyYvEemp-f1Vl6pDLw"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2SHzOCYvEemp-f1Vl6pDLw"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_2SauJCYvEemp-f1Vl6pDLw" type="StereotypeCommentLink" source="__qWlcMVZEeiLVbFVoMGQrQ" target="_2SauICYvEemp-f1Vl6pDLw">
+    <styles xmi:type="notation:FontStyle" xmi:id="_2SauJSYvEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2SauKSYvEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2SauJiYvEemp-f1Vl6pDLw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2SauJyYvEemp-f1Vl6pDLw"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2SauKCYvEemp-f1Vl6pDLw"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_2StpGyYvEemp-f1Vl6pDLw" type="StereotypeCommentLink" source="__3fNEMVaEeiLVbFVoMGQrQ" target="_2StpFyYvEemp-f1Vl6pDLw">
+    <styles xmi:type="notation:FontStyle" xmi:id="_2StpHCYvEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2StpICYvEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2StpHSYvEemp-f1Vl6pDLw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2StpHiYvEemp-f1Vl6pDLw"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2StpHyYvEemp-f1Vl6pDLw"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_2TKVByYvEemp-f1Vl6pDLw" type="StereotypeCommentLink" source="_6JxJ0OmMEeiRcfn1Mejhlg" target="_2TKVAyYvEemp-f1Vl6pDLw">
+    <styles xmi:type="notation:FontStyle" xmi:id="_2TKVCCYvEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2TKVDCYvEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2TKVCSYvEemp-f1Vl6pDLw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2TKVCiYvEemp-f1Vl6pDLw"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2TKVCyYvEemp-f1Vl6pDLw"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_BxhOtCYwEemp-f1Vl6pDLw" type="StereotypeCommentLink" source="_BxD7sCYwEemp-f1Vl6pDLw" target="_BxhOsCYwEemp-f1Vl6pDLw">
+    <styles xmi:type="notation:FontStyle" xmi:id="_BxhOtSYwEemp-f1Vl6pDLw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Bxh1wiYwEemp-f1Vl6pDLw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BxhOtiYwEemp-f1Vl6pDLw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bxh1wCYwEemp-f1Vl6pDLw"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bxh1wSYwEemp-f1Vl6pDLw"/>
+  </edges>
 </notation:Diagram>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.uml b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.uml
index 31fce04..440168e 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.uml
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.uml
@@ -1,7 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
-  <uml:Profile xmi:id="_zIAAYLgtEeizUOX0GlzCzg" name="OMSimulatorProfile" metaclassReference="_07maELgvEeizUOX0GlzCzg _07tu0LgvEeizUOX0GlzCzg __qTiIMVZEeiLVbFVoMGQrQ __3VcEMVaEeiLVbFVoMGQrQ _6JuGgOmMEeiRcfn1Mejhlg">
-    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6PFF4bgvEeizUOX0GlzCzg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+  <uml:Profile xmi:id="_zIAAYLgtEeizUOX0GlzCzg" name="OMSimulatorProfile" metaclassReference="_07maELgvEeizUOX0GlzCzg _07tu0LgvEeizUOX0GlzCzg __qTiIMVZEeiLVbFVoMGQrQ __3VcEMVaEeiLVbFVoMGQrQ _6JuGgOmMEeiRcfn1Mejhlg _Bv-WkCYwEemp-f1Vl6pDLw">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6PFF4bgvEeizUOX0GlzCzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mN_-MCYBEemDsJKy8GtZKA" source="PapyrusVersion">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mN_-MSYBEemDsJKy8GtZKA" key="Version" value="0.0.0"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mN_-MiYBEemDsJKy8GtZKA" key="Comment" value="&lt;undefined>"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mN_-MyYBEemDsJKy8GtZKA" key="Copyright" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mN_-NCYBEemDsJKy8GtZKA" key="Date" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mN_-NSYBEemDsJKy8GtZKA" key="Author" value="&lt;undefined>"/>
+      </eAnnotations>
+    </eAnnotations>
     <ownedComment xmi:type="uml:Comment" xmi:id="_I8yvQMVcEeiLVbFVoMGQrQ" annotatedElement="_A48AsLguEeizUOX0GlzCzg">
       <body>TLMInterface will be used to defined all the predefined TLM physical types supported by OMSimulator.&#xD;
 More particularly, each TLM interface will have to list all the corresponding signals an FMU must own.&#xD;
@@ -34,6 +42,9 @@
     <elementImport xmi:type="uml:ElementImport" xmi:id="_6JuGgOmMEeiRcfn1Mejhlg" alias="Class">
       <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
     </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_Bv-WkCYwEemp-f1Vl6pDLw" alias="Property">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    </elementImport>
     <packageImport xmi:type="uml:PackageImport" xmi:id="_zSjDgLgtEeizUOX0GlzCzg">
       <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
     </packageImport>
@@ -108,7 +119,7 @@
       <ownedAttribute xmi:type="uml:Property" xmi:id="_lu1pMcVaEeiLVbFVoMGQrQ" name="base_Port" association="_lusfQMVaEeiLVbFVoMGQrQ">
         <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
       </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_pNXJEMVbEeiLVbFVoMGQrQ" name="signals">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_pNXJEMVbEeiLVbFVoMGQrQ" name="signals" isOrdered="true">
         <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t9OKcMVbEeiLVbFVoMGQrQ"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t90AUMVbEeiLVbFVoMGQrQ" value="*"/>
@@ -166,6 +177,55 @@
       </eAnnotations>
       <ownedEnd xmi:type="uml:Property" xmi:id="_izu84OmfEeiRcfn1Mejhlg" name="tlminterfacedefinition" type="_A48AsLguEeizUOX0GlzCzg" association="_iztuwOmfEeiRcfn1Mejhlg"/>
     </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_XeSSkCYvEemDsJKy8GtZKA" name="BusConnector">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_gzSTEiYvEemDsJKy8GtZKA" name="base_Connector" association="_gzSTECYvEemDsJKy8GtZKA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzSTEyYvEemDsJKy8GtZKA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_jFtosCYvEemDsJKy8GtZKA" name="end1Component" isDerived="true">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_o4gGsCYvEemDsJKy8GtZKA" name="end1Signals" isOrdered="true">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_G7BfICYwEemp-f1Vl6pDLw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_G7WPQCYwEemp-f1Vl6pDLw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_FCvH0CYwEemp-f1Vl6pDLw" name="end2Signals" isOrdered="true">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M2f_ECYwEemp-f1Vl6pDLw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M2nT0CYwEemp-f1Vl6pDLw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_FCw9ACYwEemp-f1Vl6pDLw" name="end2Component" isDerived="true">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+      </ownedAttribute>
+      <ownedOperation xmi:type="uml:Operation" xmi:id="_dO04YCYwEemp-f1Vl6pDLw" name="getEnd1Component">
+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_i24GACYwEemp-f1Vl6pDLw" name="component" direction="return">
+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+        </ownedParameter>
+      </ownedOperation>
+      <ownedOperation xmi:type="uml:Operation" xmi:id="_oyw1oCYwEemp-f1Vl6pDLw" name="getEnd2Component">
+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_oyw1oSYwEemp-f1Vl6pDLw" name="component" direction="return">
+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+        </ownedParameter>
+      </ownedOperation>
+      <ownedOperation xmi:type="uml:Operation" xmi:id="_tBv-kCYwEemp-f1Vl6pDLw" name="getEnd1Signals">
+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_tBv-kSYwEemp-f1Vl6pDLw" name="component" direction="return">
+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x7X_8CYwEemp-f1Vl6pDLw"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x73IICYwEemp-f1Vl6pDLw" value="*"/>
+        </ownedParameter>
+      </ownedOperation>
+      <ownedOperation xmi:type="uml:Operation" xmi:id="_zV-8wCYwEemp-f1Vl6pDLw" name="getEnd2Signals">
+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_zV-8wSYwEemp-f1Vl6pDLw" name="component" direction="return">
+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zV-8wiYwEemp-f1Vl6pDLw"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zV-8wyYwEemp-f1Vl6pDLw" value="*"/>
+        </ownedParameter>
+      </ownedOperation>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_gzSTECYvEemDsJKy8GtZKA" name="E_BusConnector_Connector33" memberEnd="_gzSTESYvEemDsJKy8GtZKA _gzSTEiYvEemDsJKy8GtZKA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gzSTESYvEemDsJKy8GtZKA" name="extension_BusConnector" type="_XeSSkCYvEemDsJKy8GtZKA" aggregation="composite" association="_gzSTECYvEemDsJKy8GtZKA"/>
+    </packagedElement>
     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_TifVwLguEeizUOX0GlzCzg">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TijAILguEeizUOX0GlzCzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
@@ -181,4 +241,10 @@
   </uml:Profile>
   <Ecore:EPackage xmi:id="_VEhgEOmNEeiRcfn1Mejhlg" base_Package="_zIAAYLgtEeizUOX0GlzCzg" packageName="omsimulatorprofile" nsPrefix="omsim" nsURI="http://www.eclipse.org/papyrus/OMSimulatorProfile/1.0.0" basePackage="org.eclipse.papyrus.moka.ssp" prefix="OMSimulator"/>
   <Ecore:EOperation xmi:id="_70azIOmfEeiRcfn1Mejhlg" base_Operation="_4LCRoOmfEeiRcfn1Mejhlg" visibility="None"/>
+  <Ecore:EOperation xmi:id="_j1viACYwEemp-f1Vl6pDLw" base_Operation="_dO04YCYwEemp-f1Vl6pDLw" visibility="None"/>
+  <Ecore:EOperation xmi:id="_oy1HECYwEemp-f1Vl6pDLw" base_Operation="_oyw1oCYwEemp-f1Vl6pDLw" visibility="None"/>
+  <Ecore:EOperation xmi:id="_tBxzwCYwEemp-f1Vl6pDLw" base_Operation="_tBv-kCYwEemp-f1Vl6pDLw" visibility="None"/>
+  <Ecore:EOperation xmi:id="_zWEcUCYwEemp-f1Vl6pDLw" base_Operation="_zV-8wCYwEemp-f1Vl6pDLw" visibility="None"/>
+  <Ecore:EReference xmi:id="_danNcCY3Eemp-f1Vl6pDLw" isTransient="true" isVolatile="true" base_Property="_o4gGsCYvEemDsJKy8GtZKA"/>
+  <Ecore:EReference xmi:id="_eNHL8CY4Eemp-f1Vl6pDLw" isTransient="true" isVolatile="true" base_Property="_FCvH0CYwEemp-f1Vl6pDLw"/>
 </xmi:XMI>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulatorProfile.ecore b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulatorProfile.ecore
index b3d5693..d00ba0c 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulatorProfile.ecore
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulatorProfile.ecore
@@ -50,8 +50,8 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
         lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="signals" ordered="false"
-        upperBound="-1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signals" upperBound="-1"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="domain" ordered="false"
         upperBound="-1" eType="#//TLMDomain"/>
   </eClassifiers>
@@ -92,4 +92,40 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="base_Connector" ordered="false"
         lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="BusConnector">
+    <eOperations name="getEnd1Component" ordered="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getEnd2Component" ordered="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getEnd1Signals" ordered="false" upperBound="-1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getEnd2Signals" ordered="false" upperBound="-1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Connector" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end1Component" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"
+        volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end1Signals" upperBound="-1"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port" volatile="true"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end2Signals" upperBound="-1"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port" volatile="true"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end2Component" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"
+        volatile="true" transient="true" derived="true"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/BusConnector.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/BusConnector.java
new file mode 100644
index 0000000..d02de8e
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/BusConnector.java
@@ -0,0 +1,211 @@
+/**
+ * Copyright (c) 2018 CEA LIST.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bus Connector</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getBase_Connector <em>Base Connector</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Component <em>End1 Component</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Signals <em>End1 Signals</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Signals <em>End2 Signals</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Component <em>End2 Component</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnector()
+ * @model
+ * @generated
+ */
+public interface BusConnector extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * Returns the value of the '<em><b>Base Connector</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Connector</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Connector</em>' reference.
+	 * @see #setBase_Connector(Connector)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnector_Base_Connector()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	Connector getBase_Connector();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getBase_Connector <em>Base Connector</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Connector</em>' reference.
+	 * @see #getBase_Connector()
+	 * @generated
+	 */
+	void setBase_Connector(Connector value);
+
+	/**
+	 * Returns the value of the '<em><b>End1 Component</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End1 Component</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End1 Component</em>' reference.
+	 * @see #setEnd1Component(Property)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnector_End1Component()
+	 * @model required="true" transient="true" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	Property getEnd1Component();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Component <em>End1 Component</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>End1 Component</em>' reference.
+	 * @see #getEnd1Component()
+	 * @generated
+	 */
+	void setEnd1Component(Property value);
+
+	/**
+	 * Returns the value of the '<em><b>End1 Signals</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.Port}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End1 Signals</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End1 Signals</em>' reference list.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnector_End1Signals()
+	 * @model transient="true" volatile="true"
+	 * @generated
+	 */
+	EList<Port> getEnd1Signals();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>End1 Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
+	 * @see #getEnd1Signals()
+	 * @generated
+	 */
+	Port getEnd1Signals(String name, Type type);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>End1 Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @return The first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
+	 * @see #getEnd1Signals()
+	 * @generated
+	 */
+	Port getEnd1Signals(String name, Type type, boolean ignoreCase);
+
+	/**
+	 * Returns the value of the '<em><b>End2 Signals</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.Port}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End2 Signals</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End2 Signals</em>' reference list.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnector_End2Signals()
+	 * @model transient="true" volatile="true"
+	 * @generated
+	 */
+	EList<Port> getEnd2Signals();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>End2 Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
+	 * @see #getEnd2Signals()
+	 * @generated
+	 */
+	Port getEnd2Signals(String name, Type type);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>End2 Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @return The first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
+	 * @see #getEnd2Signals()
+	 * @generated
+	 */
+	Port getEnd2Signals(String name, Type type, boolean ignoreCase);
+
+	/**
+	 * Returns the value of the '<em><b>End2 Component</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End2 Component</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End2 Component</em>' reference.
+	 * @see #setEnd2Component(Property)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnector_End2Component()
+	 * @model required="true" transient="true" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	Property getEnd2Component();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Component <em>End2 Component</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>End2 Component</em>' reference.
+	 * @see #getEnd2Component()
+	 * @generated
+	 */
+	void setEnd2Component(Property value);
+
+} // BusConnector
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/Interpolation.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/Interpolation.java
index afa3260..0ec6c40 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/Interpolation.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/Interpolation.java
@@ -221,6 +221,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 	  return value;
 	}
@@ -230,6 +231,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 	  return name;
 	}
@@ -239,6 +241,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLiteral() {
 	  return literal;
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorBus.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorBus.java
index 1758072..560242e 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorBus.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorBus.java
@@ -85,7 +85,7 @@
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Signals</em>' reference list.
 	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getOMSimulatorBus_Signals()
-	 * @model ordered="false"
+	 * @model
 	 * @generated
 	 */
 	EList<Port> getSignals();
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorFactory.java
index 0f33910..dd1692f 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorFactory.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorFactory.java
@@ -92,6 +92,15 @@
 	TLMConnection createTLMConnection();
 
 	/**
+	 * Returns a new object of class '<em>Bus Connector</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Bus Connector</em>'.
+	 * @generated
+	 */
+	BusConnector createBusConnector();
+
+	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorPackage.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorPackage.java
index 9a071a7..f8bf574 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorPackage.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorPackage.java
@@ -415,6 +415,115 @@
 	int TLM_CONNECTION_OPERATION_COUNT = 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl <em>Bus Connector</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getBusConnector()
+	 * @generated
+	 */
+	int BUS_CONNECTOR = 6;
+
+	/**
+	 * The feature id for the '<em><b>Base Connector</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR__BASE_CONNECTOR = 0;
+
+	/**
+	 * The feature id for the '<em><b>End1 Component</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR__END1_COMPONENT = 1;
+
+	/**
+	 * The feature id for the '<em><b>End1 Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR__END1_SIGNALS = 2;
+
+	/**
+	 * The feature id for the '<em><b>End2 Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR__END2_SIGNALS = 3;
+
+	/**
+	 * The feature id for the '<em><b>End2 Component</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR__END2_COMPONENT = 4;
+
+	/**
+	 * The number of structural features of the '<em>Bus Connector</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR_FEATURE_COUNT = 5;
+
+	/**
+	 * The operation id for the '<em>Get End1 Component</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR___GET_END1_COMPONENT = 0;
+
+	/**
+	 * The operation id for the '<em>Get End2 Component</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR___GET_END2_COMPONENT = 1;
+
+	/**
+	 * The operation id for the '<em>Get End1 Signals</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR___GET_END1_SIGNALS = 2;
+
+	/**
+	 * The operation id for the '<em>Get End2 Signals</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR___GET_END2_SIGNALS = 3;
+
+	/**
+	 * The number of operations of the '<em>Bus Connector</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTOR_OPERATION_COUNT = 4;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation <em>Interpolation</em>}' enum.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -422,7 +531,7 @@
 	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getInterpolation()
 	 * @generated
 	 */
-	int INTERPOLATION = 6;
+	int INTERPOLATION = 7;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain <em>TLM Domain</em>}' enum.
@@ -432,7 +541,7 @@
 	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMDomain()
 	 * @generated
 	 */
-	int TLM_DOMAIN = 7;
+	int TLM_DOMAIN = 8;
 
 
 	/**
@@ -704,6 +813,111 @@
 	EReference getTLMConnection_Base_Connector();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector <em>Bus Connector</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Bus Connector</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector
+	 * @generated
+	 */
+	EClass getBusConnector();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getBase_Connector <em>Base Connector</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Connector</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getBase_Connector()
+	 * @see #getBusConnector()
+	 * @generated
+	 */
+	EReference getBusConnector_Base_Connector();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Component <em>End1 Component</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>End1 Component</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Component()
+	 * @see #getBusConnector()
+	 * @generated
+	 */
+	EReference getBusConnector_End1Component();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Signals <em>End1 Signals</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>End1 Signals</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Signals()
+	 * @see #getBusConnector()
+	 * @generated
+	 */
+	EReference getBusConnector_End1Signals();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Signals <em>End2 Signals</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>End2 Signals</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Signals()
+	 * @see #getBusConnector()
+	 * @generated
+	 */
+	EReference getBusConnector_End2Signals();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Component <em>End2 Component</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>End2 Component</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Component()
+	 * @see #getBusConnector()
+	 * @generated
+	 */
+	EReference getBusConnector_End2Component();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Component() <em>Get End1 Component</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get End1 Component</em>' operation.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Component()
+	 * @generated
+	 */
+	EOperation getBusConnector__GetEnd1Component();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Component() <em>Get End2 Component</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get End2 Component</em>' operation.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Component()
+	 * @generated
+	 */
+	EOperation getBusConnector__GetEnd2Component();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Signals() <em>Get End1 Signals</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get End1 Signals</em>' operation.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Signals()
+	 * @generated
+	 */
+	EOperation getBusConnector__GetEnd1Signals();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Signals() <em>Get End2 Signals</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get End2 Signals</em>' operation.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Signals()
+	 * @generated
+	 */
+	EOperation getBusConnector__GetEnd2Signals();
+
+	/**
 	 * Returns the meta object for enum '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation <em>Interpolation</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -959,6 +1173,88 @@
 		EReference TLM_CONNECTION__BASE_CONNECTOR = eINSTANCE.getTLMConnection_Base_Connector();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl <em>Bus Connector</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getBusConnector()
+		 * @generated
+		 */
+		EClass BUS_CONNECTOR = eINSTANCE.getBusConnector();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Connector</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUS_CONNECTOR__BASE_CONNECTOR = eINSTANCE.getBusConnector_Base_Connector();
+
+		/**
+		 * The meta object literal for the '<em><b>End1 Component</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUS_CONNECTOR__END1_COMPONENT = eINSTANCE.getBusConnector_End1Component();
+
+		/**
+		 * The meta object literal for the '<em><b>End1 Signals</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUS_CONNECTOR__END1_SIGNALS = eINSTANCE.getBusConnector_End1Signals();
+
+		/**
+		 * The meta object literal for the '<em><b>End2 Signals</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUS_CONNECTOR__END2_SIGNALS = eINSTANCE.getBusConnector_End2Signals();
+
+		/**
+		 * The meta object literal for the '<em><b>End2 Component</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUS_CONNECTOR__END2_COMPONENT = eINSTANCE.getBusConnector_End2Component();
+
+		/**
+		 * The meta object literal for the '<em><b>Get End1 Component</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation BUS_CONNECTOR___GET_END1_COMPONENT = eINSTANCE.getBusConnector__GetEnd1Component();
+
+		/**
+		 * The meta object literal for the '<em><b>Get End2 Component</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation BUS_CONNECTOR___GET_END2_COMPONENT = eINSTANCE.getBusConnector__GetEnd2Component();
+
+		/**
+		 * The meta object literal for the '<em><b>Get End1 Signals</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation BUS_CONNECTOR___GET_END1_SIGNALS = eINSTANCE.getBusConnector__GetEnd1Signals();
+
+		/**
+		 * The meta object literal for the '<em><b>Get End2 Signals</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation BUS_CONNECTOR___GET_END2_SIGNALS = eINSTANCE.getBusConnector__GetEnd2Signals();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation <em>Interpolation</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMDomain.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMDomain.java
index dbc0c4e..5efafa2 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMDomain.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMDomain.java
@@ -302,6 +302,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 	  return value;
 	}
@@ -311,6 +312,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 	  return name;
 	}
@@ -320,6 +322,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLiteral() {
 	  return literal;
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectionEndImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectionEndImpl.java
index 9e51ddd..0e12d67 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectionEndImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectionEndImpl.java
@@ -98,6 +98,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ConnectorEnd getBase_ConnectorEnd() {
 		if (base_ConnectorEnd != null && base_ConnectorEnd.eIsProxy()) {
 			InternalEObject oldBase_ConnectorEnd = (InternalEObject)base_ConnectorEnd;
@@ -124,6 +125,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBase_ConnectorEnd(ConnectorEnd newBase_ConnectorEnd) {
 		ConnectorEnd oldBase_ConnectorEnd = base_ConnectorEnd;
 		base_ConnectorEnd = newBase_ConnectorEnd;
@@ -136,6 +138,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<Port> getReferencedSignal() {
 		if (referencedSignal == null) {
 			referencedSignal = new EObjectResolvingEList<Port>(Port.class, this, OMSimulatorPackage.BUS_CONNECTION_END__REFERENCED_SIGNAL);
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectorImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectorImpl.java
new file mode 100644
index 0000000..1fe39b9
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectorImpl.java
@@ -0,0 +1,366 @@
+/**
+ * Copyright (c) 2018 CEA LIST.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.operations.BusConnectorOperations;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bus Connector</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl#getBase_Connector <em>Base Connector</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl#getEnd1Component <em>End1 Component</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl#getEnd1Signals <em>End1 Signals</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl#getEnd2Signals <em>End2 Signals</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectorImpl#getEnd2Component <em>End2 Component</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BusConnectorImpl extends MinimalEObjectImpl.Container implements BusConnector {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The cached value of the '{@link #getBase_Connector() <em>Base Connector</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Connector()
+	 * @generated
+	 * @ordered
+	 */
+	protected Connector base_Connector;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BusConnectorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OMSimulatorPackage.Literals.BUS_CONNECTOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Connector getBase_Connector() {
+		if (base_Connector != null && base_Connector.eIsProxy()) {
+			InternalEObject oldBase_Connector = (InternalEObject)base_Connector;
+			base_Connector = (Connector)eResolveProxy(oldBase_Connector);
+			if (base_Connector != oldBase_Connector) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.BUS_CONNECTOR__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+			}
+		}
+		return base_Connector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Connector basicGetBase_Connector() {
+		return base_Connector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Connector(Connector newBase_Connector) {
+		Connector oldBase_Connector = base_Connector;
+		base_Connector = newBase_Connector;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.BUS_CONNECTOR__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Property getEnd1Component() {
+		Property end1Component = basicGetEnd1Component();
+		return end1Component != null && end1Component.eIsProxy() ? (Property)eResolveProxy((InternalEObject)end1Component) : end1Component;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property basicGetEnd1Component() {
+		return BusConnectorOperations.getEnd1Component(this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setEnd1Component(Property newEnd1Component) {
+		// TODO: implement this method to set the 'End1 Component' reference
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Port> getEnd1Signals() {
+		return BusConnectorOperations.getEnd1Signals(this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getEnd1Signals(String name, Type type) {
+		return getEnd1Signals(name, type, false);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getEnd1Signals(String name, Type type, boolean ignoreCase) {
+		end1SignalsLoop: for (Port end1Signals : getEnd1Signals()) {
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(end1Signals.getName()) : name.equals(end1Signals.getName())))
+				continue end1SignalsLoop;
+			if (type != null && !type.equals(end1Signals.getType()))
+				continue end1SignalsLoop;
+			return end1Signals;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Port> getEnd2Signals() {
+		return BusConnectorOperations.getEnd2Signals(this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getEnd2Signals(String name, Type type) {
+		return getEnd2Signals(name, type, false);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getEnd2Signals(String name, Type type, boolean ignoreCase) {
+		end2SignalsLoop: for (Port end2Signals : getEnd2Signals()) {
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(end2Signals.getName()) : name.equals(end2Signals.getName())))
+				continue end2SignalsLoop;
+			if (type != null && !type.equals(end2Signals.getType()))
+				continue end2SignalsLoop;
+			return end2Signals;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Property getEnd2Component() {
+		Property end2Component = basicGetEnd2Component();
+		return end2Component != null && end2Component.eIsProxy() ? (Property)eResolveProxy((InternalEObject)end2Component) : end2Component;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property basicGetEnd2Component() {
+		return BusConnectorOperations.getEnd2Component(this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setEnd2Component(Property newEnd2Component) {
+		// TODO: implement this method to set the 'End2 Component' reference
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case OMSimulatorPackage.BUS_CONNECTOR__BASE_CONNECTOR:
+				if (resolve) return getBase_Connector();
+				return basicGetBase_Connector();
+			case OMSimulatorPackage.BUS_CONNECTOR__END1_COMPONENT:
+				if (resolve) return getEnd1Component();
+				return basicGetEnd1Component();
+			case OMSimulatorPackage.BUS_CONNECTOR__END1_SIGNALS:
+				return getEnd1Signals();
+			case OMSimulatorPackage.BUS_CONNECTOR__END2_SIGNALS:
+				return getEnd2Signals();
+			case OMSimulatorPackage.BUS_CONNECTOR__END2_COMPONENT:
+				if (resolve) return getEnd2Component();
+				return basicGetEnd2Component();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case OMSimulatorPackage.BUS_CONNECTOR__BASE_CONNECTOR:
+				setBase_Connector((Connector)newValue);
+				return;
+			case OMSimulatorPackage.BUS_CONNECTOR__END1_COMPONENT:
+				setEnd1Component((Property)newValue);
+				return;
+			case OMSimulatorPackage.BUS_CONNECTOR__END1_SIGNALS:
+				getEnd1Signals().clear();
+				getEnd1Signals().addAll((Collection<? extends Port>)newValue);
+				return;
+			case OMSimulatorPackage.BUS_CONNECTOR__END2_SIGNALS:
+				getEnd2Signals().clear();
+				getEnd2Signals().addAll((Collection<? extends Port>)newValue);
+				return;
+			case OMSimulatorPackage.BUS_CONNECTOR__END2_COMPONENT:
+				setEnd2Component((Property)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.BUS_CONNECTOR__BASE_CONNECTOR:
+				setBase_Connector((Connector)null);
+				return;
+			case OMSimulatorPackage.BUS_CONNECTOR__END1_COMPONENT:
+				setEnd1Component((Property)null);
+				return;
+			case OMSimulatorPackage.BUS_CONNECTOR__END1_SIGNALS:
+				getEnd1Signals().clear();
+				return;
+			case OMSimulatorPackage.BUS_CONNECTOR__END2_SIGNALS:
+				getEnd2Signals().clear();
+				return;
+			case OMSimulatorPackage.BUS_CONNECTOR__END2_COMPONENT:
+				setEnd2Component((Property)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.BUS_CONNECTOR__BASE_CONNECTOR:
+				return base_Connector != null;
+			case OMSimulatorPackage.BUS_CONNECTOR__END1_COMPONENT:
+				return basicGetEnd1Component() != null;
+			case OMSimulatorPackage.BUS_CONNECTOR__END1_SIGNALS:
+				return !getEnd1Signals().isEmpty();
+			case OMSimulatorPackage.BUS_CONNECTOR__END2_SIGNALS:
+				return !getEnd2Signals().isEmpty();
+			case OMSimulatorPackage.BUS_CONNECTOR__END2_COMPONENT:
+				return basicGetEnd2Component() != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //BusConnectorImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorBusImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorBusImpl.java
index b10ac0e..8cd3325 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorBusImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorBusImpl.java
@@ -29,7 +29,6 @@
 import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus;
 import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
 import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain;
-
 import org.eclipse.uml2.uml.Port;
 import org.eclipse.uml2.uml.Type;
 
@@ -110,6 +109,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Port getBase_Port() {
 		if (base_Port != null && base_Port.eIsProxy()) {
 			InternalEObject oldBase_Port = (InternalEObject)base_Port;
@@ -136,6 +136,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBase_Port(Port newBase_Port) {
 		Port oldBase_Port = base_Port;
 		base_Port = newBase_Port;
@@ -148,6 +149,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<Port> getSignals() {
 		if (signals == null) {
 			signals = new EObjectResolvingEList<Port>(Port.class, this, OMSimulatorPackage.OM_SIMULATOR_BUS__SIGNALS);
@@ -185,6 +187,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<TLMDomain> getDomain() {
 		if (domain == null) {
 			domain = new EDataTypeUniqueEList<TLMDomain>(TLMDomain.class, this, OMSimulatorPackage.OM_SIMULATOR_BUS__DOMAIN);
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorFactoryImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorFactoryImpl.java
index 97b4f2a..08e930f 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorFactoryImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorFactoryImpl.java
@@ -79,6 +79,7 @@
 			case OMSimulatorPackage.OM_SIMULATOR_BUS: return createOMSimulatorBus();
 			case OMSimulatorPackage.BUS_CONNECTION_END: return createBusConnectionEnd();
 			case OMSimulatorPackage.TLM_CONNECTION: return createTLMConnection();
+			case OMSimulatorPackage.BUS_CONNECTOR: return createBusConnector();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -123,6 +124,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public TLMInterfaceDefinition createTLMInterfaceDefinition() {
 		TLMInterfaceDefinitionImpl tlmInterfaceDefinition = new TLMInterfaceDefinitionImpl();
 		return tlmInterfaceDefinition;
@@ -133,6 +135,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public TLMSignalDefinition createTLMSignalDefinition() {
 		TLMSignalDefinitionImpl tlmSignalDefinition = new TLMSignalDefinitionImpl();
 		return tlmSignalDefinition;
@@ -143,6 +146,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public TLMSignal createTLMSignal() {
 		TLMSignalImpl tlmSignal = new TLMSignalImpl();
 		return tlmSignal;
@@ -153,6 +157,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public OMSimulatorBus createOMSimulatorBus() {
 		OMSimulatorBusImpl omSimulatorBus = new OMSimulatorBusImpl();
 		return omSimulatorBus;
@@ -163,6 +168,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public BusConnectionEnd createBusConnectionEnd() {
 		BusConnectionEndImpl busConnectionEnd = new BusConnectionEndImpl();
 		return busConnectionEnd;
@@ -173,6 +179,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public TLMConnection createTLMConnection() {
 		TLMConnectionImpl tlmConnection = new TLMConnectionImpl();
 		return tlmConnection;
@@ -183,6 +190,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
+	public BusConnector createBusConnector() {
+		BusConnectorImpl busConnector = new BusConnectorImpl();
+		return busConnector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public Interpolation createInterpolationFromString(EDataType eDataType, String initialValue) {
 		Interpolation result = Interpolation.get(initialValue);
 		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
@@ -223,6 +241,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public OMSimulatorPackage getOMSimulatorPackage() {
 		return (OMSimulatorPackage)getEPackage();
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorPackageImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorPackageImpl.java
index 4bc6ea0..c4f0665 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorPackageImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorPackageImpl.java
@@ -22,6 +22,7 @@
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector;
 import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation;
 import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus;
 import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorFactory;
@@ -97,6 +98,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass busConnectorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EEnum interpolationEEnum = null;
 
 	/**
@@ -177,6 +185,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getTLMInterfaceDefinition() {
 		return tlmInterfaceDefinitionEClass;
 	}
@@ -186,6 +195,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getTLMInterfaceDefinition_Interpolation() {
 		return (EAttribute)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(0);
 	}
@@ -195,6 +205,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getTLMInterfaceDefinition_Base_Interface() {
 		return (EReference)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(1);
 	}
@@ -204,6 +215,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getTLMInterfaceDefinition_Base_Class() {
 		return (EReference)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(2);
 	}
@@ -213,6 +225,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getTLMInterfaceDefinition_SignalDefinitions() {
 		return (EReference)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(3);
 	}
@@ -222,6 +235,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getTLMInterfaceDefinition_Dimensions() {
 		return (EAttribute)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(4);
 	}
@@ -231,6 +245,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EOperation getTLMInterfaceDefinition__GetSignalDefinitions() {
 		return tlmInterfaceDefinitionEClass.getEOperations().get(0);
 	}
@@ -240,6 +255,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getTLMSignalDefinition() {
 		return tlmSignalDefinitionEClass;
 	}
@@ -249,6 +265,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getTLMSignalDefinition_Base_Port() {
 		return (EReference)tlmSignalDefinitionEClass.getEStructuralFeatures().get(0);
 	}
@@ -258,6 +275,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getTLMSignal() {
 		return tlmSignalEClass;
 	}
@@ -267,6 +285,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getTLMSignal_Base_Port() {
 		return (EReference)tlmSignalEClass.getEStructuralFeatures().get(0);
 	}
@@ -276,6 +295,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getTLMSignal_Definition() {
 		return (EReference)tlmSignalEClass.getEStructuralFeatures().get(1);
 	}
@@ -285,6 +305,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getOMSimulatorBus() {
 		return omSimulatorBusEClass;
 	}
@@ -294,6 +315,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getOMSimulatorBus_Base_Port() {
 		return (EReference)omSimulatorBusEClass.getEStructuralFeatures().get(0);
 	}
@@ -303,6 +325,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getOMSimulatorBus_Signals() {
 		return (EReference)omSimulatorBusEClass.getEStructuralFeatures().get(1);
 	}
@@ -312,6 +335,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getOMSimulatorBus_Domain() {
 		return (EAttribute)omSimulatorBusEClass.getEStructuralFeatures().get(2);
 	}
@@ -321,6 +345,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getBusConnectionEnd() {
 		return busConnectionEndEClass;
 	}
@@ -330,6 +355,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getBusConnectionEnd_Base_ConnectorEnd() {
 		return (EReference)busConnectionEndEClass.getEStructuralFeatures().get(0);
 	}
@@ -339,6 +365,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getBusConnectionEnd_ReferencedSignal() {
 		return (EReference)busConnectionEndEClass.getEStructuralFeatures().get(1);
 	}
@@ -348,6 +375,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getTLMConnection() {
 		return tlmConnectionEClass;
 	}
@@ -357,6 +385,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getTLMConnection_Timedelay() {
 		return (EAttribute)tlmConnectionEClass.getEStructuralFeatures().get(0);
 	}
@@ -366,6 +395,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getTLMConnection_Impedance() {
 		return (EAttribute)tlmConnectionEClass.getEStructuralFeatures().get(1);
 	}
@@ -375,6 +405,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getTLMConnection_Rotationalimpedance() {
 		return (EAttribute)tlmConnectionEClass.getEStructuralFeatures().get(2);
 	}
@@ -384,6 +415,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getTLMConnection_Alpha() {
 		return (EAttribute)tlmConnectionEClass.getEStructuralFeatures().get(3);
 	}
@@ -393,6 +425,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getTLMConnection_Base_Connector() {
 		return (EReference)tlmConnectionEClass.getEStructuralFeatures().get(4);
 	}
@@ -402,6 +435,107 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
+	public EClass getBusConnector() {
+		return busConnectorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getBusConnector_Base_Connector() {
+		return (EReference)busConnectorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getBusConnector_End1Component() {
+		return (EReference)busConnectorEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getBusConnector_End1Signals() {
+		return (EReference)busConnectorEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getBusConnector_End2Signals() {
+		return (EReference)busConnectorEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getBusConnector_End2Component() {
+		return (EReference)busConnectorEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getBusConnector__GetEnd1Component() {
+		return busConnectorEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getBusConnector__GetEnd2Component() {
+		return busConnectorEClass.getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getBusConnector__GetEnd1Signals() {
+		return busConnectorEClass.getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getBusConnector__GetEnd2Signals() {
+		return busConnectorEClass.getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EEnum getInterpolation() {
 		return interpolationEEnum;
 	}
@@ -411,6 +545,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EEnum getTLMDomain() {
 		return tlmDomainEEnum;
 	}
@@ -420,6 +555,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public OMSimulatorFactory getOMSimulatorFactory() {
 		return (OMSimulatorFactory)getEFactoryInstance();
 	}
@@ -474,6 +610,17 @@
 		createEAttribute(tlmConnectionEClass, TLM_CONNECTION__ALPHA);
 		createEReference(tlmConnectionEClass, TLM_CONNECTION__BASE_CONNECTOR);
 
+		busConnectorEClass = createEClass(BUS_CONNECTOR);
+		createEReference(busConnectorEClass, BUS_CONNECTOR__BASE_CONNECTOR);
+		createEReference(busConnectorEClass, BUS_CONNECTOR__END1_COMPONENT);
+		createEReference(busConnectorEClass, BUS_CONNECTOR__END1_SIGNALS);
+		createEReference(busConnectorEClass, BUS_CONNECTOR__END2_SIGNALS);
+		createEReference(busConnectorEClass, BUS_CONNECTOR__END2_COMPONENT);
+		createEOperation(busConnectorEClass, BUS_CONNECTOR___GET_END1_COMPONENT);
+		createEOperation(busConnectorEClass, BUS_CONNECTOR___GET_END2_COMPONENT);
+		createEOperation(busConnectorEClass, BUS_CONNECTOR___GET_END1_SIGNALS);
+		createEOperation(busConnectorEClass, BUS_CONNECTOR___GET_END2_SIGNALS);
+
 		// Create enums
 		interpolationEEnum = createEEnum(INTERPOLATION);
 		tlmDomainEEnum = createEEnum(TLM_DOMAIN);
@@ -531,7 +678,7 @@
 
 		initEClass(omSimulatorBusEClass, OMSimulatorBus.class, "OMSimulatorBus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getOMSimulatorBus_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, OMSimulatorBus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getOMSimulatorBus_Signals(), theUMLPackage.getPort(), null, "signals", null, 0, -1, OMSimulatorBus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getOMSimulatorBus_Signals(), theUMLPackage.getPort(), null, "signals", null, 0, -1, OMSimulatorBus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getOMSimulatorBus_Domain(), this.getTLMDomain(), "domain", null, 0, -1, OMSimulatorBus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(busConnectionEndEClass, BusConnectionEnd.class, "BusConnectionEnd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -545,6 +692,21 @@
 		initEAttribute(getTLMConnection_Alpha(), theTypesPackage.getReal(), "alpha", null, 0, 1, TLMConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEReference(getTLMConnection_Base_Connector(), theUMLPackage.getConnector(), null, "base_Connector", null, 1, 1, TLMConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
+		initEClass(busConnectorEClass, BusConnector.class, "BusConnector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getBusConnector_Base_Connector(), theUMLPackage.getConnector(), null, "base_Connector", null, 0, 1, BusConnector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getBusConnector_End1Component(), theUMLPackage.getProperty(), null, "end1Component", null, 1, 1, BusConnector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+		initEReference(getBusConnector_End1Signals(), theUMLPackage.getPort(), null, "end1Signals", null, 0, -1, BusConnector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBusConnector_End2Signals(), theUMLPackage.getPort(), null, "end2Signals", null, 0, -1, BusConnector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBusConnector_End2Component(), theUMLPackage.getProperty(), null, "end2Component", null, 1, 1, BusConnector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+
+		initEOperation(getBusConnector__GetEnd1Component(), theUMLPackage.getProperty(), "getEnd1Component", 1, 1, IS_UNIQUE, !IS_ORDERED);
+
+		initEOperation(getBusConnector__GetEnd2Component(), theUMLPackage.getProperty(), "getEnd2Component", 1, 1, IS_UNIQUE, !IS_ORDERED);
+
+		initEOperation(getBusConnector__GetEnd1Signals(), theUMLPackage.getPort(), "getEnd1Signals", 0, -1, IS_UNIQUE, !IS_ORDERED);
+
+		initEOperation(getBusConnector__GetEnd2Signals(), theUMLPackage.getPort(), "getEnd2Signals", 0, -1, IS_UNIQUE, !IS_ORDERED);
+
 		// Initialize enums and add enum literals
 		initEEnum(interpolationEEnum, Interpolation.class, "Interpolation");
 		addEEnumLiteral(interpolationEEnum, Interpolation.NONE);
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMConnectionImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMConnectionImpl.java
index 1e77435..9369821 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMConnectionImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMConnectionImpl.java
@@ -163,6 +163,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getTimedelay() {
 		return timedelay;
 	}
@@ -172,6 +173,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setTimedelay(double newTimedelay) {
 		double oldTimedelay = timedelay;
 		timedelay = newTimedelay;
@@ -184,6 +186,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getImpedance() {
 		return impedance;
 	}
@@ -193,6 +196,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setImpedance(double newImpedance) {
 		double oldImpedance = impedance;
 		impedance = newImpedance;
@@ -205,6 +209,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getRotationalimpedance() {
 		return rotationalimpedance;
 	}
@@ -214,6 +219,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setRotationalimpedance(double newRotationalimpedance) {
 		double oldRotationalimpedance = rotationalimpedance;
 		rotationalimpedance = newRotationalimpedance;
@@ -226,6 +232,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getAlpha() {
 		return alpha;
 	}
@@ -235,6 +242,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setAlpha(double newAlpha) {
 		double oldAlpha = alpha;
 		alpha = newAlpha;
@@ -247,6 +255,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Connector getBase_Connector() {
 		if (base_Connector != null && base_Connector.eIsProxy()) {
 			InternalEObject oldBase_Connector = (InternalEObject)base_Connector;
@@ -273,6 +282,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBase_Connector(Connector newBase_Connector) {
 		Connector oldBase_Connector = base_Connector;
 		base_Connector = newBase_Connector;
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMInterfaceDefinitionImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMInterfaceDefinitionImpl.java
index ab265c6..5766a6b 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMInterfaceDefinitionImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMInterfaceDefinitionImpl.java
@@ -141,6 +141,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Interpolation getInterpolation() {
 		return interpolation;
 	}
@@ -150,6 +151,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setInterpolation(Interpolation newInterpolation) {
 		Interpolation oldInterpolation = interpolation;
 		interpolation = newInterpolation == null ? INTERPOLATION_EDEFAULT : newInterpolation;
@@ -162,6 +164,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Interface getBase_Interface() {
 		if (base_Interface != null && base_Interface.eIsProxy()) {
 			InternalEObject oldBase_Interface = (InternalEObject)base_Interface;
@@ -188,6 +191,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBase_Interface(Interface newBase_Interface) {
 		Interface oldBase_Interface = base_Interface;
 		base_Interface = newBase_Interface;
@@ -200,6 +204,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public org.eclipse.uml2.uml.Class getBase_Class() {
 		if (base_Class != null && base_Class.eIsProxy()) {
 			InternalEObject oldBase_Class = (InternalEObject)base_Class;
@@ -226,6 +231,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
 		org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
 		base_Class = newBase_Class;
@@ -238,6 +244,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<TLMSignalDefinition> getSignalDefinitions() {
 		return TLMInterfaceDefinitionOperations.getSignalDefinitions(this);
 	}
@@ -247,6 +254,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getDimensions() {
 		return dimensions;
 	}
@@ -256,6 +264,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDimensions(int newDimensions) {
 		int oldDimensions = dimensions;
 		dimensions = newDimensions;
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalDefinitionImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalDefinitionImpl.java
index 6f7acdb..c0ef812 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalDefinitionImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalDefinitionImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Port getBase_Port() {
 		if (base_Port != null && base_Port.eIsProxy()) {
 			InternalEObject oldBase_Port = (InternalEObject)base_Port;
@@ -105,6 +106,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBase_Port(Port newBase_Port) {
 		Port oldBase_Port = base_Port;
 		base_Port = newBase_Port;
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalImpl.java
index c9cece5..63b02b9 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalImpl.java
@@ -91,6 +91,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Port getBase_Port() {
 		if (base_Port != null && base_Port.eIsProxy()) {
 			InternalEObject oldBase_Port = (InternalEObject)base_Port;
@@ -117,6 +118,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBase_Port(Port newBase_Port) {
 		Port oldBase_Port = base_Port;
 		base_Port = newBase_Port;
@@ -129,6 +131,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public TLMSignalDefinition getDefinition() {
 		if (definition != null && definition.eIsProxy()) {
 			InternalEObject oldDefinition = (InternalEObject)definition;
@@ -155,6 +158,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDefinition(TLMSignalDefinition newDefinition) {
 		TLMSignalDefinition oldDefinition = definition;
 		definition = newDefinition;
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorAdapterFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorAdapterFactory.java
index 705ca94..7a24717 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorAdapterFactory.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorAdapterFactory.java
@@ -108,6 +108,10 @@
 				return createTLMConnectionAdapter();
 			}
 			@Override
+			public Adapter caseBusConnector(BusConnector object) {
+				return createBusConnectorAdapter();
+			}
+			@Override
 			public Adapter defaultCase(EObject object) {
 				return createEObjectAdapter();
 			}
@@ -212,6 +216,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector <em>Bus Connector</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector
+	 * @generated
+	 */
+	public Adapter createBusConnectorAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null.
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorSwitch.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorSwitch.java
index e3a2fe1..881c6a5 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorSwitch.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorSwitch.java
@@ -118,6 +118,12 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case OMSimulatorPackage.BUS_CONNECTOR: {
+				BusConnector busConnector = (BusConnector)theEObject;
+				T result = caseBusConnector(busConnector);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -213,6 +219,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Bus Connector</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Bus Connector</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBusConnector(BusConnector object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/operations/BusConnectorOperations.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/operations/BusConnectorOperations.java
new file mode 100644
index 0000000..8af4858
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/operations/BusConnectorOperations.java
@@ -0,0 +1,134 @@
+/**
+ * Copyright (c) 2018 CEA LIST.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.operations;
+
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus;
+import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * <!-- begin-user-doc --> A static utility class that provides operations
+ * related to '<em><b>Bus Connector</b></em>' model objects. <!-- end-user-doc
+ * -->
+ *
+ * <p>
+ * The following operations are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Component()
+ * <em>Get End1 Component</em>}</li>
+ * <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Component()
+ * <em>Get End2 Component</em>}</li>
+ * <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd1Signals()
+ * <em>Get End1 Signals</em>}</li>
+ * <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnector#getEnd2Signals()
+ * <em>Get End2 Signals</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BusConnectorOperations {
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BusConnectorOperations() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public static Property getEnd1Component(BusConnector busConnector) {
+		if (busConnector.getBase_Connector() != null && busConnector.getBase_Connector().getEnds().size() > 0) {
+			ConnectorEnd end = busConnector.getBase_Connector().getEnds().get(0);
+			return end.getPartWithPort();
+		} else {
+			return null;
+		}
+
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public static Property getEnd2Component(BusConnector busConnector) {
+		if (busConnector.getBase_Connector() != null && busConnector.getBase_Connector().getEnds().size() >1) {
+			ConnectorEnd end = busConnector.getBase_Connector().getEnds().get(1);
+			return end.getPartWithPort();
+		} else {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public static EList<Port> getEnd1Signals(BusConnector busConnector) {
+		if (busConnector.getBase_Connector() != null && busConnector.getBase_Connector().getEnds().size() > 0) {
+			ConnectorEnd end = busConnector.getBase_Connector().getEnds().get(0);
+
+			return getSignals(end);
+
+		} else {
+			return ECollections.<Port>emptyEList();
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public static EList<Port> getEnd2Signals(BusConnector busConnector) {
+
+		if (busConnector.getBase_Connector() != null && busConnector.getBase_Connector().getEnds().size() > 1) {
+			ConnectorEnd end = busConnector.getBase_Connector().getEnds().get(1);
+
+			return getSignals(end);
+
+		} else {
+			return ECollections.<Port>emptyEList();
+		}
+
+	}
+
+	public static EList<Port> getSignals(ConnectorEnd end) {
+
+		ConnectableElement role = end.getRole();
+		OMSimulatorBus bus = UMLUtil.getStereotypeApplication(role, OMSimulatorBus.class);
+		if (bus != null) {
+			return bus.getSignals();
+		} else {
+			return ECollections.<Port>emptyEList();
+		}
+	}
+
+} // BusConnectorOperations
\ No newline at end of file
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorProfileUtil.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorProfileUtil.java
new file mode 100644
index 0000000..c084aee
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorProfileUtil.java
@@ -0,0 +1,12 @@
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.util;
+
+import org.eclipse.emf.common.util.URI;
+
+public class OMSimulatorProfileUtil {
+
+	public static URI OMSIMULATOR_PROFILE_UML_URI = URI.createURI("pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml");
+	
+	public static URI OMSIMULATOR_BUS_URI = OMSIMULATOR_PROFILE_UML_URI.appendFragment("_DwNAgMVaEeiLVbFVoMGQrQ");
+	
+	
+}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/src/org/eclipse/papyrus/moka/fmi/fmi2uml/FMU2UMLTransformation.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/src/org/eclipse/papyrus/moka/fmi/fmi2uml/FMU2UMLTransformation.java
index fe219ae..6b0ef35 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/src/org/eclipse/papyrus/moka/fmi/fmi2uml/FMU2UMLTransformation.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/src/org/eclipse/papyrus/moka/fmi/fmi2uml/FMU2UMLTransformation.java
@@ -64,7 +64,7 @@
 
 	Package receivingPackage;
 	FmiModelDescriptionType modelDescription;
-	Package dependencyPackage;
+	//Package dependencyPackage;
 	Class fmuClass ;
 	EPackage fmiProfile;
 	
@@ -111,7 +111,7 @@
 				FMIProfileUtil.applyProfileIfNeeded(receivingPackage, fmiProfile);
 				FMIProfileUtil.applyProfileIfNeeded(receivingPackage, sspProfile);
 				fmuClass = receivingPackage.createOwnedClass(cosim.getModelIdentifier(), false);
-				dependencyPackage = receivingPackage.createNestedPackage(cosim.getModelIdentifier()+FMI2UML.DEPENDENCIES_PACKAGE_SUFFIX);
+				//dependencyPackage = receivingPackage.createNestedPackage(cosim.getModelIdentifier()+FMI2UML.DEPENDENCIES_PACKAGE_SUFFIX);
 
 				CS_FMU csFMU = (CS_FMU) fmuClass.applyStereotype(FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.CS_FMU_STEREO_NAME, fmiProfile));
 
@@ -122,24 +122,24 @@
 						createProperty(variable);
 					}
 				}
-				if (modelDescription.getModelStructure() != null){
-					if (modelDescription.getModelStructure().getDerivatives() != null){
-						for (UnknownType1 unknown :modelDescription.getModelStructure().getDerivatives().getUnknown() ){
-							createDerivativeDependency(unknown);
-						}
-					}
-					if (modelDescription.getModelStructure().getInitialUnknowns() != null){
-						for (UnknownType unknown :modelDescription.getModelStructure().getInitialUnknowns().getUnknown() ){
-							createInitialUnknwonDependency(unknown);
-						}
-					}
-					if (modelDescription.getModelStructure().getOutputs() != null){
-						for (UnknownType1 unknown :modelDescription.getModelStructure().getOutputs().getUnknown() ){
-							createOutputsDependency(unknown);
-						}
-					}
-
-				}
+//				if (modelDescription.getModelStructure() != null){
+//					if (modelDescription.getModelStructure().getDerivatives() != null){
+//						for (UnknownType1 unknown :modelDescription.getModelStructure().getDerivatives().getUnknown() ){
+//							createDerivativeDependency(unknown);
+//						}
+//					}
+//					if (modelDescription.getModelStructure().getInitialUnknowns() != null){
+//						for (UnknownType unknown :modelDescription.getModelStructure().getInitialUnknowns().getUnknown() ){
+//							createInitialUnknwonDependency(unknown);
+//						}
+//					}
+//					if (modelDescription.getModelStructure().getOutputs() != null){
+//						for (UnknownType1 unknown :modelDescription.getModelStructure().getOutputs().getUnknown() ){
+//							createOutputsDependency(unknown);
+//						}
+//					}
+//
+//				}
 
 
 			}
@@ -150,44 +150,42 @@
 
 
 
-	private void createOutputsDependency(UnknownType1 unknown) {
-		createDependency(unknown.getIndex(), unknown.getDependencies(), outputDepStereo);	
-	}
+//	private void createOutputsDependency(UnknownType1 unknown) {
+//		createDependency(unknown.getIndex(), unknown.getDependencies(), outputDepStereo);	
+//	}
+//
+//	private void createInitialUnknwonDependency(UnknownType unknown) {
+//		createDependency(unknown.getIndex(), unknown.getDependencies(), initialUnknownDepStereo);		
+//	}
+//
+//	private void createDerivativeDependency(UnknownType1 unknown) {
+//		createDependency(unknown.getIndex(), unknown.getDependencies(), derivativeDepStereo);
+//	}
 
-	private void createInitialUnknwonDependency(UnknownType unknown) {
-		createDependency(unknown.getIndex(), unknown.getDependencies(), initialUnknownDepStereo);		
-	}
+//	private void createDependency(long clientIndex, List<Long> suppliersIndexes, Stereotype setereoToApply) {
+//
+//		if (clientIndex<= fmuClass.getOwnedAttributes().size() && suppliersIndexes != null){
+//			Property client = fmuClass.getOwnedAttributes().get(getInt(clientIndex)-1);
+//			List<NamedElement> suppliers = new ArrayList<NamedElement>();
+//			if (client != null){
+//				for (long dep : suppliersIndexes){
+//					if (dep <=fmuClass.getOwnedAttributes().size() ){
+//						suppliers.add(fmuClass.getOwnedAttributes().get(getInt(dep)-1));
+//					}
+//				}
+//				if (!suppliers.isEmpty()){
+//					Dependency dependency = UMLFactory.eINSTANCE.createDependency();
+//					dependencyPackage.getPackagedElements().add(dependency);
+//					dependency.applyStereotype(setereoToApply);
+//					dependency.getClients().add(client);
+//					dependency.getSuppliers().addAll(suppliers);
+//				}
+//			}
+//		}
+//
+//	}
 
-	private void createDerivativeDependency(UnknownType1 unknown) {
-		createDependency(unknown.getIndex(), unknown.getDependencies(), derivativeDepStereo);
-	}
 
-	private void createDependency(long clientIndex, List<Long> suppliersIndexes, Stereotype setereoToApply) {
-
-		if (clientIndex<= fmuClass.getOwnedAttributes().size() && suppliersIndexes != null){
-			Property client = fmuClass.getOwnedAttributes().get(getInt(clientIndex)-1);
-			List<NamedElement> suppliers = new ArrayList<NamedElement>();
-			if (client != null){
-				for (long dep : suppliersIndexes){
-					if (dep <=fmuClass.getOwnedAttributes().size() ){
-						suppliers.add(fmuClass.getOwnedAttributes().get(getInt(dep)-1));
-					}
-				}
-				if (!suppliers.isEmpty()){
-					Dependency dependency = UMLFactory.eINSTANCE.createDependency();
-					dependencyPackage.getPackagedElements().add(dependency);
-					dependency.applyStereotype(setereoToApply);
-					dependency.getClients().add(client);
-					dependency.getSuppliers().addAll(suppliers);
-				}
-			}
-		}
-
-	}
-
-	private int getInt(long longValue){
-		return new Long(longValue).intValue();
-	}
 
 	private void createProperty(Fmi2ScalarVariable variable) {
 		Type propType = getUMLType(variable);
diff --git a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/plugin.xml b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/plugin.xml
index 97bba04..bd993e9 100644
--- a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/plugin.xml
+++ b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/plugin.xml
@@ -66,9 +66,6 @@
                   checkEnabled="false">
             </visibleWhen>
          </command>
-         <menuContribution
-            allPopups="false"
-            locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu.moka.fmi">
          <command
                commandId="org.eclipse.papyrus.moka.fmi.ui.handlers.ImportFMUHandlerCommand"
                icon="platform:/plugin/org.eclipse.papyrus.uml.icons/resource/gif/Component.gif"
@@ -80,7 +77,16 @@
                   checkEnabled="false">
             </visibleWhen>
          </command>
-      </menuContribution>
+         <command
+               commandId="org.eclipse.papyrus.moka.fmi.ui.handlers.GroupPortsCommand"
+               id="org.eclipse.papyrus.moka.ui.utils.handlers.GroupPortsMenu"
+               label="GroupPorts"
+               style="push"
+               tooltip="Create Signal Bus">
+            <visibleWhen
+                  checkEnabled="false">
+            </visibleWhen>
+         </command>
       </menuContribution>
    </extension>
    <extension
@@ -91,6 +97,12 @@
             id="org.eclipse.papyrus.moka.fmi.ui.handlers.ImportFMUHandlerCommand"
             name="Import FMU">
       </command>
+       <command
+             categoryId="org.eclipse.papyrus.editor.category"
+             description="Group ports"
+             id="org.eclipse.papyrus.moka.fmi.ui.handlers.GroupPortsCommand"
+             name="Group ports">
+       </command>
    </extension>
    <extension
          point="org.eclipse.ui.handlers">
@@ -113,6 +125,25 @@
             </with>
          </enabledWhen>
       </handler>
+      <handler
+            class="org.eclipse.papyrus.moka.fmi.ui.handlers.GroupPortsHanlder"
+            commandId="org.eclipse.papyrus.moka.fmi.ui.handlers.GroupPortsCommand">
+         <enabledWhen>
+            <with
+                  variable="selection">
+               <iterate
+                     ifEmpty="false"
+                     operator="and">
+                  <adapt
+                        type="org.eclipse.emf.ecore.EObject">
+                     <instanceof
+                           value="org.eclipse.uml2.uml.Port">
+                     </instanceof>
+                  </adapt>
+               </iterate>
+            </with>
+         </enabledWhen>
+      </handler>
    </extension>
    <extension
          point="org.eclipse.papyrus.infra.gmfdiag.dnd.dropStrategy">
diff --git a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/GroupPortsHanlder.java b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/GroupPortsHanlder.java
new file mode 100644
index 0000000..0ec57ce
--- /dev/null
+++ b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/GroupPortsHanlder.java
@@ -0,0 +1,117 @@
+/*****************************************************************************
+ * 
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  CEA LIST Initial API and implementation
+ * 
+ *****************************************************************************/
+
+package org.eclipse.papyrus.moka.fmi.ui.handlers;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.ui.command.AbstractCommandHandler;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class GroupPortsHanlder extends AbstractCommandHandler {
+
+	@Override
+	protected Command getCommand(IEvaluationContext context) {
+
+		List<EObject> selection = getSelectedElements();
+
+		if (selection != null && selection.size() > 0) {
+
+			if (selection.stream()
+					.allMatch(elem -> elem instanceof Port
+							&& UMLUtil.getStereotypeApplication((Port) elem, FMIPort.class) != null)
+					&& selection.stream().map(p -> (Element) p).collect(Collectors.groupingBy(Element::getOwner))
+							.size() == 1) {
+
+//				return new RecordingCommand(getEditingDomain(context)) {
+//
+//					@Override
+//					protected void doExecute() {
+//						org.eclipse.uml2.uml.Class owningClass = ((Port) selection.get(0)).getClass_();
+//						
+//						
+//						Port newPort = (Port) PapyrusUtilsModule.createSemanticElement(owningClass,
+//								UMLElementTypes.PORT.getId());
+//						
+//						ResourceSet resSet = owningClass.eResource().getResourceSet();
+//						Stereotype busStereo = (Stereotype) resSet.getEObject(OMSimulatorProfileUtil.OMSIMULATOR_BUS_URI, true);
+//						OMSimulatorBus bus =  (OMSimulatorBus) UMLUtil.safeApplyStereotype(newPort, busStereo);
+//
+//						
+//						List<Port> semanticPorts = new ArrayList<>();
+//						List<EObject> portsViews = new ArrayList<>();
+//						GraphicalEditPart parent = null;
+//						
+//						for (Object selectedElement : getSelection()) {
+//							if (selectedElement instanceof GraphicalEditPart) {		
+//								GraphicalEditPart editPart = (GraphicalEditPart) selectedElement;
+//								semanticPorts.add((Port) editPart.resolveSemanticElement());
+//								portsViews.add(editPart.getNotationView());
+//								
+//								if (parent == null) {
+//									parent = (GraphicalEditPart) editPart.getParent();
+//								}
+//							}
+//
+//						}
+//						
+//						Node parentView = (Node) parent.getNotationView();
+//				
+//						Integer sumX = 0;
+//						Integer sumY = 0;
+//						
+//						
+//						for (EObject portView : portsViews) {
+//							Bounds constraint = (Bounds) ((Node)portView).getLayoutConstraint();
+//							sumX +=constraint.getX();
+//							sumY += constraint.getY();
+//							
+//						}
+//						
+//						
+//						double xMean = sumX/portsViews.size();
+//						double yMean = sumY/portsViews.size();
+//						Bounds parentConstraints = (Bounds) ((Node)parentView).getLayoutConstraint();
+//						
+//						
+//						RequestUtils.deleteObjectsWithRequest(portsViews);
+//						
+//						
+//						bus.getSignals().addAll(semanticPorts);
+//						
+//						PapyrusUtilsModule.createRelativeView(
+//								newPort, 
+//								UMLDIElementTypes.PORT_SHAPE.getId(),
+//								parentView ,
+//								xMean/parentConstraints.getWidth(), 
+//								yMean/parentConstraints.getHeight(),
+//								null, null);
+//					}
+//
+//				};
+			}
+
+		}
+	
+		return null;
+	}
+
+}
diff --git a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/ImportFMULibHandler.java b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/ImportFMULibHandler.java
index f91dc7d..8d64ddb 100644
--- a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/ImportFMULibHandler.java
+++ b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/ImportFMULibHandler.java
@@ -1,13 +1,16 @@
-/*******************************************************************************
- * Copyright (c) 2015, CEA LITEN
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0 
- * which accompanies this distribution, and is available at 
- * http://www.eclipse.org/legal/epl-v10.html 
+/*****************************************************************************
+ * 
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
  *
- * Contributors: 
- *     Thanh Liem PHAN - initial API and implementation 
- *******************************************************************************/
+ * Contributors:
+ *  CEA LIST Initial API and implementation
+ * 
+ *****************************************************************************/
 package org.eclipse.papyrus.moka.fmi.ui.handlers;
 
 import java.io.File;
@@ -16,6 +19,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.swing.text.html.parser.TagElement;
+
 import org.eclipse.core.expressions.IEvaluationContext;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -56,7 +61,7 @@
 		extends AbstractCommandHandler
 
 {
-
+	private static final String FMU_FOLDER_NAME="FMU";
 	private static final String DEFAULT_LIBRARY_NAME = "FMULibrary";
 
 	public String getLibraryName() {
@@ -136,6 +141,7 @@
 		return false;
 	}
 
+	
 	@Override
 	protected Command getCommand(IEvaluationContext context) {
 		EObject selection = getSelectedElement();
@@ -184,6 +190,8 @@
 					importFMUs(target, libName, libFolder, fmuAndSlxPaths);
 
 				}
+				
+				
 
 			};
 		}
@@ -204,7 +212,7 @@
 				targetIFile.create(new FileInputStream(sourceFile), true, null);
 			} catch (CoreException e) {
 				errorDialog(e,
-					"Could not FMU File " + targetIFile.getName() + " in");
+					"Could not copy FMU File " + targetIFile.getName() + " in "+ targetIFile.getLocation());
 				cleanFolder(libFolder);
 				return;
 			} catch (FileNotFoundException e) {