diff --git a/core/org.eclipse.papyrus.sysml14.service.types.tests/src/org/eclipse/papyrus/sysml14/service/types/tests/command/SetNestedPathCommandTest.java b/core/org.eclipse.papyrus.sysml14.service.types.tests/src/org/eclipse/papyrus/sysml14/service/types/tests/command/SetNestedPathCommandTest.java
index c4c94af..a7acc50 100644
--- a/core/org.eclipse.papyrus.sysml14.service.types.tests/src/org/eclipse/papyrus/sysml14/service/types/tests/command/SetNestedPathCommandTest.java
+++ b/core/org.eclipse.papyrus.sysml14.service.types.tests/src/org/eclipse/papyrus/sysml14/service/types/tests/command/SetNestedPathCommandTest.java
@@ -28,6 +28,8 @@
 import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
 import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
 import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.elementtypesconfigurations.ElementTypeSetConfiguration;
+import org.eclipse.papyrus.infra.elementtypesconfigurations.registries.ElementTypeSetConfigurationRegistry;
 import org.eclipse.papyrus.sysml14.blocks.NestedConnectorEnd;
 import org.eclipse.papyrus.sysml14.service.types.command.SetNestedPathCommand;
 import org.eclipse.papyrus.sysml14.service.types.util.SysMLServiceTypeUtil;
@@ -40,6 +42,7 @@
 import org.eclipse.uml2.uml.UMLFactory;
 import org.eclipse.uml2.uml.util.UMLUtil;
 import org.junit.Assert;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
@@ -48,6 +51,13 @@
  */
 public class SetNestedPathCommandTest {
 
+	@BeforeClass
+	public static void loadSysml14Defintion() {
+		ElementTypeSetConfigurationRegistry instance = ElementTypeSetConfigurationRegistry.getInstance();
+		ElementTypeSetConfiguration elementTypeSetConfiguration = instance.getElementTypeSetConfigurations().get("org.eclipse.papyrus.sysml14.service.types.elementTypeSet");
+		Assert.assertNotNull("The SysML 1.4 element type set definition is missing", elementTypeSetConfiguration);
+	}
+	
 	private UMLConnectorUtils utils = new UMLConnectorUtils(); // FIXME : should be access in static way (when the Papyrus API is modified)
 
 	/**
diff --git a/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/deprecatedelements/FlowSpecificationTest.java b/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/deprecatedelements/FlowSpecificationTest.java
new file mode 100644
index 0000000..0b10a5e
--- /dev/null
+++ b/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/deprecatedelements/FlowSpecificationTest.java
@@ -0,0 +1,101 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ *
+ * 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:
+ *  Francois Le Fevre (CEA LIST) francois.le-fevre@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml14.tests.deprecatedelements;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.papyrus.sysml14.blocks.Block;
+import org.eclipse.papyrus.sysml14.blocks.BlocksPackage;
+import org.eclipse.papyrus.sysml14.deprecatedelements.DeprecatedelementsPackage;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification;
+import org.eclipse.papyrus.sysml14.portandflows.PortandflowsPackage;
+import org.eclipse.papyrus.sysml14.util.SysMLResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * A test case for the model object '<em><b>FlowSpecification</b></em>'.
+ * 
+ * <p>
+ * The following features are tested:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification#getFlowProperties <em>FlowProperties</em>}</li>
+ * </ul>
+ * </p>
+ */
+public class FlowSpecificationTest {
+
+	private Model model = null;
+
+	private FlowSpecification flowSpecification=null;
+
+	/**
+	 * @see junit.framework.TestCase#setUp()
+	 */
+	@Before
+	public void setUp()  {
+		// Prepare Model test
+		model = SysMLResource.createSysMLModel(new ResourceSetImpl());
+		Assert.assertFalse("the SysML profil must be applied.", model.getAppliedProfiles().isEmpty());
+
+		StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+		/*
+		 * create a FlowSpecification
+		 */
+		Interface flowSpecificationInterface=model.createOwnedInterface("FlowSpecification1");
+		flowSpecification = (FlowSpecification) stereotypeApplicationHelper.applyStereotype(flowSpecificationInterface, DeprecatedelementsPackage.eINSTANCE.getFlowSpecification());
+
+		/*
+		 * create a flow property and add it to the FlowSpecification
+		 */
+		Property property1 = flowSpecificationInterface.createOwnedAttribute("property1", null);
+		StereotypeApplicationHelper.getInstance(null).applyStereotype(property1, PortandflowsPackage.eINSTANCE.getFlowProperty());
+		
+	}
+	
+	/**
+	 * @pap.req Flow specifications cannot own operations or receptions (they can only own FlowProperties)
+	 */
+	@Test
+	public void testGetOperations() { 
+		Assert.assertEquals("Operations size should be 0", 0, flowSpecification.getBase_Interface().getAllOperations().size());
+	}
+	
+	/**
+	 * @pap.req Flow specifications cannot own operations or receptions (they can only own FlowProperties)
+	 */
+	@Test
+	public void testGetReceptions() { 
+		Assert.assertEquals("Receptions size should be 0", 0, flowSpecification.getBase_Interface().getOwnedReceptions().size());
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification#getFlowProperties()
+	 * <em>FlowProperty</em>}' feature getter. 
+	 * @see org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification#getFlowProperties()
+	 */
+	@Test
+	public void testGetFlowProperties() {  
+		Assert.assertNotNull("FlowProperties should not be null", flowSpecification.getFlowProperties());
+		Assert.assertEquals("FlowProperties size should be 1", 1, flowSpecification.getFlowProperties().size());
+	}
+	
+
+
+} 
diff --git a/core/org.eclipse.papyrus.sysml14/doc/SysML-Extension.notation b/core/org.eclipse.papyrus.sysml14/doc/SysML-Extension.notation
index dd23ea1..708117e 100644
--- a/core/org.eclipse.papyrus.sysml14/doc/SysML-Extension.notation
+++ b/core/org.eclipse.papyrus.sysml14/doc/SysML-Extension.notation
@@ -331,4 +331,42 @@
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-fDm21IaEeWOVPwTUSkFAw"/>
     </edges>
   </notation:Diagram>
+  <notation:Diagram xmi:id="_T0kvAGa4EeW5JrLha2pcnA" type="PapyrusUMLClassDiagram" name="FlowSpecification" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_V2uM8Ga4EeW5JrLha2pcnA" type="2008">
+      <children xmi:type="notation:DecorationNode" xmi:id="_V2vbEGa4EeW5JrLha2pcnA" type="5029"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_V2vbEWa4EeW5JrLha2pcnA" type="8510">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_V2vbEma4EeW5JrLha2pcnA" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_V2wCIGa4EeW5JrLha2pcnA" type="7017">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_V2wCIWa4EeW5JrLha2pcnA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_V2wCIma4EeW5JrLha2pcnA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_V2wCI2a4EeW5JrLha2pcnA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2wCJGa4EeW5JrLha2pcnA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_V2wCJWa4EeW5JrLha2pcnA" type="7018">
+        <children xmi:type="notation:Shape" xmi:id="_Y78RcGa4EeW5JrLha2pcnA" type="3013">
+          <element xmi:type="uml:Operation" href="SysML-Extension.uml#_XE7sgGa4EeW5JrLha2pcnA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Y78RcWa4EeW5JrLha2pcnA"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_V2wCJma4EeW5JrLha2pcnA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_V2wCJ2a4EeW5JrLha2pcnA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_V2wCKGa4EeW5JrLha2pcnA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2wCKWa4EeW5JrLha2pcnA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_V2wCKma4EeW5JrLha2pcnA" type="7019">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_V2wCK2a4EeW5JrLha2pcnA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_V2wCLGa4EeW5JrLha2pcnA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_V2wCLWa4EeW5JrLha2pcnA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2wCLma4EeW5JrLha2pcnA"/>
+      </children>
+      <element xmi:type="uml:Class" href="SysML-Extension.uml#_PEJF4Ga4EeW5JrLha2pcnA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2uM8Wa4EeW5JrLha2pcnA" x="142" y="86"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_T0kvAWa4EeW5JrLha2pcnA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_T0kvAma4EeW5JrLha2pcnA"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_T0kvA2a4EeW5JrLha2pcnA">
+      <owner xmi:type="uml:Package" href="SysML-Extension.uml#_M8sesFFjEeWDrM-hgr_-Kg"/>
+    </styles>
+    <element xmi:type="uml:Package" href="SysML-Extension.uml#_DjFlkFIUEeWHYvssogj-zQ"/>
+  </notation:Diagram>
 </xmi:XMI>
diff --git a/core/org.eclipse.papyrus.sysml14/doc/SysML-Extension.uml b/core/org.eclipse.papyrus.sysml14/doc/SysML-Extension.uml
index d0dd8f0..1685f26 100644
--- a/core/org.eclipse.papyrus.sysml14/doc/SysML-Extension.uml
+++ b/core/org.eclipse.papyrus.sysml14/doc/SysML-Extension.uml
@@ -3,8 +3,8 @@
   <uml:Model xmi:id="_82iTcFFiEeWDrM-hgr_-Kg" name="SysML">
     <packagedElement xmi:type="uml:Package" xmi:id="_M8sesFFjEeWDrM-hgr_-Kg" name="DeprecatedElements">
       <packagedElement xmi:type="uml:Class" xmi:id="_PWXr0FFjEeWDrM-hgr_-Kg" name="FlowPort">
-        <ownedOperation xmi:id="_XgZG8FFjEeWDrM-hgr_-Kg" name="getIcon">
-          <ownedParameter xmi:id="_XgZG8VFjEeWDrM-hgr_-Kg" name="img" direction="return">
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_XgZG8FFjEeWDrM-hgr_-Kg" name="getIcon">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_XgZG8VFjEeWDrM-hgr_-Kg" name="img" direction="return">
             <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Image"/>
           </ownedParameter>
         </ownedOperation>
@@ -12,11 +12,20 @@
       <packagedElement xmi:type="uml:Abstraction" xmi:id="_nViSUFFxEeWFqsbjn0GMrw" name="Satisfy1" client="_XgZG8FFjEeWDrM-hgr_-Kg">
         <supplier xmi:type="uml:Class" href="org.eclipse.papyrus.sysml14.uml#_b0XAEFFvEeWFqsbjn0GMrw"/>
       </packagedElement>
+      <packagedElement xmi:type="uml:Class" xmi:id="_PEJF4Ga4EeW5JrLha2pcnA" name="FlowSpecification">
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_XE7sgGa4EeW5JrLha2pcnA" name="getFlowProperties">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_XE7sgWa4EeW5JrLha2pcnA" name="flowProperties" direction="out">
+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XE7sgma4EeW5JrLha2pcnA"/>
+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XE7sg2a4EeW5JrLha2pcnA" value="*"/>
+          </ownedParameter>
+        </ownedOperation>
+      </packagedElement>
     </packagedElement>
     <packagedElement xmi:type="uml:Package" xmi:id="_lUJKsFFjEeWDrM-hgr_-Kg" name="PortsAndFlows">
       <packagedElement xmi:type="uml:Class" xmi:id="_j0IwgFFjEeWDrM-hgr_-Kg" name="FlowProperty">
-        <ownedOperation xmi:id="_bkbkIFFjEeWDrM-hgr_-Kg" name="getIcon">
-          <ownedParameter xmi:id="_bkbkIVFjEeWDrM-hgr_-Kg" name="img" direction="return">
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_bkbkIFFjEeWDrM-hgr_-Kg" name="getIcon">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_bkbkIVFjEeWDrM-hgr_-Kg" name="img" direction="return">
             <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Image"/>
           </ownedParameter>
         </ownedOperation>
@@ -27,22 +36,22 @@
     </packagedElement>
     <packagedElement xmi:type="uml:Package" xmi:id="_DjFlkFIUEeWHYvssogj-zQ" name="Blocks">
       <packagedElement xmi:type="uml:Class" xmi:id="_Mh_aQFIUEeWHYvssogj-zQ" name="Block">
-        <ownedOperation xmi:id="_RQB2sFIUEeWHYvssogj-zQ" name="getReferences">
-          <ownedParameter xmi:id="_5V4qYFIWEeWOVPwTUSkFAw" name="references" direction="return">
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_RQB2sFIUEeWHYvssogj-zQ" name="getReferences">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_5V4qYFIWEeWOVPwTUSkFAw" name="references" direction="return">
             <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
             <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JptMQFIZEeWOVPwTUSkFAw"/>
             <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JpxdsFIZEeWOVPwTUSkFAw" value="*"/>
           </ownedParameter>
         </ownedOperation>
-        <ownedOperation xmi:id="_kEJocFYDEeW77p7V_ZuW3Q" name="getParts">
-          <ownedParameter xmi:id="_rMeWAFYDEeW77p7V_ZuW3Q" name="parts" direction="return">
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_kEJocFYDEeW77p7V_ZuW3Q" name="getParts">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_rMeWAFYDEeW77p7V_ZuW3Q" name="parts" direction="return">
             <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
             <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_f5D2IFYFEeW77p7V_ZuW3Q"/>
             <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gpIoMFYFEeW77p7V_ZuW3Q" value="*"/>
           </ownedParameter>
         </ownedOperation>
-        <ownedOperation xmi:id="_K4WW8GE-EeWbSMDuSXx8SQ" name="getFlowProperties">
-          <ownedParameter xmi:id="_QHhKgGE-EeWbSMDuSXx8SQ" name="flowProperties" direction="out">
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_K4WW8GE-EeWbSMDuSXx8SQ" name="getFlowProperties">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_QHhKgGE-EeWbSMDuSXx8SQ" name="flowProperties" direction="out">
             <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
             <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UXmfoGE-EeWbSMDuSXx8SQ"/>
             <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_U6nGEGE-EeWbSMDuSXx8SQ" value="*"/>
@@ -53,71 +62,71 @@
         <supplier xmi:type="uml:Class" href="org.eclipse.papyrus.sysml14.uml#_ZyAskFIZEeWOVPwTUSkFAw"/>
       </packagedElement>
     </packagedElement>
-    <profileApplication xmi:id="_jpv9EFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jpzAYFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jpv9EFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jpzAYFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#/"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_TZ_nULU5EduiKqCzJMWbGw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_TZ_nULU5EduiKqCzJMWbGw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jpzncFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp0OgFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jpzncFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp0OgFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//modelelements"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_Gx8MgLX7EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_Gx8MgLX7EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp01kFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp1coFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp01kFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp1coFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_fSw28LX7EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_fSw28LX7EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp2DsFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp2qwFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp2DsFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp2qwFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_rpx28LX7EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_rpx28LX7EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp3R0FFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp3R0VFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp3R0FFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp3R0VFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//constraints"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_5WYJ0LX7EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_5WYJ0LX7EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp344FFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp4f8FFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp344FFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp4f8FFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//activities"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_C2zXMLX8EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_C2zXMLX8EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp5HAFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp5HAVFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp5HAFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp5HAVFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//allocations"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_NxdG4LX8EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_NxdG4LX8EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp5uEFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp6VIFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp5uEFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp6VIFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_OOJC4LX8EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_OOJC4LX8EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp68MFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp68MVFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp68MFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp68MVFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//interactions"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_meOioLX8EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_meOioLX8EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp7jQFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp8KUFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp7jQFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp8KUFFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//statemachines"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_nAF5kLX8EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_nAF5kLX8EduFmqQsrNB9lw"/>
     </profileApplication>
-    <profileApplication xmi:id="_jp8xYFFxEeWFqsbjn0GMrw">
-      <eAnnotations xmi:id="_jp8xYVFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jp8xYFFxEeWFqsbjn0GMrw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp8xYVFxEeWFqsbjn0GMrw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//usecases"/>
       </eAnnotations>
-      <appliedProfile href="pathmap://SysML_PROFILES/SysML.profile.uml#_neZmMLX8EduFmqQsrNB9lw"/>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_neZmMLX8EduFmqQsrNB9lw"/>
     </profileApplication>
   </uml:Model>
   <Requirements:Satisfy xmi:id="_nVoY8FFxEeWFqsbjn0GMrw" base_Abstraction="_nViSUFFxEeWFqsbjn0GMrw"/>
diff --git a/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel b/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel
index b4837a9..1744f64 100644
--- a/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel
+++ b/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel
@@ -202,6 +202,7 @@
       <genClasses xsi:type="genmodel:GenClass" ecoreClass="sysml.ecore#//deprecatedelements/FlowSpecification">
         <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
             propertySortChoices="true" ecoreFeature="ecore:EReference sysml.ecore#//deprecatedelements/FlowSpecification/base_Interface"/>
+        <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="sysml.ecore#//deprecatedelements/FlowSpecification/getFlowProperties"/>
       </genClasses>
     </nestedGenPackages>
     <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Portandflows" basePackage="org.eclipse.papyrus.sysml14"
diff --git a/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml b/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml
index 3b53527..ea9e662 100644
--- a/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml
+++ b/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml
@@ -794,6 +794,13 @@
         <ownedAttribute xmi:type="uml:Property" xmi:id="SysML.package_packagedElement_DeprecatedElements.stereotype_packagedElement_FlowSpecification_ownedAttribute.base_Interface" name="base_Interface" association="SysML.package_packagedElement_DeprecatedElements.extension_packagedElement_E_extension_FlowSpecification_base_Interface">
           <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
         </ownedAttribute>
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_35VWsGa4EeW5JrLha2pcnA" name="getFlowProperties">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_35VWsWa4EeW5JrLha2pcnA" name="flowProperties" direction="return">
+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_35VWsma4EeW5JrLha2pcnA"/>
+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_35VWs2a4EeW5JrLha2pcnA" value="*"/>
+          </ownedParameter>
+        </ownedOperation>
         <icon xmi:type="uml:Image" xmi:id="_6IvdNkyQEeWwyrPSuNN58Q" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/resources/icons/FlowSpecification.gif">
           <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6IvdN0yQEeWwyrPSuNN58Q" source="image_papyrus">
             <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6IvdOEyQEeWwyrPSuNN58Q" key="image_kind_key" value="icon"/>
diff --git a/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore b/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore
index c09cfbe..23597ef 100644
--- a/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore
+++ b/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore
@@ -319,6 +319,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="A FlowSpecification specifies inputs and outputs as a set of flow properties. A flow specification is used by flow ports to specify what items can flow via the port."/>
       </eAnnotations>
+      <eOperations name="getFlowProperties" ordered="false" upperBound="-1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
       <eStructuralFeatures xsi:type="ecore:EReference" name="base_Interface" ordered="false"
           lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
     </eClassifiers>
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/DeprecatedelementsPackage.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/DeprecatedelementsPackage.java
index 72c0c3c..172c05a 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/DeprecatedelementsPackage.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/DeprecatedelementsPackage.java
@@ -161,13 +161,22 @@
 	int FLOW_SPECIFICATION_FEATURE_COUNT = 1;
 
 	/**
+	 * The operation id for the '<em>Get Flow Properties</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FLOW_SPECIFICATION___GET_FLOW_PROPERTIES = 0;
+
+	/**
 	 * The number of operations of the '<em>Flow Specification</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int FLOW_SPECIFICATION_OPERATION_COUNT = 0;
+	int FLOW_SPECIFICATION_OPERATION_COUNT = 1;
 
 
 	/**
@@ -245,6 +254,16 @@
 	EReference getFlowSpecification_Base_Interface();
 
 	/**
+	 * Returns the meta object for the '{@link org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification#getFlowProperties() <em>Get Flow Properties</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Flow Properties</em>' operation.
+	 * @see org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification#getFlowProperties()
+	 * @generated
+	 */
+	EOperation getFlowSpecification__GetFlowProperties();
+
+	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -327,6 +346,14 @@
 		 */
 		EReference FLOW_SPECIFICATION__BASE_INTERFACE = eINSTANCE.getFlowSpecification_Base_Interface();
 
+		/**
+		 * The meta object literal for the '<em><b>Get Flow Properties</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation FLOW_SPECIFICATION___GET_FLOW_PROPERTIES = eINSTANCE.getFlowSpecification__GetFlowProperties();
+
 	}
 
 } //DeprecatedelementsPackage
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/FlowSpecification.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/FlowSpecification.java
index 9c6a385..e9476f2 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/FlowSpecification.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/FlowSpecification.java
@@ -12,9 +12,11 @@
  */
 package org.eclipse.papyrus.sysml14.deprecatedelements;
 
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 
 import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Property;
 
 /**
  * <!-- begin-user-doc -->
@@ -63,4 +65,12 @@
 	 */
 	void setBase_Interface(Interface value);
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" ordered="false"
+	 * @generated
+	 */
+	EList<Property> getFlowProperties();
+
 } // FlowSpecification
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/DeprecatedelementsPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/DeprecatedelementsPackageImpl.java
index 2f3430c..2685e07 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/DeprecatedelementsPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/DeprecatedelementsPackageImpl.java
@@ -233,6 +233,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getFlowSpecification__GetFlowProperties() {
+		return flowSpecificationEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public DeprecatedelementsFactory getDeprecatedelementsFactory() {
 		return (DeprecatedelementsFactory)getEFactoryInstance();
 	}
@@ -264,6 +273,7 @@
 
 		flowSpecificationEClass = createEClass(FLOW_SPECIFICATION);
 		createEReference(flowSpecificationEClass, FLOW_SPECIFICATION__BASE_INTERFACE);
+		createEOperation(flowSpecificationEClass, FLOW_SPECIFICATION___GET_FLOW_PROPERTIES);
 	}
 
 	/**
@@ -311,6 +321,8 @@
 		initEClass(flowSpecificationEClass, FlowSpecification.class, "FlowSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEReference(getFlowSpecification_Base_Interface(), theUMLPackage.getInterface(), null, "base_Interface", null, 1, 1, FlowSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
+		initEOperation(getFlowSpecification__GetFlowProperties(), theUMLPackage.getProperty(), "getFlowProperties", 0, -1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
+
 		// Create resource
 		createResource(eNS_URI);
 
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/FlowSpecificationImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/FlowSpecificationImpl.java
index 8efd3ac..7af3e38 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/FlowSpecificationImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/FlowSpecificationImpl.java
@@ -12,8 +12,10 @@
  */
 package org.eclipse.papyrus.sysml14.deprecatedelements.internal.impl;
 
+import java.lang.reflect.InvocationTargetException;
 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;
 
@@ -24,6 +26,7 @@
 import org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification;
 
 import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Property;
 
 /**
  * <!-- begin-user-doc -->
@@ -111,6 +114,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EList<Property> getFlowProperties() {
+		// TODO: implement this method
+		// 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) {
@@ -165,4 +179,18 @@
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case DeprecatedelementsPackage.FLOW_SPECIFICATION___GET_FLOW_PROPERTIES:
+				return getFlowProperties();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
 } //FlowSpecificationImpl
diff --git a/core/org.eclipse.papyrus.sysml14/src/org/eclipse/papyrus/sysml14/deprecatedelements/DeprecatedelementsCustomFactoryImpl.java b/core/org.eclipse.papyrus.sysml14/src/org/eclipse/papyrus/sysml14/deprecatedelements/DeprecatedelementsCustomFactoryImpl.java
index 23aa897..c645428 100644
--- a/core/org.eclipse.papyrus.sysml14/src/org/eclipse/papyrus/sysml14/deprecatedelements/DeprecatedelementsCustomFactoryImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src/org/eclipse/papyrus/sysml14/deprecatedelements/DeprecatedelementsCustomFactoryImpl.java
@@ -20,7 +20,7 @@
  * this class has been added in order to integrated specific implementation of Stereotypes: FlowPort.
  * Specific code has been added to calculate derived properties see Requirement Req0010 DerivedProperties
  * 
- *
+ * and also FlowSpecification
  */
 public class DeprecatedelementsCustomFactoryImpl extends DeprecatedelementsFactoryImpl implements
 		DeprecatedelementsFactory {
@@ -34,5 +34,15 @@
 	public FlowPort createFlowPort() {
 		return new FlowPortCustomImpl();
 	}
+	
+	/**
+	 * @see org.eclipse.papyrus.sysml14.deprecatedelements.internal.impl.DeprecatedelementsFactoryImpl#createFlowSpecification()
+	 *
+	 * @return the FlowSpecification
+	 */
+	@Override
+	public FlowSpecification createFlowSpecification() {
+		return new FlowSpecificationCustomImpl();
+	}
 
 }
diff --git a/core/org.eclipse.papyrus.sysml14/src/org/eclipse/papyrus/sysml14/deprecatedelements/FlowSpecificationCustomImpl.java b/core/org.eclipse.papyrus.sysml14/src/org/eclipse/papyrus/sysml14/deprecatedelements/FlowSpecificationCustomImpl.java
new file mode 100644
index 0000000..a9431c4
--- /dev/null
+++ b/core/org.eclipse.papyrus.sysml14/src/org/eclipse/papyrus/sysml14/deprecatedelements/FlowSpecificationCustomImpl.java
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (c) 2015 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:
+ *  Francois Le Fevre (CEA LIST) francois.le-fevre@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml14.deprecatedelements;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.sysml14.deprecatedelements.internal.impl.FlowSpecificationImpl;
+import org.eclipse.papyrus.sysml14.portandflows.FlowProperty;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * this class has been implemented in order to calculate derived properties of "FlowSpecification" stereotype see Requirement DerivedProperties ReqXXX
+ *
+ */
+public class FlowSpecificationCustomImpl extends FlowSpecificationImpl implements FlowSpecification{
+
+	/**
+	 * 
+	 * @see org.eclipse.papyrus.sysml14.blocks.internal.impl.FlowSpecificationImpl#getFlowProperties()
+	 * @pap.req org.eclipse.papyrus.sysml14#REQ-XXX
+	 *
+	 * @return the list of FlowProperties
+	 */
+	@Override
+	public EList<Property> getFlowProperties() { 
+		BasicEList<Property> propertyEList = new BasicEList<Property>();
+	
+		if (getBase_Interface() != null) {
+			EList<Property> ownedAttributes = getBase_Interface().getOwnedAttributes(); 
+			for (Property property : ownedAttributes) {
+				FlowProperty stereotypeApplication = UMLUtil.getStereotypeApplication(property, FlowProperty.class);
+				if (stereotypeApplication != null){
+					propertyEList.add(property);
+				}
+			}
+		}
+
+		return new BasicEList.UnmodifiableEList<Property>(propertyEList.size(), propertyEList.toArray());
+	}
+	
+}
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/META-INF/MANIFEST.MF b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/META-INF/MANIFEST.MF
index 79eb15e..0d9fc02 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/META-INF/MANIFEST.MF
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/META-INF/MANIFEST.MF
@@ -22,4 +22,7 @@
 Eclipse-BuddyPolicy: dependent
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.papyrus.sysml14.diagram.blockdefinition,
- org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory
+ org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory,
+ org.eclipse.papyrus.sysml14.diagram.blockdefinition.internal.factory;x-internal:=true,
+ org.eclipse.papyrus.sysml14.diagram.blockdefinition.provider
+ 
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagramConfig.expansionmodel b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagramConfig.expansionmodel
index ae1bf68..5465716 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagramConfig.expansionmodel
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagramConfig.expansionmodel
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <expansionmodel:DiagramExpansion xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:expansionmodel="http:///expansionmodel.ecore" xmi:id="_BOX98NnkEeSFtu511b-yaw" ID="SysML 1.4 BDD">
-  <usages xmi:id="_rC19oNnoEeSqwOe5_frWm1" diagramType="SysML 1.4 Block Definition" representations="_rC19oNnoEeSqwOe5_frWm2 _CvN1kFVqEeW77p7V_ZuW3Q" name="SysML 1.4 BDD Context">
+  <usages xmi:id="_rC19oNnoEeSqwOe5_frWm1" diagramType="SysML 1.4 Block Definition" representations="_rC19oNnoEeSqwOe5_frWm2 _CvN1kFVqEeW77p7V_ZuW3Q _dq31kGdDEeW5JrLha2pcnA" name="SysML 1.4 BDD Context">
     <gmftRepresentations xmi:id="_rC19oNnoEeSqwOe5_frWm2" editPartQualifiedName="org.eclipse.papyrus.uml.diagram.clazz.edit.parts.ClassEditPart" name="Block based on Class representation of class diagram" viewFactory="org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory.BlockClassifierViewFactory" inducedRepresentations="_rC19oNnoEeSqwOe5_frWm6 _CvPDslVqEeW77p7V_ZuW3Q _rC19oNnoEeSqwOe5_frWm7 _CvPDs1VqEeW77p7V_ZuW3Q _CvPDtFVqEeW77p7V_ZuW3Q _CvPDtVVqEeW77p7V_ZuW3Q _CSMSEGFBEeWbSMDuSXx8SQ" subRepresentations="_CvN1kVVqEeW77p7V_ZuW3Q _CvOcoVVqEeW77p7V_ZuW3Q _CvOcolVqEeW77p7V_ZuW3Q _CvOco1VqEeW77p7V_ZuW3Q" reusedID="2008"/>
+    <gmftRepresentations xmi:id="_dq31kGdDEeW5JrLha2pcnA" editPartQualifiedName="org.eclipse.papyrus.uml.diagram.clazz.edit.parts.InterfaceEditPart" name="FlowSpecification based on Interface representation of class diagram" viewFactory="org.eclipse.papyrus.sysml14.diagram.blockdefinition.internal.factory.FlowSpecificationClassifierViewFactory" graphicalElementType="" inducedRepresentations="_CSMSEGFBEeWbSMDuSXx8SQ" subRepresentations="_CvN1kVVqEeW77p7V_ZuW3Q" reusedID="2004"/>
   </usages>
   <libraries xmi:id="_rC19oNnoEeSqwOe5_frWm3" name="Independant Representations">
     <representations xsi:type="expansionmodel:Representation" xmi:id="_rC19oNnoEeSqwOe5_frWm4" editPartQualifiedName="org.eclipse.papyrus.uml.diagram.clazz.edit.parts.PropertyForClassEditPart" name="Flow Port As Label" viewFactory="org.eclipse.papyrus.gmf.diagram.common.factory.ShapeViewFactory" graphicalElementType="org.eclipse.papyrus.SysML14.FlowPort_Label"/>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/doc/org.eclipse.papyrus.sysml.14.diagram.blockdefinition.uml b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/doc/org.eclipse.papyrus.sysml.14.diagram.blockdefinition.uml
index 1ad823c..af797b0 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/doc/org.eclipse.papyrus.sysml.14.diagram.blockdefinition.uml
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/doc/org.eclipse.papyrus.sysml.14.diagram.blockdefinition.uml
@@ -69,6 +69,11 @@
       </packagedElement>
       <packagedElement xmi:type="uml:Class" xmi:id="_uPHlAGAyEeWhfPUqbhxdNA" name="REQ_001"/>
       <packagedElement xmi:type="uml:Abstraction" xmi:id="_uRFT4GAyEeWhfPUqbhxdNA" name="DeriveFrom_Block display" client="_uPHlAGAyEeWhfPUqbhxdNA" supplier="_a0GrwOLIEeSv5dwvZ9NSDw"/>
+      <packagedElement xmi:type="uml:Abstraction" xmi:id="_uRFT4GAyEeWhfPUqbhxdNA" name="DeriveFrom_Block display" client="_uPHlAGAyEeWhfPUqbhxdNA" supplier="_a0GrwOLIEeSv5dwvZ9NSDw"/>
+      <packagedElement xmi:type="uml:Class" xmi:id="_13F9sGauEeWv7P_h5u3SSw" name="REQ_002 FlowSpecification display"/>
+      <packagedElement xmi:type="uml:Abstraction" xmi:id="_14bacGauEeWv7P_h5u3SSw" name="DeriveFrom_REQ-OMG-SYSML14-C.3.1.2 FlowSpecification" client="_13F9sGauEeWv7P_h5u3SSw">
+        <supplier xmi:type="uml:Class" href="../../../org.eclipse.papyrus-sysml/core/org.eclipse.papyrus.sysml14/doc/omg.sysml.uml#_66bUujq8EeW79ofuztDyTA"/>
+      </packagedElement>
       <packagedElement xmi:type="uml:Abstraction" xmi:id="_rHmEMGalEeWv7P_h5u3SSw" name="DeriveFrom_REQ-OMG-SYSML14-16.3.2.5 TestCase" client="_rFDGgGalEeWv7P_h5u3SSw">
         <supplier xmi:type="uml:Class" href="../../../org.eclipse.papyrus-sysml/core/org.eclipse.papyrus.sysml14/doc/omg.sysml.uml#_66XDTzq8EeW79ofuztDyTA"/>
       </packagedElement>
@@ -167,4 +172,6 @@
   <Requirements:DeriveReqt xmi:id="_4VwHkGalEeWv7P_h5u3SSw" base_Abstraction="_4VvggGalEeWv7P_h5u3SSw"/>
   <Requirements:Requirement xmi:id="_5JAwgGalEeWv7P_h5u3SSw" text="Block Definition Diagram should have a palette element to create Interaction with TestCase stereotype.&#xA;TestCase details here https://hudson.eclipse.org/papyrus/view/Sysml/job/papyrus-sysml-website/ws/target/site/norm/ptc-13-12-10.pdf#page=186" id="REQ_007" base_Class="_5JAJcGalEeWv7P_h5u3SSw"/>
   <Requirements:DeriveReqt xmi:id="_5JB-oGalEeWv7P_h5u3SSw" base_Abstraction="_5JBXkGalEeWv7P_h5u3SSw"/>
+  <Requirements:Requirement xmi:id="_14azYGauEeWv7P_h5u3SSw" text="A FlowSpecification has a “flowProperties” compartment that lists the flow properties.&#xA;FlowSpecification details here https://hudson.eclipse.org/papyrus/view/Sysml/job/papyrus-sysml-website/ws/target/site/norm/ptc-13-12-10.pdf#page=224" id="REQ_002" base_Class="_13F9sGauEeWv7P_h5u3SSw"/>
+  <Requirements:DeriveReqt xmi:id="_14bacWauEeWv7P_h5u3SSw" base_Abstraction="_14bacGauEeWv7P_h5u3SSw"/>
 </xmi:XMI>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/style/blockDefinitionDiagram.css b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/style/blockDefinitionDiagram.css
index 4ad9f7f..0e38182 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/style/blockDefinitionDiagram.css
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/style/blockDefinitionDiagram.css
@@ -35,6 +35,11 @@
 	lineColor: orange;
 }
 
+[appliedStereotypes~="FlowSpecification"]{
+	elementIcon:false;
+	displayIcon:false;
+}
+
 [appliedStereotypes~="FlowSpecification"] > Compartment[kind=flowproperties]{
 	visible: true;
 }
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/internal/factory/FlowSpecificationClassifierViewFactory.java b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/internal/factory/FlowSpecificationClassifierViewFactory.java
new file mode 100644
index 0000000..ea111cb
--- /dev/null
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/internal/factory/FlowSpecificationClassifierViewFactory.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ * 
+ * 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.sysml14.diagram.blockdefinition.internal.factory;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.core.view.factories.ViewFactory;
+import org.eclipse.gmf.runtime.notation.Location;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.NotationFactory;
+import org.eclipse.gmf.runtime.notation.Shape;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.sysml14.diagram.common.internal.factory.util.ClassifierViewFactoryUtil;
+import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.InterfaceAttributeCompartmentEditPart;
+import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.InterfaceFloatingNameEditPart;
+import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.InterfaceNameEditPart;
+import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.InterfaceNestedClassifierCompartmentEditPart;
+import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.InterfaceOperationCompartmentEditPart;
+import org.eclipse.papyrus.uml.diagram.clazz.part.UMLVisualIDRegistry;
+import org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper;
+
+/**
+ * 
+ * Extraction from org.eclipse.papyrus/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/providers/UMLViewProvider.java
+ *
+ */
+public class FlowSpecificationClassifierViewFactory implements ViewFactory {
+
+	@Override
+	public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index,
+			boolean persisted, PreferencesHint preferencesHint) {
+		return createInterface_2004((EObject) semanticAdapter.getAdapter(EObject.class), containerView, semanticHint, index, persisted, preferencesHint);
+	}
+
+	public Node createInterface_2004(EObject domainElement, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) {
+		Shape node = NotationFactory.eINSTANCE.createShape();
+		node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+		node.setType(semanticHint);
+		ViewUtil.insertChildView(containerView, node, index, persisted);
+		node.setElement(domainElement);
+		ClassifierViewFactoryUtil.stampShortcut(containerView, node);
+		// initializeFromPreferences
+		final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint.getPreferenceStore();
+
+		PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Interface");
+		ClassifierViewFactoryUtil.createLabel(node, UMLVisualIDRegistry.getType(InterfaceNameEditPart.VISUAL_ID));
+		Node label8507 = ClassifierViewFactoryUtil.createLabel(node, UMLVisualIDRegistry.getType(InterfaceFloatingNameEditPart.VISUAL_ID));
+		label8507.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
+		Location location8507 = (Location) label8507.getLayoutConstraint();
+		location8507.setX(0);
+		location8507.setY(5);
+		
+		//TODO @pap.req Flow specifications cannot own operations or receptions (they can only own FlowProperties).
+		ClassifierViewFactoryUtil.createCompartment(node, UMLVisualIDRegistry.getType(InterfaceAttributeCompartmentEditPart.VISUAL_ID), true, true, true, true);
+		ClassifierViewFactoryUtil.createCompartment(node, UMLVisualIDRegistry.getType(InterfaceOperationCompartmentEditPart.VISUAL_ID), true, true, true, true);
+		ClassifierViewFactoryUtil.createCompartment(node, UMLVisualIDRegistry.getType(InterfaceNestedClassifierCompartmentEditPart.VISUAL_ID), true, true, true, true);
+		PreferenceInitializerForElementHelper.initCompartmentsStatusFromPrefs(node, prefStore, "Interface");
+		return node;
+	}
+}
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common/META-INF/MANIFEST.MF b/diagram/org.eclipse.papyrus.sysml14.diagram.common/META-INF/MANIFEST.MF
index a7b8e84..49f7780 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common/META-INF/MANIFEST.MF
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common/META-INF/MANIFEST.MF
@@ -38,6 +38,7 @@
  org.eclipse.papyrus.sysml14.diagram.common.edit.parts,
  org.eclipse.papyrus.sysml14.diagram.common.factory,
  org.eclipse.papyrus.sysml14.diagram.common.figure,
+ org.eclipse.papyrus.sysml14.diagram.common.internal.factory.util;x-internal:=true,
  org.eclipse.papyrus.sysml14.diagram.common.locator
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/style/sysmlDiagram.css b/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/style/sysmlDiagram.css
index c60469b..b96b0c2 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/style/sysmlDiagram.css
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/style/sysmlDiagram.css
@@ -32,6 +32,11 @@
 	visible: true;
 }
 
+[appliedStereotypes~="FlowSpecification"]{
+	elementIcon:false;
+	displayIcon:false;
+}
+
 [appliedStereotypes~="FlowSpecification"] > Compartment[kind=flowproperties]{
 	visible: true;
 }
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/internal/factory/util/ClassifierViewFactoryUtil.java b/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/internal/factory/util/ClassifierViewFactoryUtil.java
new file mode 100644
index 0000000..d77ccfa
--- /dev/null
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/internal/factory/util/ClassifierViewFactoryUtil.java
@@ -0,0 +1,74 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ * 
+ * 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.sysml14.diagram.common.internal.factory.util;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.notation.DecorationNode;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.NotationFactory;
+import org.eclipse.gmf.runtime.notation.TitleStyle;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.ModelEditPart;
+import org.eclipse.papyrus.uml.diagram.clazz.part.UMLVisualIDRegistry;
+
+/**
+ * @author Francois Le Fevre
+ *
+ */
+public class ClassifierViewFactoryUtil {
+
+	public static Node createLabel(View owner, String hint) {
+		DecorationNode rv = NotationFactory.eINSTANCE.createDecorationNode();
+		rv.setType(hint);
+		ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
+		return rv;
+	}
+
+	public static void stampShortcut(View containerView, Node target) {
+		if (!ModelEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) {
+			EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
+			shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$
+			shortcutAnnotation.getDetails().put("modelID", ModelEditPart.MODEL_ID); //$NON-NLS-1$
+			target.getEAnnotations().add(shortcutAnnotation);
+		}
+	}
+
+	public static Node createCompartment(View owner, String hint, boolean canCollapse, boolean hasTitle, boolean canSort, boolean canFilter) {
+		Node rv;
+		if (canCollapse) {
+			rv = NotationFactory.eINSTANCE.createBasicCompartment();
+		} else {
+			rv = NotationFactory.eINSTANCE.createDecorationNode();
+		}
+
+		rv.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+
+		if (hasTitle) {
+			TitleStyle ts = NotationFactory.eINSTANCE.createTitleStyle();
+			rv.getStyles().add(ts);
+		}
+		if (canSort) {
+			rv.getStyles().add(NotationFactory.eINSTANCE.createSortingStyle());
+		}
+		if (canFilter) {
+			rv.getStyles().add(NotationFactory.eINSTANCE.createFilteringStyle());
+		}
+		rv.setType(hint);
+		ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
+		return rv;
+	}
+
+}
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/style/internalBlockDiagram.css b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/style/internalBlockDiagram.css
index 5d703eb..2ee8699 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/style/internalBlockDiagram.css
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/style/internalBlockDiagram.css
@@ -40,6 +40,11 @@
 	visible: true;
 }
 
+[appliedStereotypes~="FlowSpecification"]{
+	elementIcon:false;
+	displayIcon:false;
+}
+
 [appliedStereotypes~="FlowSpecification"] > Compartment[kind=flowproperties]{
 	visible: true;
 }
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/resources/style/parametricDiagram.css b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/resources/style/parametricDiagram.css
index 5a39e26..f9a8a57 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/resources/style/parametricDiagram.css
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/resources/style/parametricDiagram.css
@@ -40,6 +40,11 @@
 	visible: true;
 }
 
+[appliedStereotypes~="FlowSpecification"]{
+	elementIcon:false;
+	displayIcon:false;
+}
+
 [appliedStereotypes~="FlowSpecification"] > Compartment[kind=flowproperties]{
 	visible: true;
 }
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.requirement/resources/style/requirementDiagram.css b/diagram/org.eclipse.papyrus.sysml14.diagram.requirement/resources/style/requirementDiagram.css
index d37f774..cf0b27e 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.requirement/resources/style/requirementDiagram.css
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.requirement/resources/style/requirementDiagram.css
@@ -40,6 +40,11 @@
 	visible: true;
 }
 
+[appliedStereotypes~="FlowSpecification"]{
+	elementIcon:false;
+	displayIcon:false;
+}
+
 [appliedStereotypes~="FlowSpecification"] > Compartment[kind=flowproperties]{
 	visible: true;
 }
diff --git a/src/site/xdoc/developer/home.xml b/src/site/xdoc/developer/home.xml
index e7e0407..d994cf4 100644
--- a/src/site/xdoc/developer/home.xml
+++ b/src/site/xdoc/developer/home.xml
@@ -9,6 +9,7 @@
 	<body>
 		<section name="Developer">
 			<p>This section is dedicated for developers. It should be the main entry point.</p>
+			<p>Have a look to default rules <a href="miscellaneous.html">miscellaneous.html</a></p>
 		</section>
 		
 		<section name="Environment">
diff --git a/src/site/xdoc/developer/miscellaneous.xml b/src/site/xdoc/developer/miscellaneous.xml
new file mode 100644
index 0000000..c508ca0
--- /dev/null
+++ b/src/site/xdoc/developer/miscellaneous.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
+
+	<properties>
+		<title>SysML - Tools Generation Standard Operating Procedure</title>
+	</properties>
+
+	<body>
+		<section name="Developer Rules">
+			<subsection name="Package Export">
+				<p>Apply the Eclipse stanadrds rules and export all packages, even
+					if it flaged as internal.</p>
+				<source>org.eclipse.papyrus.sysml14.diagram.blockdefinition.internal.factory;x-internal:=true
+				</source>
+			</subsection>
+		</section>
+
+	</body>
+
+</document>
\ No newline at end of file
diff --git a/src/site/xdoc/developer/sop3-upgradingNorm.xml b/src/site/xdoc/developer/sop3-upgradingNorm.xml
index 9ea2874..de912e8 100644
--- a/src/site/xdoc/developer/sop3-upgradingNorm.xml
+++ b/src/site/xdoc/developer/sop3-upgradingNorm.xml
@@ -16,37 +16,38 @@
 
 		<section name="SOP">
 			<subsection name="Documentation">
-				<p>Add your new operations here:
+				<p>Reference your new operations here, in order to be able to process the model automatically in a near future.:
 					/org.eclipse.papyrus.sysml14/doc/SysML-Extension.di
 				</p>
-				<p>Open it with UML Editor to access UML type</p>
-				<p>Add your requirements here:
+				<p>Open it with UML Editor to access UML type and cardinality</p>
+				<p>Add your requirements here by creating a new derive requirement with Papyrus Req plugin:
 					/org.eclipse.papyrus.sysml14/doc/org.eclipse.papyrus.sysml14.di
 				</p>
 			</subsection>
 			<subsection name="SysML profile: semantic upgrade">
 				<p>Modify
 					/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml to
-					add a new operation.
+					add a new operation, with its parameters.
 				</p>
-				<p>Open the genmodel and reload the UMl profile and regenerate the
-					code.
+				<p>Open the genmodel and reload the UMl profile and regenerate the Model and Edit code.
 				</p>
-				<p>validation you enhance code should be in
-					/org.eclipse.papyrus.sysml14/src-gen
+				<p>Validate your enhancement by looking in	/org.eclipse.papyrus.sysml14/src-gen
 				</p>
-				<p>Implement the function in the /org.eclipse.papyrus.sysml14/src
+				<p>Implement the function in the /org.eclipse.papyrus.sysml14/src; do not forget to reference the requirement
 				</p>
 			</subsection>
 			<subsection name="SysML diagram upgrade">
 				<p>Modify the Expansion diagram of your
 					/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagramConfig.expansionmodel
 				</p>
+				<p>Add new representation, a new induced representation and do not forget to add it to the context.</p>
+				<p>Becareful the editor replace all platform:/plugin by a ../.../.. </p>
 
 			</subsection>
 			<subsection name="SysML element type">
 				<p>/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14ClassDiagram-extension.elementtypesconfigurations
 				</p>
+				<p>Add a new Specialization type configuration and eventually its edit helper</p>
 			</subsection>
 			<subsection name="Palette">
 				<p>Add your element in the palette:
