diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/.classpath b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/.classpath
index 9404e3d..bb64293 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/.classpath
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/.classpath
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/.settings/org.eclipse.jdt.core.prefs b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/.settings/org.eclipse.jdt.core.prefs
index f4d933e..7adc0fb 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/.settings/org.eclipse.jdt.core.prefs
@@ -3,5 +3,8 @@
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
 org.eclipse.jdt.core.compiler.source=11
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/META-INF/MANIFEST.MF b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/META-INF/MANIFEST.MF
index b3af387..e906071 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/META-INF/MANIFEST.MF
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/META-INF/MANIFEST.MF
@@ -13,7 +13,8 @@
  org.eclipse.papyrus.robotics.profile;visibility:=reexport,
  org.eclipse.uml2.types;visibility:=reexport,
  org.eclipse.uml2.uml;visibility:=reexport,
- org.eclipse.papyrus.uml.extensionpoints;bundle-version="[1.3.0,3.0.0)"
+ org.eclipse.papyrus.uml.extensionpoints;bundle-version="1.3.0",
+ org.eclipse.papyrus.infra.properties
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.papyrus.robotics.safety.riskanalysis,
  org.eclipse.papyrus.robotics.safety.riskanalysis.custom,
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/build.properties b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/build.properties
index f7cd8a9..79e4c47 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/build.properties
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/build.properties
@@ -4,7 +4,8 @@
                model/,\
                META-INF/,\
                plugin.xml,\
-               plugin.properties
+               plugin.properties,\
+
 jars.compile.order = .
 source.. = src/,\
            src-gen/
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/TaskBasedRiskAnalysis.profile.notation b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/TaskBasedRiskAnalysis.profile.notation
index 88078ca..86ab19a 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/TaskBasedRiskAnalysis.profile.notation
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/TaskBasedRiskAnalysis.profile.notation
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
   <notation:Diagram xmi:id="_Vp5uUD9eEemSWsc0fABanw" type="PapyrusUMLProfileDiagram" name="hara" measurementUnit="Pixel">
     <children xmi:type="notation:Shape" xmi:id="_MnCOUEAcEemSWsc0fABanw" type="Stereotype_Shape">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EJcOcAxVEequit2oLqE3Og" source="PapyrusCSSForceValue">
@@ -64,13 +64,6 @@
           <element xmi:type="uml:Property" href="TaskBasedRiskAnalysis.profile.uml#_2toOsETUEemur4Ohd3RSdg"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_2txYoUTUEemur4Ohd3RSdg"/>
         </children>
-        <children xmi:type="notation:Shape" xmi:id="_AFANwETVEemur4Ohd3RSdg" type="Property_ClassAttributeLabel">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MlVctAxVEequit2oLqE3Og" source="displayNameLabelIcon">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MlVctQxVEequit2oLqE3Og" key="displayNameLabelIcon_value" value="false"/>
-          </eAnnotations>
-          <element xmi:type="uml:Property" href="TaskBasedRiskAnalysis.profile.uml#_AEjh0ETVEemur4Ohd3RSdg"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_AFANwUTVEemur4Ohd3RSdg"/>
-        </children>
         <children xmi:type="notation:Shape" xmi:id="_V9CewETaEemur4Ohd3RSdg" type="Property_ClassAttributeLabel">
           <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MlVcsgxVEequit2oLqE3Og" source="displayNameLabelIcon">
             <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MlVcswxVEequit2oLqE3Og" key="displayNameLabelIcon_value" value="false"/>
@@ -99,13 +92,6 @@
           <element xmi:type="uml:Property" href="TaskBasedRiskAnalysis.profile.uml#_UxwwsETVEemur4Ohd3RSdg"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_V972oUTaEemur4Ohd3RSdg"/>
         </children>
-        <children xmi:type="notation:Shape" xmi:id="_V-OxkETaEemur4Ohd3RSdg" type="Property_ClassAttributeLabel">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MlU1oQxVEequit2oLqE3Og" source="displayNameLabelIcon">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MlU1ogxVEequit2oLqE3Og" key="displayNameLabelIcon_value" value="false"/>
-          </eAnnotations>
-          <element xmi:type="uml:Property" href="TaskBasedRiskAnalysis.profile.uml#_Uxwws0TVEemur4Ohd3RSdg"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_V-OxkUTaEemur4Ohd3RSdg"/>
-        </children>
         <children xmi:type="notation:Shape" xmi:id="_1C1qkEUFEemrze-5W9aHHQ" type="Property_ClassAttributeLabel">
           <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MlUOlgxVEequit2oLqE3Og" source="displayNameLabelIcon">
             <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MlU1oAxVEequit2oLqE3Og" key="displayNameLabelIcon_value" value="false"/>
@@ -342,6 +328,184 @@
       <element xmi:type="uml:Stereotype" href="pathmap://ROBOTICS_PROFILES/robotics.profile.uml#_8MJ6AEyBEemO4axG7yzSjw"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bkbj8Q7aEeqBheg216iMuA" x="120" y="401" width="209"/>
     </children>
+    <children xmi:type="notation:Shape" xmi:id="_kZA80A7pEeuTyOSxSW7NPg" type="Stereotype_Shape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vijdEg7pEeuTyOSxSW7NPg" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vijdEw7pEeuTyOSxSW7NPg" key="fillColor" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_kZHDcA7pEeuTyOSxSW7NPg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_kZHDcQ7pEeuTyOSxSW7NPg" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_l6rj4A7pEeuTyOSxSW7NPg" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="TaskBasedRiskAnalysis.profile.uml#_hMyRYg7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_l6rj4Q7pEeuTyOSxSW7NPg"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_kZHDcg7pEeuTyOSxSW7NPg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_kZHDcw7pEeuTyOSxSW7NPg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_kZHDdA7pEeuTyOSxSW7NPg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kZHDdQ7pEeuTyOSxSW7NPg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_kZHDdg7pEeuTyOSxSW7NPg" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_kZHDdw7pEeuTyOSxSW7NPg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_kZHDeA7pEeuTyOSxSW7NPg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_kZHDeQ7pEeuTyOSxSW7NPg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kZHDeg7pEeuTyOSxSW7NPg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="TaskBasedRiskAnalysis.profile.uml#_hMyRYA7pEeuTyOSxSW7NPg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kZA80Q7pEeuTyOSxSW7NPg" x="440" y="560" width="321"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_pYUIYA7pEeuTyOSxSW7NPg" type="Enumeration_Shape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vii2AA7pEeuTyOSxSW7NPg" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vii2AQ7pEeuTyOSxSW7NPg" key="fillColor" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_pYUvcA7pEeuTyOSxSW7NPg" type="Enumeration_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_pYUvcQ7pEeuTyOSxSW7NPg" type="Enumeration_LiteralCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_qiif0A7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT0Q7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qiif0Q7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qjFSYA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT0g7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qjFSYQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qjoE8A7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT0w7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qjoE8Q7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qkN60A7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT1A7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qkN60Q7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qk86oA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT1Q7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qk86oQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qlg7UA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT1g7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qlg7UQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qmS-cA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT1w7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qmS-cQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qmzUwA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT2A7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qmzUwQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qnobMA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT2Q7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qnobMQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qoL00A7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT2g7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qoL00Q7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qoxqsA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT2w7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qoxqsQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qpifsA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNAT3A7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qpifsQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_pYUvcg7pEeuTyOSxSW7NPg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_pYUvcw7pEeuTyOSxSW7NPg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_pYUvdA7pEeuTyOSxSW7NPg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pYUvdQ7pEeuTyOSxSW7NPg"/>
+      </children>
+      <element xmi:type="uml:Enumeration" href="TaskBasedRiskAnalysis.profile.uml#_hNAT0A7pEeuTyOSxSW7NPg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pYUIYQ7pEeuTyOSxSW7NPg" x="980" y="140"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_rmSb0A7pEeuTyOSxSW7NPg" type="Enumeration_Shape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_viiO8A7pEeuTyOSxSW7NPg" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_viiO8Q7pEeuTyOSxSW7NPg" key="fillColor" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_rmSb0g7pEeuTyOSxSW7NPg" type="Enumeration_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_rmSb0w7pEeuTyOSxSW7NPg" type="Enumeration_LiteralCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_snnV8A7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh8Q7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_snnV8Q7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_soFQAA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh8g7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_soFQAQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_spK1IA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh8w7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_spK1IQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_sp4m0A7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh9A7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_sp4m0Q7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_sqayUA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh9Q7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_sqayUQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_srAoMA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh9g7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_srAoMQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_srqIcA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh9w7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_srqIcQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_ssICgA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh-A7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_ssICgQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_ss5ekA7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh-Q7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_ss5ekQ7pEeuTyOSxSW7NPg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_stsv0A7pEeuTyOSxSW7NPg" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_hNBh-g7pEeuTyOSxSW7NPg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_stsv0Q7pEeuTyOSxSW7NPg"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_rmSb1A7pEeuTyOSxSW7NPg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_rmSb1Q7pEeuTyOSxSW7NPg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_rmSb1g7pEeuTyOSxSW7NPg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rmSb1w7pEeuTyOSxSW7NPg"/>
+      </children>
+      <element xmi:type="uml:Enumeration" href="TaskBasedRiskAnalysis.profile.uml#_hNBh8A7pEeuTyOSxSW7NPg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rmSb0Q7pEeuTyOSxSW7NPg" x="980" y="420"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_YhHysA7yEeu0e5ao4oEuuQ" type="Enumeration_Shape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dP41kA-7EeuU8sP9A8SBDA" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dP6DsA-7EeuU8sP9A8SBDA" key="fillColor" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_YhJn4A7yEeu0e5ao4oEuuQ" type="Enumeration_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_YhKO8A7yEeu0e5ao4oEuuQ" type="Enumeration_LiteralCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_aO9NgA7yEeu0e5ao4oEuuQ" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_aOJ8QA7yEeu0e5ao4oEuuQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_aO9NgQ7yEeu0e5ao4oEuuQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_bDoLsA7yEeu0e5ao4oEuuQ" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_bDIccA7yEeu0e5ao4oEuuQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_bDoywA7yEeu0e5ao4oEuuQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_bgHTYA7yEeu0e5ao4oEuuQ" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_bfiEkA7yEeu0e5ao4oEuuQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_bgHTYQ7yEeu0e5ao4oEuuQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_b9TlsA7yEeu0e5ao4oEuuQ" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_b8yoUA7yEeu0e5ao4oEuuQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_b9TlsQ7yEeu0e5ao4oEuuQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_cimrIA7yEeu0e5ao4oEuuQ" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_ciKmQA7yEeu0e5ao4oEuuQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_cimrIQ7yEeu0e5ao4oEuuQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_og1-wA7yEeu0e5ao4oEuuQ" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="TaskBasedRiskAnalysis.profile.uml#_ogCtgA7yEeu0e5ao4oEuuQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_og1-wQ7yEeu0e5ao4oEuuQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_YhKO8Q7yEeu0e5ao4oEuuQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_YhKO8g7yEeu0e5ao4oEuuQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_YhKO8w7yEeu0e5ao4oEuuQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YhKO9A7yEeu0e5ao4oEuuQ"/>
+      </children>
+      <element xmi:type="uml:Enumeration" href="TaskBasedRiskAnalysis.profile.uml#_Yg-owA7yEeu0e5ao4oEuuQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YhHysQ7yEeu0e5ao4oEuuQ" x="800" y="540" width="141"/>
+    </children>
     <styles xmi:type="notation:StringValueStyle" xmi:id="_Vp5uUT9eEemSWsc0fABanw" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="_Vp5uUj9eEemSWsc0fABanw"/>
     <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_Vp5uUz9eEemSWsc0fABanw" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
@@ -471,8 +635,8 @@
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CTSm4AzeEeqPdaXK7OaeGg" source="PapyrusCSSForceValue">
         <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CTTN8AzeEeqPdaXK7OaeGg" key="gradient" value="true"/>
       </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F2rOEAzeEeqPdaXK7OaeGg" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F2rOEQzeEeqPdaXK7OaeGg" key="QualifiedNameDepth" value="0"/>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SibeQA_EEeuU8sP9A8SBDA" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SibeQQ_EEeuU8sP9A8SBDA" key="QualifiedNameDepth" value="0"/>
       </eAnnotations>
       <children xmi:type="notation:DecorationNode" xmi:id="_9-S8kAzdEeqPdaXK7OaeGg" type="Class_MetaclassNameLabel"/>
       <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
@@ -496,21 +660,64 @@
       <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K1-ZoQzeEeqPdaXK7OaeGg" x="158" y="40" width="203" height="52"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_ddWPwA7TEeqBheg216iMuA" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_ddWPwQ7TEeqBheg216iMuA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ddW20A7TEeqBheg216iMuA" name="BASE_ELEMENT">
+    <children xmi:type="notation:Shape" xmi:id="_lovW4A-7EeuU8sP9A8SBDA" type="Stereotype_Shape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BZtRgA--EeuU8sP9A8SBDA" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BZtRgQ--EeuU8sP9A8SBDA" key="fillColor" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_lovW4g-7EeuU8sP9A8SBDA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_lovW4w-7EeuU8sP9A8SBDA" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_lovW5A-7EeuU8sP9A8SBDA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_lovW5Q-7EeuU8sP9A8SBDA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_lovW5g-7EeuU8sP9A8SBDA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lovW5w-7EeuU8sP9A8SBDA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_lovW6A-7EeuU8sP9A8SBDA" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_lovW6Q-7EeuU8sP9A8SBDA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_lovW6g-7EeuU8sP9A8SBDA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_lovW6w-7EeuU8sP9A8SBDA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lovW7A-7EeuU8sP9A8SBDA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="TaskBasedRiskAnalysis.profile.uml#_hMyRYA7pEeuTyOSxSW7NPg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lovW4Q-7EeuU8sP9A8SBDA" x="680" y="140" width="202" height="80"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_I-j7UA_EEeuU8sP9A8SBDA" type="Class_MetaclassShape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I-lwgA_EEeuU8sP9A8SBDA" source="Stereotype_Annotation">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I-lwgQ_EEeuU8sP9A8SBDA" key="StereotypeWithQualifiedNameList" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I-lwgg_EEeuU8sP9A8SBDA" key="StereotypeList" value="StandardProfile::Metaclass"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I-lwgw_EEeuU8sP9A8SBDA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I-lwhA_EEeuU8sP9A8SBDA" key="PropStereoDisplay" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I-lwhQ_EEeuU8sP9A8SBDA" key="StereotypePropertyLocation" value="Compartment"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q7R6QA_EEeuU8sP9A8SBDA" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q7ShUA_EEeuU8sP9A8SBDA" key="QualifiedNameDepth" value="0"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_I-kiYA_EEeuU8sP9A8SBDA" type="Class_MetaclassNameLabel"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I-kiYQ_EEeuU8sP9A8SBDA" x="680" y="40" width="201"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_ujscIBRPEeu0R6u-xFcX1w" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_ujscIRRPEeu0R6u-xFcX1w"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ujscIxRPEeu0R6u-xFcX1w" name="BASE_ELEMENT">
         <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
       </styles>
       <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ddWPwg7TEeqBheg216iMuA" x="626" y="40"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ujscIhRPEeu0R6u-xFcX1w" x="626" y="40"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_ddfZsA7TEeqBheg216iMuA" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_ddfZsQ7TEeqBheg216iMuA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ddfZsw7TEeqBheg216iMuA" name="BASE_ELEMENT">
+    <children xmi:type="notation:Shape" xmi:id="_uj3bQBRPEeu0R6u-xFcX1w" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_uj3bQRRPEeu0R6u-xFcX1w"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_uj3bQxRPEeu0R6u-xFcX1w" name="BASE_ELEMENT">
         <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
       </styles>
       <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ddfZsg7TEeqBheg216iMuA" x="358" y="40"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uj3bQhRPEeu0R6u-xFcX1w" x="358" y="40"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_ukEPkhRPEeu0R6u-xFcX1w" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_ukEPkxRPEeu0R6u-xFcX1w"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ukEPlRRPEeu0R6u-xFcX1w" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ukEPlBRPEeu0R6u-xFcX1w" x="880" y="40"/>
     </children>
     <styles xmi:type="notation:StringValueStyle" xmi:id="_21qtAQzdEeqPdaXK7OaeGg" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="_21qtAgzdEeqPdaXK7OaeGg"/>
@@ -532,25 +739,49 @@
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ns3HMAzeEeqPdaXK7OaeGg" id="(0.5024630541871922,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ns3HMQzeEeqPdaXK7OaeGg" id="(0.49261083743842365,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_ddW20Q7TEeqBheg216iMuA" type="StereotypeCommentLink" source="_9-SVgAzdEeqPdaXK7OaeGg" target="_ddWPwA7TEeqBheg216iMuA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_ddW20g7TEeqBheg216iMuA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ddXd4Q7TEeqBheg216iMuA" name="BASE_ELEMENT">
+    <edges xmi:type="notation:Connector" xmi:id="_MYzNkA_EEeuU8sP9A8SBDA" type="Extension_Edge" source="_lovW4A-7EeuU8sP9A8SBDA" target="_I-j7UA_EEeuU8sP9A8SBDA">
+      <styles xmi:type="notation:FontStyle" xmi:id="_MYzNkQ_EEeuU8sP9A8SBDA"/>
+      <element xmi:type="uml:Extension" href="TaskBasedRiskAnalysis.profile.uml#_MX1kQA_EEeuU8sP9A8SBDA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MYzNkg_EEeuU8sP9A8SBDA" points="[780, 140, -643984, -643984]$[780, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MZIkwA_EEeuU8sP9A8SBDA" id="(0.49504950495049505,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MZIkwQ_EEeuU8sP9A8SBDA" id="(0.4975124378109453,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_ujscJBRPEeu0R6u-xFcX1w" type="StereotypeCommentLink" source="_9-SVgAzdEeqPdaXK7OaeGg" target="_ujscIBRPEeu0R6u-xFcX1w">
+      <styles xmi:type="notation:FontStyle" xmi:id="_ujscJRRPEeu0R6u-xFcX1w"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ujtDMhRPEeu0R6u-xFcX1w" name="BASE_ELEMENT">
         <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
       </styles>
       <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ddW20w7TEeqBheg216iMuA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ddW21A7TEeqBheg216iMuA"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ddXd4A7TEeqBheg216iMuA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ujscJhRPEeu0R6u-xFcX1w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ujtDMBRPEeu0R6u-xFcX1w"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ujtDMRRPEeu0R6u-xFcX1w"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_ddfZtA7TEeqBheg216iMuA" type="StereotypeCommentLink" source="_K19ykAzeEeqPdaXK7OaeGg" target="_ddfZsA7TEeqBheg216iMuA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_ddfZtQ7TEeqBheg216iMuA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ddfZuQ7TEeqBheg216iMuA" name="BASE_ELEMENT">
+    <edges xmi:type="notation:Connector" xmi:id="_uj3bRBRPEeu0R6u-xFcX1w" type="StereotypeCommentLink" source="_K19ykAzeEeqPdaXK7OaeGg" target="_uj3bQBRPEeu0R6u-xFcX1w">
+      <styles xmi:type="notation:FontStyle" xmi:id="_uj3bRRRPEeu0R6u-xFcX1w"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_uj4CUhRPEeu0R6u-xFcX1w" name="BASE_ELEMENT">
         <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
       </styles>
       <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ddfZtg7TEeqBheg216iMuA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ddfZtw7TEeqBheg216iMuA"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ddfZuA7TEeqBheg216iMuA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uj3bRhRPEeu0R6u-xFcX1w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uj4CUBRPEeu0R6u-xFcX1w"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uj4CURRPEeu0R6u-xFcX1w"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_ukEPlhRPEeu0R6u-xFcX1w" type="StereotypeCommentLink" source="_I-j7UA_EEeuU8sP9A8SBDA" target="_ukEPkhRPEeu0R6u-xFcX1w">
+      <styles xmi:type="notation:FontStyle" xmi:id="_ukEPlxRPEeu0R6u-xFcX1w"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ukE2ohRPEeu0R6u-xFcX1w" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ukEPmBRPEeu0R6u-xFcX1w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ukE2oBRPEeu0R6u-xFcX1w"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ukE2oRRPEeu0R6u-xFcX1w"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wJswoBRPEeu0R6u-xFcX1w" type="Extension_Edge" source="_lovW4A-7EeuU8sP9A8SBDA" target="_9-SVgAzdEeqPdaXK7OaeGg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_wJswoRRPEeu0R6u-xFcX1w"/>
+      <element xmi:type="uml:Extension" href="TaskBasedRiskAnalysis.profile.uml#_wJJ-EBRPEeu0R6u-xFcX1w"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wJswohRPEeu0R6u-xFcX1w" points="[720, 140, -643984, -643984]$[720, 120, -643984, -643984]$[600, 120, -643984, -643984]$[600, 92, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKA5sBRPEeu0R6u-xFcX1w" id="(0.19801980198019803,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKA5sRRPEeu0R6u-xFcX1w" id="(0.8571428571428571,1.0)"/>
     </edges>
   </notation:Diagram>
 </xmi:XMI>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/TaskBasedRiskAnalysis.profile.uml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/TaskBasedRiskAnalysis.profile.uml
index 2a15e68..b1f9b21 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/TaskBasedRiskAnalysis.profile.uml
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/TaskBasedRiskAnalysis.profile.uml
@@ -1,12 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
-  <uml:Profile xmi:id="_VoagkD9eEemSWsc0fABanw" name="TaskBasedRiskAnalysis" metaclassReference="_bOLZsEUFEemrze-5W9aHHQ _K18kcAzeEeqPdaXK7OaeGg">
+  <uml:Profile xmi:id="_VoagkD9eEemSWsc0fABanw" name="TaskBasedRiskAnalysis" metaclassReference="_bOLZsEUFEemrze-5W9aHHQ _K18kcAzeEeqPdaXK7OaeGg _I-iGIA_EEeuU8sP9A8SBDA">
     <elementImport xmi:type="uml:ElementImport" xmi:id="_bOLZsEUFEemrze-5W9aHHQ" alias="Property">
       <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
     </elementImport>
     <elementImport xmi:type="uml:ElementImport" xmi:id="_K18kcAzeEeqPdaXK7OaeGg" alias="Interface">
       <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
     </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_I-iGIA_EEeuU8sP9A8SBDA" alias="Class">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </elementImport>
     <packageImport xmi:type="uml:PackageImport" xmi:id="_VughgD9eEemSWsc0fABanw">
       <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
     </packageImport>
@@ -50,21 +53,43 @@
       <ownedAttribute xmi:type="uml:Property" xmi:id="_uVbNoETUEemur4Ohd3RSdg" name="Initial_Frequency" type="_xGXJIEy0Eem4rIik91-giQ"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_xqxY0ETUEemur4Ohd3RSdg" name="Initial_Severity" type="_xGXJIEy0Eem4rIik91-giQ"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_2toOsETUEemur4Ohd3RSdg" name="Initial_Criticality" type="_88xy8EyzEem4rIik91-giQ" isReadOnly="true" isDerived="true"/>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_AEjh0ETVEemur4Ohd3RSdg" name="Initial_RiskReduction">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-      </ownedAttribute>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_yPvs4EV-Eemrze-5W9aHHQ" name="Final_Occurence" type="_6TPvcEy0Eem4rIik91-giQ"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_UxwwskTVEemur4Ohd3RSdg" name="Final_Avoidance" type="_xGXJIEy0Eem4rIik91-giQ"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_UxwwtETVEemur4Ohd3RSdg" name="Final_Frequency" type="_xGXJIEy0Eem4rIik91-giQ"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_UxwwsUTVEemur4Ohd3RSdg" name="Final_Severity" type="_xGXJIEy0Eem4rIik91-giQ"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_UxwwsETVEemur4Ohd3RSdg" name="Final_Criticality" type="_88xy8EyzEem4rIik91-giQ" isReadOnly="true" isDerived="true"/>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Uxwws0TVEemur4Ohd3RSdg" name="Final_RiskReduction">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-      </ownedAttribute>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_ccu3gEUFEemrze-5W9aHHQ" name="base_Property" association="_ccb8kEUFEemrze-5W9aHHQ">
         <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ccu3gUUFEemrze-5W9aHHQ"/>
       </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_TDj3cA7qEeuTyOSxSW7NPg" name="Hazard" type="_hNBh8A7pEeuTyOSxSW7NPg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_rbz0sA7qEeuTyOSxSW7NPg" name="Initial_RiskLevel" type="_Yg-owA7yEeu0e5ao4oEuuQ" isDerived="true"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_rb-z0A7qEeuTyOSxSW7NPg" name="Final_RiskLevel" type="_Yg-owA7yEeu0e5ao4oEuuQ" isDerived="true"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_uToWYA7qEeuTyOSxSW7NPg" name="ContactAera" type="_hNAT0A7pEeuTyOSxSW7NPg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_2EKTcA7qEeuTyOSxSW7NPg" name="Initial_DesignRiskReduction" type="_hMyRYA7pEeuTyOSxSW7NPg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X7IHEBQ_Eeu0R6u-xFcX1w"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X7TGMBQ_Eeu0R6u-xFcX1w" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="__CWWcg7qEeuTyOSxSW7NPg" name="Final_DesignRiskReduction" type="_hMyRYA7pEeuTyOSxSW7NPg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZXpvcBQ_Eeu0R6u-xFcX1w"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZX18sBQ_Eeu0R6u-xFcX1w" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_bCb2QBQ_Eeu0R6u-xFcX1w" name="Initial_TechnicalRiskReduction" type="_hMyRYA7pEeuTyOSxSW7NPg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bCb2QRQ_Eeu0R6u-xFcX1w"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bCb2QhQ_Eeu0R6u-xFcX1w" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_bCmOUBQ_Eeu0R6u-xFcX1w" name="Final_TechnicalRiskReduction" type="_hMyRYA7pEeuTyOSxSW7NPg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bCmOURQ_Eeu0R6u-xFcX1w"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bCmOUhQ_Eeu0R6u-xFcX1w" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_gmYnABQ_Eeu0R6u-xFcX1w" name="Initial_OrganizationalRiskReduction" type="_hMyRYA7pEeuTyOSxSW7NPg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gmYnARQ_Eeu0R6u-xFcX1w"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gmYnAhQ_Eeu0R6u-xFcX1w" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_gmhJ4BQ_Eeu0R6u-xFcX1w" name="Final_OrganizationalRiskReduction" type="_hMyRYA7pEeuTyOSxSW7NPg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gmhJ4RQ_Eeu0R6u-xFcX1w"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gmhJ4hQ_Eeu0R6u-xFcX1w" value="*"/>
+      </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Extension" xmi:id="_7OomoETSEemur4Ohd3RSdg" name="E_RiskAnalysis_Operation9" memberEnd="_7OxwkETSEemur4Ohd3RSdg _7OxwkUTSEemur4Ohd3RSdg">
       <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_7OxwkETSEemur4Ohd3RSdg" name="extension_RiskAnalysis" type="_Mm4dUEAcEemSWsc0fABanw" aggregation="composite" association="_7OomoETSEemur4Ohd3RSdg"/>
@@ -122,6 +147,65 @@
       </eAnnotations>
       <ownedEnd xmi:type="uml:Property" xmi:id="_iOk7Yw7ZEeqBheg216iMuA" name="hazardanalysiscontext" type="_D5xucAzcEeqoEL9x5-sRWQ" association="_iOk7YA7ZEeqBheg216iMuA"/>
     </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_hMyRYA7pEeuTyOSxSW7NPg" name="RiskReduction">
+      <ownedComment xmi:type="uml:Comment" xmi:id="_hMyRYQ7pEeuTyOSxSW7NPg">
+        <body>RiskReduction defines the possible safety measures to implement to avoid an unacceptable level of risk. The saty measures may be design based, technical or organizational as referenced in standards.</body>
+      </ownedComment>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_hMyRYg7pEeuTyOSxSW7NPg" name="Description">
+        <ownedComment xmi:type="uml:Comment" xmi:id="_hMyRYw7pEeuTyOSxSW7NPg">
+          <body>inherently safe design measure</body>
+        </ownedComment>
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_MX2yYA_EEeuU8sP9A8SBDA" name="base_Class" association="_MX1kQA_EEeuU8sP9A8SBDA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MX2yYQ_EEeuU8sP9A8SBDA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_wJNocRRPEeu0R6u-xFcX1w" name="base_Property" association="_wJJ-EBRPEeu0R6u-xFcX1w">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wJNochRPEeu0R6u-xFcX1w"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_hNAT0A7pEeuTyOSxSW7NPg" name="BodyRegion">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT0Q7pEeuTyOSxSW7NPg" name="Skull_Forehead"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT0g7pEeuTyOSxSW7NPg" name="Face"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT0w7pEeuTyOSxSW7NPg" name="Neck"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT1A7pEeuTyOSxSW7NPg" name="BacK_Shoulders"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT1Q7pEeuTyOSxSW7NPg" name="Chest"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT1g7pEeuTyOSxSW7NPg" name="Abdomen"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT1w7pEeuTyOSxSW7NPg" name="Pelvis"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT2A7pEeuTyOSxSW7NPg" name="UpperArms_ElbowJoints"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT2Q7pEeuTyOSxSW7NPg" name="LowerArms_WristJoints"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT2g7pEeuTyOSxSW7NPg" name="Hands_Fingers"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT2w7pEeuTyOSxSW7NPg" name="Thighs_Knees"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNAT3A7pEeuTyOSxSW7NPg" name="LowerLegs"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_hNBh8A7pEeuTyOSxSW7NPg" name="HazardType">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh8Q7pEeuTyOSxSW7NPg" name="Mechanical"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh8g7pEeuTyOSxSW7NPg" name="Electrical"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh8w7pEeuTyOSxSW7NPg" name="Noise"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh9A7pEeuTyOSxSW7NPg" name="Vibration"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh9Q7pEeuTyOSxSW7NPg" name="Radiation"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh9g7pEeuTyOSxSW7NPg" name="Material/Substance"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh9w7pEeuTyOSxSW7NPg" name="Ergonomic"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh-A7pEeuTyOSxSW7NPg" name="Environment/Workspace"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh-Q7pEeuTyOSxSW7NPg" name="Combination"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hNBh-g7pEeuTyOSxSW7NPg" name="Other"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_Yg-owA7yEeu0e5ao4oEuuQ" name="RiskLevel">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_aOJ8QA7yEeu0e5ao4oEuuQ" name="NegligibleRisk"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_bDIccA7yEeu0e5ao4oEuuQ" name="VeryLowRisk"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_bfiEkA7yEeu0e5ao4oEuuQ" name="LowRisk"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_b8yoUA7yEeu0e5ao4oEuuQ" name="SignificantRisk"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ciKmQA7yEeu0e5ao4oEuuQ" name="HighRisk"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ogCtgA7yEeu0e5ao4oEuuQ" name="VeryHighRisk"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_MX1kQA_EEeuU8sP9A8SBDA" name="E_RiskReduction_Class1" memberEnd="_MX2LUA_EEeuU8sP9A8SBDA _MX2yYA_EEeuU8sP9A8SBDA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_MX2LUA_EEeuU8sP9A8SBDA" name="extension_RiskReduction" type="_hMyRYA7pEeuTyOSxSW7NPg" aggregation="composite" association="_MX1kQA_EEeuU8sP9A8SBDA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_wJJ-EBRPEeu0R6u-xFcX1w" name="E_RiskReduction_Property24" memberEnd="_wJNocBRPEeu0R6u-xFcX1w _wJNocRRPEeu0R6u-xFcX1w">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_wJNocBRPEeu0R6u-xFcX1w" name="extension_RiskReduction" type="_hMyRYA7pEeuTyOSxSW7NPg" aggregation="composite" association="_wJJ-EBRPEeu0R6u-xFcX1w"/>
+    </packagedElement>
     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_l99ksETaEemur4Ohd3RSdg">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l99ksUTaEemur4Ohd3RSdg" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/riskanalysis.ecore b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/riskanalysis.ecore
index 787c9ab..20f10cf 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/riskanalysis.ecore
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/riskanalysis.ecore
@@ -7,7 +7,7 @@
   </eAnnotations>
   <eClassifiers xsi:type="ecore:EClass" name="HazardAnalysis" eSuperTypes="../../org.eclipse.papyrus.robotics.bpc.profile/model/bpc.ecore#//Property">
     <eStructuralFeatures xsi:type="ecore:EReference" name="Skill" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.robotics.profile/model/robmosys.ecore#//skills/SkillDefinition"/>
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.robotics.profile/model/robotics.ecore#//skills/SkillDefinition"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="Origin" ordered="false"
         lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="HazardousSituation" ordered="false"
@@ -31,8 +31,6 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="Initial_Criticality" ordered="false"
         lowerBound="1" eType="#//RiskIndex" changeable="false" volatile="true" transient="true"
         derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Initial_RiskReduction"
-        ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="Final_Occurence" ordered="false"
         lowerBound="1" eType="#//OccurenceEstimation"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="Final_Avoidance" ordered="false"
@@ -44,10 +42,28 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="Final_Criticality" ordered="false"
         lowerBound="1" eType="#//RiskIndex" changeable="false" volatile="true" transient="true"
         derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Final_RiskReduction" ordered="false"
-        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
         eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Hazard" ordered="false"
+        lowerBound="1" eType="#//HazardType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Initial_RiskLevel" ordered="false"
+        lowerBound="1" eType="#//RiskLevel" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Final_RiskLevel" ordered="false"
+        lowerBound="1" eType="#//RiskLevel" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ContactAera" ordered="false"
+        lowerBound="1" eType="#//BodyRegion"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="Initial_DesignRiskReduction"
+        ordered="false" upperBound="-1" eType="#//RiskReduction"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="Final_DesignRiskReduction"
+        ordered="false" upperBound="-1" eType="#//RiskReduction"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="Initial_TechnicalRiskReduction"
+        ordered="false" upperBound="-1" eType="#//RiskReduction"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="Final_TechnicalRiskReduction"
+        ordered="false" upperBound="-1" eType="#//RiskReduction"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="Initial_OrganizationalRiskReduction"
+        ordered="false" upperBound="-1" eType="#//RiskReduction"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="Final_OrganizationalRiskReduction"
+        ordered="false" upperBound="-1" eType="#//RiskReduction"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="OccurenceEstimation">
     <eLiterals name="_1">
@@ -110,11 +126,61 @@
       </eAnnotations>
     </eLiterals>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="HazardType">
+    <eLiterals name="Mechanical"/>
+    <eLiterals name="Electrical" value="1"/>
+    <eLiterals name="Noise" value="2"/>
+    <eLiterals name="Vibration" value="3"/>
+    <eLiterals name="Radiation" value="4"/>
+    <eLiterals name="MaterialSubstance" value="5">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="Material/Substance"/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="Ergonomic" value="6"/>
+    <eLiterals name="EnvironmentWorkspace" value="7">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="Environment/Workspace"/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="Combination" value="8"/>
+    <eLiterals name="Other" value="9"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="RiskLevel">
+    <eLiterals name="NegligibleRisk"/>
+    <eLiterals name="VeryLowRisk" value="1"/>
+    <eLiterals name="LowRisk" value="2"/>
+    <eLiterals name="SignificantRisk" value="3"/>
+    <eLiterals name="HighRisk" value="4"/>
+    <eLiterals name="VeryHighRisk" value="5"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="BodyRegion">
+    <eLiterals name="Skull_Forehead"/>
+    <eLiterals name="Face" value="1"/>
+    <eLiterals name="Neck" value="2"/>
+    <eLiterals name="BacK_Shoulders" value="3"/>
+    <eLiterals name="Chest" value="4"/>
+    <eLiterals name="Abdomen" value="5"/>
+    <eLiterals name="Pelvis" value="6"/>
+    <eLiterals name="UpperArms_ElbowJoints" value="7"/>
+    <eLiterals name="LowerArms_WristJoints" value="8"/>
+    <eLiterals name="Hands_Fingers" value="9"/>
+    <eLiterals name="Thighs_Knees" value="10"/>
+    <eLiterals name="LowerLegs" value="11"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="RiskReduction">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Description" ordered="false"
+        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HazardAnalysisContext" eSuperTypes="../../org.eclipse.papyrus.robotics.bpc.profile/model/bpc.ecore#//Entity">
     <eStructuralFeatures xsi:type="ecore:EReference" name="hazardanalysis" ordered="false"
         upperBound="-1" eType="#//HazardAnalysis" volatile="true" transient="true"
         derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="task" ordered="false" eType="ecore:EClass ../../org.eclipse.papyrus.robotics.profile/model/robmosys.ecore#//behavior/Task"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="task" ordered="false" eType="ecore:EClass ../../org.eclipse.papyrus.robotics.profile/model/robotics.ecore#//behavior/Task"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="base_Interface" ordered="false"
         eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
   </eClassifiers>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/riskanalysis.profile.genmodel b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/riskanalysis.profile.genmodel
index 7a23721..78b4ed5 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/riskanalysis.profile.genmodel
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/model/riskanalysis.profile.genmodel
@@ -13,7 +13,7 @@
     importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="8.0" copyrightFields="false"
     editPluginID="org.eclipse.papyrus.robotics.safety.riskanalysis.profile.edit" editorPluginID="org.eclipse.papyrus.robotics.safety.riskanalysis.profile.editor"
     testsPluginID="org.eclipse.papyrus.robotics.safety.riskanalysis.profile.tests"
-    usedGenPackages="../../org.eclipse.papyrus.robotics.bpc.profile/model/bpc.profile.genmodel#//bpc ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.papyrus.robotics.profile/model/robmosys.profile.genmodel#//robmosys ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+    usedGenPackages="../../org.eclipse.papyrus.robotics.bpc.profile/model/bpc.profile.genmodel#//bpc ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.papyrus.robotics.profile/model/robotics.profile.genmodel#//robotics ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
     operationReflection="true" importOrganizing="true">
   <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
     <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
@@ -59,6 +59,40 @@
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//RiskIndex/_5"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//RiskIndex/_6"/>
     </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="riskanalysis.ecore#//HazardType">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/Mechanical"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/Electrical"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/Noise"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/Vibration"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/Radiation"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/MaterialSubstance"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/Ergonomic"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/EnvironmentWorkspace"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/Combination"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//HazardType/Other"/>
+    </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="riskanalysis.ecore#//RiskLevel">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//RiskLevel/NegligibleRisk"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//RiskLevel/VeryLowRisk"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//RiskLevel/LowRisk"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//RiskLevel/SignificantRisk"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//RiskLevel/HighRisk"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//RiskLevel/VeryHighRisk"/>
+    </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="riskanalysis.ecore#//BodyRegion">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/Skull_Forehead"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/Face"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/Neck"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/BacK_Shoulders"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/Chest"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/Abdomen"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/Pelvis"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/UpperArms_ElbowJoints"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/LowerArms_WristJoints"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/Hands_Fingers"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/Thighs_Knees"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="riskanalysis.ecore#//BodyRegion/LowerLegs"/>
+    </genEnums>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="riskanalysis.ecore#//HazardAnalysis">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//HazardAnalysis/Skill"/>
@@ -75,16 +109,37 @@
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Initial_Severity"/>
       <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="false"
           ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Initial_Criticality"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Initial_RiskReduction"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Final_Occurence"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Final_Avoidance"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Final_Frequency"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Final_Severity"/>
       <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="false"
           ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Final_Criticality"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Final_RiskReduction"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//HazardAnalysis/base_Property"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Hazard"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Initial_RiskLevel"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/Final_RiskLevel"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//HazardAnalysis/ContactAera"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//HazardAnalysis/Initial_DesignRiskReduction"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//HazardAnalysis/Final_DesignRiskReduction"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//HazardAnalysis/Initial_TechnicalRiskReduction"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//HazardAnalysis/Final_TechnicalRiskReduction"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//HazardAnalysis/Initial_OrganizationalRiskReduction"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//HazardAnalysis/Final_OrganizationalRiskReduction"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="riskanalysis.ecore#//RiskReduction">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute riskanalysis.ecore#//RiskReduction/Description"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//RiskReduction/base_Class"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference riskanalysis.ecore#//RiskReduction/base_Property"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="riskanalysis.ecore#//HazardAnalysisContext">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/plugin.properties b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/plugin.properties
index 30392dc..5516f8e 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/plugin.properties
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/plugin.properties
@@ -1,13 +1,4 @@
-#################################################################################
-# Copyright (c) 2020 CEA LIST.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
 #
-# SPDX-License-Identifier: EPL-2.0
-#
-##################################################################################
 
-providerName = Eclipse Modeling Project
-pluginName = Papyrus Robotics profile for Task-Based Risk Analysis (Incubation)
+pluginName = Papyrus Robotics profile for Task-Based Risk Analysis
+providerName = CEA LIST
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/pom.xml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/pom.xml
index 9491b31..36619f5 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/pom.xml
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/pom.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
-    <groupId>org.eclipse.papyrus.robotics</groupId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.profile</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <description>This module contains the profile description for Task-Based Risk Analysis in Papyrus Robotics.</description>
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
+		<groupId>org.eclipse.papyrus.robotics</groupId>
+		<version>0.8.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.profile</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<description>This module contains the profile description for Task-Based Risk Analysis in Papyrus Robotics.</description>
 </project>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/BodyRegion.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/BodyRegion.java
new file mode 100644
index 0000000..06e3386
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/BodyRegion.java
@@ -0,0 +1,448 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * Contributors:
+ *     CEA LIST - initial API and implementation
+ */
+package org.eclipse.papyrus.robotics.safety.riskanalysis;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Body Region</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getBodyRegion()
+ * @model
+ * @generated
+ */
+public enum BodyRegion implements Enumerator {
+	/**
+	 * The '<em><b>Skull Forehead</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SKULL_FOREHEAD_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SKULL_FOREHEAD(0, "Skull_Forehead", "Skull_Forehead"),
+
+	/**
+	 * The '<em><b>Face</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FACE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FACE(1, "Face", "Face"),
+
+	/**
+	 * The '<em><b>Neck</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NECK_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NECK(2, "Neck", "Neck"),
+
+	/**
+	 * The '<em><b>Bac KShoulders</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BAC_KSHOULDERS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BAC_KSHOULDERS(3, "BacK_Shoulders", "BacK_Shoulders"),
+
+	/**
+	 * The '<em><b>Chest</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CHEST_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CHEST(4, "Chest", "Chest"),
+
+	/**
+	 * The '<em><b>Abdomen</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ABDOMEN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ABDOMEN(5, "Abdomen", "Abdomen"),
+
+	/**
+	 * The '<em><b>Pelvis</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PELVIS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PELVIS(6, "Pelvis", "Pelvis"),
+
+	/**
+	 * The '<em><b>Upper Arms Elbow Joints</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UPPER_ARMS_ELBOW_JOINTS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UPPER_ARMS_ELBOW_JOINTS(7, "UpperArms_ElbowJoints", "UpperArms_ElbowJoints"),
+
+	/**
+	 * The '<em><b>Lower Arms Wrist Joints</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOWER_ARMS_WRIST_JOINTS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LOWER_ARMS_WRIST_JOINTS(8, "LowerArms_WristJoints", "LowerArms_WristJoints"),
+
+	/**
+	 * The '<em><b>Hands Fingers</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HANDS_FINGERS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HANDS_FINGERS(9, "Hands_Fingers", "Hands_Fingers"),
+
+	/**
+	 * The '<em><b>Thighs Knees</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #THIGHS_KNEES_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	THIGHS_KNEES(10, "Thighs_Knees", "Thighs_Knees"),
+
+	/**
+	 * The '<em><b>Lower Legs</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOWER_LEGS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LOWER_LEGS(11, "LowerLegs", "LowerLegs");
+
+	/**
+	 * The '<em><b>Skull Forehead</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SKULL_FOREHEAD
+	 * @model name="Skull_Forehead"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SKULL_FOREHEAD_VALUE = 0;
+
+	/**
+	 * The '<em><b>Face</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FACE
+	 * @model name="Face"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FACE_VALUE = 1;
+
+	/**
+	 * The '<em><b>Neck</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NECK
+	 * @model name="Neck"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NECK_VALUE = 2;
+
+	/**
+	 * The '<em><b>Bac KShoulders</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BAC_KSHOULDERS
+	 * @model name="BacK_Shoulders"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BAC_KSHOULDERS_VALUE = 3;
+
+	/**
+	 * The '<em><b>Chest</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CHEST
+	 * @model name="Chest"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CHEST_VALUE = 4;
+
+	/**
+	 * The '<em><b>Abdomen</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ABDOMEN
+	 * @model name="Abdomen"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ABDOMEN_VALUE = 5;
+
+	/**
+	 * The '<em><b>Pelvis</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PELVIS
+	 * @model name="Pelvis"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PELVIS_VALUE = 6;
+
+	/**
+	 * The '<em><b>Upper Arms Elbow Joints</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UPPER_ARMS_ELBOW_JOINTS
+	 * @model name="UpperArms_ElbowJoints"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UPPER_ARMS_ELBOW_JOINTS_VALUE = 7;
+
+	/**
+	 * The '<em><b>Lower Arms Wrist Joints</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOWER_ARMS_WRIST_JOINTS
+	 * @model name="LowerArms_WristJoints"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOWER_ARMS_WRIST_JOINTS_VALUE = 8;
+
+	/**
+	 * The '<em><b>Hands Fingers</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HANDS_FINGERS
+	 * @model name="Hands_Fingers"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HANDS_FINGERS_VALUE = 9;
+
+	/**
+	 * The '<em><b>Thighs Knees</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #THIGHS_KNEES
+	 * @model name="Thighs_Knees"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int THIGHS_KNEES_VALUE = 10;
+
+	/**
+	 * The '<em><b>Lower Legs</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOWER_LEGS
+	 * @model name="LowerLegs"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOWER_LEGS_VALUE = 11;
+
+	/**
+	 * An array of all the '<em><b>Body Region</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final BodyRegion[] VALUES_ARRAY =
+		new BodyRegion[] {
+			SKULL_FOREHEAD,
+			FACE,
+			NECK,
+			BAC_KSHOULDERS,
+			CHEST,
+			ABDOMEN,
+			PELVIS,
+			UPPER_ARMS_ELBOW_JOINTS,
+			LOWER_ARMS_WRIST_JOINTS,
+			HANDS_FINGERS,
+			THIGHS_KNEES,
+			LOWER_LEGS,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Body Region</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<BodyRegion> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Body Region</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static BodyRegion get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BodyRegion result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Body Region</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static BodyRegion getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BodyRegion result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Body Region</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static BodyRegion get(int value) {
+		switch (value) {
+			case SKULL_FOREHEAD_VALUE: return SKULL_FOREHEAD;
+			case FACE_VALUE: return FACE;
+			case NECK_VALUE: return NECK;
+			case BAC_KSHOULDERS_VALUE: return BAC_KSHOULDERS;
+			case CHEST_VALUE: return CHEST;
+			case ABDOMEN_VALUE: return ABDOMEN;
+			case PELVIS_VALUE: return PELVIS;
+			case UPPER_ARMS_ELBOW_JOINTS_VALUE: return UPPER_ARMS_ELBOW_JOINTS;
+			case LOWER_ARMS_WRIST_JOINTS_VALUE: return LOWER_ARMS_WRIST_JOINTS;
+			case HANDS_FINGERS_VALUE: return HANDS_FINGERS;
+			case THIGHS_KNEES_VALUE: return THIGHS_KNEES;
+			case LOWER_LEGS_VALUE: return LOWER_LEGS;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private BodyRegion(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //BodyRegion
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/HazardAnalysis.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/HazardAnalysis.java
index ead6919..a6d9839 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/HazardAnalysis.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/HazardAnalysis.java
@@ -11,6 +11,7 @@
  */
 package org.eclipse.papyrus.robotics.safety.riskanalysis;
 
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.papyrus.robotics.profile.robotics.skills.SkillDefinition;
 import org.eclipse.uml2.uml.Operation;
 import org.eclipse.uml2.uml.Property;
@@ -36,14 +37,22 @@
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_Frequency <em>Initial Frequency</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_Severity <em>Initial Severity</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_Criticality <em>Initial Criticality</em>}</li>
- *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_RiskReduction <em>Initial Risk Reduction</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_Occurence <em>Final Occurence</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_Avoidance <em>Final Avoidance</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_Frequency <em>Final Frequency</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_Severity <em>Final Severity</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_Criticality <em>Final Criticality</em>}</li>
- *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_RiskReduction <em>Final Risk Reduction</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getBase_Property <em>Base Property</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getHazard <em>Hazard</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_RiskLevel <em>Initial Risk Level</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_RiskLevel <em>Final Risk Level</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getContactAera <em>Contact Aera</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_DesignRiskReduction <em>Initial Design Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_DesignRiskReduction <em>Final Design Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_TechnicalRiskReduction <em>Initial Technical Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_TechnicalRiskReduction <em>Final Technical Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_OrganizationalRiskReduction <em>Initial Organizational Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_OrganizationalRiskReduction <em>Final Organizational Risk Reduction</em>}</li>
  * </ul>
  *
  * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis()
@@ -367,32 +376,6 @@
 	RiskIndex getInitial_Criticality();
 
 	/**
-	 * Returns the value of the '<em><b>Initial Risk Reduction</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Initial Risk Reduction</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Initial Risk Reduction</em>' attribute.
-	 * @see #setInitial_RiskReduction(String)
-	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Initial_RiskReduction()
-	 * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
-	 * @generated
-	 */
-	String getInitial_RiskReduction();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_RiskReduction <em>Initial Risk Reduction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Initial Risk Reduction</em>' attribute.
-	 * @see #getInitial_RiskReduction()
-	 * @generated
-	 */
-	void setInitial_RiskReduction(String value);
-
-	/**
 	 * Returns the value of the '<em><b>Final Occurence</b></em>' attribute.
 	 * The literals are from the enumeration {@link org.eclipse.papyrus.robotics.safety.riskanalysis.OccurenceEstimation}.
 	 * <!-- begin-user-doc -->
@@ -526,32 +509,6 @@
 	RiskIndex getFinal_Criticality();
 
 	/**
-	 * Returns the value of the '<em><b>Final Risk Reduction</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Final Risk Reduction</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Final Risk Reduction</em>' attribute.
-	 * @see #setFinal_RiskReduction(String)
-	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Final_RiskReduction()
-	 * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
-	 * @generated
-	 */
-	String getFinal_RiskReduction();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_RiskReduction <em>Final Risk Reduction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Final Risk Reduction</em>' attribute.
-	 * @see #getFinal_RiskReduction()
-	 * @generated
-	 */
-	void setFinal_RiskReduction(String value);
-
-	/**
 	 * Returns the value of the '<em><b>Base Property</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -577,4 +534,216 @@
 	 */
 	void setBase_Property(Property value);
 
+	/**
+	 * Returns the value of the '<em><b>Hazard</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Hazard</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Hazard</em>' attribute.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType
+	 * @see #setHazard(HazardType)
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Hazard()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	HazardType getHazard();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getHazard <em>Hazard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Hazard</em>' attribute.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType
+	 * @see #getHazard()
+	 * @generated
+	 */
+	void setHazard(HazardType value);
+
+	/**
+	 * Returns the value of the '<em><b>Initial Risk Level</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Risk Level</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initial Risk Level</em>' attribute.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel
+	 * @see #setInitial_RiskLevel(RiskLevel)
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Initial_RiskLevel()
+	 * @model required="true" transient="true" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	RiskLevel getInitial_RiskLevel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_RiskLevel <em>Initial Risk Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Initial Risk Level</em>' attribute.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel
+	 * @see #getInitial_RiskLevel()
+	 * @generated
+	 */
+	void setInitial_RiskLevel(RiskLevel value);
+
+	/**
+	 * Returns the value of the '<em><b>Final Risk Level</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Final Risk Level</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Final Risk Level</em>' attribute.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel
+	 * @see #setFinal_RiskLevel(RiskLevel)
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Final_RiskLevel()
+	 * @model required="true" transient="true" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	RiskLevel getFinal_RiskLevel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_RiskLevel <em>Final Risk Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Final Risk Level</em>' attribute.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel
+	 * @see #getFinal_RiskLevel()
+	 * @generated
+	 */
+	void setFinal_RiskLevel(RiskLevel value);
+
+	/**
+	 * Returns the value of the '<em><b>Contact Aera</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Contact Aera</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Contact Aera</em>' attribute.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion
+	 * @see #setContactAera(BodyRegion)
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_ContactAera()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	BodyRegion getContactAera();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getContactAera <em>Contact Aera</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Contact Aera</em>' attribute.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion
+	 * @see #getContactAera()
+	 * @generated
+	 */
+	void setContactAera(BodyRegion value);
+
+	/**
+	 * Returns the value of the '<em><b>Initial Design Risk Reduction</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Design Risk Reduction</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initial Design Risk Reduction</em>' reference list.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Initial_DesignRiskReduction()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<RiskReduction> getInitial_DesignRiskReduction();
+
+	/**
+	 * Returns the value of the '<em><b>Final Design Risk Reduction</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Final Design Risk Reduction</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Final Design Risk Reduction</em>' reference list.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Final_DesignRiskReduction()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<RiskReduction> getFinal_DesignRiskReduction();
+
+	/**
+	 * Returns the value of the '<em><b>Initial Technical Risk Reduction</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Technical Risk Reduction</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initial Technical Risk Reduction</em>' reference list.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Initial_TechnicalRiskReduction()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<RiskReduction> getInitial_TechnicalRiskReduction();
+
+	/**
+	 * Returns the value of the '<em><b>Final Technical Risk Reduction</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Final Technical Risk Reduction</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Final Technical Risk Reduction</em>' reference list.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Final_TechnicalRiskReduction()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<RiskReduction> getFinal_TechnicalRiskReduction();
+
+	/**
+	 * Returns the value of the '<em><b>Initial Organizational Risk Reduction</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initial Organizational Risk Reduction</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initial Organizational Risk Reduction</em>' reference list.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Initial_OrganizationalRiskReduction()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<RiskReduction> getInitial_OrganizationalRiskReduction();
+
+	/**
+	 * Returns the value of the '<em><b>Final Organizational Risk Reduction</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Final Organizational Risk Reduction</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Final Organizational Risk Reduction</em>' reference list.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardAnalysis_Final_OrganizationalRiskReduction()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<RiskReduction> getFinal_OrganizationalRiskReduction();
+
 } // HazardAnalysis
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/HazardType.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/HazardType.java
new file mode 100644
index 0000000..bc66fe7
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/HazardType.java
@@ -0,0 +1,404 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * Contributors:
+ *     CEA LIST - initial API and implementation
+ */
+package org.eclipse.papyrus.robotics.safety.riskanalysis;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Hazard Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getHazardType()
+ * @model
+ * @generated
+ */
+public enum HazardType implements Enumerator {
+	/**
+	 * The '<em><b>Mechanical</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MECHANICAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MECHANICAL(0, "Mechanical", "Mechanical"),
+
+	/**
+	 * The '<em><b>Electrical</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ELECTRICAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ELECTRICAL(1, "Electrical", "Electrical"),
+
+	/**
+	 * The '<em><b>Noise</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NOISE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NOISE(2, "Noise", "Noise"),
+
+	/**
+	 * The '<em><b>Vibration</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #VIBRATION_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	VIBRATION(3, "Vibration", "Vibration"),
+
+	/**
+	 * The '<em><b>Radiation</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RADIATION_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RADIATION(4, "Radiation", "Radiation"),
+
+	/**
+	 * The '<em><b>Material Substance</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MATERIAL_SUBSTANCE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MATERIAL_SUBSTANCE(5, "MaterialSubstance", "MaterialSubstance"),
+
+	/**
+	 * The '<em><b>Ergonomic</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ERGONOMIC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ERGONOMIC(6, "Ergonomic", "Ergonomic"),
+
+	/**
+	 * The '<em><b>Environment Workspace</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ENVIRONMENT_WORKSPACE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ENVIRONMENT_WORKSPACE(7, "EnvironmentWorkspace", "EnvironmentWorkspace"),
+
+	/**
+	 * The '<em><b>Combination</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #COMBINATION_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	COMBINATION(8, "Combination", "Combination"),
+
+	/**
+	 * The '<em><b>Other</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OTHER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	OTHER(9, "Other", "Other");
+
+	/**
+	 * The '<em><b>Mechanical</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MECHANICAL
+	 * @model name="Mechanical"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MECHANICAL_VALUE = 0;
+
+	/**
+	 * The '<em><b>Electrical</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ELECTRICAL
+	 * @model name="Electrical"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ELECTRICAL_VALUE = 1;
+
+	/**
+	 * The '<em><b>Noise</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NOISE
+	 * @model name="Noise"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NOISE_VALUE = 2;
+
+	/**
+	 * The '<em><b>Vibration</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #VIBRATION
+	 * @model name="Vibration"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int VIBRATION_VALUE = 3;
+
+	/**
+	 * The '<em><b>Radiation</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RADIATION
+	 * @model name="Radiation"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RADIATION_VALUE = 4;
+
+	/**
+	 * The '<em><b>Material Substance</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MATERIAL_SUBSTANCE
+	 * @model name="MaterialSubstance"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='Material/Substance'"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MATERIAL_SUBSTANCE_VALUE = 5;
+
+	/**
+	 * The '<em><b>Ergonomic</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ERGONOMIC
+	 * @model name="Ergonomic"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ERGONOMIC_VALUE = 6;
+
+	/**
+	 * The '<em><b>Environment Workspace</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ENVIRONMENT_WORKSPACE
+	 * @model name="EnvironmentWorkspace"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='Environment/Workspace'"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ENVIRONMENT_WORKSPACE_VALUE = 7;
+
+	/**
+	 * The '<em><b>Combination</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #COMBINATION
+	 * @model name="Combination"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int COMBINATION_VALUE = 8;
+
+	/**
+	 * The '<em><b>Other</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OTHER
+	 * @model name="Other"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OTHER_VALUE = 9;
+
+	/**
+	 * An array of all the '<em><b>Hazard Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final HazardType[] VALUES_ARRAY =
+		new HazardType[] {
+			MECHANICAL,
+			ELECTRICAL,
+			NOISE,
+			VIBRATION,
+			RADIATION,
+			MATERIAL_SUBSTANCE,
+			ERGONOMIC,
+			ENVIRONMENT_WORKSPACE,
+			COMBINATION,
+			OTHER,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Hazard Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<HazardType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Hazard Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static HazardType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			HazardType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Hazard Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static HazardType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			HazardType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Hazard Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static HazardType get(int value) {
+		switch (value) {
+			case MECHANICAL_VALUE: return MECHANICAL;
+			case ELECTRICAL_VALUE: return ELECTRICAL;
+			case NOISE_VALUE: return NOISE;
+			case VIBRATION_VALUE: return VIBRATION;
+			case RADIATION_VALUE: return RADIATION;
+			case MATERIAL_SUBSTANCE_VALUE: return MATERIAL_SUBSTANCE;
+			case ERGONOMIC_VALUE: return ERGONOMIC;
+			case ENVIRONMENT_WORKSPACE_VALUE: return ENVIRONMENT_WORKSPACE;
+			case COMBINATION_VALUE: return COMBINATION;
+			case OTHER_VALUE: return OTHER;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private HazardType(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //HazardType
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskLevel.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskLevel.java
new file mode 100644
index 0000000..af63181
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskLevel.java
@@ -0,0 +1,310 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * Contributors:
+ *     CEA LIST - initial API and implementation
+ */
+package org.eclipse.papyrus.robotics.safety.riskanalysis;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Risk Level</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getRiskLevel()
+ * @model
+ * @generated
+ */
+public enum RiskLevel implements Enumerator {
+	/**
+	 * The '<em><b>Negligible Risk</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NEGLIGIBLE_RISK_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NEGLIGIBLE_RISK(0, "NegligibleRisk", "NegligibleRisk"),
+
+	/**
+	 * The '<em><b>Very Low Risk</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #VERY_LOW_RISK_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	VERY_LOW_RISK(1, "VeryLowRisk", "VeryLowRisk"),
+
+	/**
+	 * The '<em><b>Low Risk</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOW_RISK_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LOW_RISK(2, "LowRisk", "LowRisk"),
+
+	/**
+	 * The '<em><b>Significant Risk</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SIGNIFICANT_RISK_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SIGNIFICANT_RISK(3, "SignificantRisk", "SignificantRisk"),
+
+	/**
+	 * The '<em><b>High Risk</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HIGH_RISK_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HIGH_RISK(4, "HighRisk", "HighRisk"),
+
+	/**
+	 * The '<em><b>Very High Risk</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #VERY_HIGH_RISK_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	VERY_HIGH_RISK(5, "VeryHighRisk", "VeryHighRisk");
+
+	/**
+	 * The '<em><b>Negligible Risk</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NEGLIGIBLE_RISK
+	 * @model name="NegligibleRisk"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NEGLIGIBLE_RISK_VALUE = 0;
+
+	/**
+	 * The '<em><b>Very Low Risk</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #VERY_LOW_RISK
+	 * @model name="VeryLowRisk"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int VERY_LOW_RISK_VALUE = 1;
+
+	/**
+	 * The '<em><b>Low Risk</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOW_RISK
+	 * @model name="LowRisk"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOW_RISK_VALUE = 2;
+
+	/**
+	 * The '<em><b>Significant Risk</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SIGNIFICANT_RISK
+	 * @model name="SignificantRisk"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SIGNIFICANT_RISK_VALUE = 3;
+
+	/**
+	 * The '<em><b>High Risk</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HIGH_RISK
+	 * @model name="HighRisk"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HIGH_RISK_VALUE = 4;
+
+	/**
+	 * The '<em><b>Very High Risk</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #VERY_HIGH_RISK
+	 * @model name="VeryHighRisk"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int VERY_HIGH_RISK_VALUE = 5;
+
+	/**
+	 * An array of all the '<em><b>Risk Level</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final RiskLevel[] VALUES_ARRAY =
+		new RiskLevel[] {
+			NEGLIGIBLE_RISK,
+			VERY_LOW_RISK,
+			LOW_RISK,
+			SIGNIFICANT_RISK,
+			HIGH_RISK,
+			VERY_HIGH_RISK,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Risk Level</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<RiskLevel> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Risk Level</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static RiskLevel get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			RiskLevel result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Risk Level</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static RiskLevel getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			RiskLevel result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Risk Level</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static RiskLevel get(int value) {
+		switch (value) {
+			case NEGLIGIBLE_RISK_VALUE: return NEGLIGIBLE_RISK;
+			case VERY_LOW_RISK_VALUE: return VERY_LOW_RISK;
+			case LOW_RISK_VALUE: return LOW_RISK;
+			case SIGNIFICANT_RISK_VALUE: return SIGNIFICANT_RISK;
+			case HIGH_RISK_VALUE: return HIGH_RISK;
+			case VERY_HIGH_RISK_VALUE: return VERY_HIGH_RISK;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private RiskLevel(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //RiskLevel
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskReduction.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskReduction.java
new file mode 100644
index 0000000..fd5269a
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskReduction.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * Contributors:
+ *     CEA LIST - initial API and implementation
+ */
+package org.eclipse.papyrus.robotics.safety.riskanalysis;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Risk Reduction</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getBase_Class <em>Base Class</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getRiskReduction()
+ * @model
+ * @generated
+ */
+public interface RiskReduction extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getRiskReduction_Description()
+	 * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Class</em>' reference.
+	 * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getRiskReduction_Base_Class()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Class getBase_Class();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getBase_Class <em>Base Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Class</em>' reference.
+	 * @see #getBase_Class()
+	 * @generated
+	 */
+	void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Property</em>' reference.
+	 * @see #setBase_Property(Property)
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage#getRiskReduction_Base_Property()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	Property getBase_Property();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getBase_Property <em>Base Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Property</em>' reference.
+	 * @see #getBase_Property()
+	 * @generated
+	 */
+	void setBase_Property(Property value);
+
+} // RiskReduction
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskanalysisFactory.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskanalysisFactory.java
index 2a2b0db..cc45999 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskanalysisFactory.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskanalysisFactory.java
@@ -40,6 +40,15 @@
 	HazardAnalysis createHazardAnalysis();
 
 	/**
+	 * Returns a new object of class '<em>Risk Reduction</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Risk Reduction</em>'.
+	 * @generated
+	 */
+	RiskReduction createRiskReduction();
+
+	/**
 	 * Returns a new object of class '<em>Hazard Analysis Context</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskanalysisPackage.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskanalysisPackage.java
index 0161be2..81d88f5 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskanalysisPackage.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/RiskanalysisPackage.java
@@ -250,22 +250,13 @@
 	int HAZARD_ANALYSIS__INITIAL_CRITICALITY = BPCPackage.PROPERTY_FEATURE_COUNT + 11;
 
 	/**
-	 * The feature id for the '<em><b>Initial Risk Reduction</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int HAZARD_ANALYSIS__INITIAL_RISK_REDUCTION = BPCPackage.PROPERTY_FEATURE_COUNT + 12;
-
-	/**
 	 * The feature id for the '<em><b>Final Occurence</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HAZARD_ANALYSIS__FINAL_OCCURENCE = BPCPackage.PROPERTY_FEATURE_COUNT + 13;
+	int HAZARD_ANALYSIS__FINAL_OCCURENCE = BPCPackage.PROPERTY_FEATURE_COUNT + 12;
 
 	/**
 	 * The feature id for the '<em><b>Final Avoidance</b></em>' attribute.
@@ -274,7 +265,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HAZARD_ANALYSIS__FINAL_AVOIDANCE = BPCPackage.PROPERTY_FEATURE_COUNT + 14;
+	int HAZARD_ANALYSIS__FINAL_AVOIDANCE = BPCPackage.PROPERTY_FEATURE_COUNT + 13;
 
 	/**
 	 * The feature id for the '<em><b>Final Frequency</b></em>' attribute.
@@ -283,7 +274,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HAZARD_ANALYSIS__FINAL_FREQUENCY = BPCPackage.PROPERTY_FEATURE_COUNT + 15;
+	int HAZARD_ANALYSIS__FINAL_FREQUENCY = BPCPackage.PROPERTY_FEATURE_COUNT + 14;
 
 	/**
 	 * The feature id for the '<em><b>Final Severity</b></em>' attribute.
@@ -292,7 +283,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HAZARD_ANALYSIS__FINAL_SEVERITY = BPCPackage.PROPERTY_FEATURE_COUNT + 16;
+	int HAZARD_ANALYSIS__FINAL_SEVERITY = BPCPackage.PROPERTY_FEATURE_COUNT + 15;
 
 	/**
 	 * The feature id for the '<em><b>Final Criticality</b></em>' attribute.
@@ -301,16 +292,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HAZARD_ANALYSIS__FINAL_CRITICALITY = BPCPackage.PROPERTY_FEATURE_COUNT + 17;
-
-	/**
-	 * The feature id for the '<em><b>Final Risk Reduction</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int HAZARD_ANALYSIS__FINAL_RISK_REDUCTION = BPCPackage.PROPERTY_FEATURE_COUNT + 18;
+	int HAZARD_ANALYSIS__FINAL_CRITICALITY = BPCPackage.PROPERTY_FEATURE_COUNT + 16;
 
 	/**
 	 * The feature id for the '<em><b>Base Property</b></em>' reference.
@@ -319,7 +301,97 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HAZARD_ANALYSIS__BASE_PROPERTY = BPCPackage.PROPERTY_FEATURE_COUNT + 19;
+	int HAZARD_ANALYSIS__BASE_PROPERTY = BPCPackage.PROPERTY_FEATURE_COUNT + 17;
+
+	/**
+	 * The feature id for the '<em><b>Hazard</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__HAZARD = BPCPackage.PROPERTY_FEATURE_COUNT + 18;
+
+	/**
+	 * The feature id for the '<em><b>Initial Risk Level</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__INITIAL_RISK_LEVEL = BPCPackage.PROPERTY_FEATURE_COUNT + 19;
+
+	/**
+	 * The feature id for the '<em><b>Final Risk Level</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__FINAL_RISK_LEVEL = BPCPackage.PROPERTY_FEATURE_COUNT + 20;
+
+	/**
+	 * The feature id for the '<em><b>Contact Aera</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__CONTACT_AERA = BPCPackage.PROPERTY_FEATURE_COUNT + 21;
+
+	/**
+	 * The feature id for the '<em><b>Initial Design Risk Reduction</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__INITIAL_DESIGN_RISK_REDUCTION = BPCPackage.PROPERTY_FEATURE_COUNT + 22;
+
+	/**
+	 * The feature id for the '<em><b>Final Design Risk Reduction</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__FINAL_DESIGN_RISK_REDUCTION = BPCPackage.PROPERTY_FEATURE_COUNT + 23;
+
+	/**
+	 * The feature id for the '<em><b>Initial Technical Risk Reduction</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__INITIAL_TECHNICAL_RISK_REDUCTION = BPCPackage.PROPERTY_FEATURE_COUNT + 24;
+
+	/**
+	 * The feature id for the '<em><b>Final Technical Risk Reduction</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__FINAL_TECHNICAL_RISK_REDUCTION = BPCPackage.PROPERTY_FEATURE_COUNT + 25;
+
+	/**
+	 * The feature id for the '<em><b>Initial Organizational Risk Reduction</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__INITIAL_ORGANIZATIONAL_RISK_REDUCTION = BPCPackage.PROPERTY_FEATURE_COUNT + 26;
+
+	/**
+	 * The feature id for the '<em><b>Final Organizational Risk Reduction</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HAZARD_ANALYSIS__FINAL_ORGANIZATIONAL_RISK_REDUCTION = BPCPackage.PROPERTY_FEATURE_COUNT + 27;
 
 	/**
 	 * The number of structural features of the '<em>Hazard Analysis</em>' class.
@@ -328,7 +400,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HAZARD_ANALYSIS_FEATURE_COUNT = BPCPackage.PROPERTY_FEATURE_COUNT + 20;
+	int HAZARD_ANALYSIS_FEATURE_COUNT = BPCPackage.PROPERTY_FEATURE_COUNT + 28;
 
 	/**
 	 * The number of operations of the '<em>Hazard Analysis</em>' class.
@@ -340,6 +412,61 @@
 	int HAZARD_ANALYSIS_OPERATION_COUNT = BPCPackage.PROPERTY_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskReductionImpl <em>Risk Reduction</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskReductionImpl
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getRiskReduction()
+	 * @generated
+	 */
+	int RISK_REDUCTION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RISK_REDUCTION__DESCRIPTION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RISK_REDUCTION__BASE_CLASS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RISK_REDUCTION__BASE_PROPERTY = 2;
+
+	/**
+	 * The number of structural features of the '<em>Risk Reduction</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RISK_REDUCTION_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Risk Reduction</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RISK_REDUCTION_OPERATION_COUNT = 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisContextImpl <em>Hazard Analysis Context</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -347,7 +474,7 @@
 	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getHazardAnalysisContext()
 	 * @generated
 	 */
-	int HAZARD_ANALYSIS_CONTEXT = 1;
+	int HAZARD_ANALYSIS_CONTEXT = 2;
 
 	/**
 	 * The feature id for the '<em><b>Property</b></em>' reference list.
@@ -465,7 +592,7 @@
 	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getOccurenceEstimation()
 	 * @generated
 	 */
-	int OCCURENCE_ESTIMATION = 2;
+	int OCCURENCE_ESTIMATION = 3;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskEstimation <em>Risk Estimation</em>}' enum.
@@ -475,7 +602,7 @@
 	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getRiskEstimation()
 	 * @generated
 	 */
-	int RISK_ESTIMATION = 3;
+	int RISK_ESTIMATION = 4;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskIndex <em>Risk Index</em>}' enum.
@@ -485,7 +612,38 @@
 	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getRiskIndex()
 	 * @generated
 	 */
-	int RISK_INDEX = 4;
+	int RISK_INDEX = 5;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType <em>Hazard Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getHazardType()
+	 * @generated
+	 */
+	int HAZARD_TYPE = 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel <em>Risk Level</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getRiskLevel()
+	 * @generated
+	 */
+	int RISK_LEVEL = 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion <em>Body Region</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getBodyRegion()
+	 * @generated
+	 */
+	int BODY_REGION = 8;
 
 
 	/**
@@ -631,17 +789,6 @@
 	EAttribute getHazardAnalysis_Initial_Criticality();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_RiskReduction <em>Initial Risk Reduction</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Initial Risk Reduction</em>'.
-	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_RiskReduction()
-	 * @see #getHazardAnalysis()
-	 * @generated
-	 */
-	EAttribute getHazardAnalysis_Initial_RiskReduction();
-
-	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_Occurence <em>Final Occurence</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -697,15 +844,47 @@
 	EAttribute getHazardAnalysis_Final_Criticality();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_RiskReduction <em>Final Risk Reduction</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction <em>Risk Reduction</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Final Risk Reduction</em>'.
-	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_RiskReduction()
-	 * @see #getHazardAnalysis()
+	 * @return the meta object for class '<em>Risk Reduction</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction
 	 * @generated
 	 */
-	EAttribute getHazardAnalysis_Final_RiskReduction();
+	EClass getRiskReduction();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getDescription()
+	 * @see #getRiskReduction()
+	 * @generated
+	 */
+	EAttribute getRiskReduction_Description();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getBase_Class <em>Base Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Class</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getBase_Class()
+	 * @see #getRiskReduction()
+	 * @generated
+	 */
+	EReference getRiskReduction_Base_Class();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getBase_Property <em>Base Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Property</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction#getBase_Property()
+	 * @see #getRiskReduction()
+	 * @generated
+	 */
+	EReference getRiskReduction_Base_Property();
 
 	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getBase_Property <em>Base Property</em>}'.
@@ -719,6 +898,116 @@
 	EReference getHazardAnalysis_Base_Property();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getHazard <em>Hazard</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Hazard</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getHazard()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EAttribute getHazardAnalysis_Hazard();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_RiskLevel <em>Initial Risk Level</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Initial Risk Level</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_RiskLevel()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EAttribute getHazardAnalysis_Initial_RiskLevel();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_RiskLevel <em>Final Risk Level</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Final Risk Level</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_RiskLevel()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EAttribute getHazardAnalysis_Final_RiskLevel();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getContactAera <em>Contact Aera</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Contact Aera</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getContactAera()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EAttribute getHazardAnalysis_ContactAera();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_DesignRiskReduction <em>Initial Design Risk Reduction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Initial Design Risk Reduction</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_DesignRiskReduction()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EReference getHazardAnalysis_Initial_DesignRiskReduction();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_DesignRiskReduction <em>Final Design Risk Reduction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Final Design Risk Reduction</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_DesignRiskReduction()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EReference getHazardAnalysis_Final_DesignRiskReduction();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_TechnicalRiskReduction <em>Initial Technical Risk Reduction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Initial Technical Risk Reduction</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_TechnicalRiskReduction()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EReference getHazardAnalysis_Initial_TechnicalRiskReduction();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_TechnicalRiskReduction <em>Final Technical Risk Reduction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Final Technical Risk Reduction</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_TechnicalRiskReduction()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EReference getHazardAnalysis_Final_TechnicalRiskReduction();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_OrganizationalRiskReduction <em>Initial Organizational Risk Reduction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Initial Organizational Risk Reduction</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getInitial_OrganizationalRiskReduction()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EReference getHazardAnalysis_Initial_OrganizationalRiskReduction();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_OrganizationalRiskReduction <em>Final Organizational Risk Reduction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Final Organizational Risk Reduction</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis#getFinal_OrganizationalRiskReduction()
+	 * @see #getHazardAnalysis()
+	 * @generated
+	 */
+	EReference getHazardAnalysis_Final_OrganizationalRiskReduction();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysisContext <em>Hazard Analysis Context</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -792,6 +1081,36 @@
 	EEnum getRiskIndex();
 
 	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType <em>Hazard Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Hazard Type</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType
+	 * @generated
+	 */
+	EEnum getHazardType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel <em>Risk Level</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Risk Level</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel
+	 * @generated
+	 */
+	EEnum getRiskLevel();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion <em>Body Region</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Body Region</em>'.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion
+	 * @generated
+	 */
+	EEnum getBodyRegion();
+
+	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -921,14 +1240,6 @@
 		EAttribute HAZARD_ANALYSIS__INITIAL_CRITICALITY = eINSTANCE.getHazardAnalysis_Initial_Criticality();
 
 		/**
-		 * The meta object literal for the '<em><b>Initial Risk Reduction</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute HAZARD_ANALYSIS__INITIAL_RISK_REDUCTION = eINSTANCE.getHazardAnalysis_Initial_RiskReduction();
-
-		/**
 		 * The meta object literal for the '<em><b>Final Occurence</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -969,12 +1280,38 @@
 		EAttribute HAZARD_ANALYSIS__FINAL_CRITICALITY = eINSTANCE.getHazardAnalysis_Final_Criticality();
 
 		/**
-		 * The meta object literal for the '<em><b>Final Risk Reduction</b></em>' attribute feature.
+		 * The meta object literal for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskReductionImpl <em>Risk Reduction</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskReductionImpl
+		 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getRiskReduction()
+		 * @generated
+		 */
+		EClass RISK_REDUCTION = eINSTANCE.getRiskReduction();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute HAZARD_ANALYSIS__FINAL_RISK_REDUCTION = eINSTANCE.getHazardAnalysis_Final_RiskReduction();
+		EAttribute RISK_REDUCTION__DESCRIPTION = eINSTANCE.getRiskReduction_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference RISK_REDUCTION__BASE_CLASS = eINSTANCE.getRiskReduction_Base_Class();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference RISK_REDUCTION__BASE_PROPERTY = eINSTANCE.getRiskReduction_Base_Property();
 
 		/**
 		 * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
@@ -985,6 +1322,86 @@
 		EReference HAZARD_ANALYSIS__BASE_PROPERTY = eINSTANCE.getHazardAnalysis_Base_Property();
 
 		/**
+		 * The meta object literal for the '<em><b>Hazard</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute HAZARD_ANALYSIS__HAZARD = eINSTANCE.getHazardAnalysis_Hazard();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Risk Level</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute HAZARD_ANALYSIS__INITIAL_RISK_LEVEL = eINSTANCE.getHazardAnalysis_Initial_RiskLevel();
+
+		/**
+		 * The meta object literal for the '<em><b>Final Risk Level</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute HAZARD_ANALYSIS__FINAL_RISK_LEVEL = eINSTANCE.getHazardAnalysis_Final_RiskLevel();
+
+		/**
+		 * The meta object literal for the '<em><b>Contact Aera</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute HAZARD_ANALYSIS__CONTACT_AERA = eINSTANCE.getHazardAnalysis_ContactAera();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Design Risk Reduction</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference HAZARD_ANALYSIS__INITIAL_DESIGN_RISK_REDUCTION = eINSTANCE.getHazardAnalysis_Initial_DesignRiskReduction();
+
+		/**
+		 * The meta object literal for the '<em><b>Final Design Risk Reduction</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference HAZARD_ANALYSIS__FINAL_DESIGN_RISK_REDUCTION = eINSTANCE.getHazardAnalysis_Final_DesignRiskReduction();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Technical Risk Reduction</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference HAZARD_ANALYSIS__INITIAL_TECHNICAL_RISK_REDUCTION = eINSTANCE.getHazardAnalysis_Initial_TechnicalRiskReduction();
+
+		/**
+		 * The meta object literal for the '<em><b>Final Technical Risk Reduction</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference HAZARD_ANALYSIS__FINAL_TECHNICAL_RISK_REDUCTION = eINSTANCE.getHazardAnalysis_Final_TechnicalRiskReduction();
+
+		/**
+		 * The meta object literal for the '<em><b>Initial Organizational Risk Reduction</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference HAZARD_ANALYSIS__INITIAL_ORGANIZATIONAL_RISK_REDUCTION = eINSTANCE.getHazardAnalysis_Initial_OrganizationalRiskReduction();
+
+		/**
+		 * The meta object literal for the '<em><b>Final Organizational Risk Reduction</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference HAZARD_ANALYSIS__FINAL_ORGANIZATIONAL_RISK_REDUCTION = eINSTANCE.getHazardAnalysis_Final_OrganizationalRiskReduction();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisContextImpl <em>Hazard Analysis Context</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -1048,6 +1465,36 @@
 		 */
 		EEnum RISK_INDEX = eINSTANCE.getRiskIndex();
 
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType <em>Hazard Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType
+		 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getHazardType()
+		 * @generated
+		 */
+		EEnum HAZARD_TYPE = eINSTANCE.getHazardType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel <em>Risk Level</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel
+		 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getRiskLevel()
+		 * @generated
+		 */
+		EEnum RISK_LEVEL = eINSTANCE.getRiskLevel();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion <em>Body Region</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion
+		 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskanalysisPackageImpl#getBodyRegion()
+		 * @generated
+		 */
+		EEnum BODY_REGION = eINSTANCE.getBodyRegion();
+
 	}
 
 } //RiskanalysisPackage
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/HazardAnalysisImpl.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/HazardAnalysisImpl.java
index 3723add..b4d4cc2 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/HazardAnalysisImpl.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/HazardAnalysisImpl.java
@@ -11,18 +11,25 @@
  */
 package org.eclipse.papyrus.robotics.safety.riskanalysis.impl;
 
+import java.util.Collection;
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 import org.eclipse.papyrus.robotics.bpc.profile.bpc.impl.PropertyImpl;
 import org.eclipse.papyrus.robotics.profile.robotics.skills.SkillDefinition;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.OccurenceEstimation;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskEstimation;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskIndex;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage;
 
 import org.eclipse.uml2.uml.Operation;
@@ -48,14 +55,22 @@
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getInitial_Frequency <em>Initial Frequency</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getInitial_Severity <em>Initial Severity</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getInitial_Criticality <em>Initial Criticality</em>}</li>
- *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getInitial_RiskReduction <em>Initial Risk Reduction</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_Occurence <em>Final Occurence</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_Avoidance <em>Final Avoidance</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_Frequency <em>Final Frequency</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_Severity <em>Final Severity</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_Criticality <em>Final Criticality</em>}</li>
- *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_RiskReduction <em>Final Risk Reduction</em>}</li>
  *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getBase_Property <em>Base Property</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getHazard <em>Hazard</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getInitial_RiskLevel <em>Initial Risk Level</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_RiskLevel <em>Final Risk Level</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getContactAera <em>Contact Aera</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getInitial_DesignRiskReduction <em>Initial Design Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_DesignRiskReduction <em>Final Design Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getInitial_TechnicalRiskReduction <em>Initial Technical Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_TechnicalRiskReduction <em>Final Technical Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getInitial_OrganizationalRiskReduction <em>Initial Organizational Risk Reduction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl#getFinal_OrganizationalRiskReduction <em>Final Organizational Risk Reduction</em>}</li>
  * </ul>
  *
  * @generated
@@ -273,26 +288,6 @@
 	protected static final RiskIndex INITIAL_CRITICALITY_EDEFAULT = RiskIndex._1;
 
 	/**
-	 * The default value of the '{@link #getInitial_RiskReduction() <em>Initial Risk Reduction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInitial_RiskReduction()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String INITIAL_RISK_REDUCTION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getInitial_RiskReduction() <em>Initial Risk Reduction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInitial_RiskReduction()
-	 * @generated
-	 * @ordered
-	 */
-	protected String initial_RiskReduction = INITIAL_RISK_REDUCTION_EDEFAULT;
-
-	/**
 	 * The default value of the '{@link #getFinal_Occurence() <em>Final Occurence</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -383,26 +378,6 @@
 	protected static final RiskIndex FINAL_CRITICALITY_EDEFAULT = RiskIndex._1;
 
 	/**
-	 * The default value of the '{@link #getFinal_RiskReduction() <em>Final Risk Reduction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFinal_RiskReduction()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String FINAL_RISK_REDUCTION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getFinal_RiskReduction() <em>Final Risk Reduction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFinal_RiskReduction()
-	 * @generated
-	 * @ordered
-	 */
-	protected String final_RiskReduction = FINAL_RISK_REDUCTION_EDEFAULT;
-
-	/**
 	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -413,6 +388,126 @@
 	protected Property base_Property;
 
 	/**
+	 * The default value of the '{@link #getHazard() <em>Hazard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHazard()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final HazardType HAZARD_EDEFAULT = HazardType.MECHANICAL;
+
+	/**
+	 * The cached value of the '{@link #getHazard() <em>Hazard</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHazard()
+	 * @generated
+	 * @ordered
+	 */
+	protected HazardType hazard = HAZARD_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getInitial_RiskLevel() <em>Initial Risk Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInitial_RiskLevel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final RiskLevel INITIAL_RISK_LEVEL_EDEFAULT = RiskLevel.NEGLIGIBLE_RISK;
+
+	/**
+	 * The default value of the '{@link #getFinal_RiskLevel() <em>Final Risk Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFinal_RiskLevel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final RiskLevel FINAL_RISK_LEVEL_EDEFAULT = RiskLevel.NEGLIGIBLE_RISK;
+
+	/**
+	 * The default value of the '{@link #getContactAera() <em>Contact Aera</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContactAera()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final BodyRegion CONTACT_AERA_EDEFAULT = BodyRegion.SKULL_FOREHEAD;
+
+	/**
+	 * The cached value of the '{@link #getContactAera() <em>Contact Aera</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContactAera()
+	 * @generated
+	 * @ordered
+	 */
+	protected BodyRegion contactAera = CONTACT_AERA_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getInitial_DesignRiskReduction() <em>Initial Design Risk Reduction</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInitial_DesignRiskReduction()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<RiskReduction> initial_DesignRiskReduction;
+
+	/**
+	 * The cached value of the '{@link #getFinal_DesignRiskReduction() <em>Final Design Risk Reduction</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFinal_DesignRiskReduction()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<RiskReduction> final_DesignRiskReduction;
+
+	/**
+	 * The cached value of the '{@link #getInitial_TechnicalRiskReduction() <em>Initial Technical Risk Reduction</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInitial_TechnicalRiskReduction()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<RiskReduction> initial_TechnicalRiskReduction;
+
+	/**
+	 * The cached value of the '{@link #getFinal_TechnicalRiskReduction() <em>Final Technical Risk Reduction</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFinal_TechnicalRiskReduction()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<RiskReduction> final_TechnicalRiskReduction;
+
+	/**
+	 * The cached value of the '{@link #getInitial_OrganizationalRiskReduction() <em>Initial Organizational Risk Reduction</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInitial_OrganizationalRiskReduction()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<RiskReduction> initial_OrganizationalRiskReduction;
+
+	/**
+	 * The cached value of the '{@link #getFinal_OrganizationalRiskReduction() <em>Final Organizational Risk Reduction</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFinal_OrganizationalRiskReduction()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<RiskReduction> final_OrganizationalRiskReduction;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -736,29 +831,6 @@
 	 * @generated
 	 */
 	@Override
-	public String getInitial_RiskReduction() {
-		return initial_RiskReduction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setInitial_RiskReduction(String newInitial_RiskReduction) {
-		String oldInitial_RiskReduction = initial_RiskReduction;
-		initial_RiskReduction = newInitial_RiskReduction;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_REDUCTION, oldInitial_RiskReduction, initial_RiskReduction));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public OccurenceEstimation getFinal_Occurence() {
 		return final_Occurence;
 	}
@@ -863,29 +935,6 @@
 	 * @generated
 	 */
 	@Override
-	public String getFinal_RiskReduction() {
-		return final_RiskReduction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setFinal_RiskReduction(String newFinal_RiskReduction) {
-		String oldFinal_RiskReduction = final_RiskReduction;
-		final_RiskReduction = newFinal_RiskReduction;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_REDUCTION, oldFinal_RiskReduction, final_RiskReduction));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public Property getBase_Property() {
 		if (base_Property != null && base_Property.eIsProxy()) {
 			InternalEObject oldBase_Property = (InternalEObject)base_Property;
@@ -926,6 +975,178 @@
 	 * @generated
 	 */
 	@Override
+	public HazardType getHazard() {
+		return hazard;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setHazard(HazardType newHazard) {
+		HazardType oldHazard = hazard;
+		hazard = newHazard == null ? HAZARD_EDEFAULT : newHazard;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, RiskanalysisPackage.HAZARD_ANALYSIS__HAZARD, oldHazard, hazard));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public RiskLevel getInitial_RiskLevel() {
+		// TODO: implement this method to return the 'Initial Risk Level' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setInitial_RiskLevel(RiskLevel newInitial_RiskLevel) {
+		// TODO: implement this method to set the 'Initial Risk Level' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public RiskLevel getFinal_RiskLevel() {
+		// TODO: implement this method to return the 'Final Risk Level' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFinal_RiskLevel(RiskLevel newFinal_RiskLevel) {
+		// TODO: implement this method to set the 'Final Risk Level' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public BodyRegion getContactAera() {
+		return contactAera;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setContactAera(BodyRegion newContactAera) {
+		BodyRegion oldContactAera = contactAera;
+		contactAera = newContactAera == null ? CONTACT_AERA_EDEFAULT : newContactAera;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, RiskanalysisPackage.HAZARD_ANALYSIS__CONTACT_AERA, oldContactAera, contactAera));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<RiskReduction> getInitial_DesignRiskReduction() {
+		if (initial_DesignRiskReduction == null) {
+			initial_DesignRiskReduction = new EObjectResolvingEList<RiskReduction>(RiskReduction.class, this, RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_DESIGN_RISK_REDUCTION);
+		}
+		return initial_DesignRiskReduction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<RiskReduction> getFinal_DesignRiskReduction() {
+		if (final_DesignRiskReduction == null) {
+			final_DesignRiskReduction = new EObjectResolvingEList<RiskReduction>(RiskReduction.class, this, RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_DESIGN_RISK_REDUCTION);
+		}
+		return final_DesignRiskReduction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<RiskReduction> getInitial_TechnicalRiskReduction() {
+		if (initial_TechnicalRiskReduction == null) {
+			initial_TechnicalRiskReduction = new EObjectResolvingEList<RiskReduction>(RiskReduction.class, this, RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_TECHNICAL_RISK_REDUCTION);
+		}
+		return initial_TechnicalRiskReduction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<RiskReduction> getFinal_TechnicalRiskReduction() {
+		if (final_TechnicalRiskReduction == null) {
+			final_TechnicalRiskReduction = new EObjectResolvingEList<RiskReduction>(RiskReduction.class, this, RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_TECHNICAL_RISK_REDUCTION);
+		}
+		return final_TechnicalRiskReduction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<RiskReduction> getInitial_OrganizationalRiskReduction() {
+		if (initial_OrganizationalRiskReduction == null) {
+			initial_OrganizationalRiskReduction = new EObjectResolvingEList<RiskReduction>(RiskReduction.class, this, RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_ORGANIZATIONAL_RISK_REDUCTION);
+		}
+		return initial_OrganizationalRiskReduction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<RiskReduction> getFinal_OrganizationalRiskReduction() {
+		if (final_OrganizationalRiskReduction == null) {
+			final_OrganizationalRiskReduction = new EObjectResolvingEList<RiskReduction>(RiskReduction.class, this, RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_ORGANIZATIONAL_RISK_REDUCTION);
+		}
+		return final_OrganizationalRiskReduction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case RiskanalysisPackage.HAZARD_ANALYSIS__SKILL:
@@ -954,8 +1175,6 @@
 				return getInitial_Severity();
 			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_CRITICALITY:
 				return getInitial_Criticality();
-			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_REDUCTION:
-				return getInitial_RiskReduction();
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_OCCURENCE:
 				return getFinal_Occurence();
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_AVOIDANCE:
@@ -966,11 +1185,29 @@
 				return getFinal_Severity();
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_CRITICALITY:
 				return getFinal_Criticality();
-			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_REDUCTION:
-				return getFinal_RiskReduction();
 			case RiskanalysisPackage.HAZARD_ANALYSIS__BASE_PROPERTY:
 				if (resolve) return getBase_Property();
 				return basicGetBase_Property();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__HAZARD:
+				return getHazard();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_LEVEL:
+				return getInitial_RiskLevel();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_LEVEL:
+				return getFinal_RiskLevel();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__CONTACT_AERA:
+				return getContactAera();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_DESIGN_RISK_REDUCTION:
+				return getInitial_DesignRiskReduction();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_DESIGN_RISK_REDUCTION:
+				return getFinal_DesignRiskReduction();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_TECHNICAL_RISK_REDUCTION:
+				return getInitial_TechnicalRiskReduction();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_TECHNICAL_RISK_REDUCTION:
+				return getFinal_TechnicalRiskReduction();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_ORGANIZATIONAL_RISK_REDUCTION:
+				return getInitial_OrganizationalRiskReduction();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_ORGANIZATIONAL_RISK_REDUCTION:
+				return getFinal_OrganizationalRiskReduction();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -980,6 +1217,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
@@ -1016,9 +1254,6 @@
 			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_SEVERITY:
 				setInitial_Severity((RiskEstimation)newValue);
 				return;
-			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_REDUCTION:
-				setInitial_RiskReduction((String)newValue);
-				return;
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_OCCURENCE:
 				setFinal_Occurence((OccurenceEstimation)newValue);
 				return;
@@ -1031,12 +1266,45 @@
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_SEVERITY:
 				setFinal_Severity((RiskEstimation)newValue);
 				return;
-			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_REDUCTION:
-				setFinal_RiskReduction((String)newValue);
-				return;
 			case RiskanalysisPackage.HAZARD_ANALYSIS__BASE_PROPERTY:
 				setBase_Property((Property)newValue);
 				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__HAZARD:
+				setHazard((HazardType)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_LEVEL:
+				setInitial_RiskLevel((RiskLevel)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_LEVEL:
+				setFinal_RiskLevel((RiskLevel)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__CONTACT_AERA:
+				setContactAera((BodyRegion)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_DESIGN_RISK_REDUCTION:
+				getInitial_DesignRiskReduction().clear();
+				getInitial_DesignRiskReduction().addAll((Collection<? extends RiskReduction>)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_DESIGN_RISK_REDUCTION:
+				getFinal_DesignRiskReduction().clear();
+				getFinal_DesignRiskReduction().addAll((Collection<? extends RiskReduction>)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_TECHNICAL_RISK_REDUCTION:
+				getInitial_TechnicalRiskReduction().clear();
+				getInitial_TechnicalRiskReduction().addAll((Collection<? extends RiskReduction>)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_TECHNICAL_RISK_REDUCTION:
+				getFinal_TechnicalRiskReduction().clear();
+				getFinal_TechnicalRiskReduction().addAll((Collection<? extends RiskReduction>)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_ORGANIZATIONAL_RISK_REDUCTION:
+				getInitial_OrganizationalRiskReduction().clear();
+				getInitial_OrganizationalRiskReduction().addAll((Collection<? extends RiskReduction>)newValue);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_ORGANIZATIONAL_RISK_REDUCTION:
+				getFinal_OrganizationalRiskReduction().clear();
+				getFinal_OrganizationalRiskReduction().addAll((Collection<? extends RiskReduction>)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -1082,9 +1350,6 @@
 			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_SEVERITY:
 				setInitial_Severity(INITIAL_SEVERITY_EDEFAULT);
 				return;
-			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_REDUCTION:
-				setInitial_RiskReduction(INITIAL_RISK_REDUCTION_EDEFAULT);
-				return;
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_OCCURENCE:
 				setFinal_Occurence(FINAL_OCCURENCE_EDEFAULT);
 				return;
@@ -1097,12 +1362,39 @@
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_SEVERITY:
 				setFinal_Severity(FINAL_SEVERITY_EDEFAULT);
 				return;
-			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_REDUCTION:
-				setFinal_RiskReduction(FINAL_RISK_REDUCTION_EDEFAULT);
-				return;
 			case RiskanalysisPackage.HAZARD_ANALYSIS__BASE_PROPERTY:
 				setBase_Property((Property)null);
 				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__HAZARD:
+				setHazard(HAZARD_EDEFAULT);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_LEVEL:
+				setInitial_RiskLevel(INITIAL_RISK_LEVEL_EDEFAULT);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_LEVEL:
+				setFinal_RiskLevel(FINAL_RISK_LEVEL_EDEFAULT);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__CONTACT_AERA:
+				setContactAera(CONTACT_AERA_EDEFAULT);
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_DESIGN_RISK_REDUCTION:
+				getInitial_DesignRiskReduction().clear();
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_DESIGN_RISK_REDUCTION:
+				getFinal_DesignRiskReduction().clear();
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_TECHNICAL_RISK_REDUCTION:
+				getInitial_TechnicalRiskReduction().clear();
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_TECHNICAL_RISK_REDUCTION:
+				getFinal_TechnicalRiskReduction().clear();
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_ORGANIZATIONAL_RISK_REDUCTION:
+				getInitial_OrganizationalRiskReduction().clear();
+				return;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_ORGANIZATIONAL_RISK_REDUCTION:
+				getFinal_OrganizationalRiskReduction().clear();
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -1139,8 +1431,6 @@
 				return initial_Severity != INITIAL_SEVERITY_EDEFAULT;
 			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_CRITICALITY:
 				return getInitial_Criticality() != INITIAL_CRITICALITY_EDEFAULT;
-			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_REDUCTION:
-				return INITIAL_RISK_REDUCTION_EDEFAULT == null ? initial_RiskReduction != null : !INITIAL_RISK_REDUCTION_EDEFAULT.equals(initial_RiskReduction);
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_OCCURENCE:
 				return final_Occurence != FINAL_OCCURENCE_EDEFAULT;
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_AVOIDANCE:
@@ -1151,10 +1441,28 @@
 				return final_Severity != FINAL_SEVERITY_EDEFAULT;
 			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_CRITICALITY:
 				return getFinal_Criticality() != FINAL_CRITICALITY_EDEFAULT;
-			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_REDUCTION:
-				return FINAL_RISK_REDUCTION_EDEFAULT == null ? final_RiskReduction != null : !FINAL_RISK_REDUCTION_EDEFAULT.equals(final_RiskReduction);
 			case RiskanalysisPackage.HAZARD_ANALYSIS__BASE_PROPERTY:
 				return base_Property != null;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__HAZARD:
+				return hazard != HAZARD_EDEFAULT;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_RISK_LEVEL:
+				return getInitial_RiskLevel() != INITIAL_RISK_LEVEL_EDEFAULT;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_RISK_LEVEL:
+				return getFinal_RiskLevel() != FINAL_RISK_LEVEL_EDEFAULT;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__CONTACT_AERA:
+				return contactAera != CONTACT_AERA_EDEFAULT;
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_DESIGN_RISK_REDUCTION:
+				return initial_DesignRiskReduction != null && !initial_DesignRiskReduction.isEmpty();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_DESIGN_RISK_REDUCTION:
+				return final_DesignRiskReduction != null && !final_DesignRiskReduction.isEmpty();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_TECHNICAL_RISK_REDUCTION:
+				return initial_TechnicalRiskReduction != null && !initial_TechnicalRiskReduction.isEmpty();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_TECHNICAL_RISK_REDUCTION:
+				return final_TechnicalRiskReduction != null && !final_TechnicalRiskReduction.isEmpty();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__INITIAL_ORGANIZATIONAL_RISK_REDUCTION:
+				return initial_OrganizationalRiskReduction != null && !initial_OrganizationalRiskReduction.isEmpty();
+			case RiskanalysisPackage.HAZARD_ANALYSIS__FINAL_ORGANIZATIONAL_RISK_REDUCTION:
+				return final_OrganizationalRiskReduction != null && !final_OrganizationalRiskReduction.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -1187,8 +1495,6 @@
 		result.append(initial_Frequency);
 		result.append(", Initial_Severity: ");
 		result.append(initial_Severity);
-		result.append(", Initial_RiskReduction: ");
-		result.append(initial_RiskReduction);
 		result.append(", Final_Occurence: ");
 		result.append(final_Occurence);
 		result.append(", Final_Avoidance: ");
@@ -1197,8 +1503,10 @@
 		result.append(final_Frequency);
 		result.append(", Final_Severity: ");
 		result.append(final_Severity);
-		result.append(", Final_RiskReduction: ");
-		result.append(final_RiskReduction);
+		result.append(", Hazard: ");
+		result.append(hazard);
+		result.append(", ContactAera: ");
+		result.append(contactAera);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskReductionImpl.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskReductionImpl.java
new file mode 100644
index 0000000..8024a59
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskReductionImpl.java
@@ -0,0 +1,299 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * Contributors:
+ *     CEA LIST - initial API and implementation
+ */
+package org.eclipse.papyrus.robotics.safety.riskanalysis.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Risk Reduction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskReductionImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskReductionImpl#getBase_Class <em>Base Class</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.robotics.safety.riskanalysis.impl.RiskReductionImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RiskReductionImpl extends MinimalEObjectImpl.Container implements RiskReduction {
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Class()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Class base_Class;
+
+	/**
+	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Property()
+	 * @generated
+	 * @ordered
+	 */
+	protected Property base_Property;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RiskReductionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return RiskanalysisPackage.Literals.RISK_REDUCTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, RiskanalysisPackage.RISK_REDUCTION__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Class getBase_Class() {
+		if (base_Class != null && base_Class.eIsProxy()) {
+			InternalEObject oldBase_Class = (InternalEObject)base_Class;
+			base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+			if (base_Class != oldBase_Class) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, RiskanalysisPackage.RISK_REDUCTION__BASE_CLASS, oldBase_Class, base_Class));
+			}
+		}
+		return base_Class;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+		return base_Class;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+		org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+		base_Class = newBase_Class;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, RiskanalysisPackage.RISK_REDUCTION__BASE_CLASS, oldBase_Class, base_Class));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Property getBase_Property() {
+		if (base_Property != null && base_Property.eIsProxy()) {
+			InternalEObject oldBase_Property = (InternalEObject)base_Property;
+			base_Property = (Property)eResolveProxy(oldBase_Property);
+			if (base_Property != oldBase_Property) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, RiskanalysisPackage.RISK_REDUCTION__BASE_PROPERTY, oldBase_Property, base_Property));
+			}
+		}
+		return base_Property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property basicGetBase_Property() {
+		return base_Property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Property(Property newBase_Property) {
+		Property oldBase_Property = base_Property;
+		base_Property = newBase_Property;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, RiskanalysisPackage.RISK_REDUCTION__BASE_PROPERTY, oldBase_Property, base_Property));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case RiskanalysisPackage.RISK_REDUCTION__DESCRIPTION:
+				return getDescription();
+			case RiskanalysisPackage.RISK_REDUCTION__BASE_CLASS:
+				if (resolve) return getBase_Class();
+				return basicGetBase_Class();
+			case RiskanalysisPackage.RISK_REDUCTION__BASE_PROPERTY:
+				if (resolve) return getBase_Property();
+				return basicGetBase_Property();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case RiskanalysisPackage.RISK_REDUCTION__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case RiskanalysisPackage.RISK_REDUCTION__BASE_CLASS:
+				setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+				return;
+			case RiskanalysisPackage.RISK_REDUCTION__BASE_PROPERTY:
+				setBase_Property((Property)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case RiskanalysisPackage.RISK_REDUCTION__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case RiskanalysisPackage.RISK_REDUCTION__BASE_CLASS:
+				setBase_Class((org.eclipse.uml2.uml.Class)null);
+				return;
+			case RiskanalysisPackage.RISK_REDUCTION__BASE_PROPERTY:
+				setBase_Property((Property)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case RiskanalysisPackage.RISK_REDUCTION__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case RiskanalysisPackage.RISK_REDUCTION__BASE_CLASS:
+				return base_Class != null;
+			case RiskanalysisPackage.RISK_REDUCTION__BASE_PROPERTY:
+				return base_Property != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (Description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //RiskReductionImpl
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskanalysisFactoryImpl.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskanalysisFactoryImpl.java
index c8c0ec8..fbb2325 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskanalysisFactoryImpl.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskanalysisFactoryImpl.java
@@ -67,6 +67,7 @@
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
 			case RiskanalysisPackage.HAZARD_ANALYSIS: return createHazardAnalysis();
+			case RiskanalysisPackage.RISK_REDUCTION: return createRiskReduction();
 			case RiskanalysisPackage.HAZARD_ANALYSIS_CONTEXT: return createHazardAnalysisContext();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
@@ -87,6 +88,12 @@
 				return createRiskEstimationFromString(eDataType, initialValue);
 			case RiskanalysisPackage.RISK_INDEX:
 				return createRiskIndexFromString(eDataType, initialValue);
+			case RiskanalysisPackage.HAZARD_TYPE:
+				return createHazardTypeFromString(eDataType, initialValue);
+			case RiskanalysisPackage.RISK_LEVEL:
+				return createRiskLevelFromString(eDataType, initialValue);
+			case RiskanalysisPackage.BODY_REGION:
+				return createBodyRegionFromString(eDataType, initialValue);
 			default:
 				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
 		}
@@ -106,6 +113,12 @@
 				return convertRiskEstimationToString(eDataType, instanceValue);
 			case RiskanalysisPackage.RISK_INDEX:
 				return convertRiskIndexToString(eDataType, instanceValue);
+			case RiskanalysisPackage.HAZARD_TYPE:
+				return convertHazardTypeToString(eDataType, instanceValue);
+			case RiskanalysisPackage.RISK_LEVEL:
+				return convertRiskLevelToString(eDataType, instanceValue);
+			case RiskanalysisPackage.BODY_REGION:
+				return convertBodyRegionToString(eDataType, instanceValue);
 			default:
 				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
 		}
@@ -128,6 +141,17 @@
 	 * @generated
 	 */
 	@Override
+	public RiskReduction createRiskReduction() {
+		RiskReductionImpl riskReduction = new RiskReductionImpl();
+		return riskReduction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public HazardAnalysisContext createHazardAnalysisContext() {
 		HazardAnalysisContextImpl hazardAnalysisContext = new HazardAnalysisContextImpl();
 		return hazardAnalysisContext;
@@ -198,6 +222,66 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public HazardType createHazardTypeFromString(EDataType eDataType, String initialValue) {
+		HazardType result = HazardType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertHazardTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RiskLevel createRiskLevelFromString(EDataType eDataType, String initialValue) {
+		RiskLevel result = RiskLevel.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertRiskLevelToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BodyRegion createBodyRegionFromString(EDataType eDataType, String initialValue) {
+		BodyRegion result = BodyRegion.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertBodyRegionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	@Override
 	public RiskanalysisPackage getRiskanalysisPackage() {
 		return (RiskanalysisPackage)getEPackage();
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskanalysisPackageImpl.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskanalysisPackageImpl.java
index 6f96ada..ed535b5 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskanalysisPackageImpl.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/impl/RiskanalysisPackageImpl.java
@@ -24,11 +24,15 @@
 import org.eclipse.papyrus.robotics.profile.robotics.behavior.BehaviorPackage;
 import org.eclipse.papyrus.robotics.profile.robotics.roboticsPackage;
 import org.eclipse.papyrus.robotics.profile.robotics.skills.SkillsPackage;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.BodyRegion;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysisContext;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.HazardType;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.OccurenceEstimation;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskEstimation;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskIndex;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisFactory;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage;
 
@@ -55,6 +59,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass riskReductionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass hazardAnalysisContextEClass = null;
 
 	/**
@@ -79,6 +90,27 @@
 	private EEnum riskIndexEEnum = null;
 
 	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum hazardTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum riskLevelEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum bodyRegionEEnum = null;
+
+	/**
 	 * Creates an instance of the model <b>Package</b>, registered with
 	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
@@ -282,7 +314,7 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getHazardAnalysis_Initial_RiskReduction() {
+	public EAttribute getHazardAnalysis_Final_Occurence() {
 		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(12);
 	}
 
@@ -292,7 +324,7 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getHazardAnalysis_Final_Occurence() {
+	public EAttribute getHazardAnalysis_Final_Avoidance() {
 		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(13);
 	}
 
@@ -302,7 +334,7 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getHazardAnalysis_Final_Avoidance() {
+	public EAttribute getHazardAnalysis_Final_Frequency() {
 		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(14);
 	}
 
@@ -312,7 +344,7 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getHazardAnalysis_Final_Frequency() {
+	public EAttribute getHazardAnalysis_Final_Severity() {
 		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(15);
 	}
 
@@ -322,7 +354,7 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getHazardAnalysis_Final_Severity() {
+	public EAttribute getHazardAnalysis_Final_Criticality() {
 		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(16);
 	}
 
@@ -332,8 +364,8 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getHazardAnalysis_Final_Criticality() {
-		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(17);
+	public EClass getRiskReduction() {
+		return riskReductionEClass;
 	}
 
 	/**
@@ -342,8 +374,28 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getHazardAnalysis_Final_RiskReduction() {
-		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(18);
+	public EAttribute getRiskReduction_Description() {
+		return (EAttribute)riskReductionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getRiskReduction_Base_Class() {
+		return (EReference)riskReductionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getRiskReduction_Base_Property() {
+		return (EReference)riskReductionEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -353,7 +405,107 @@
 	 */
 	@Override
 	public EReference getHazardAnalysis_Base_Property() {
-		return (EReference)hazardAnalysisEClass.getEStructuralFeatures().get(19);
+		return (EReference)hazardAnalysisEClass.getEStructuralFeatures().get(17);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getHazardAnalysis_Hazard() {
+		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(18);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getHazardAnalysis_Initial_RiskLevel() {
+		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(19);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getHazardAnalysis_Final_RiskLevel() {
+		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(20);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getHazardAnalysis_ContactAera() {
+		return (EAttribute)hazardAnalysisEClass.getEStructuralFeatures().get(21);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getHazardAnalysis_Initial_DesignRiskReduction() {
+		return (EReference)hazardAnalysisEClass.getEStructuralFeatures().get(22);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getHazardAnalysis_Final_DesignRiskReduction() {
+		return (EReference)hazardAnalysisEClass.getEStructuralFeatures().get(23);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getHazardAnalysis_Initial_TechnicalRiskReduction() {
+		return (EReference)hazardAnalysisEClass.getEStructuralFeatures().get(24);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getHazardAnalysis_Final_TechnicalRiskReduction() {
+		return (EReference)hazardAnalysisEClass.getEStructuralFeatures().get(25);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getHazardAnalysis_Initial_OrganizationalRiskReduction() {
+		return (EReference)hazardAnalysisEClass.getEStructuralFeatures().get(26);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getHazardAnalysis_Final_OrganizationalRiskReduction() {
+		return (EReference)hazardAnalysisEClass.getEStructuralFeatures().get(27);
 	}
 
 	/**
@@ -432,6 +584,36 @@
 	 * @generated
 	 */
 	@Override
+	public EEnum getHazardType() {
+		return hazardTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EEnum getRiskLevel() {
+		return riskLevelEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EEnum getBodyRegion() {
+		return bodyRegionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public RiskanalysisFactory getRiskanalysisFactory() {
 		return (RiskanalysisFactory)getEFactoryInstance();
 	}
@@ -468,14 +650,27 @@
 		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__INITIAL_FREQUENCY);
 		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__INITIAL_SEVERITY);
 		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__INITIAL_CRITICALITY);
-		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__INITIAL_RISK_REDUCTION);
 		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_OCCURENCE);
 		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_AVOIDANCE);
 		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_FREQUENCY);
 		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_SEVERITY);
 		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_CRITICALITY);
-		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_RISK_REDUCTION);
 		createEReference(hazardAnalysisEClass, HAZARD_ANALYSIS__BASE_PROPERTY);
+		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__HAZARD);
+		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__INITIAL_RISK_LEVEL);
+		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_RISK_LEVEL);
+		createEAttribute(hazardAnalysisEClass, HAZARD_ANALYSIS__CONTACT_AERA);
+		createEReference(hazardAnalysisEClass, HAZARD_ANALYSIS__INITIAL_DESIGN_RISK_REDUCTION);
+		createEReference(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_DESIGN_RISK_REDUCTION);
+		createEReference(hazardAnalysisEClass, HAZARD_ANALYSIS__INITIAL_TECHNICAL_RISK_REDUCTION);
+		createEReference(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_TECHNICAL_RISK_REDUCTION);
+		createEReference(hazardAnalysisEClass, HAZARD_ANALYSIS__INITIAL_ORGANIZATIONAL_RISK_REDUCTION);
+		createEReference(hazardAnalysisEClass, HAZARD_ANALYSIS__FINAL_ORGANIZATIONAL_RISK_REDUCTION);
+
+		riskReductionEClass = createEClass(RISK_REDUCTION);
+		createEAttribute(riskReductionEClass, RISK_REDUCTION__DESCRIPTION);
+		createEReference(riskReductionEClass, RISK_REDUCTION__BASE_CLASS);
+		createEReference(riskReductionEClass, RISK_REDUCTION__BASE_PROPERTY);
 
 		hazardAnalysisContextEClass = createEClass(HAZARD_ANALYSIS_CONTEXT);
 		createEReference(hazardAnalysisContextEClass, HAZARD_ANALYSIS_CONTEXT__HAZARDANALYSIS);
@@ -486,6 +681,9 @@
 		occurenceEstimationEEnum = createEEnum(OCCURENCE_ESTIMATION);
 		riskEstimationEEnum = createEEnum(RISK_ESTIMATION);
 		riskIndexEEnum = createEEnum(RISK_INDEX);
+		hazardTypeEEnum = createEEnum(HAZARD_TYPE);
+		riskLevelEEnum = createEEnum(RISK_LEVEL);
+		bodyRegionEEnum = createEEnum(BODY_REGION);
 	}
 
 	/**
@@ -540,14 +738,27 @@
 		initEAttribute(getHazardAnalysis_Initial_Frequency(), this.getRiskEstimation(), "Initial_Frequency", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getHazardAnalysis_Initial_Severity(), this.getRiskEstimation(), "Initial_Severity", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getHazardAnalysis_Initial_Criticality(), this.getRiskIndex(), "Initial_Criticality", null, 1, 1, HazardAnalysis.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getHazardAnalysis_Initial_RiskReduction(), theTypesPackage.getString(), "Initial_RiskReduction", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getHazardAnalysis_Final_Occurence(), this.getOccurenceEstimation(), "Final_Occurence", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getHazardAnalysis_Final_Avoidance(), this.getRiskEstimation(), "Final_Avoidance", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getHazardAnalysis_Final_Frequency(), this.getRiskEstimation(), "Final_Frequency", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getHazardAnalysis_Final_Severity(), this.getRiskEstimation(), "Final_Severity", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getHazardAnalysis_Final_Criticality(), this.getRiskIndex(), "Final_Criticality", null, 1, 1, HazardAnalysis.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getHazardAnalysis_Final_RiskReduction(), theTypesPackage.getString(), "Final_RiskReduction", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEReference(getHazardAnalysis_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 0, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getHazardAnalysis_Hazard(), this.getHazardType(), "Hazard", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getHazardAnalysis_Initial_RiskLevel(), this.getRiskLevel(), "Initial_RiskLevel", null, 1, 1, HazardAnalysis.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getHazardAnalysis_Final_RiskLevel(), this.getRiskLevel(), "Final_RiskLevel", null, 1, 1, HazardAnalysis.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getHazardAnalysis_ContactAera(), this.getBodyRegion(), "ContactAera", null, 1, 1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getHazardAnalysis_Initial_DesignRiskReduction(), this.getRiskReduction(), null, "Initial_DesignRiskReduction", null, 0, -1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getHazardAnalysis_Final_DesignRiskReduction(), this.getRiskReduction(), null, "Final_DesignRiskReduction", null, 0, -1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getHazardAnalysis_Initial_TechnicalRiskReduction(), this.getRiskReduction(), null, "Initial_TechnicalRiskReduction", null, 0, -1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getHazardAnalysis_Final_TechnicalRiskReduction(), this.getRiskReduction(), null, "Final_TechnicalRiskReduction", null, 0, -1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getHazardAnalysis_Initial_OrganizationalRiskReduction(), this.getRiskReduction(), null, "Initial_OrganizationalRiskReduction", null, 0, -1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getHazardAnalysis_Final_OrganizationalRiskReduction(), this.getRiskReduction(), null, "Final_OrganizationalRiskReduction", null, 0, -1, HazardAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(riskReductionEClass, RiskReduction.class, "RiskReduction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getRiskReduction_Description(), theTypesPackage.getString(), "Description", null, 1, 1, RiskReduction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getRiskReduction_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 0, 1, RiskReduction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getRiskReduction_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 0, 1, RiskReduction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(hazardAnalysisContextEClass, HazardAnalysisContext.class, "HazardAnalysisContext", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getHazardAnalysisContext_Hazardanalysis(), this.getHazardAnalysis(), null, "hazardanalysis", null, 0, -1, HazardAnalysisContext.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
@@ -572,6 +783,40 @@
 		addEEnumLiteral(riskIndexEEnum, RiskIndex._5);
 		addEEnumLiteral(riskIndexEEnum, RiskIndex._6);
 
+		initEEnum(hazardTypeEEnum, HazardType.class, "HazardType");
+		addEEnumLiteral(hazardTypeEEnum, HazardType.MECHANICAL);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.ELECTRICAL);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.NOISE);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.VIBRATION);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.RADIATION);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.MATERIAL_SUBSTANCE);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.ERGONOMIC);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.ENVIRONMENT_WORKSPACE);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.COMBINATION);
+		addEEnumLiteral(hazardTypeEEnum, HazardType.OTHER);
+
+		initEEnum(riskLevelEEnum, RiskLevel.class, "RiskLevel");
+		addEEnumLiteral(riskLevelEEnum, RiskLevel.NEGLIGIBLE_RISK);
+		addEEnumLiteral(riskLevelEEnum, RiskLevel.VERY_LOW_RISK);
+		addEEnumLiteral(riskLevelEEnum, RiskLevel.LOW_RISK);
+		addEEnumLiteral(riskLevelEEnum, RiskLevel.SIGNIFICANT_RISK);
+		addEEnumLiteral(riskLevelEEnum, RiskLevel.HIGH_RISK);
+		addEEnumLiteral(riskLevelEEnum, RiskLevel.VERY_HIGH_RISK);
+
+		initEEnum(bodyRegionEEnum, BodyRegion.class, "BodyRegion");
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.SKULL_FOREHEAD);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.FACE);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.NECK);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.BAC_KSHOULDERS);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.CHEST);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.ABDOMEN);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.PELVIS);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.UPPER_ARMS_ELBOW_JOINTS);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.LOWER_ARMS_WRIST_JOINTS);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.HANDS_FINGERS);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.THIGHS_KNEES);
+		addEEnumLiteral(bodyRegionEEnum, BodyRegion.LOWER_LEGS);
+
 		// Create resource
 		createResource(eNS_URI);
 
@@ -660,6 +905,18 @@
 		   new String[] {
 			   "originalName", "6"
 		   });
+		addAnnotation
+		  (hazardTypeEEnum.getELiterals().get(5),
+		   source,
+		   new String[] {
+			   "originalName", "Material/Substance"
+		   });
+		addAnnotation
+		  (hazardTypeEEnum.getELiterals().get(7),
+		   source,
+		   new String[] {
+			   "originalName", "Environment/Workspace"
+		   });
 	}
 
 } //RiskanalysisPackageImpl
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/util/RiskanalysisAdapterFactory.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/util/RiskanalysisAdapterFactory.java
index 643a14e..664f388 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/util/RiskanalysisAdapterFactory.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/util/RiskanalysisAdapterFactory.java
@@ -83,6 +83,10 @@
 				return createHazardAnalysisAdapter();
 			}
 			@Override
+			public Adapter caseRiskReduction(RiskReduction object) {
+				return createRiskReductionAdapter();
+			}
+			@Override
 			public Adapter caseHazardAnalysisContext(HazardAnalysisContext object) {
 				return createHazardAnalysisContextAdapter();
 			}
@@ -129,6 +133,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction <em>Risk Reduction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction
+	 * @generated
+	 */
+	public Adapter createRiskReductionAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysisContext <em>Hazard Analysis Context</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/util/RiskanalysisSwitch.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/util/RiskanalysisSwitch.java
index c69bb37..c7208cb 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/util/RiskanalysisSwitch.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src-gen/org/eclipse/papyrus/robotics/safety/riskanalysis/util/RiskanalysisSwitch.java
@@ -85,6 +85,12 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case RiskanalysisPackage.RISK_REDUCTION: {
+				RiskReduction riskReduction = (RiskReduction)theEObject;
+				T result = caseRiskReduction(riskReduction);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case RiskanalysisPackage.HAZARD_ANALYSIS_CONTEXT: {
 				HazardAnalysisContext hazardAnalysisContext = (HazardAnalysisContext)theEObject;
 				T result = caseHazardAnalysisContext(hazardAnalysisContext);
@@ -112,6 +118,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Risk Reduction</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Risk Reduction</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseRiskReduction(RiskReduction object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Hazard Analysis Context</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src/org/eclipse/papyrus/robotics/safety/riskanalysis/custom/CustomHazardAnalysis.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src/org/eclipse/papyrus/robotics/safety/riskanalysis/custom/CustomHazardAnalysis.java
index 4c73593..5d4b169 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src/org/eclipse/papyrus/robotics/safety/riskanalysis/custom/CustomHazardAnalysis.java
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.profile/src/org/eclipse/papyrus/robotics/safety/riskanalysis/custom/CustomHazardAnalysis.java
@@ -13,6 +13,7 @@
 
 
 import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskIndex;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskLevel;
 import org.eclipse.papyrus.robotics.safety.riskanalysis.impl.HazardAnalysisImpl;
 
 public class CustomHazardAnalysis extends HazardAnalysisImpl {
@@ -96,5 +97,37 @@
 		return null;
 	}
 	
-
+	/*
+	 
+	 * 
+	 * (non-Javadoc)
+	 */	
+	@Override
+	public RiskLevel getInitial_RiskLevel() {
+		Integer riskIndex= getInitial_Criticality().getValue();
+		if(riskIndex.intValue()==1) {return RiskLevel.NEGLIGIBLE_RISK;}
+		else if (riskIndex.intValue()==2) {return RiskLevel.VERY_LOW_RISK;}
+		else if (riskIndex.intValue()==3) {return RiskLevel.LOW_RISK;}
+		else if (riskIndex.intValue()==4) {return RiskLevel.SIGNIFICANT_RISK;}
+		else if (riskIndex.intValue()==5) {return RiskLevel.HIGH_RISK;}
+		else if (riskIndex.intValue()==6) {return RiskLevel.VERY_HIGH_RISK;}
+		return RiskLevel.NEGLIGIBLE_RISK;
+	}
+	
+	/*
+	 
+	 * 
+	 * (non-Javadoc)
+	 */	
+	@Override
+	public RiskLevel getFinal_RiskLevel() {
+		Integer riskIndex= getFinal_Criticality().getValue();
+		if(riskIndex.intValue()==1) {return RiskLevel.NEGLIGIBLE_RISK;}
+		else if (riskIndex.intValue()==2) {return RiskLevel.VERY_LOW_RISK;}
+		else if (riskIndex.intValue()==3) {return RiskLevel.LOW_RISK;}
+		else if (riskIndex.intValue()==4) {return RiskLevel.SIGNIFICANT_RISK;}
+		else if (riskIndex.intValue()==5) {return RiskLevel.HIGH_RISK;}
+		else if (riskIndex.intValue()==6) {return RiskLevel.VERY_HIGH_RISK;}
+		return RiskLevel.NEGLIGIBLE_RISK;
+	}
 }
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.classpath b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.classpath
new file mode 100644
index 0000000..e801ebf
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.project b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.project
new file mode 100644
index 0000000..93fcb05
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.robotics.safety.riskanalysis.property</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.settings/org.eclipse.jdt.core.prefs b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c9545f0
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/META-INF/MANIFEST.MF b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..e5cc343
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.robotics.safety.riskanalysis.property;singleton:=true
+Bundle-Version: 0.8.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.robotics.safety.riskanalysis.property.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.properties,
+ org.eclipse.papyrus.views.properties;bundle-version="4.0.0",
+ org.eclipse.papyrus.robotics.safety.riskanalysis.profile;bundle-version="0.8.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Automatic-Module-Name: org.eclipse.papyrus.robotics.safety.riskanalysis.property
+Bundle-Localization: plugin
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/build.properties b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/build.properties
new file mode 100644
index 0000000..ab573a2
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               properties/,\
+               plugin.properties
+
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/plugin.properties b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/plugin.properties
new file mode 100644
index 0000000..53d95ff
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = Papyrus Robotics property for Task-Based Risk Analysis
+providerName = CEA LIST
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/plugin.xml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/plugin.xml
new file mode 100644
index 0000000..3bed98b
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.papyrus.infra.properties.contexts">
+      <context
+            contextModel="properties/TaskBasedRiskAnalysis.ctx"
+            isCustomizable="true">
+      </context>
+   </extension>
+
+</plugin>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/pom.xml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/pom.xml
new file mode 100644
index 0000000..83024b8
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/pom.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
+		<groupId>org.eclipse.papyrus.robotics</groupId>
+		<version>0.8.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.property</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<description>This module contains the property description for Task-Based Risk Analysis in Papyrus Robotics.</description>
+</project>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/TaskBasedRiskAnalysis.ctx b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/TaskBasedRiskAnalysis.ctx
new file mode 100644
index 0000000..bb2d223
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/TaskBasedRiskAnalysis.ctx
@@ -0,0 +1,488 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:constraints="http://www.eclipse.org/papyrus/constraints/0.9" xmlns:contexts="http://www.eclipse.org/papyrus/properties/contexts/0.9">
+  <contexts:Context xmi:id="_C4V0UBRAEeu0R6u-xFcX1w" name="TaskBasedRiskAnalysis">
+    <dependencies href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_69QJkKDJEeSZxfCXzZz3-w"/>
+    <tabs xmi:id="_LpikMBRAEeu0R6u-xFcX1w" label="TaskBasedRiskAnalysis" id="taskbasedriskanalysis" priority="100">
+      <sections xmi:id="_Lpp48BRAEeu0R6u-xFcX1w" name="Single HazardAnalysis" sectionFile="ui/SingleHazardAnalysis.xwt">
+        <widget href="ui/SingleHazardAnalysis.xwt#/"/>
+      </sections>
+      <sections xmi:id="_LprHEBRAEeu0R6u-xFcX1w" name="Multiple HazardAnalysis" sectionFile="ui/MultipleHazardAnalysis.xwt">
+        <widget href="ui/MultipleHazardAnalysis.xwt#/"/>
+      </sections>
+      <sections xmi:id="_LprHERRAEeu0R6u-xFcX1w" name="Single HazardAnalysisContext" sectionFile="ui/SingleHazardAnalysisContext.xwt">
+        <widget href="ui/SingleHazardAnalysisContext.xwt#/"/>
+      </sections>
+      <sections xmi:id="_LpruIBRAEeu0R6u-xFcX1w" name="Multiple HazardAnalysisContext" sectionFile="ui/MultipleHazardAnalysisContext.xwt">
+        <widget href="ui/MultipleHazardAnalysisContext.xwt#/"/>
+      </sections>
+      <sections xmi:id="_LpruIRRAEeu0R6u-xFcX1w" name="Single RiskReduction" sectionFile="ui/SingleRiskReduction.xwt">
+        <widget href="ui/SingleRiskReduction.xwt#/"/>
+      </sections>
+      <sections xmi:id="_LpruIhRAEeu0R6u-xFcX1w" name="Multiple RiskReduction" sectionFile="ui/MultipleRiskReduction.xwt">
+        <widget href="ui/MultipleRiskReduction.xwt#/"/>
+      </sections>
+    </tabs>
+    <views xmi:id="_C4V0URRAEeu0R6u-xFcX1w" name="Single HazardAnalysis" sections="_Lpp48BRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V0ZxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0UhRAEeu0R6u-xFcX1w" name="isSingleHazardAnalysis">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0UxRAEeu0R6u-xFcX1w" name="stereotypeName" value="TaskBasedRiskAnalysis::HazardAnalysis"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0VBRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple HazardAnalysis" sections="_LprHEBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V0ZxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0VRRAEeu0R6u-xFcX1w" name="isMultipleHazardAnalysis">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0VhRAEeu0R6u-xFcX1w" name="stereotypeName" value="TaskBasedRiskAnalysis::HazardAnalysis"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0VxRAEeu0R6u-xFcX1w" name="Single HazardAnalysisContext" sections="_LprHERRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V0ZBRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0WBRAEeu0R6u-xFcX1w" name="isSingleHazardAnalysisContext">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0WRRAEeu0R6u-xFcX1w" name="stereotypeName" value="TaskBasedRiskAnalysis::HazardAnalysisContext"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0WhRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple HazardAnalysisContext" sections="_LpruIBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V0ZBRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0WxRAEeu0R6u-xFcX1w" name="isMultipleHazardAnalysisContext">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0XBRAEeu0R6u-xFcX1w" name="stereotypeName" value="TaskBasedRiskAnalysis::HazardAnalysisContext"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0XRRAEeu0R6u-xFcX1w" name="Single RiskReduction" sections="_LpruIRRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V0ghRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0XhRAEeu0R6u-xFcX1w" name="isSingleRiskReduction">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0XxRAEeu0R6u-xFcX1w" name="stereotypeName" value="TaskBasedRiskAnalysis::RiskReduction"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0YBRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple RiskReduction" sections="_LpruIhRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V0ghRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0YRRAEeu0R6u-xFcX1w" name="isMultipleRiskReduction">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0YhRAEeu0R6u-xFcX1w" name="stereotypeName" value="TaskBasedRiskAnalysis::RiskReduction"/>
+      </constraints>
+    </views>
+    <dataContexts xmi:id="_C4V0YxRAEeu0R6u-xFcX1w" name="TaskBasedRiskAnalysis">
+      <elements xmi:id="_C4V0ZBRAEeu0R6u-xFcX1w" name="HazardAnalysisContext">
+        <properties xmi:id="_C4V0ZRRAEeu0R6u-xFcX1w" name="hazardanalysis" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V0ZhRAEeu0R6u-xFcX1w" name="task" type="Reference"/>
+        <supertypes href="#_C4V09RRAEeu0R6u-xFcX1w"/>
+        <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690ybKDJEeSZxfCXzZz3-w"/>
+      </elements>
+      <elements xmi:id="_C4V0ZxRAEeu0R6u-xFcX1w" name="HazardAnalysis">
+        <properties xmi:id="_C4V0aBRAEeu0R6u-xFcX1w" name="Skill" type="Reference"/>
+        <properties xmi:id="_C4V0aRRAEeu0R6u-xFcX1w" name="Origin"/>
+        <properties xmi:id="_C4V0ahRAEeu0R6u-xFcX1w" name="HazardousSituation"/>
+        <properties xmi:id="_C4V0axRAEeu0R6u-xFcX1w" name="HazardousEvent"/>
+        <properties xmi:id="_C4V0bBRAEeu0R6u-xFcX1w" name="PossibleHarm"/>
+        <properties xmi:id="_C4V0bRRAEeu0R6u-xFcX1w" name="Comment"/>
+        <properties xmi:id="_C4V0bhRAEeu0R6u-xFcX1w" name="Initial_Occurence" type="Enumeration"/>
+        <properties xmi:id="_C4V0bxRAEeu0R6u-xFcX1w" name="Initial_Avoidance" type="Enumeration"/>
+        <properties xmi:id="_C4V0cBRAEeu0R6u-xFcX1w" name="Initial_Frequency" type="Enumeration"/>
+        <properties xmi:id="_C4V0cRRAEeu0R6u-xFcX1w" name="Initial_Severity" type="Enumeration"/>
+        <properties xmi:id="_C4V0chRAEeu0R6u-xFcX1w" name="Initial_Criticality" type="Enumeration"/>
+        <properties xmi:id="_C4V0cxRAEeu0R6u-xFcX1w" name="Final_Occurence" type="Enumeration"/>
+        <properties xmi:id="_C4V0dBRAEeu0R6u-xFcX1w" name="Final_Avoidance" type="Enumeration"/>
+        <properties xmi:id="_C4V0dRRAEeu0R6u-xFcX1w" name="Final_Frequency" type="Enumeration"/>
+        <properties xmi:id="_C4V0dhRAEeu0R6u-xFcX1w" name="Final_Severity" type="Enumeration"/>
+        <properties xmi:id="_C4V0dxRAEeu0R6u-xFcX1w" name="Final_Criticality" type="Enumeration"/>
+        <properties xmi:id="_C4V0eBRAEeu0R6u-xFcX1w" name="Hazard" type="Enumeration"/>
+        <properties xmi:id="_C4V0eRRAEeu0R6u-xFcX1w" name="Initial_RiskLevel" type="Enumeration"/>
+        <properties xmi:id="_C4V0ehRAEeu0R6u-xFcX1w" name="Final_RiskLevel" type="Enumeration"/>
+        <properties xmi:id="_C4V0exRAEeu0R6u-xFcX1w" name="ContactAera" type="Enumeration"/>
+        <properties xmi:id="_C4V0fBRAEeu0R6u-xFcX1w" name="Initial_DesignRiskReduction" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V0fRRAEeu0R6u-xFcX1w" name="Final_DesignRiskReduction" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V0fhRAEeu0R6u-xFcX1w" name="Initial_TechnicalRiskReduction" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V0fxRAEeu0R6u-xFcX1w" name="Final_TechnicalRiskReduction" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V0gBRAEeu0R6u-xFcX1w" name="Initial_OrganizationalRiskReduction" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V0gRRAEeu0R6u-xFcX1w" name="Final_OrganizationalRiskReduction" type="Reference" multiplicity="-1"/>
+        <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yG6DJEeSZxfCXzZz3-w"/>
+        <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yQKDJEeSZxfCXzZz3-w"/>
+        <supertypes href="#_C4V1AhRAEeu0R6u-xFcX1w"/>
+      </elements>
+      <elements xmi:id="_C4V0ghRAEeu0R6u-xFcX1w" name="RiskReduction">
+        <properties xmi:id="_C4V0gxRAEeu0R6u-xFcX1w" name="Description"/>
+        <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yXqDJEeSZxfCXzZz3-w"/>
+      </elements>
+      <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.2"/>
+    </dataContexts>
+  </contexts:Context>
+  <contexts:Context xmi:id="_C4V0hBRAEeu0R6u-xFcX1w" name="bpc">
+    <dependencies href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_69QJkKDJEeSZxfCXzZz3-w"/>
+    <tabs xmi:id="_L42ykBRAEeu0R6u-xFcX1w" label="bpc" id="bpc" priority="100">
+      <sections xmi:id="_L42ykRRAEeu0R6u-xFcX1w" name="Single Connector" sectionFile="ui/SingleConnector.xwt">
+        <widget href="ui/SingleConnector.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L43ZoBRAEeu0R6u-xFcX1w" name="Multiple Connector" sectionFile="ui/MultipleConnector.xwt">
+        <widget href="ui/MultipleConnector.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L43ZoRRAEeu0R6u-xFcX1w" name="Single Entity" sectionFile="ui/SingleEntity.xwt">
+        <widget href="ui/SingleEntity.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L43ZohRAEeu0R6u-xFcX1w" name="Multiple Entity" sectionFile="ui/MultipleEntity.xwt">
+        <widget href="ui/MultipleEntity.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L43ZoxRAEeu0R6u-xFcX1w" name="Single Connects" sectionFile="ui/SingleConnects.xwt">
+        <widget href="ui/SingleConnects.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L44AsBRAEeu0R6u-xFcX1w" name="Multiple Connects" sectionFile="ui/MultipleConnects.xwt">
+        <widget href="ui/MultipleConnects.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L44nwBRAEeu0R6u-xFcX1w" name="Single Relation" sectionFile="ui/SingleRelation.xwt">
+        <widget href="ui/SingleRelation.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L44nwRRAEeu0R6u-xFcX1w" name="Multiple Relation" sectionFile="ui/MultipleRelation.xwt">
+        <widget href="ui/MultipleRelation.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L45O0BRAEeu0R6u-xFcX1w" name="Single Block" sectionFile="ui/SingleBlock.xwt">
+        <widget href="ui/SingleBlock.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L45O0RRAEeu0R6u-xFcX1w" name="Multiple Block" sectionFile="ui/MultipleBlock.xwt">
+        <widget href="ui/MultipleBlock.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L45O0hRAEeu0R6u-xFcX1w" name="Single Contains" sectionFile="ui/SingleContains.xwt">
+        <widget href="ui/SingleContains.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L4514BRAEeu0R6u-xFcX1w" name="Multiple Contains" sectionFile="ui/MultipleContains.xwt">
+        <widget href="ui/MultipleContains.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L4514RRAEeu0R6u-xFcX1w" name="Single Instance_of" sectionFile="ui/SingleInstance_of.xwt">
+        <widget href="ui/SingleInstance_of.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L4514hRAEeu0R6u-xFcX1w" name="Multiple Instance_of" sectionFile="ui/MultipleInstance_of.xwt">
+        <widget href="ui/MultipleInstance_of.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L4514xRAEeu0R6u-xFcX1w" name="Single Collection" sectionFile="ui/SingleCollection.xwt">
+        <widget href="ui/SingleCollection.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L46c8BRAEeu0R6u-xFcX1w" name="Multiple Collection" sectionFile="ui/MultipleCollection.xwt">
+        <widget href="ui/MultipleCollection.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L46c8RRAEeu0R6u-xFcX1w" name="Single Dock" sectionFile="ui/SingleDock.xwt">
+        <widget href="ui/SingleDock.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L46c8hRAEeu0R6u-xFcX1w" name="Multiple Dock" sectionFile="ui/MultipleDock.xwt">
+        <widget href="ui/MultipleDock.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L46c8xRAEeu0R6u-xFcX1w" name="Single Port" sectionFile="ui/SinglePort.xwt">
+        <widget href="ui/SinglePort.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L46c9BRAEeu0R6u-xFcX1w" name="Multiple Port" sectionFile="ui/MultiplePort.xwt">
+        <widget href="ui/MultiplePort.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L46c9RRAEeu0R6u-xFcX1w" name="Single IdMetaData" sectionFile="ui/SingleIdMetaData.xwt">
+        <widget href="ui/SingleIdMetaData.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L46c9hRAEeu0R6u-xFcX1w" name="Multiple IdMetaData" sectionFile="ui/MultipleIdMetaData.xwt">
+        <widget href="ui/MultipleIdMetaData.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47EABRAEeu0R6u-xFcX1w" name="Single Conforms_to" sectionFile="ui/SingleConforms_to.xwt">
+        <widget href="ui/SingleConforms_to.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47EARRAEeu0R6u-xFcX1w" name="Multiple Conforms_to" sectionFile="ui/MultipleConforms_to.xwt">
+        <widget href="ui/MultipleConforms_to.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47EAhRAEeu0R6u-xFcX1w" name="Single ReificationMetaData" sectionFile="ui/SingleReificationMetaData.xwt">
+        <widget href="ui/SingleReificationMetaData.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47EAxRAEeu0R6u-xFcX1w" name="Multiple ReificationMetaData" sectionFile="ui/MultipleReificationMetaData.xwt">
+        <widget href="ui/MultipleReificationMetaData.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47EBBRAEeu0R6u-xFcX1w" name="Single Is_a" sectionFile="ui/SingleIs_a.xwt">
+        <widget href="ui/SingleIs_a.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47rEBRAEeu0R6u-xFcX1w" name="Multiple Is_a" sectionFile="ui/MultipleIs_a.xwt">
+        <widget href="ui/MultipleIs_a.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47rERRAEeu0R6u-xFcX1w" name="Single VersionMetaData" sectionFile="ui/SingleVersionMetaData.xwt">
+        <widget href="ui/SingleVersionMetaData.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47rEhRAEeu0R6u-xFcX1w" name="Multiple VersionMetaData" sectionFile="ui/MultipleVersionMetaData.xwt">
+        <widget href="ui/MultipleVersionMetaData.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L47rExRAEeu0R6u-xFcX1w" name="Single Has_a" sectionFile="ui/SingleHas_a.xwt">
+        <widget href="ui/SingleHas_a.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L48SIBRAEeu0R6u-xFcX1w" name="Multiple Has_a" sectionFile="ui/MultipleHas_a.xwt">
+        <widget href="ui/MultipleHas_a.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L48SIRRAEeu0R6u-xFcX1w" name="Single Constraints" sectionFile="ui/SingleConstraints.xwt">
+        <widget href="ui/SingleConstraints.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L48SIhRAEeu0R6u-xFcX1w" name="Multiple Constraints" sectionFile="ui/MultipleConstraints.xwt">
+        <widget href="ui/MultipleConstraints.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L48SIxRAEeu0R6u-xFcX1w" name="Single Property" sectionFile="ui/SingleProperty.xwt">
+        <widget href="ui/SingleProperty.xwt#/"/>
+      </sections>
+      <sections xmi:id="_L48SJBRAEeu0R6u-xFcX1w" name="Multiple Property" sectionFile="ui/MultipleProperty.xwt">
+        <widget href="ui/MultipleProperty.xwt#/"/>
+      </sections>
+    </tabs>
+    <views xmi:id="_C4V0hRRAEeu0R6u-xFcX1w" name="Single Connector" sections="_L42ykRRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1AxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0hhRAEeu0R6u-xFcX1w" name="isSingleConnector">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0hxRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Connector"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0iBRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Connector" sections="_L43ZoBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1AxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0iRRAEeu0R6u-xFcX1w" name="isMultipleConnector">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0ihRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Connector"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0ixRAEeu0R6u-xFcX1w" name="Single Entity" sections="_L43ZoRRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V09RRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0jBRAEeu0R6u-xFcX1w" name="isSingleEntity">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0jRRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Entity"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0jhRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Entity" sections="_L43ZohRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V09RRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0jxRAEeu0R6u-xFcX1w" name="isMultipleEntity">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0kBRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Entity"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0kRRAEeu0R6u-xFcX1w" name="Single Connects" sections="_L43ZoxRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1BRRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0khRAEeu0R6u-xFcX1w" name="isSingleConnects">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0kxRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Connects"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0lBRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Connects" sections="_L44AsBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1BRRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0lRRAEeu0R6u-xFcX1w" name="isMultipleConnects">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0lhRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Connects"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0lxRAEeu0R6u-xFcX1w" name="Single Relation" sections="_L44nwBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1ExRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0mBRAEeu0R6u-xFcX1w" name="isSingleRelation">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0mRRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Relation"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0mhRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Relation" sections="_L44nwRRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1ExRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0mxRAEeu0R6u-xFcX1w" name="isMultipleRelation">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0nBRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Relation"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0nRRAEeu0R6u-xFcX1w" name="Single Block" sections="_L45O0BRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1FRRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0nhRAEeu0R6u-xFcX1w" name="isSingleBlock">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0nxRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Block"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0oBRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Block" sections="_L45O0RRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1FRRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0oRRAEeu0R6u-xFcX1w" name="isMultipleBlock">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0ohRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Block"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0oxRAEeu0R6u-xFcX1w" name="Single Contains" sections="_L45O0hRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1BhRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0pBRAEeu0R6u-xFcX1w" name="isSingleContains">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0pRRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Contains"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0phRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Contains" sections="_L4514BRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1BhRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0pxRAEeu0R6u-xFcX1w" name="isMultipleContains">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0qBRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Contains"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0qRRAEeu0R6u-xFcX1w" name="Single Instance_of" sections="_L4514RRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V08xRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0qhRAEeu0R6u-xFcX1w" name="isSingleInstance_of">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0qxRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Instance_of"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0rBRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Instance_of" sections="_L4514hRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V08xRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0rRRAEeu0R6u-xFcX1w" name="isMultipleInstance_of">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0rhRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Instance_of"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0rxRAEeu0R6u-xFcX1w" name="Single Collection" sections="_L4514xRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1CBRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0sBRAEeu0R6u-xFcX1w" name="isSingleCollection">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0sRRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Collection"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0shRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Collection" sections="_L46c8BRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1CBRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0sxRAEeu0R6u-xFcX1w" name="isMultipleCollection">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0tBRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Collection"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0tRRAEeu0R6u-xFcX1w" name="Single Dock" sections="_L46c8RRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V08hRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0thRAEeu0R6u-xFcX1w" name="isSingleDock">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0txRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Dock"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0uBRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Dock" sections="_L46c8hRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V08hRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0uRRAEeu0R6u-xFcX1w" name="isMultipleDock">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0uhRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Dock"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0uxRAEeu0R6u-xFcX1w" name="Single Port" sections="_L46c8xRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1BBRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0vBRAEeu0R6u-xFcX1w" name="isSinglePort">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0vRRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Port"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0vhRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Port" sections="_L46c9BRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1BBRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0vxRAEeu0R6u-xFcX1w" name="isMultiplePort">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0wBRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Port"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0wRRAEeu0R6u-xFcX1w" name="Single IdMetaData" sections="_L46c9RRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V0_RRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0whRAEeu0R6u-xFcX1w" name="isSingleIdMetaData">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0wxRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::IdMetaData"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0xBRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple IdMetaData" sections="_L46c9hRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V0_RRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0xRRAEeu0R6u-xFcX1w" name="isMultipleIdMetaData">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0xhRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::IdMetaData"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0xxRAEeu0R6u-xFcX1w" name="Single Conforms_to" sections="_L47EABRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1DxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0yBRAEeu0R6u-xFcX1w" name="isSingleConforms_to">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0yRRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Conforms_to"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0yhRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Conforms_to" sections="_L47EARRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1DxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0yxRAEeu0R6u-xFcX1w" name="isMultipleConforms_to">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0zBRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Conforms_to"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V0zRRAEeu0R6u-xFcX1w" name="Single ReificationMetaData" sections="_L47EAhRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1CxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V0zhRAEeu0R6u-xFcX1w" name="isSingleReificationMetaData">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V0zxRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::ReificationMetaData"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V00BRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple ReificationMetaData" sections="_L47EAxRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1CxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V00RRAEeu0R6u-xFcX1w" name="isMultipleReificationMetaData">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V00hRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::ReificationMetaData"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V00xRAEeu0R6u-xFcX1w" name="Single Is_a" sections="_L47EBBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1BxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V01BRAEeu0R6u-xFcX1w" name="isSingleIs_a">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V01RRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Is_a"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V01hRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Is_a" sections="_L47rEBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1BxRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V01xRAEeu0R6u-xFcX1w" name="isMultipleIs_a">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V02BRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Is_a"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V02RRAEeu0R6u-xFcX1w" name="Single VersionMetaData" sections="_L47rERRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1EBRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V02hRAEeu0R6u-xFcX1w" name="isSingleVersionMetaData">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V02xRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::VersionMetaData"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V03BRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple VersionMetaData" sections="_L47rEhRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1EBRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V03RRAEeu0R6u-xFcX1w" name="isMultipleVersionMetaData">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V03hRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::VersionMetaData"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V03xRAEeu0R6u-xFcX1w" name="Single Has_a" sections="_L47rExRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1DhRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V04BRAEeu0R6u-xFcX1w" name="isSingleHas_a">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V04RRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Has_a"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V04hRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Has_a" sections="_L48SIBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1DhRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V04xRAEeu0R6u-xFcX1w" name="isMultipleHas_a">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V05BRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Has_a"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V05RRAEeu0R6u-xFcX1w" name="Single Constraints" sections="_L48SIRRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V09BRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V05hRAEeu0R6u-xFcX1w" name="isSingleConstraints">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V05xRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Constraints"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V06BRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Constraints" sections="_L48SIhRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V09BRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V06RRAEeu0R6u-xFcX1w" name="isMultipleConstraints">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V06hRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Constraints"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V06xRAEeu0R6u-xFcX1w" name="Single Property" sections="_L48SIxRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1AhRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V07BRAEeu0R6u-xFcX1w" name="isSingleProperty">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V07RRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Property"/>
+      </constraints>
+    </views>
+    <views xmi:id="_C4V07hRAEeu0R6u-xFcX1w" elementMultiplicity="-1" name="Multiple Property" sections="_L48SJBRAEeu0R6u-xFcX1w" automaticContext="true" datacontexts="_C4V1AhRAEeu0R6u-xFcX1w">
+      <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_C4V07xRAEeu0R6u-xFcX1w" name="isMultipleProperty">
+        <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+        <properties xsi:type="constraints:ValueProperty" xmi:id="_C4V08BRAEeu0R6u-xFcX1w" name="stereotypeName" value="bpc::Property"/>
+      </constraints>
+    </views>
+    <dataContexts xmi:id="_C4V08RRAEeu0R6u-xFcX1w" name="bpc">
+      <elements xmi:id="_C4V08hRAEeu0R6u-xFcX1w" name="Dock"/>
+      <elements xmi:id="_C4V08xRAEeu0R6u-xFcX1w" name="Instance_of" supertypes="_C4V1ExRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V09BRAEeu0R6u-xFcX1w" name="Constraints" supertypes="_C4V1ExRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V09RRAEeu0R6u-xFcX1w" name="Entity">
+        <properties xmi:id="_C4V09hRAEeu0R6u-xFcX1w" name="property" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V09xRAEeu0R6u-xFcX1w" name="instance_uid"/>
+        <properties xmi:id="_C4V0-BRAEeu0R6u-xFcX1w" name="description"/>
+        <properties xmi:id="_C4V0-RRAEeu0R6u-xFcX1w" name="authorship"/>
+        <properties xmi:id="_C4V0-hRAEeu0R6u-xFcX1w" name="provenance"/>
+        <properties xmi:id="_C4V0-xRAEeu0R6u-xFcX1w" name="model_uid"/>
+        <properties xmi:id="_C4V0_BRAEeu0R6u-xFcX1w" name="metamodel_uid"/>
+      </elements>
+      <elements xmi:id="_C4V0_RRAEeu0R6u-xFcX1w" name="IdMetaData">
+        <properties xmi:id="_C4V0_hRAEeu0R6u-xFcX1w" name="instance_uid"/>
+        <properties xmi:id="_C4V0_xRAEeu0R6u-xFcX1w" name="model_uid"/>
+        <properties xmi:id="_C4V1ABRAEeu0R6u-xFcX1w" name="description"/>
+        <properties xmi:id="_C4V1ARRAEeu0R6u-xFcX1w" name="metamodel_uid"/>
+      </elements>
+      <elements xmi:id="_C4V1AhRAEeu0R6u-xFcX1w" name="Property" supertypes="_C4V09RRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V1AxRAEeu0R6u-xFcX1w" name="Connector" supertypes="_C4V09RRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V1BBRAEeu0R6u-xFcX1w" name="Port" supertypes="_C4V09RRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V1BRRAEeu0R6u-xFcX1w" name="Connects" supertypes="_C4V1ExRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V1BhRAEeu0R6u-xFcX1w" name="Contains" supertypes="_C4V1ExRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V1BxRAEeu0R6u-xFcX1w" name="Is_a" supertypes="_C4V1ExRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V1CBRAEeu0R6u-xFcX1w" name="Collection" supertypes="_C4V09RRAEeu0R6u-xFcX1w">
+        <properties xmi:id="_C4V1CRRAEeu0R6u-xFcX1w" name="relation" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V1ChRAEeu0R6u-xFcX1w" name="entity" type="Reference" multiplicity="-1"/>
+      </elements>
+      <elements xmi:id="_C4V1CxRAEeu0R6u-xFcX1w" name="ReificationMetaData">
+        <properties xmi:id="_C4V1DBRAEeu0R6u-xFcX1w" name="parents_eref_name"/>
+        <properties xmi:id="_C4V1DRRAEeu0R6u-xFcX1w" name="entity" type="Reference"/>
+      </elements>
+      <elements xmi:id="_C4V1DhRAEeu0R6u-xFcX1w" name="Has_a" supertypes="_C4V1ExRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V1DxRAEeu0R6u-xFcX1w" name="Conforms_to" supertypes="_C4V1ExRAEeu0R6u-xFcX1w"/>
+      <elements xmi:id="_C4V1EBRAEeu0R6u-xFcX1w" name="VersionMetaData">
+        <properties xmi:id="_C4V1ERRAEeu0R6u-xFcX1w" name="provenance"/>
+        <properties xmi:id="_C4V1EhRAEeu0R6u-xFcX1w" name="authorship"/>
+      </elements>
+      <elements xmi:id="_C4V1ExRAEeu0R6u-xFcX1w" name="Relation" supertypes="_C4V09RRAEeu0R6u-xFcX1w _C4V1FRRAEeu0R6u-xFcX1w">
+        <properties xmi:id="_C4V1FBRAEeu0R6u-xFcX1w" name="reification" type="Reference"/>
+      </elements>
+      <elements xmi:id="_C4V1FRRAEeu0R6u-xFcX1w" name="Block">
+        <properties xmi:id="_C4V1FhRAEeu0R6u-xFcX1w" name="port" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V1FxRAEeu0R6u-xFcX1w" name="connector" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V1GBRAEeu0R6u-xFcX1w" name="collection" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V1GRRAEeu0R6u-xFcX1w" name="block" type="Reference" multiplicity="-1"/>
+        <properties xmi:id="_C4V1GhRAEeu0R6u-xFcX1w" name="relation" type="Reference" multiplicity="-1"/>
+        <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yXqDJEeSZxfCXzZz3-w"/>
+        <supertypes href="#_C4V09RRAEeu0R6u-xFcX1w"/>
+      </elements>
+      <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.2"/>
+    </dataContexts>
+  </contexts:Context>
+</xmi:XMI>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleBlock.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleBlock.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleBlock.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleCollection.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleCollection.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleCollection.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConforms_to.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConforms_to.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConforms_to.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConnector.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConnector.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConnector.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConnects.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConnects.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConnects.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConstraints.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConstraints.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleConstraints.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleContains.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleContains.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleContains.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleDock.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleDock.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleDock.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleEntity.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleEntity.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleEntity.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHas_a.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHas_a.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHas_a.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHazardAnalysis.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHazardAnalysis.xwt
new file mode 100644
index 0000000..ea8b89b
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHazardAnalysis.xwt
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_Occurence"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_Avoidance"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_Frequency"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_Severity"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_Occurence"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_Avoidance"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_Frequency"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_Severity"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Hazard"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:ContactAera"></ppe:EnumCombo>
+	</Composite>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHazardAnalysisContext.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHazardAnalysisContext.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleHazardAnalysisContext.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleIdMetaData.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleIdMetaData.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleIdMetaData.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleInstance_of.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleInstance_of.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleInstance_of.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleIs_a.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleIs_a.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleIs_a.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultiplePort.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultiplePort.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultiplePort.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleProperty.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleProperty.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleProperty.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleReificationMetaData.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleReificationMetaData.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleReificationMetaData.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleRelation.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleRelation.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleRelation.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleRiskReduction.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleRiskReduction.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleRiskReduction.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleVersionMetaData.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleVersionMetaData.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/MultipleVersionMetaData.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleBlock.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleBlock.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleBlock.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleCollection.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleCollection.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleCollection.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConforms_to.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConforms_to.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConforms_to.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConnector.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConnector.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConnector.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConnects.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConnects.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConnects.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConstraints.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConstraints.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleConstraints.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleContains.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleContains.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleContains.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleDock.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleDock.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleDock.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleEntity.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleEntity.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleEntity.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHas_a.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHas_a.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHas_a.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHazardAnalysis.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHazardAnalysis.xwt
new file mode 100644
index 0000000..37ebfc0
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHazardAnalysis.xwt
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:ReferenceDialog input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Skill"></ppe:ReferenceDialog>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Hazard"></ppe:EnumCombo>
+		<ppe:StringEditor input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:PossibleHarm"></ppe:StringEditor>
+		<ppe:StringEditor input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Origin"></ppe:StringEditor>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:ContactAera"></ppe:EnumCombo>
+		<ppe:StringEditor input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:HazardousSituation"></ppe:StringEditor>
+		<ppe:StringEditor input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:HazardousEvent"></ppe:StringEditor>
+	</Composite>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_Occurence"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_Avoidance"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_Frequency"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_Severity"></ppe:EnumCombo>
+		<ppe:MultiReference input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_DesignRiskReduction"></ppe:MultiReference>
+		<ppe:MultiReference input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_TechnicalRiskReduction"></ppe:MultiReference>
+		<ppe:MultiReference input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Initial_OrganizationalRiskReduction"></ppe:MultiReference>
+	</Composite>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+	</Composite>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_Occurence"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_Avoidance"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_Frequency"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_Severity"></ppe:EnumCombo>
+		<ppe:MultiReference input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_DesignRiskReduction"></ppe:MultiReference>
+		<ppe:MultiReference input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_TechnicalRiskReduction"></ppe:MultiReference>
+		<ppe:MultiReference input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Final_OrganizationalRiskReduction"></ppe:MultiReference>
+		<ppe:StringEditor input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysis:Comment"></ppe:StringEditor>
+	</Composite>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHazardAnalysisContext.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHazardAnalysisContext.xwt
new file mode 100644
index 0000000..a672d58
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleHazardAnalysisContext.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:ReferenceDialog input="{Binding}"
+			property="TaskBasedRiskAnalysis:HazardAnalysisContext:task"></ppe:ReferenceDialog>
+	</Composite>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleIdMetaData.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleIdMetaData.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleIdMetaData.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleInstance_of.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleInstance_of.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleInstance_of.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleIs_a.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleIs_a.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleIs_a.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SinglePort.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SinglePort.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SinglePort.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleProperty.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleProperty.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleProperty.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleReificationMetaData.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleReificationMetaData.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleReificationMetaData.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleRelation.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleRelation.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleRelation.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleRiskReduction.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleRiskReduction.xwt
new file mode 100644
index 0000000..c7a6df3
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleRiskReduction.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:StringEditor input="{Binding}"
+			property="TaskBasedRiskAnalysis:RiskReduction:Description"></ppe:StringEditor>
+	</Composite>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleVersionMetaData.xwt b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleVersionMetaData.xwt
new file mode 100644
index 0000000..e29bdbb
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/properties/ui/SingleVersionMetaData.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+</Composite>
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/src/org/eclipse/papyrus/robotics/safety/riskanalysis/property/Activator.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/src/org/eclipse/papyrus/robotics/safety/riskanalysis/property/Activator.java
new file mode 100644
index 0000000..96db0a7
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.property/src/org/eclipse/papyrus/robotics/safety/riskanalysis/property/Activator.java
@@ -0,0 +1,44 @@
+package org.eclipse.papyrus.robotics.safety.riskanalysis.property;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.papyrus.robotics.safety.riskanalysis.property"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/.classpath b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/.classpath
index bc3587d..3098251 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/.classpath
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/.classpath
@@ -1,6 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+		<accessrules>
+			<accessrule kind="accessible" pattern="*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/.settings/org.eclipse.jdt.core.prefs b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/.settings/org.eclipse.jdt.core.prefs
index f4d933e..7adc0fb 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/.settings/org.eclipse.jdt.core.prefs
@@ -3,5 +3,8 @@
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
 org.eclipse.jdt.core.compiler.source=11
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/META-INF/MANIFEST.MF b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/META-INF/MANIFEST.MF
index 1bca595..1618d82 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/META-INF/MANIFEST.MF
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/META-INF/MANIFEST.MF
@@ -5,6 +5,21 @@
 Bundle-Version: 0.8.0.qualifier
 Automatic-Module-Name: org.polarsys.esf.riskanalysis.table
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Require-Bundle: org.eclipse.papyrus.infra.nattable
+Require-Bundle: org.eclipse.papyrus.infra.nattable,
+ org.eclipse.uml2.uml;bundle-version="5.5.0",
+ org.eclipse.papyrus.uml.nattable;bundle-version="[5.0.0,7.0.0)",
+ org.eclipse.papyrus.infra.nattable.common;bundle-version="5.5.100",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="[3.4.0,5.0.0)",
+ org.eclipse.papyrus.uml.extensionpoints;bundle-version="[1.3.0,3.0.0)",
+ org.eclipse.papyrus.robotics.safety.riskanalysis.profile;bundle-version="0.8.0",
+ org.eclipse.nebula.widgets.nattable.core;bundle-version="1.5.0",
+ org.eclipse.gmf.runtime.emf.type.core;bundle-version="1.9.0",
+ org.eclipse.papyrus.infra.emf.nattable;bundle-version="[5.2.0,7.0.0)",
+ org.eclipse.papyrus.infra.nattable.model;bundle-version="[4.2.0,6.0.0)",
+ org.eclipse.papyrus.infra.widgets;bundle-version="[3.6.0,5.0.0)",
+ org.eclipse.papyrus.uml.nattable;bundle-version="[5.0.0,7.0.0)",
+ org.eclipse.ui,
+ org.eclipse.papyrus.infra.services.labelprovider;bundle-version="[2.0.0,4.0.0)",
+ org.eclipse.papyrus.infra.core;bundle-version="[3.1.0,5.0.0)"
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/architecture/hazardanalysis.architecture b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/architecture/hazardanalysis.architecture
index 2ce6833..9d05dd6 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/architecture/hazardanalysis.architecture
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/architecture/hazardanalysis.architecture
@@ -1,15 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <architecture:ArchitectureDomain xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:nattablerepresentation="http://www.eclipse.org/papyrus/infra/nattable/representation" xmlns:representation="http://www.eclipse.org/papyrus/infra/core/architecture/representation" xmi:id="org.eclipse.papyrus.robotics.safety.riskanalysis.haraarch" id="org.eclipse.papyrus.robotics" name="Papyrus for Robotics - compliant with RobMoSys H2020" description="Architecture domain for Papyrus for Robotics" icon="platform:/plugin/org.eclipse.papyrus.robotics.diagrams/icons/robotics-16x16.png">
   <stakeholders xmi:type="architecture:Stakeholder" xmi:id="_SFcaQOGpEeewEL8Y1DXhbQ" id="org.eclipse.papyrus.robotics.safety.riskanalysis.stakeholder.HARAExpert" name="Hazard and Risk Analysis Expert" description="Analysis of Hazards and Assessment of Risks for Robotics Tasks" concerns="org.eclipse.papyrus.robotics.safety.riskanalysis.concern.HARAModeling"/>
-  <!--
-  <stakeholders xmi:type="architecture:Stakeholder" xmi:id="_wrP_4EmSEem0gvUEdUYVHQ" id="org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysisDesigner" name="Hazard Analysis Expert" description="Task Based Hazard Analysis Expert" concerns="org.eclipse.papyrus.robotics.safety.riskanalysis.concern.SafetyModeling"/>
-  -->
   <concerns xmi:type="architecture:Concern" xmi:id="org.eclipse.papyrus.robotics.safety.riskanalysis.concern.HARAModeling" id="org.eclipse.papyrus.robotics.safety.riskanalysis.concern.HARAModeling" name="Task-Based Hazard Analysis and Risk Assessment"/>
   <contexts xmi:type="architecture:ArchitectureDescriptionLanguage" xmi:id="_JosFoFZaEeefxp1AU1LPhQ" id="org.eclipse.papyrus.robotics.architecture" name="Papyrus for Robotics ADL" description="Papyrus for Robotics ADL (architecture description language)" icon="platform:/plugin/org.eclipse.papyrus.robotics.diagrams/icons/robotics-16x16.png" extensionPrefix="" creationCommandClass="org.eclipse.papyrus.robotics.core.commands.CreateRobMoSysModelCommand">
-  <!--
-  <contexts xmi:type="architecture:ArchitectureDescriptionLanguage" xmi:id="_XiGkgEMqEeeNE9tB5iN5zA" id="org.eclipse.papyrus.robotics.safety.context" name="Robotics Task-Based Hazard Analysis ADL" description="Extension for Papyrus Robotics Safety" defaultViewpoints="_fuR0EPRYEeer9MDJI6SgXA" extensionPrefix="" creationCommandClass="org.polarsys.esf.core.diagram.esfarchitectureconcepts.command.CreateESFModelCommand">
-  -->
-    <viewpoints xmi:type="architecture:ArchitectureViewpoint" xmi:id="_fuR0EPRYEeer9MDJI6SgXA" id="org.eclipse.papyrus.robotics.viewpoint.TadkBasedHazardAnalysis" name="Task-Based Hazard Analysis View" description="Perform Task-Based Hazard Analysis" concerns="org.eclipse.papyrus.robotics.safety.riskanalysis.concern.HARAModeling" representationKinds="org.eclipse.papyrus.robotics.safety.riskanalysis.table.HazardAnalysisTableType"/>
+    <viewpoints xmi:type="architecture:ArchitectureViewpoint" xmi:id="_fuR0EPRYEeer9MDJI6SgXA" id="org.eclipse.papyrus.robotics.viewpoint.TaskBasedHazardAnalysis" name="Task-Based Hazard Analysis View" description="Perform Task-Based Hazard Analysis" concerns="org.eclipse.papyrus.robotics.safety.riskanalysis.concern.HARAModeling" representationKinds="org.eclipse.papyrus.robotics.safety.riskanalysis.table.HazardAnalysisTableType _7O6uYBRLEeu0R6u-xFcX1w"/>
     <elementTypes xmi:type="elementtypesconfigurations:ElementTypeSetConfiguration" href="platform:/plugin/org.eclipse.papyrus.infra.gmfdiag.common/model/notation.elementtypesconfigurations#_ScP1oFYCEeS0WsAAtVmToA"/>
     <elementTypes xmi:type="elementtypesconfigurations:ElementTypeSetConfiguration" href="platform:/plugin/org.eclipse.papyrus.infra.gmfdiag.common/model/gmfdiag-common.elementtypesconfigurations#_rWI4YHPzEeSnGJwaJWHCSg"/>
     <elementTypes xmi:type="elementtypesconfigurations:ElementTypeSetConfiguration" href="platform:/plugin/org.eclipse.papyrus.infra.services.controlmode/model/controlmode.elementtypesconfigurations#_rWI4YHPzEeSnGJwaJWHCSg"/>
@@ -28,7 +22,16 @@
       <owningRules xmi:type="representation:OwningRule" xmi:id="_mu1-EEWVEemNyPj0A9fWiA" permit="true" multiplicity="-1">
         <element xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
       </owningRules>
-      <configuration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/HazardAnalysisTableType.nattableconfiguration#_4sLZQEWIEem1bPXeAqLfZw"/>
+      <configuration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/HazardAnalysisTableType.nattableconfiguration#_ofc8oGuBEeuXXJEl13q1ZA"/>
+    </representationKinds>
+    <representationKinds xmi:type="nattablerepresentation:PapyrusTable" xmi:id="_7O6uYBRLEeu0R6u-xFcX1w" id="org.eclipse.papyrus.robotics.safety.riskanalysis.table.RiskReductionTableType" name="Papyrus for Robotics ADL Risk Reduction Table" description="" icon="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/icons/RiskReductionTableType.png" concerns="org.eclipse.papyrus.robotics.safety.riskanalysis.concern.HARAModeling" implementationID="RiskReductionTableType">
+      <modelRules xmi:type="representation:ModelRule" xmi:id="_7O7VcBRLEeu0R6u-xFcX1w" permit="true" elementMultiplicity="1" multiplicity="-1">
+        <element xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+      </modelRules>
+      <owningRules xmi:type="representation:OwningRule" xmi:id="_7O78gBRLEeu0R6u-xFcX1w" permit="true" multiplicity="-1">
+        <element xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+      </owningRules>
+      <configuration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/RiskReductionTableType.nattableconfiguration#_ofc8oGuBEeuXXJEl13q1ZA"/>
     </representationKinds>
     <metamodel xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML#/"/>
     <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/robotics/safety/riskanalysis/1#/"/>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/build.properties b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/build.properties
index b032dd4..a651036 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/build.properties
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/build.properties
@@ -7,6 +7,8 @@
                plugin.xml/,\
                plugin.properties,\
                plugin.xml,\
-               architecture/
+               architecture/,\
+               src/,\
+               .classpath
 output..=bin/
 source..=src/
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/icons/RiskReductionTableType.png b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/icons/RiskReductionTableType.png
new file mode 100644
index 0000000..2a97952
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/icons/RiskReductionTableType.png
Binary files differ
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/plugin.properties b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/plugin.properties
index fe34567..c3fb113 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/plugin.properties
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/plugin.properties
@@ -1,13 +1,4 @@
-#################################################################################
-# Copyright (c) 2020 CEA LIST.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
 #
-# SPDX-License-Identifier: EPL-2.0
-#
-##################################################################################
 
-providerName = Eclipse Modeling Project
-pluginName = Papyrus Robotics table for Task-Based Risk Analysis (Incubation)
+pluginName = Papyrus Robotics table for Task-Based Risk Analysis
+providerName = CEA LIST
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/plugin.xml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/plugin.xml
index c310eea..a93252c 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/plugin.xml
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/plugin.xml
@@ -1,10 +1,47 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?eclipse version="3.4"?><plugin>
+                            <extension
+                                  point="org.eclipse.papyrus.infra.nattable.axismanager">
+                               <axisManager
+                                     id="org.eclipse.papyrus.robotics.safety.riskananlysis.table.hazardanalysisaxismanager"
+                                     manager="org.eclipse.papyrus.robotics.safety.riskanalysis.table.HazardAnalysisAxisManager">
+                               </axisManager>
+                               <axisManager
+                                     id="org.eclipse.papyrus.robotics.safety.riskananlysis.table.riskreductionaxismanager"
+                                     manager="org.eclipse.papyrus.robotics.safety.riskanalysis.table.RiskReductionAxisManager">
+                               </axisManager>
+                            </extension>
+                            <extension
+                                  point="org.eclipse.papyrus.infra.services.labelprovider.labelProvider">
+                               <labelProvider
+                                     priority="1400"
+                                     provider="org.eclipse.papyrus.robotics.safety.riskanalysis.table.PartHazardAnalysisHeaderLabelProvider">
+                               </labelProvider>
+                               <labelProvider
+                                     priority="1400"
+                                     provider="org.eclipse.papyrus.robotics.safety.riskanalysis.table.PartRiskReductionHeaderLabelProvider">
+                               </labelProvider>
+                            </extension>
+                            <extension
+                                  point="org.eclipse.papyrus.infra.nattable.tester">
+                               <tester
+                                     class="org.eclipse.papyrus.robotics.safety.riskanalysis.table.HazardAnalysisTableTester"
+                                     id="org.eclipse.papyrus.robotics.safety.riskanalysis.table.hazardanalysistabletester">
+                               </tester>
+                               <tester
+                                     class="org.eclipse.papyrus.robotics.safety.riskanalysis.table.RiskReductionTableTester"
+                                     id="org.eclipse.papyrus.robotics.safety.riskanalysis.table.riskreductiontabletester">
+                               </tester>
+                            </extension>
 <extension point="org.eclipse.papyrus.infra.architecture.models">
 		<model path="architecture/hazardanalysis.architecture"/>
 	</extension>
 <extension point="org.eclipse.papyrus.infra.nattable.configuration">
       <configuration file="tableConfiguration/HazardAnalysisTableType.nattableconfiguration" type="HazardAnalysisTableType"/>
+      <configuration
+            file="tableConfiguration/RiskReductionTableType.nattableconfiguration"
+            type="RiskReductionTableType">
+      </configuration>
    </extension>
       
 </plugin>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/pom.xml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/pom.xml
index 95a5523..73ee40d 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/pom.xml
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/pom.xml
@@ -1,13 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>  
-  <parent>
-    <artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
-    <groupId>org.eclipse.papyrus.robotics</groupId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.table</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <description>This module contains the table description for Task-Based Risk Analysis in Papyrus Robotics.</description>
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
+		<groupId>org.eclipse.papyrus.robotics</groupId>
+		<version>0.8.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.table</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<description>This module contains the table description for Task-Based Risk Analysis in Papyrus Robotics.</description>
 </project>
+
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/Activator.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/Activator.java
new file mode 100644
index 0000000..8ce52c5
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/Activator.java
@@ -0,0 +1,71 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement 
+ * with the CEA.
+ *
+ * Project:  sophia
+ * 
+ * Contributors:
+ *  CEA LIST - Initial API and implementation
+ * 
+ *****************************************************************************/
+/*  com.cea.sophia.fha.table.config Activator.java */
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	//public static final String PLUGIN_ID = "com.cea.sophia.fha.table.config"; //$NON-NLS-1$
+	public static final String PLUGIN_ID = "org.eclipse.papyrus.robotics.safety.riskanalysis.table;"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.
+	 * BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.
+	 * BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/HazardAnalysisAxisManager.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/HazardAnalysisAxisManager.java
new file mode 100644
index 0000000..0aa87a7
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/HazardAnalysisAxisManager.java
@@ -0,0 +1,184 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement 
+ * with the CEA.
+ *
+ * Project:  Papyrus Robotics
+ * 
+ * Contributors:
+ *  CEA LIST - Initial API and implementation
+ * 
+ *****************************************************************************/
+/*  com.cea.sophia.fha.table.config.axismanager FHAAxisManager.java */
+
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.papyrus.uml.nattable.manager.axis.AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.HazardAnalysis;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * 
+ * HazardAnalysisAxisManager Class is dedicated exclusively to manger the items (rows)
+ * in a HazardAnalysis Table.
+ * 
+ */
+public class HazardAnalysisAxisManager
+		extends AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager<HazardAnalysis> {
+
+	
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * stereotypeApplicationHasChanged(org.eclipse.emf.common.notify.
+	 * Notification)
+	 */
+	@Override
+	protected void stereotypeApplicationHasChanged(final Notification notification) {
+		if (notification.isTouch()) {
+			return;
+		}
+		final Object notifier = notification.getNotifier();
+		if (!isInstanceOfRequiredStereotypeApplication(notifier)) {
+			return;
+		}
+		Object feature = notification.getFeature();
+		int eventType = notification.getEventType();
+		if (feature instanceof EReference
+				&& ((EReference) feature).getName().startsWith(getStereotypeApplicationBasePropertyName())) {
+			switch (eventType) {
+			case Notification.SET:
+				final Object newValue = notification.getNewValue();
+				final Object oldValue = notification.getOldValue();
+				if (newValue instanceof Element && isAllowedAsBaseElement((Element) newValue)) {
+					updateManagedList(Collections.singletonList(newValue), Collections.emptyList());
+					this.stereotypedElementsMap.put((EObject) notifier, (Element) newValue);
+				} else if (newValue == null && this.managedObject.contains(oldValue)) {
+					updateManagedList(Collections.emptyList(), Collections.singletonList(oldValue));
+					this.stereotypedElementsMap.remove(notifier);
+					removeStereotypeApplicationListener((EObject) notifier);
+				}
+				break;
+
+			case Notification.UNSET:// never used?
+				final Object oldValue2 = notification.getOldValue();
+				if (oldValue2 instanceof Element && this.managedObject.contains(oldValue2)) {
+					updateManagedList(Collections.emptyList(), Collections.singletonList(oldValue2));
+					this.stereotypedElementsMap.remove(notifier);
+					removeStereotypeApplicationListener((EObject) notifier);
+				}
+				break;
+			default:
+				break;
+			}
+		}
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.infra.emf.nattable.manager.axis.
+	 * AbstractSynchronizedOnEStructuralFeatureAxisManager#getAllManagedAxis()
+	 */
+	@Override
+	public List<Object> getAllManagedAxis() {
+		List<Object> HazardAnalysis = new ArrayList<Object>();
+
+		for (Element el : ((org.eclipse.uml2.uml.Interface) getTableContext()).allOwnedElements()) {
+			if (el.getAppliedStereotype("TaskBasedRiskAnalysis::HazardAnalysis") != null)
+				HazardAnalysis.add(el);
+		}
+		return HazardAnalysis;
+	}
+
+	
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.infra.nattable.manager.axis.AbstractAxisManager#
+	 * canCreateAxisElement(java.lang.String)
+	 */
+	@Override
+	public boolean canCreateAxisElement(String elementId) {
+		return RiskanalysisPackage.eINSTANCE.getHazardAnalysis().getInstanceTypeName().equals(elementId);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * isInstanceOfRequiredStereotypeApplication(java.lang.Object)
+	 */
+	@Override
+	protected boolean isInstanceOfRequiredStereotypeApplication(Object object) {
+		return object instanceof HazardAnalysis;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * isAllowedAsBaseElement(org.eclipse.uml2.uml.Element)
+	 */
+	@Override
+	protected boolean isAllowedAsBaseElement(Element element) {
+		return element instanceof org.eclipse.uml2.uml.Class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * getStereotypeApplication(org.eclipse.uml2.uml.Element)
+	 */
+	@Override
+	protected HazardAnalysis getStereotypeApplication(Element element) {
+		return UMLUtil.getStereotypeApplication(element, HazardAnalysis.class);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * getStereotypeApplicationBasePropertyName()
+	 */
+	@Override
+	protected String getStereotypeApplicationBasePropertyName() {
+		return RiskanalysisPackage.eINSTANCE.getHazardAnalysis_Base_Property().getName();
+	}
+
+	/**
+	 * Gets the stereotype base element.
+	 *
+	 * @param stereotypeApplication
+	 *            the stereotype application
+	 * @return the stereotype base element
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#getStereotypeBaseElement(org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	protected Element getStereotypeBaseElement(final HazardAnalysis stereotypeApplication) {
+		return stereotypeApplication.getBase_Property();
+	}
+
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/HazardAnalysisTableTester.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/HazardAnalysisTableTester.java
new file mode 100644
index 0000000..0c7a4cc
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/HazardAnalysisTableTester.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *  Ansgar Radermacher (CEA LIST)
+ *  yakoub Karoui (CEA LIST)
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.papyrus.infra.nattable.tester.ITableTester;
+
+
+public class HazardAnalysisTableTester implements ITableTester {
+
+	@Override
+	public IStatus isAllowed(Object context) {
+		IStatus status = null;
+		if(context instanceof Class){
+			status = Status.OK_STATUS;
+		}
+		return status;
+	}
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/ParameterTableUtils.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/ParameterTableUtils.java
new file mode 100644
index 0000000..7ab9791
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/ParameterTableUtils.java
@@ -0,0 +1,125 @@
+/*****************************************************************************
+ * 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 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *  Jeremie Tatibouet (CEA LIST)
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.LiteralBoolean;
+import org.eclipse.uml2.uml.LiteralInteger;
+import org.eclipse.uml2.uml.LiteralReal;
+import org.eclipse.uml2.uml.LiteralString;
+import org.eclipse.uml2.uml.LiteralUnlimitedNatural;
+import org.eclipse.uml2.uml.OpaqueExpression;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+public class ParameterTableUtils {
+
+	public static boolean isProperty(Object modelElement) {
+		return modelElement instanceof Property;
+	}
+
+	public static boolean hasDefaultValue(Property property) {
+		return property.getDefaultValue() != null;
+	}
+
+
+	public static boolean isSlotValueAnOpaqueExpression(Slot slot) {
+		if (slot != null) {
+			if (slot.getValues().size() == 1) {
+				return slot.getValues().iterator().next() instanceof OpaqueExpression;
+			}
+		}
+		return false;
+	}
+
+	public static OpaqueExpression getSlotValue(Slot slot) {
+		if (slot != null) {
+			if (slot.getValues().size() == 1) {
+				ValueSpecification specification = slot.getValues().iterator().next();
+				if (specification instanceof OpaqueExpression) {
+					return (OpaqueExpression) specification;
+				}
+			}
+		}
+		return null;
+	}
+
+	public static ValueSpecification createValueSpecification(Element context, Slot slot, String value) {
+		if (slot != null && slot.getDefiningFeature() != null && slot.getDefiningFeature().getType() != null) {
+			Type type = slot.getDefiningFeature().getType();
+			return createValueSpecification(context, type, value);
+		}
+		return null;
+	}
+
+	public static ValueSpecification createValueSpecification(Element context, Type type, String value) {
+		ValueSpecification specification = null;
+		if (type == UMLPrimitiveTypesUtils.getInteger(context)) {
+			specification = UMLFactory.eINSTANCE.createLiteralInteger();
+			Integer integerValue = null;
+			try {
+				integerValue = Integer.parseInt(value);
+			} catch (Exception e) {
+			}
+			if (integerValue != null) {
+				((LiteralInteger) specification).setValue(integerValue);
+			}
+		} else if (type == UMLPrimitiveTypesUtils.getBoolean(context)) {
+			specification = UMLFactory.eINSTANCE.createLiteralBoolean();
+			Boolean booleanValue = null;
+			try {
+				booleanValue = Boolean.parseBoolean(value);
+			} catch (Exception e) {
+			}
+			if (booleanValue != null) {
+				((LiteralBoolean) specification).setValue(booleanValue);
+			}
+		} else if (type == UMLPrimitiveTypesUtils.getUnlimitedNatural(context)) {
+			specification = UMLFactory.eINSTANCE.createLiteralUnlimitedNatural();
+			Integer integerValue = null;
+			try {
+				integerValue = Integer.parseInt(value);
+			} catch (Exception e) {
+			}
+			if (integerValue != null) {
+				((LiteralUnlimitedNatural) specification).setValue(integerValue);
+			}
+		} else if (type == UMLPrimitiveTypesUtils.getReal(context)) {
+			specification = UMLFactory.eINSTANCE.createLiteralReal();
+			Double doubleValue = null;
+			try {
+				doubleValue = Double.parseDouble(value);
+			} catch (Exception e) {
+			}
+			if (doubleValue != null) {
+				((LiteralReal) specification).setValue(doubleValue);
+			}
+		} else if (type == UMLPrimitiveTypesUtils.getString(context)) {
+			specification = UMLFactory.eINSTANCE.createLiteralString();
+			((LiteralString) specification).setValue(value);
+		} else {
+			specification = UMLFactory.eINSTANCE.createOpaqueExpression();
+			((OpaqueExpression) specification).getLanguages().add("VSL"); //$NON-NLS-1$
+			((OpaqueExpression) specification).getBodies().add(value);
+		}
+
+		return specification;
+	}
+
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/ParameterUtils.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/ParameterUtils.java
new file mode 100644
index 0000000..ed287ce
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/ParameterUtils.java
@@ -0,0 +1,57 @@
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.robotics.profile.robotics.parameters.Parameter;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.StructuredClassifier;
+
+public class ParameterUtils {
+	public static List<Property> getAllParameters(Class clazz) {
+		List<Property> parameterList = new ArrayList<Property>();
+		for (Class superClass : clazz.getSuperClasses()) {
+			StructuredClassifier paramClass = ParameterUtils.getParameterClass(superClass);
+			if (paramClass != null) {
+				parameterList.addAll(paramClass.getOwnedAttributes());
+			}
+		}
+		StructuredClassifier paramClass = ParameterUtils.getParameterClass(clazz);
+		if (paramClass != null) {
+			parameterList.addAll(paramClass.getOwnedAttributes());
+		}
+		return parameterList;
+	}
+
+	/**
+	 * Return the nested classifier within a component that is holding configuration parameters
+	 * Return null, if not found
+	 */
+	public static Class getParameterClass(Class component) {
+		for (Classifier cl : component.getNestedClassifiers()) {
+			if (cl instanceof Class && StereotypeUtil.isApplied(cl, Parameter.class)) {
+				return (Class) cl;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Return the part within a component that is typed with the passed nested classifier
+	 */
+	public static Property getParameterProperty(Class nestedClassifier) {
+		Element owner = nestedClassifier.getOwner();
+		if (owner instanceof Class) {
+			for (Property p : ((Class) owner).getOwnedAttributes()) {
+				if (p.getType() == nestedClassifier) {
+					return p;
+				}
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/PartHazardAnalysisHeaderLabelProvider.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/PartHazardAnalysisHeaderLabelProvider.java
new file mode 100644
index 0000000..4fab532
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/PartHazardAnalysisHeaderLabelProvider.java
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement 
+ * with the CEA.
+ *
+ * Project:  Papyrus Robotics
+ * 
+ * Contributors:
+ *  CEA LIST - Initial API and implementation
+ * 
+ *****************************************************************************/
+/*  com.cea.sophia.fha.table.config.provider PartHeaderLabelProvider.java */
+
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
+import org.eclipse.papyrus.infra.emf.nattable.provider.EMFEObjectHeaderLabelProvider;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxis.EObjectAxis;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxis.IAxis;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.ILabelProviderConfiguration;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.ObjectLabelProviderConfiguration;
+import org.eclipse.papyrus.infra.nattable.utils.ILabelProviderContextElementWrapper;
+import org.eclipse.papyrus.infra.nattable.utils.LabelProviderCellContextElementWrapper;
+import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Property;
+
+
+
+/**
+ * 
+ * PartHeaderLabelProvider Class is dedicated exclusively to customizing the
+ * header label of the Function that have Hazardous Events in a HARA Table.
+ * 
+ */
+public class PartHazardAnalysisHeaderLabelProvider extends EMFEObjectHeaderLabelProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.infra.emf.nattable.provider.
+	 * EMFEObjectHeaderLabelProvider#accept(java.lang.Object)
+	 */
+	@Override
+	public boolean accept(Object element) {
+		if (element instanceof ILabelProviderContextElementWrapper) {
+			Object object = ((ILabelProviderContextElementWrapper) element).getObject();
+			if (object instanceof IAxis) {
+				object = ((IAxis) object).getElement();
+			}
+			if (object instanceof Property) {
+				return ((Property) object)
+						.getAppliedStereotype("TaskBasedRiskAnalysis::HazardAnalysis") != null;
+			}
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.infra.emf.nattable.provider.
+	 * EMFEObjectHeaderLabelProvider#getText(java.lang.Object)
+	 */
+	@Override
+	public String getText(Object element) {
+		ILabelProviderContextElementWrapper context = (ILabelProviderContextElementWrapper) element;
+		EObject object = (EObject) ((ILabelProviderContextElementWrapper) element).getObject();
+		if (object instanceof EObjectAxis) {
+			object = ((EObjectAxis) object).getElement();
+		}
+		final IConfigRegistry configRegistry = context.getConfigRegistry();
+		final LabelProviderService serv = getLabelProviderService(configRegistry);
+		ILabelProviderConfiguration conf = null;
+		if (element instanceof LabelProviderCellContextElementWrapper) {
+			conf = getLabelConfiguration((LabelProviderCellContextElementWrapper) element);
+		}
+		if (conf instanceof ObjectLabelProviderConfiguration
+				&& !((ObjectLabelProviderConfiguration) conf).isDisplayLabel()) {
+			return ""; //$NON-NLS-1$
+		}
+
+		String label = ""; //$NON-NLS-1$
+		if (object instanceof Property) {
+			object = object.eContainer();
+			if (object instanceof Property) {
+				label = ((Property) object).getType().getName() + ":" + serv.getLabelProvider(object).getText(object); //$NON-NLS-1$
+			} else if (object instanceof Class) {
+				label = serv.getLabelProvider(object).getText(object);
+			}
+		}
+
+		return label;
+	}
+
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/PartRiskReductionHeaderLabelProvider.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/PartRiskReductionHeaderLabelProvider.java
new file mode 100644
index 0000000..6379148
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/PartRiskReductionHeaderLabelProvider.java
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement 
+ * with the CEA.
+ *
+ * Project:  Papyrus Robotics
+ * 
+ * Contributors:
+ *  CEA LIST - Initial API and implementation
+ * 
+ *****************************************************************************/
+/*  com.cea.sophia.fha.table.config.provider PartHeaderLabelProvider.java */
+
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
+import org.eclipse.papyrus.infra.emf.nattable.provider.EMFEObjectHeaderLabelProvider;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxis.EObjectAxis;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxis.IAxis;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.ILabelProviderConfiguration;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.ObjectLabelProviderConfiguration;
+import org.eclipse.papyrus.infra.nattable.utils.ILabelProviderContextElementWrapper;
+import org.eclipse.papyrus.infra.nattable.utils.LabelProviderCellContextElementWrapper;
+import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Property;
+
+
+
+/**
+ * 
+ * PartHeaderLabelProvider Class is dedicated exclusively to customizing the
+ * header label of the Function that have Hazardous Events in a HARA Table.
+ * 
+ */
+public class PartRiskReductionHeaderLabelProvider extends EMFEObjectHeaderLabelProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.infra.emf.nattable.provider.
+	 * EMFEObjectHeaderLabelProvider#accept(java.lang.Object)
+	 */
+	@Override
+	public boolean accept(Object element) {
+		if (element instanceof ILabelProviderContextElementWrapper) {
+			Object object = ((ILabelProviderContextElementWrapper) element).getObject();
+			if (object instanceof IAxis) {
+				object = ((IAxis) object).getElement();
+			}
+			if (object instanceof Property) {
+				return ((Property) object)
+						.getAppliedStereotype("TaskBasedRiskAnalysis::RiskReduction") != null;
+			}
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.infra.emf.nattable.provider.
+	 * EMFEObjectHeaderLabelProvider#getText(java.lang.Object)
+	 */
+	@Override
+	public String getText(Object element) {
+		ILabelProviderContextElementWrapper context = (ILabelProviderContextElementWrapper) element;
+		EObject object = (EObject) ((ILabelProviderContextElementWrapper) element).getObject();
+		if (object instanceof EObjectAxis) {
+			object = ((EObjectAxis) object).getElement();
+		}
+		final IConfigRegistry configRegistry = context.getConfigRegistry();
+		final LabelProviderService serv = getLabelProviderService(configRegistry);
+		ILabelProviderConfiguration conf = null;
+		if (element instanceof LabelProviderCellContextElementWrapper) {
+			conf = getLabelConfiguration((LabelProviderCellContextElementWrapper) element);
+		}
+		if (conf instanceof ObjectLabelProviderConfiguration
+				&& !((ObjectLabelProviderConfiguration) conf).isDisplayLabel()) {
+			return ""; //$NON-NLS-1$
+		}
+
+		String label = ""; //$NON-NLS-1$
+		if (object instanceof Property) {
+			object = object.eContainer();
+			if (object instanceof Property) {
+				label = ((Property) object).getType().getName() + ":" + serv.getLabelProvider(object).getText(object); //$NON-NLS-1$
+			} else if (object instanceof Class) {
+				label = serv.getLabelProvider(object).getText(object);
+			}
+		}
+
+		return label;
+	}
+
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RegisteredLibraryLoadAndSearchUtils.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RegisteredLibraryLoadAndSearchUtils.java
new file mode 100644
index 0000000..1ab177f
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RegisteredLibraryLoadAndSearchUtils.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * 
+ * Copyright (c) 2016 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *  CEA LIST Initial API and implementation
+ * 
+ *****************************************************************************/
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.papyrus.uml.extensionpoints.library.IRegisteredLibrary;
+import org.eclipse.papyrus.uml.extensionpoints.library.RegisteredLibrary;
+import org.eclipse.papyrus.uml.tools.utils.NameResolutionUtils;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.UMLPackage;
+
+public class RegisteredLibraryLoadAndSearchUtils {
+
+	public static NamedElement getNamedElement(Element context, String qualifiedTypeName, String libraryName) {
+		Model libraryModel = loadLibrary(context, libraryName) ;
+		if (libraryModel != null) {
+			List<NamedElement> result = NameResolutionUtils.getNamedElements(qualifiedTypeName, libraryModel, UMLPackage.eINSTANCE.getNamedElement()) ;
+			if (! result.isEmpty()) {
+				return result.get(0) ;
+			}
+		}
+		return null ;
+	}
+	
+	/**
+	 * If the model library is not loaded in the
+	 * resource set containing the model that contains the given context model element,
+	 * this method loads the library in the resource set, and then returns it.
+	 * If the library is already loaded, then it is simply returned. 
+	 * 
+	 * @param context The context UML model element, whose resource set will be the place where the library will be loaded
+	 * @return The model library
+	 */
+	public static Model loadLibrary(Element context, String libraryName) {
+		Model libraryModel = null;
+		IRegisteredLibrary registeredLibrary = null ;
+		for (IRegisteredLibrary l : RegisteredLibrary.getRegisteredLibraries()) {
+			if (l.getName().equals(libraryName)) {
+				registeredLibrary=l ;
+			}
+		}
+		if (registeredLibrary != null) {
+			Resource libraryResource = context.eResource().getResourceSet().getResource(registeredLibrary.getUri(), true) ;
+			if (libraryResource.getContents().get(0) instanceof Model) {
+				libraryModel = (Model) libraryResource.getContents().get(0) ;
+			}
+		}
+		return libraryModel;
+	}
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RiskReductionAxisManager.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RiskReductionAxisManager.java
new file mode 100644
index 0000000..d52a8b6
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RiskReductionAxisManager.java
@@ -0,0 +1,184 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement 
+ * with the CEA.
+ *
+ * Project:  Papyrus Robotics
+ * 
+ * Contributors:
+ *  CEA LIST - Initial API and implementation
+ * 
+ *****************************************************************************/
+/*  com.cea.sophia.fha.table.config.axismanager FHAAxisManager.java */
+
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.papyrus.uml.nattable.manager.axis.AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskanalysisPackage;
+
+/**
+ * 
+ * RiskReductionAxisManager Class is dedicated exclusively to manger the items (rows)
+ * in a RiskReduction Table.
+ * 
+ */
+// TODO: Auto-generated Javadoc
+
+public class RiskReductionAxisManager
+		extends AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager<RiskReduction> {
+
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * stereotypeApplicationHasChanged(org.eclipse.emf.common.notify.
+	 * Notification)
+	 */
+	@Override
+	protected void stereotypeApplicationHasChanged(final Notification notification) {
+		if (notification.isTouch()) {
+			return;
+		}
+		final Object notifier = notification.getNotifier();
+		if (!isInstanceOfRequiredStereotypeApplication(notifier)) {
+			return;
+		}
+		Object feature = notification.getFeature();
+		int eventType = notification.getEventType();
+		if (feature instanceof EReference
+				&& ((EReference) feature).getName().startsWith(getStereotypeApplicationBasePropertyName())) {
+			switch (eventType) {
+			case Notification.SET:
+				final Object newValue = notification.getNewValue();
+				final Object oldValue = notification.getOldValue();
+				if (newValue instanceof Element && isAllowedAsBaseElement((Element) newValue)) {
+					updateManagedList(Collections.singletonList(newValue), Collections.emptyList());
+					this.stereotypedElementsMap.put((EObject) notifier, (Element) newValue);
+				} else if (newValue == null && this.managedObject.contains(oldValue)) {
+					updateManagedList(Collections.emptyList(), Collections.singletonList(oldValue));
+					this.stereotypedElementsMap.remove(notifier);
+					removeStereotypeApplicationListener((EObject) notifier);
+				}
+				break;
+
+			case Notification.UNSET:// never used?
+				final Object oldValue2 = notification.getOldValue();
+				if (oldValue2 instanceof Element && this.managedObject.contains(oldValue2)) {
+					updateManagedList(Collections.emptyList(), Collections.singletonList(oldValue2));
+					this.stereotypedElementsMap.remove(notifier);
+					removeStereotypeApplicationListener((EObject) notifier);
+				}
+				break;
+			default:
+				break;
+			}
+		}
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.infra.emf.nattable.manager.axis.
+	 * AbstractSynchronizedOnEStructuralFeatureAxisManager#getAllManagedAxis()
+	 */
+	@Override
+	public List<Object> getAllManagedAxis() {
+		List<Object> RiskReduction = new ArrayList<Object>();
+
+		for (Element el : ((org.eclipse.uml2.uml.Interface) getTableContext()).allOwnedElements()) {
+			if (el.getAppliedStereotype("TaskBasedRiskAnalysis::RiskReduction") != null)
+				RiskReduction.add(el);
+		}
+		return RiskReduction;
+	}
+
+	
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.infra.nattable.manager.axis.AbstractAxisManager#
+	 * canCreateAxisElement(java.lang.String)
+	 */
+	@Override
+	public boolean canCreateAxisElement(String elementId) {
+		return RiskanalysisPackage.eINSTANCE.getRiskReduction().getInstanceTypeName().equals(elementId);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * isInstanceOfRequiredStereotypeApplication(java.lang.Object)
+	 */
+	@Override
+	protected boolean isInstanceOfRequiredStereotypeApplication(Object object) {
+		return object instanceof RiskReduction;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * isAllowedAsBaseElement(org.eclipse.uml2.uml.Element)
+	 */
+	@Override
+	protected boolean isAllowedAsBaseElement(Element element) {
+		return element instanceof org.eclipse.uml2.uml.Class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * getStereotypeApplication(org.eclipse.uml2.uml.Element)
+	 */
+	@Override
+	protected RiskReduction getStereotypeApplication(Element element) {
+		return UMLUtil.getStereotypeApplication(element, RiskReduction.class);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.
+	 * AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#
+	 * getStereotypeApplicationBasePropertyName()
+	 */
+	@Override
+	protected String getStereotypeApplicationBasePropertyName() {
+		return RiskanalysisPackage.eINSTANCE.getRiskReduction_Base_Property().getName();
+	}
+
+	/**
+	 * Gets the stereotype base element.
+	 *
+	 * @param stereotypeApplication
+	 *            the stereotype application
+	 * @return the stereotype base element
+	 * @see org.eclipse.papyrus.uml.nattable.manager.axis.AbstractStereotypedElementUMLSynchronizedOnFeatureAxisManager#getStereotypeBaseElement(org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	protected Element getStereotypeBaseElement(final RiskReduction stereotypeApplication) {
+		return stereotypeApplication.getBase_Property();
+	}
+
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RiskReductionTableTester.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RiskReductionTableTester.java
new file mode 100644
index 0000000..50dcde6
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/RiskReductionTableTester.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *  Ansgar Radermacher (CEA LIST)
+ *  yakoub Karoui (CEA LIST)
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.papyrus.infra.nattable.tester.ITableTester;
+
+
+public class RiskReductionTableTester implements ITableTester {
+
+	@Override
+	public IStatus isAllowed(Object context) {
+		IStatus status = null;
+		if(context instanceof Class){
+			status = Status.OK_STATUS;
+		}
+		return status;
+	}
+	
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/UMLPrimitiveTypesUtils.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/UMLPrimitiveTypesUtils.java
new file mode 100644
index 0000000..00421e0
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/src/org/eclipse/papyrus/robotics/safety/riskanalysis/table/UMLPrimitiveTypesUtils.java
@@ -0,0 +1,78 @@
+/*****************************************************************************
+ * 
+ * Copyright (c) 2016 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *  CEA LIST Initial API and implementation
+ * 
+ *****************************************************************************/
+package org.eclipse.papyrus.robotics.safety.riskanalysis.table;
+
+
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Utility class to retrieve UML primitive types defined in the UMLPrimitiveTypes library
+ * (i.e., Integer, String, Boolean, UnlimitedNatural, Real)
+ * 
+ */
+@SuppressWarnings("nls")
+public class UMLPrimitiveTypesUtils {
+
+	private final static String INTEGER_TYPE_NAME = "PrimitiveTypes::Integer" ;
+	private final static String STRING_TYPE_NAME = "PrimitiveTypes::String" ;
+	private final static String BOOLEAN_TYPE_NAME = "PrimitiveTypes::Boolean" ;
+	private final static String UNLIMITED_NATURAL_TYPE_NAME = "PrimitiveTypes::UnlimitedNatural" ;
+	private final static String REAL_TYPE_NAME = "PrimitiveTypes::Real" ;
+	private final static String UML_PRIMITIVE_TYPES_LIBRARY_NAME = "UMLPrimitiveTypes" ;
+
+	/**
+	 * Retrieves a predefined UML PrimitiveType whose qualified name is qualifiedTypeName,
+	 * in the context of the given context UML model element.
+	 * The effect is that, if the UML Primitive TYpes library is not loaded in the
+	 * resource set containing the model that contains the given context model element,
+	 * the UML Primitive Types library is loaded in the resource set. Once the library
+	 * is loaded, the desired primitive type is retrieve from the library using the given
+	 * qualifiedTypeName 
+	 * 
+	 * @param context The context UML model element from which the UML Primitive Type is required
+	 * @param qualifiedTypeName The qualified name of the predefined UML primitive type
+	 * @return A Primitive Type from the UML Primitive Types library, whose qualified name equals qualifiedTypeName
+	 */
+	private static Type getUMLPrimitiveType(Element context, String qualifiedTypeName) {
+		NamedElement element = RegisteredLibraryLoadAndSearchUtils.getNamedElement(context, qualifiedTypeName, UML_PRIMITIVE_TYPES_LIBRARY_NAME) ;
+		if (element != null && element instanceof Type) {
+			return (Type)element ;
+		}
+		return null ;
+	}
+	
+	public static Type getInteger(Element context) {
+		return getUMLPrimitiveType(context, INTEGER_TYPE_NAME) ;
+	}
+
+	public static Type getBoolean(Element context) {
+		return getUMLPrimitiveType(context, BOOLEAN_TYPE_NAME) ;
+	}
+	
+	public static Type getUnlimitedNatural(Element context) {
+		return getUMLPrimitiveType(context, UNLIMITED_NATURAL_TYPE_NAME) ;
+	}
+	
+	public static Type getReal(Element context) {
+		return getUMLPrimitiveType(context, REAL_TYPE_NAME) ;
+	}
+	
+	public static Type getString(Element context) {
+		return getUMLPrimitiveType(context, STRING_TYPE_NAME) ;
+	}
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/HazardAnalysisTableType.nattableconfiguration b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/HazardAnalysisTableType.nattableconfiguration
index 5146fcc..b459224 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/HazardAnalysisTableType.nattableconfiguration
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/HazardAnalysisTableType.nattableconfiguration
@@ -1,93 +1,106 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<nattableconfiguration:TableConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:nattableaxis="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis" xmlns:nattableaxisconfiguration="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:nattablelabelprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattablecontentprovider" xmlns:nattablestyle="http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle" xmi:id="_4sLZQEWIEem1bPXeAqLfZw" description="" name="HazardAnalysisTable" type="HazardAnalysisTableType" iconPath="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/icons/HazardAnalysisTableType.png" cellEditorDeclaration="COLUMN" defaultRowAxisProvider="_4sLZY0WIEem1bPXeAqLfZw" defaultColumnAxisProvider="_4sLZT0WIEem1bPXeAqLfZw">
-  <styles xmi:type="nattablestyle:IntListValueStyle" xmi:id="_4sLZQUWIEem1bPXeAqLfZw" name="hiddenCategoriesByDepth">
-    <intListValue>0</intListValue>
-  </styles>
-  <styles xmi:type="nattablestyle:TableDisplayStyle" xmi:id="_4sLZQkWIEem1bPXeAqLfZw" displayStyle="HIERARCHIC_SINGLE_TREE_COLUMN"/>
-  <styles xmi:type="nattablestyle:StringListValueStyle" xmi:id="_4sLZQ0WIEem1bPXeAqLfZw" name="dragRegions">
-    <stringListValue>ROW_HEADER</stringListValue>
-  </styles>
-  <rowHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:TableHeaderAxisConfiguration" xmi:id="_4sLZREWIEem1bPXeAqLfZw" indexStyle="NUMERIC" displayLabel="true" displayFilter="false" displayIndex="true">
-    <ownedLabelConfigurations xmi:type="nattablelabelprovider:ObjectLabelProviderConfiguration" xmi:id="_4sLZRUWIEem1bPXeAqLfZw" displayIcon="true" displayLabel="true"/>
-    <ownedLabelConfigurations xmi:type="nattablelabelprovider:FeatureLabelProviderConfiguration" xmi:id="_4sLZRkWIEem1bPXeAqLfZw" displayIcon="true" displayLabel="true" displayIsDerived="true" displayType="false" displayMultiplicity="false" displayName="true"/>
-    <ownedAxisConfigurations xmi:type="nattableaxisconfiguration:TreeFillingConfiguration" xmi:id="_4sLZR0WIEem1bPXeAqLfZw" pasteConfiguration="_VWOB0EopEemVHZcw501Xsg" labelProvider="_4sLZRkWIEem1bPXeAqLfZw" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.treefilling.feature.labelprovider">
-      <axisUsedAsAxisProvider xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_4sLZSEWIEem1bPXeAqLfZw">
-        <element xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier/attribute"/>
-      </axisUsedAsAxisProvider>
+<nattableconfiguration:TableConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:nattableaxis="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis" xmlns:nattableaxisconfiguration="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:nattablelabelprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattablecontentprovider" xmlns:nattablestyle="http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle" xmi:id="_ofc8oGuBEeuXXJEl13q1ZA" description="A table for Hazard Analysis" name="Hazard Analysis Table" type="HazardAnalysisTableType" iconPath="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/icons/HazardAnalysisTableType.png" cellEditorDeclaration="COLUMN" defaultRowAxisProvider="_DySCYGuHEeuXXJEl13q1ZA" defaultColumnAxisProvider="_rXFe0GuGEeuXXJEl13q1ZA">
+  <rowHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:TableHeaderAxisConfiguration" xmi:id="_bH4hwGuFEeuXXJEl13q1ZA" indexStyle="NUMERIC" displayLabel="true" displayFilter="false" displayIndex="true">
+    <ownedLabelConfigurations xmi:type="nattablelabelprovider:ObjectLabelProviderConfiguration" xmi:id="_gpkBoGuFEeuXXJEl13q1ZA" displayIcon="true" displayLabel="true"/>
+    <ownedAxisConfigurations xmi:type="nattableaxisconfiguration:EStructuralFeatureValueFillingConfiguration" xmi:id="_jNHjgGuFEeuXXJEl13q1ZA">
+      <listenFeature xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
     </ownedAxisConfigurations>
-    <ownedAxisConfigurations xmi:type="nattableaxisconfiguration:PasteEObjectConfiguration" xmi:id="_VWOB0EopEemVHZcw501Xsg" detachedMode="false" pastedElementId="org.eclipse.papyrus.uml.Property">
-      <pasteElementContainementFeature xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface/ownedAttribute"/>
-      <axisIdentifier xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_AzcIAEouEemVHZcw501Xsg" manager="_4sLZTUWIEem1bPXeAqLfZw">
-        <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
-      </axisIdentifier>
+    <ownedAxisConfigurations xmi:type="nattableaxisconfiguration:PasteEObjectConfiguration" xmi:id="_oCR7oGuFEeuXXJEl13q1ZA" detachedMode="true" pastedElementId="org.eclipse.papyrus.uml.Property">
+      <postActions>applyStereotype:/TaskBasedRiskAnalysis::HazardAnalysis</postActions>
+      <pasteElementContainementFeature xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact/ownedAttribute"/>
     </ownedAxisConfigurations>
-    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_4sLZSUWIEem1bPXeAqLfZw" axisManagerId="org.eclipse.papyrus.infra.uml.nattable.tree.axis.manager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.labelprovider" headerLabelConfiguration="_4sLZRUWIEem1bPXeAqLfZw" specificAxisConfigurations="_4sLZR0WIEem1bPXeAqLfZw"/>
+    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_3qDhwGuFEeuXXJEl13q1ZA" axisManagerId="org.eclipse.papyrus.robotics.safety.riskananlysis.table.hazardanalysisaxismanager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.labelprovider" headerLabelConfiguration="_gpkBoGuFEeuXXJEl13q1ZA" specificAxisConfigurations="_jNHjgGuFEeuXXJEl13q1ZA"/>
   </rowHeaderAxisConfiguration>
-  <columnHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:TableHeaderAxisConfiguration" xmi:id="_4sLZSkWIEem1bPXeAqLfZw" displayLabel="true" displayFilter="false" displayIndex="true">
-    <ownedLabelConfigurations xmi:type="nattablelabelprovider:FeatureLabelProviderConfiguration" xmi:id="_4sLZS0WIEem1bPXeAqLfZw" displayIcon="true" displayLabel="true" displayIsDerived="false" displayType="false" displayMultiplicity="false" displayName="true"/>
-    <ownedLabelConfigurations xmi:type="nattablelabelprovider:FeatureLabelProviderConfiguration" xmi:id="_4sLZTEWIEem1bPXeAqLfZw" displayIcon="true" displayLabel="true" displayIsDerived="false" displayType="false" displayMultiplicity="false" displayName="true"/>
-    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_4sLZTUWIEem1bPXeAqLfZw" axisManagerId="org.eclipse.papyrus.uml.nattable.feature.axis.manager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.feature.labelprovider" headerLabelConfiguration="_4sLZS0WIEem1bPXeAqLfZw"/>
-    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_4sLZTkWIEem1bPXeAqLfZw" axisManagerId="org.eclipse.papyrus.uml.nattable.stereotype.property.axis.manager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.feature.labelprovider" headerLabelConfiguration="_4sLZTEWIEem1bPXeAqLfZw"/>
+  <columnHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:TableHeaderAxisConfiguration" xmi:id="_ZHewQGuFEeuXXJEl13q1ZA" displayLabel="true" displayFilter="false" displayIndex="true">
+    <ownedLabelConfigurations xmi:type="nattablelabelprovider:FeatureLabelProviderConfiguration" xmi:id="_FNt7EGuGEeuXXJEl13q1ZA" displayIcon="false" displayLabel="true" displayIsDerived="false" displayType="false" displayMultiplicity="false" displayName="true"/>
+    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_KZHo8GuGEeuXXJEl13q1ZA" axisManagerId="org.eclipse.papyrus.uml.nattable.feature.axis.manager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.feature.labelprovider" headerLabelConfiguration="_FNt7EGuGEeuXXJEl13q1ZA"/>
+    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_Me8tAGuGEeuXXJEl13q1ZA" axisManagerId="org.eclipse.papyrus.uml.nattable.stereotype.property.axis.manager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.feature.labelprovider" headerLabelConfiguration="_FNt7EGuGEeuXXJEl13q1ZA"/>
   </columnHeaderAxisConfiguration>
-  <columnAxisProviders xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_4sLZT0WIEem1bPXeAqLfZw" description="This axis provider provides available columns according to the rows of the table (features of the object displayed on the other axis)" name="UML Feature axis provider">
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZUEWIEem1bPXeAqLfZw" alias="Skill" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Skill">
+  <columnAxisProviders xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_rXFe0GuGEeuXXJEl13q1ZA" description="Provides the column of the tables with a default configuration" name="HazardAnalysis Feature Columns Provider">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_8BOg4GuGEeuXXJEl13q1ZA" alias="Skill" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Skill">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_4sLZUUWIEem1bPXeAqLfZw" alias="Hazard">
+    <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_AKDXcGuHEeuXXJEl13q1ZA" alias="Hazard">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBDzQEei_1txcmoHe_A"/>
       <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZUkWIEem1bPXeAqLfZw" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Origin">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKD-gGuHEeuXXJEl13q1ZA" alias="Hazard Type" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Hazard">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZU0WIEem1bPXeAqLfZw" alias="Hazardous Situation" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::HazardousSituation">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKD-gWuHEeuXXJEl13q1ZA" alias="Possible Harm" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::PossibleHarm">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZVEWIEem1bPXeAqLfZw" alias="Hazardous Event" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::HazardousEvent">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKElkGuHEeuXXJEl13q1ZA" alias="Origin" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Origin">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZVUWIEem1bPXeAqLfZw" alias="Possible Harm" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::PossibleHarm">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKElkWuHEeuXXJEl13q1ZA" alias="Contact Aera" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::ContactAera">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZVkWIEem1bPXeAqLfZw" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Comment">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKFMoGuHEeuXXJEl13q1ZA" alias="Hazardous Situation" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::HazardousSituation">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZV0WIEem1bPXeAqLfZw" alias="Initial Occurence" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Occurence">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKFMoWuHEeuXXJEl13q1ZA" alias="Hazardous Event" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::HazardousEvent">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZWEWIEem1bPXeAqLfZw" alias="Initial Avoidance" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Avoidance">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKFzsGuHEeuXXJEl13q1ZA" alias="Initial Occurence" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Occurence">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZWUWIEem1bPXeAqLfZw" alias="Initial Frequency" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Frequency">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKGawGuHEeuXXJEl13q1ZA" alias="Initial Avoidance" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Avoidance">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZWkWIEem1bPXeAqLfZw" alias="Initial Severity" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Severity">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKGawWuHEeuXXJEl13q1ZA" alias="Initial Frequency" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Frequency">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZW0WIEem1bPXeAqLfZw" alias="Initial Criticality" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Criticality">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKHB0GuHEeuXXJEl13q1ZA" alias="Initial Severity" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Severity">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZXEWIEem1bPXeAqLfZw" alias="Initial Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_RiskReduction">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKHB0WuHEeuXXJEl13q1ZA" alias="Initial Criticality" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Criticality">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZXUWIEem1bPXeAqLfZw" alias="Final Occurence" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Occurence">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKHB0muHEeuXXJEl13q1ZA" alias="Initial Risk Level" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_RiskLevel">
+      <styles xmi:type="nattablestyle:IntValueStyle" xmi:id="_aNYN8HH_Eeu-H5i18g5byw" name="axisWidth" intValue="150"/>
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZXkWIEem1bPXeAqLfZw" alias="Final Avoidance" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Avoidance">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKIP8GuHEeuXXJEl13q1ZA" alias="Initial Design Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_DesignRiskReduction">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZX0WIEem1bPXeAqLfZw" alias="Final Frequency" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Frequency">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKIP8WuHEeuXXJEl13q1ZA" alias="Initial Technical Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_TechnicalRiskReduction">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZYEWIEem1bPXeAqLfZw" alias="Final Severity" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Severity">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKIP8muHEeuXXJEl13q1ZA" alias="Initial Organizational Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_OrganizationalRiskReduction">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZYUWIEem1bPXeAqLfZw" alias="Final Criticality" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Criticality">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKJeEGuHEeuXXJEl13q1ZA" alias="Final Occurence" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Occurence">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_4sLZYkWIEem1bPXeAqLfZw" alias="Final Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_RiskReduction">
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKJeEWuHEeuXXJEl13q1ZA" alias="Final Avoidance" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Avoidance">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKJeEmuHEeuXXJEl13q1ZA" alias="Final Frequency" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Frequency">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKKFIGuHEeuXXJEl13q1ZA" alias="Final Severity" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Severity">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKKFIWuHEeuXXJEl13q1ZA" alias="Final Criticality" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Criticality">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKKsMGuHEeuXXJEl13q1ZA" alias="Final Risk Level" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_RiskLevel">
+      <styles xmi:type="nattablestyle:IntValueStyle" xmi:id="_iaRhQHHbEeuiS5P54oLsOA" name="axisWidth" intValue="150"/>
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKKsMWuHEeuXXJEl13q1ZA" alias="Final Design Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_DesignRiskReduction">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKLTQGuHEeuXXJEl13q1ZA" alias="Final Technical Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_TechnicalRiskReduction">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKLTQWuHEeuXXJEl13q1ZA" alias="Final Organizational Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_OrganizationalRiskReduction">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_AKL6UGuHEeuXXJEl13q1ZA" alias="Comment" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Comment">
       <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
     </axis>
   </columnAxisProviders>
-  <rowAxisProviders xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_4sLZY0WIEem1bPXeAqLfZw" description="This axis provider manages the rows, according to the wanted hierarchy" name="HierarchicalRowAxisManager" disconnectSlave="true"/>
+  <columnAxisProviders xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_DySCYGuHEeuXXJEl13q1ZA" description="provides the Hazard Analysis directly owned by the context of the table" name="HazardAnalysis Axis Provider" disconnectSlave="true"/>
 </nattableconfiguration:TableConfiguration>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/RiskReductionTableType.nattableconfiguration b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/RiskReductionTableType.nattableconfiguration
new file mode 100644
index 0000000..28770bd
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/RiskReductionTableType.nattableconfiguration
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nattableconfiguration:TableConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:nattableaxis="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis" xmlns:nattableaxisconfiguration="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:nattablelabelprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattablecontentprovider" xmi:id="_ofc8oGuBEeuXXJEl13q1ZA" description="A table for Risk Reduction" name="Risk Reduction Table" type="RiskReductionTableType" iconPath="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/icons/HazardAnalysisTableType.png" cellEditorDeclaration="COLUMN" defaultRowAxisProvider="_DySCYGuHEeuXXJEl13q1ZA" defaultColumnAxisProvider="_rXFe0GuGEeuXXJEl13q1ZA">
+  <rowHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:TableHeaderAxisConfiguration" xmi:id="_bH4hwGuFEeuXXJEl13q1ZA" indexStyle="NUMERIC" displayLabel="true" displayFilter="false" displayIndex="true">
+    <ownedLabelConfigurations xmi:type="nattablelabelprovider:ObjectLabelProviderConfiguration" xmi:id="_gpkBoGuFEeuXXJEl13q1ZA" displayIcon="true" displayLabel="true"/>
+    <ownedAxisConfigurations xmi:type="nattableaxisconfiguration:EStructuralFeatureValueFillingConfiguration" xmi:id="_jNHjgGuFEeuXXJEl13q1ZA">
+      <listenFeature xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+    </ownedAxisConfigurations>
+    <ownedAxisConfigurations xmi:type="nattableaxisconfiguration:PasteEObjectConfiguration" xmi:id="_oCR7oGuFEeuXXJEl13q1ZA" detachedMode="true" pastedElementId="org.eclipse.papyrus.uml.Property">
+      <postActions>applyStereotype:/TaskBasedRiskAnalysis::RiskReduction</postActions>
+      <pasteElementContainementFeature xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact/ownedAttribute"/>
+    </ownedAxisConfigurations>
+    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_3qDhwGuFEeuXXJEl13q1ZA" axisManagerId="org.eclipse.papyrus.robotics.safety.riskananlysis.table.riskreductionaxismanager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.labelprovider" headerLabelConfiguration="_gpkBoGuFEeuXXJEl13q1ZA" specificAxisConfigurations="_jNHjgGuFEeuXXJEl13q1ZA"/>
+  </rowHeaderAxisConfiguration>
+  <columnHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:TableHeaderAxisConfiguration" xmi:id="_ZHewQGuFEeuXXJEl13q1ZA" displayLabel="true" displayFilter="false" displayIndex="true">
+    <ownedLabelConfigurations xmi:type="nattablelabelprovider:FeatureLabelProviderConfiguration" xmi:id="_FNt7EGuGEeuXXJEl13q1ZA" displayIcon="false" displayLabel="true" displayIsDerived="false" displayType="false" displayMultiplicity="false" displayName="true"/>
+    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_KZHo8GuGEeuXXJEl13q1ZA" axisManagerId="org.eclipse.papyrus.uml.nattable.feature.axis.manager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.feature.labelprovider" headerLabelConfiguration="_FNt7EGuGEeuXXJEl13q1ZA"/>
+    <axisManagers xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" xmi:id="_Me8tAGuGEeuXXJEl13q1ZA" axisManagerId="org.eclipse.papyrus.uml.nattable.stereotype.property.axis.manager" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.feature.labelprovider" headerLabelConfiguration="_FNt7EGuGEeuXXJEl13q1ZA"/>
+  </columnHeaderAxisConfiguration>
+  <columnAxisProviders xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_rXFe0GuGEeuXXJEl13q1ZA" description="Provides the column of the tables with a default configuration" name="RiskReduction Feature Columns Provider">
+    <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_8a-EQGxPEeuiS5P54oLsOA" alias="Risk Reduction">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBDzQEei_1txcmoHe_A"/>
+      <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+    </axis>
+    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_8a-rUGxPEeuiS5P54oLsOA" alias="Description" element="property_of_stereotype:/TaskBasedRiskAnalysis::RiskReduction::Description">
+      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+    </axis>
+  </columnAxisProviders>
+  <columnAxisProviders xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_DySCYGuHEeuXXJEl13q1ZA" description="provides the Risk Reduction directly owned by the context of the table" name="RiskReduction Axis Provider" disconnectSlave="true"/>
+</nattableconfiguration:TableConfiguration>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/.settings/org.eclipse.jdt.core.prefs
index f4d933e..7adc0fb 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/.settings/org.eclipse.jdt.core.prefs
@@ -3,5 +3,8 @@
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
 org.eclipse.jdt.core.compiler.source=11
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/META-INF/MANIFEST.MF b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/META-INF/MANIFEST.MF
index 928615b..41837bf 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/META-INF/MANIFEST.MF
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/META-INF/MANIFEST.MF
@@ -13,11 +13,11 @@
  org.eclipse.papyrus.robotics.safety.riskanalysis.profile,
  org.eclipse.papyrus.uml.tools.utils,
  org.eclipse.papyrus.robotics.core;bundle-version="0.7.0",
- org.eclipse.papyrus.uml.tools;bundle-version="[4.3.0,6.0.0)",
+ org.eclipse.papyrus.uml.tools;bundle-version="4.0.0",
  org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.8.0",
  org.eclipse.papyrus.robotics.bt.profile;bundle-version="0.7.0",
  org.eclipse.papyrus.infra.widgets;bundle-version="[3.6.0,5.0.0)",
- org.eclipse.core.expressions;bundle-version="3.0.0"
+ org.eclipse.core.expressions;bundle-version="[3.6.0,5.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Automatic-Module-Name: org.eclipse.papyrus.robotics.safety.riskanalysis.ui
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/plugin.properties b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/plugin.properties
index 16aab82..974f8db 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/plugin.properties
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/plugin.properties
@@ -1,13 +1,4 @@
-##################################################################################
-# Copyright (c) 2020 CEA LIST.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
 #
-# SPDX-License-Identifier: EPL-2.0
-#
-##################################################################################
 
-providerName = Eclipse Modeling Project
-pluginName = Papyrus Robotics UI for Task-Based Risk Analysis (Incubation)
+pluginName = Papyrus Robotics UI for Task-Based Risk Analysis
+providerName = CEA LIST
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/plugin.xml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/plugin.xml
index 6175cce..c099daf 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/plugin.xml
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/plugin.xml
@@ -14,6 +14,11 @@
       </command>
       <command
             categoryId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.category"
+            id="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.CreateNewRiskReduction"
+            name="Create New Risk Reduction">
+      </command>
+      <command
+            categoryId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.category"
             id="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.AssignTaskModelToAnalysisContext"
             name="Assign Task Model to the Analysis Context">
       </command>
@@ -24,6 +29,10 @@
             class="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.handlers.CreateHazardAnalysisHandler"
             commandId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.CreateNewHazard">
       </handler>
+   <handler
+         class="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.handlers.CreateRiskReductionHandler"
+         commandId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.CreateNewRiskReduction">
+   </handler>
       <handler
             class="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.handlers.AssignTaskModelToAnalysisContextHandler"
             commandId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.AssignTaskModelToAnalysisContext">
@@ -76,6 +85,26 @@
             </visibleWhen>
          </command>
          <command
+               commandId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.CreateNewRiskReduction"
+               id="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.menus.modelexplorer.CreateNewRiskReduction">
+            <visibleWhen
+                  checkEnabled="false">
+               <and>
+                  <with
+                        variable="selection">
+                     <test
+                           forcePluginActivation="true"
+                           property="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.propertytesters.HazardAnalysisContextTester.isHazardAnalysisContext"
+                           value="true">
+                     </test>
+                  </with>
+                  <count
+                        value="1">
+                  </count>
+               </and>
+            </visibleWhen>
+         </command>
+         <command
                commandId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.AssignTaskModelToAnalysisContext"
                id="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.menus.modelexplorer.AssignTaskModelToAnalysisContext">
             <visibleWhen
@@ -104,6 +133,10 @@
             icon="icons/icon_sfailuremodefmea.png">
       </image>
       <image
+            commandId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.CreateNewRiskReduction"
+            icon="icons/icon_sfailuremodefmea.png">
+      </image>
+      <image
             commandId="org.eclipse.papyrus.robotics.safety.riskanalysis.ui.commands.AssignTaskModelToAnalysisContext"
             icon="icons/icon_sfailuremodefmea.png">
       </image>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/pom.xml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/pom.xml
index 71c09a6..ad8800e 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/pom.xml
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/pom.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
-    <groupId>org.eclipse.papyrus.robotics</groupId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.ui</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <description>This module contains the UI definitions for Task-Based Risk Analysis in Papyrus Robotics.</description>
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
+		<groupId>org.eclipse.papyrus.robotics</groupId>
+		<version>0.8.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.ui</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<description>This module contains the UI definitions for Task-Based Risk Analysis in Papyrus Robotics.</description>
 </project>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/src/org/eclipse/papyrus/robotics/safety/riskanalysis/ui/handlers/CreateRiskReductionHandler.java b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/src/org/eclipse/papyrus/robotics/safety/riskanalysis/ui/handlers/CreateRiskReductionHandler.java
new file mode 100644
index 0000000..71a37d7
--- /dev/null
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.ui/src/org/eclipse/papyrus/robotics/safety/riskanalysis/ui/handlers/CreateRiskReductionHandler.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2019 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * Contributors:
+ *     CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.robotics.safety.riskanalysis.ui.handlers;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.polarsys.esf.core.utils.ModelUtil;
+import org.eclipse.papyrus.robotics.safety.riskanalysis.RiskReduction;
+
+
+public class CreateRiskReductionHandler extends AbstractHandler  {
+	/** Create Risk Reduction. */
+	private static final String CREATE_RISKREDUCTION_LABEL = "Create Risk Reduction"; //$NON-NLS-1$
+
+	/**
+	 * Default constructor.
+	 */
+	public CreateRiskReductionHandler() {
+		
+	}	
+	
+	/**
+	 * Get the selected element (Interface) and call the command for creating a RiskReduction.
+	 *
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		ISelection vSelection = HandlerUtil.getCurrentSelection(event);
+		final Interface vSelectedInterface =
+				(Interface) ModelUtil.getSelectedEObjectOfType(vSelection, UMLPackage.eINSTANCE.getInterface());
+		if (vSelectedInterface != null) {
+		
+				TransactionalEditingDomain vDomain = ModelUtil.getTransactionalEditingDomain(vSelectedInterface.getPackage());
+				RecordingCommand vCreateRiskReduction = new RecordingCommand(vDomain, CREATE_RISKREDUCTION_LABEL) {
+
+					@Override
+					protected void doExecute() {
+						// compute the name for the new Class
+						String vName = "RiskReduction";
+						// Create the object 'Property' of the interface containing the hazard to analyse
+						Property riskReductionProperty = vSelectedInterface.createOwnedAttribute(vName, null);
+
+						// Apply 'RiskReduction' stereotype on 'hazardAnalysisProperty'
+						StereotypeUtil.apply(riskReductionProperty, RiskReduction.class);
+						
+					}
+				};
+
+				// Verify if command can be executed
+				if (vCreateRiskReduction.canExecute()) {
+					// Execute command
+					vDomain.getCommandStack().execute(vCreateRiskReduction);
+				}
+			}
+		
+		return null;
+	}
+
+	
+
+}
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/.settings/org.eclipse.jdt.core.prefs b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/.settings/org.eclipse.jdt.core.prefs
index f4d933e..7adc0fb 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/.settings/org.eclipse.jdt.core.prefs
@@ -3,5 +3,8 @@
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
 org.eclipse.jdt.core.compiler.source=11
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/META-INF/MANIFEST.MF b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/META-INF/MANIFEST.MF
index 2f28a9e..d0d7ca6 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/META-INF/MANIFEST.MF
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/META-INF/MANIFEST.MF
@@ -14,15 +14,14 @@
  org.eclipse.papyrus.infra.architecture;bundle-version="1.0.0",
  org.eclipse.papyrus.robotics.core;bundle-version="0.7.0",
  org.eclipse.papyrus.robotics.profile;bundle-version="0.7.0",
- org.eclipse.papyrus.uml.diagram.wizards;bundle-version="[3.2.0,5.0.0)",
- org.eclipse.papyrus.infra.core.log;bundle-version="[1.2.0,3.0.0)",
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="[3.1.0,5.0.0)",
- org.eclipse.papyrus.infra.core.architecture;bundle-version="[2.1.0,4.0.0)",
- org.eclipse.papyrus.uml.tools;bundle-version="[4.3.0,6.0.0)",
+ org.eclipse.papyrus.uml.diagram.wizards;bundle-version="3.0.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="3.0.0",
+ org.eclipse.papyrus.infra.core.architecture;bundle-version="2.0.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="4.0.0",
  org.eclipse.papyrus.robotics.wizards;bundle-version="0.7.0",
- org.eclipse.papyrus.robotics.safety.riskanalysis.table;bundle-version="0.7.0",
- org.eclipse.papyrus.robotics.safety.riskanalysis.profile;bundle-version="0.7.0"
+ org.eclipse.papyrus.robotics.safety.riskanalysis.table;bundle-version="0.8.0",
+ org.eclipse.papyrus.robotics.safety.riskanalysis.profile;bundle-version="0.8.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Automatic-Module-Name: org.eclipse.papyrus.robotics.safety.riskanalysis.wizard
 Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/plugin.properties b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/plugin.properties
index 38e0ea2..b6244b8 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/plugin.properties
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/plugin.properties
@@ -12,5 +12,5 @@
 #
 ##################################################################################
 
-providerName = Eclipse Modeling Project
 pluginName = Wizard for Creating Task-Based HARA Models (Incubation)
+providerName = CEA LIST
\ No newline at end of file
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/pom.xml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/pom.xml
index 9112b7e..86c17f9 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/pom.xml
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/pom.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
-    <groupId>org.eclipse.papyrus.robotics</groupId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.wizard</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <description>This module contains the Wizard to create Models for Task-Based Risk Analysis in Papyrus Robotics.</description>
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis</artifactId>
+		<groupId>org.eclipse.papyrus.robotics</groupId>
+		<version>0.8.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.papyrus.robotics.safety.riskanalysis.wizard</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<description>This module contains the Wizard to create Models for Task-Based Risk Analysis in Papyrus Robotics.</description>
 </project>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/templates/robotics.thara.notation b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/templates/robotics.thara.notation
index 67e2e90..764d000 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/templates/robotics.thara.notation
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/templates/robotics.thara.notation
@@ -1,75 +1,120 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<nattable:Table xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:nattable="http://www.eclipse.org/papyrus/nattable/model" xmlns:nattableaxis="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis" xmlns:nattableaxisconfiguration="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:nattablestyle="http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis http://www.eclipse.org/papyrus/nattable/model#//nattableaxis http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model#//nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle http://www.eclipse.org/papyrus/nattable/model#//nattablestyle" xmi:id="_--ogcBDIEeqAh-edQ6JabA" name="HazardAnalysisTable" currentRowAxisProvider="_--pHhhDIEeqAh-edQ6JabA" currentColumnAxisProvider="_--ogchDIEeqAh-edQ6JabA" tableKindId="org.eclipse.papyrus.robotics.safety.riskanalysis.table.HazardAnalysisTableType">
-  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_--qVoBDIEeqAh-edQ6JabA" source="http://www.eclipse.org/papyrus/infra/nattable/version">
-    <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_--q8sBDIEeqAh-edQ6JabA" key="version" value="1.3.0"/>
-  </eAnnotations>
-  <styles xmi:type="nattablestyle:IntListValueStyle" xmi:id="_--ogcRDIEeqAh-edQ6JabA" name="hiddenCategoriesByDepth">
-    <intListValue>0</intListValue>
-  </styles>
-  <context xmi:type="uml:Interface" href="robotics.thara.uml#_HY8g8OaxEemlT_oHH5awCQ"/>
-  <owner xmi:type="uml:Interface" href="robotics.thara.uml#_HY8g8OaxEemlT_oHH5awCQ"/>
-  <tableConfiguration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/HazardAnalysisTableType.nattableconfiguration#_4sLZQEWIEem1bPXeAqLfZw"/>
-  <columnAxisProvidersHistory xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_--ogchDIEeqAh-edQ6JabA" description="This axis provider provides available columns according to the rows of the table (features of the object displayed on the other axis)" name="UML Feature axis provider">
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogcxDIEeqAh-edQ6JabA" alias="Skill" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Skill">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_--ogdBDIEeqAh-edQ6JabA" alias="Hazard">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBDzQEei_1txcmoHe_A"/>
-      <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogdRDIEeqAh-edQ6JabA" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Origin">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogdhDIEeqAh-edQ6JabA" alias="Hazardous Situation" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::HazardousSituation">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogdxDIEeqAh-edQ6JabA" alias="Hazardous Event" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::HazardousEvent">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogeBDIEeqAh-edQ6JabA" alias="Possible Harm" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::PossibleHarm">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogeRDIEeqAh-edQ6JabA" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Comment">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogehDIEeqAh-edQ6JabA" alias="Initial Occurence" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Occurence">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogexDIEeqAh-edQ6JabA" alias="Initial Avoidance" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Avoidance">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogfBDIEeqAh-edQ6JabA" alias="Initial Frequency" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Frequency">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogfRDIEeqAh-edQ6JabA" alias="Initial Severity" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Severity">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogfhDIEeqAh-edQ6JabA" alias="Initial Criticality" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Criticality">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--ogfxDIEeqAh-edQ6JabA" alias="Initial Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_RiskReduction">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--pHgBDIEeqAh-edQ6JabA" alias="Final Occurence" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Occurence">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--pHgRDIEeqAh-edQ6JabA" alias="Final Avoidance" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Avoidance">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--pHghDIEeqAh-edQ6JabA" alias="Final Frequency" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Frequency">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--pHgxDIEeqAh-edQ6JabA" alias="Final Severity" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Severity">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--pHhBDIEeqAh-edQ6JabA" alias="Final Criticality" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Criticality">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-    <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_--pHhRDIEeqAh-edQ6JabA" alias="Final Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_RiskReduction">
-      <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
-    </axis>
-  </columnAxisProvidersHistory>
-  <rowAxisProvidersHistory xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_--pHhhDIEeqAh-edQ6JabA" description="This axis provider manages the rows, according to the wanted hierarchy" name="HierarchicalRowAxisManager" disconnectSlave="true"/>
-  <localRowHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:LocalTableHeaderAxisConfiguration" xmi:id="_B0QpwBDJEeqAh-edQ6JabA" indexStyle="NUMERIC" displayIndex="false"/>
-  <localColumnHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:LocalTableHeaderAxisConfiguration" xmi:id="_A-OZoBDJEeqAh-edQ6JabA" displayIndex="false"/>
-</nattable:Table>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:nattable="http://www.eclipse.org/papyrus/nattable/model" xmlns:nattableaxis="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis" xmlns:nattableaxisconfiguration="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:nattablestyle="http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis http://www.eclipse.org/papyrus/nattable/model#//nattableaxis http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model#//nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle http://www.eclipse.org/papyrus/nattable/model#//nattablestyle">
+  <nattable:Table xmi:id="_1OAgYBRBEeuI4vzoU026IQ" name="HazardAnalysisTable" currentRowAxisProvider="_1OAgfhRBEeuI4vzoU026IQ" currentColumnAxisProvider="_1OAgYhRBEeuI4vzoU026IQ" tableKindId="org.eclipse.papyrus.robotics.safety.riskanalysis.table.HazardAnalysisTableType">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1OTbUBRBEeuI4vzoU026IQ" source="http://www.eclipse.org/papyrus/infra/nattable/version">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1OTbURRBEeuI4vzoU026IQ" key="version" value="1.3.0"/>
+    </eAnnotations>
+    <styles xmi:type="nattablestyle:IntListValueStyle" xmi:id="_1OAgYRRBEeuI4vzoU026IQ" name="hiddenCategoriesByDepth">
+      <intListValue>0</intListValue>
+    </styles>
+    <context xmi:type="uml:Interface" href="robotics.thara.uml#_HY8g8OaxEemlT_oHH5awCQ"/>
+    <owner xmi:type="uml:Interface" href="robotics.thara.uml#_HY8g8OaxEemlT_oHH5awCQ"/>
+    <tableConfiguration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/HazardAnalysisTableType.nattableconfiguration#_4sLZQEWIEem1bPXeAqLfZw"/>
+    <columnAxisProvidersHistory xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_1OAgYhRBEeuI4vzoU026IQ" description="This axis provider provides available columns according to the rows of the table (features of the object displayed on the other axis)" name="UML Feature axis provider">
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgYxRBEeuI4vzoU026IQ" alias="Skill" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Skill">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_1OAgZBRBEeuI4vzoU026IQ" alias="Hazard">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBDzQEei_1txcmoHe_A"/>
+        <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgZRRBEeuI4vzoU026IQ" alias="Hazard Type" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Hazard">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgZhRBEeuI4vzoU026IQ" alias="Possible Harm" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::PossibleHarm">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgZxRBEeuI4vzoU026IQ" alias="Origin" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Origin">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgaBRBEeuI4vzoU026IQ" alias="Contact Aera" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::ContactAera">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgaRRBEeuI4vzoU026IQ" alias="Hazardous Situation" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::HazardousSituation">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgahRBEeuI4vzoU026IQ" alias="Hazardous Event" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::HazardousEvent">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgaxRBEeuI4vzoU026IQ" alias="Initial Occurence" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Occurence">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgbBRBEeuI4vzoU026IQ" alias="Initial Avoidance" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Avoidance">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgbRRBEeuI4vzoU026IQ" alias="Initial Frequency" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Frequency">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgbhRBEeuI4vzoU026IQ" alias="Initial Severity" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Severity">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgbxRBEeuI4vzoU026IQ" alias="Initial Criticality" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_Criticality">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgcBRBEeuI4vzoU026IQ" alias="Initial Risk Level" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_RiskLevel">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgcRRBEeuI4vzoU026IQ" alias="Initial Design Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_DesignRiskReduction">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgchRBEeuI4vzoU026IQ" alias="Initial Technical Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_TechnicalRiskReduction">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgcxRBEeuI4vzoU026IQ" alias="Initial Organizational Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Initial_OrganizationalRiskReduction">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgdBRBEeuI4vzoU026IQ" alias="Final Occurence" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Occurence">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgdRRBEeuI4vzoU026IQ" alias="Final Avoidance" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Avoidance">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgdhRBEeuI4vzoU026IQ" alias="Final Frequency" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Frequency">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgdxRBEeuI4vzoU026IQ" alias="Final Severity" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Severity">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgeBRBEeuI4vzoU026IQ" alias="Final Criticality" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_Criticality">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgeRRBEeuI4vzoU026IQ" alias="Final Risk Level" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_RiskLevel">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgehRBEeuI4vzoU026IQ" alias="Final Design Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_DesignRiskReduction">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgexRBEeuI4vzoU026IQ" alias="Final Technical Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_TechnicalRiskReduction">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgfBRBEeuI4vzoU026IQ" alias="Final Organizational Risk Reduction" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Final_OrganizationalRiskReduction">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_1OAgfRRBEeuI4vzoU026IQ" alias="Comment" element="property_of_stereotype:/TaskBasedRiskAnalysis::HazardAnalysis::Comment">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+    </columnAxisProvidersHistory>
+    <rowAxisProvidersHistory xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_1OAgfhRBEeuI4vzoU026IQ" description="This axis provider manages the rows, according to the wanted hierarchy" name="HierarchicalRowAxisManager" disconnectSlave="true"/>
+  </nattable:Table>
+  <nattable:Table xmi:id="_yIOrIBRVEeuNVosEJUzztQ" name="RiskReductionTable" currentRowAxisProvider="_yIOrJRRVEeuNVosEJUzztQ" currentColumnAxisProvider="_yIOrIhRVEeuNVosEJUzztQ" tableKindId="org.eclipse.papyrus.robotics.safety.riskanalysis.table.RiskReductionTableType">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yIfw4BRVEeuNVosEJUzztQ" source="http://www.eclipse.org/papyrus/infra/nattable/version">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yIfw4RRVEeuNVosEJUzztQ" key="version" value="1.3.0"/>
+    </eAnnotations>
+    <styles xmi:type="nattablestyle:IntListValueStyle" xmi:id="_yIOrIRRVEeuNVosEJUzztQ" name="hiddenCategoriesByDepth">
+      <intListValue>0</intListValue>
+    </styles>
+    <context xmi:type="uml:Interface" href="robotics.thara.uml#_HY8g8OaxEemlT_oHH5awCQ"/>
+    <owner xmi:type="uml:Interface" href="robotics.thara.uml#_HY8g8OaxEemlT_oHH5awCQ"/>
+    <tableConfiguration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.robotics.safety.riskanalysis.table/tableConfiguration/RiskReductionTableType.nattableconfiguration#_4sLZQEWIEem1bPXeAqLfZw"/>
+    <columnAxisProvidersHistory xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_yIOrIhRVEeuNVosEJUzztQ" description="This axis provider provides available columns according to the rows of the table (features of the object displayed on the other axis)" name="UML Feature axis provider">
+      <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_yIOrIxRVEeuNVosEJUzztQ" alias="Risk Reduction">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBDzQEei_1txcmoHe_A"/>
+        <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+      </axis>
+      <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_yIOrJBRVEeuNVosEJUzztQ" alias="Description" element="property_of_stereotype:/TaskBasedRiskAnalysis::RiskReduction::Description">
+        <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable/configs/genericTreeTable.nattableconfiguration#_Wa4BBTzQEei_1txcmoHe_A"/>
+      </axis>
+    </columnAxisProvidersHistory>
+    <rowAxisProvidersHistory xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_yIOrJRRVEeuNVosEJUzztQ" description="This axis provider manages the rows, according to the wanted hierarchy" name="HierarchicalRowAxisManager" disconnectSlave="true"/>
+  </nattable:Table>
+</xmi:XMI>
diff --git a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/templates/robotics.thara.uml b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/templates/robotics.thara.uml
index 59125ff..fecf1a2 100644
--- a/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/templates/robotics.thara.uml
+++ b/plugins/taskbasedriskanalysis/org.eclipse.papyrus.robotics.safety.riskanalysis.wizard/templates/robotics.thara.uml
@@ -1,7 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:RiskAnalysis="http://www.eclipse.org/papyrus/robotics/safety/riskanalysis/1" xmlns:bpc="http://www.eclipse.org/papyrus/robotics/bpc/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:robotics.generics="http://www.eclipse.org/papyrus/robotics/generics/1" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/robotics/generics/1 http://www.eclipse.org/papyrus/robotics/1#//generics">
   <uml:Model xmi:id="_s7EokDqZEemGLPXFKe4Rmw" name="template">
-    <packagedElement xmi:type="uml:Interface" xmi:id="_HY8g8OaxEemlT_oHH5awCQ" name="[modelNameUC]"/>
+    <packagedElement xmi:type="uml:Interface" xmi:id="_HY8g8OaxEemlT_oHH5awCQ" name="[modelNameUC]">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_TCyoMDooEeuXC9lPn58rfw" name="Hazard"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_TsEOsDooEeuXC9lPn58rfw" name="RiskReduction"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_Ulo7ADooEeuXC9lPn58rfw" name="Hazard"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_VRvMADooEeuXC9lPn58rfw" name="RiskReduction"/>
+    </packagedElement>
     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_JySa4Ey2Eem1-_1aC5o6fw">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JyTB8Ey2Eem1-_1aC5o6fw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/robotics/1#//generics"/>
@@ -44,4 +49,8 @@
     <id xmi:type="bpc:IdMetaData" xmi:id="_LXMjMky2Eem1-_1aC5o6fw" instance_uid="_LXMjMEy2Eem1-_1aC5o6fw"/>
   </robotics.generics:Package>
   <RiskAnalysis:HazardAnalysisContext xmi:id="_arKXYAzjEeqF2u7BghbLPQ" base_Interface="_HY8g8OaxEemlT_oHH5awCQ"/>
+  <RiskAnalysis:HazardAnalysis xmi:id="_TC1EcDooEeuXC9lPn58rfw" base_Property="_TCyoMDooEeuXC9lPn58rfw"/>
+  <RiskAnalysis:RiskReduction xmi:id="_TsGq8DooEeuXC9lPn58rfw" base_Property="_TsEOsDooEeuXC9lPn58rfw"/>
+  <RiskAnalysis:HazardAnalysis xmi:id="_UlslYDooEeuXC9lPn58rfw" base_Property="_Ulo7ADooEeuXC9lPn58rfw"/>
+  <RiskAnalysis:RiskReduction xmi:id="_VRyPUDooEeuXC9lPn58rfw" base_Property="_VRvMADooEeuXC9lPn58rfw"/>
 </xmi:XMI>
diff --git a/plugins/taskbasedriskanalysis/pom.xml b/plugins/taskbasedriskanalysis/pom.xml
index 0e7fb15..6344a50 100644
--- a/plugins/taskbasedriskanalysis/pom.xml
+++ b/plugins/taskbasedriskanalysis/pom.xml
@@ -17,6 +17,7 @@
   
   <modules>
 	<module>org.eclipse.papyrus.robotics.safety.riskanalysis.profile</module>
+	<module>org.eclipse.papyrus.robotics.safety.riskanalysis.property</module>
 	<module>org.eclipse.papyrus.robotics.safety.riskanalysis.table</module>
 	<module>org.eclipse.papyrus.robotics.safety.riskanalysis.ui</module>
 	<module>org.eclipse.papyrus.robotics.safety.riskanalysis.wizard</module>
diff --git a/releng/org.eclipse.papyrus.robotics.safety.riskanalysis.feature/feature.xml b/releng/org.eclipse.papyrus.robotics.safety.riskanalysis.feature/feature.xml
index 2bfbbdd..e9391e4 100644
--- a/releng/org.eclipse.papyrus.robotics.safety.riskanalysis.feature/feature.xml
+++ b/releng/org.eclipse.papyrus.robotics.safety.riskanalysis.feature/feature.xml
@@ -23,13 +23,13 @@
       <import plugin="org.eclipse.emf.ecore"/>
       <import plugin="org.eclipse.uml2.types"/>
       <import plugin="org.eclipse.uml2.uml"/>
+      <import plugin="org.eclipse.papyrus.uml.extensionpoints" version="1.3.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.papyrus.infra.nattable"/>
+      <import plugin="org.eclipse.uml2.uml" version="5.5.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui"/>
       <import plugin="org.polarsys.esf.core.utils" version="0.7.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.emf.transaction"/>
       <import plugin="org.eclipse.papyrus.uml.tools.utils"/>
-      <import plugin="org.eclipse.papyrus.uml.extensionpoints" version="1.3.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.uml2.uml" version="5.5.0" match="greaterOrEqual"/>
    </requires>
 
    <plugin
@@ -60,4 +60,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.papyrus.robotics.safety.riskanalysis.property"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
