Bug 478428 - [SysML 1.4][BDD][FlowSpecification] Create flow properties
compartment

- define the requirement
- add new ExpansionDiagram configuration
- create a specific FlowSpecificationClassifierViewFactory
- trying to setup the icon
- use of internal package naming convention
- add a basic test

Change-Id: I742bc89c2a9e21aa8ea413ba28206434896da9d7
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=478428
Signed-off-by: Francois Le Fevre - CEA <francois.le-fevre@cea.fr>
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: