Bug 533065 - [PapryusReq] Update the profile papyrus Req ta add
separation of concerns


Change-Id: I594eb46b9501d46be6358b2f59c8e6d84948003d
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/META-INF/MANIFEST.MF b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/META-INF/MANIFEST.MF
index e7486e7..0a7794d 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/META-INF/MANIFEST.MF
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/META-INF/MANIFEST.MF
@@ -13,6 +13,7 @@
  org.eclipse.uml2.types;visibility:=reexport,
  org.eclipse.uml2.uml;visibility:=reexport,
  org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary;bundle-version="0.7.0";visibility:=reexport,
+ org.eclipse.uml2.uml.profile.standard;visibility:=reexport,
  org.eclipse.emf.common
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/resources/profile/PapyrusRE.profile.genmodel b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/resources/profile/PapyrusRE.profile.genmodel
index 34abf7c..97fb8f1 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/resources/profile/PapyrusRE.profile.genmodel
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/resources/profile/PapyrusRE.profile.genmodel
@@ -11,7 +11,7 @@
     testsDirectory="/org.eclipse.papyrus.requirements.sysml14.papyrusre.tests/src-gen"
     testSuiteClass="org.eclipse.papyrus.requirements.sysml14.papyrusre.tests.PapyrusREAllTests"
     importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="8.0" copyrightFields="false"
-    usedGenPackages="../../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../../org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel#//sysml14 ../../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+    usedGenPackages="../../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/PapyrusRE_StandardUtils.modellibrary.genmodel#//papyrusrestandardutils ../../../org.eclipse.uml2.uml.profile.standard/model/Standard.genmodel#//standard ../../../org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel#//sysml14 ../../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
     classNamePattern="" 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"/>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/resources/profile/papyrusre.ecore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/resources/profile/papyrusre.ecore
index 5ef0d22..c58131a 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/resources/profile/papyrusre.ecore
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/resources/profile/papyrusre.ecore
@@ -17,7 +17,7 @@
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="ImportanceReqCharac" eSuperTypes="../../../org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore#//requirements/Requirement">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="importance" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//priorityandimportanceconcerns/ImportanceKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="ApprovalAuthorityReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="approvalAuthority" ordered="false"
@@ -25,7 +25,7 @@
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="AgreementStatusReqCharac" eSuperTypes="../../../org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore#//requirements/Requirement">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="agreementStatus" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementandprocessconcerns/AgreementStatusKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="MaturityReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="maturity" ordered="false"
@@ -33,15 +33,15 @@
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="LifeCyclePhaseReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="lifeCyclePhase" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementscharacteristicsconcerns/LifeCyclePhaseKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="AbstractionLevelReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractionLevel" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementscharacteristicsconcerns/AbstractionLevelKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="PriorityReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//priorityandimportanceconcerns/PriorityKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="SourceReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" ordered="false"
@@ -49,11 +49,11 @@
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="QualificationStatusReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualificationStatus"
-          ordered="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          ordered="false" eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementandprocessconcerns/QualificationStatusKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="ReviewStatusReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="reviewStatus" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementandprocessconcerns/ReviewStatusKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="ValidatorNameReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="validatorName" ordered="false"
@@ -61,19 +61,19 @@
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="QualityNatureReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualityNature" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementclassificationconcerns/QualityKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="VerifierNameReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="verifierName" ordered="false"
           eType="ecore:EDataType ../../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="VV_Method" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//verificationandvalidationconcerns/VV_MethodKind"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="VV_Status" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//verificationandvalidationconcerns/VV_StatusKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="SatifiactionStatusReqCharac">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="satisfactionStatus" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementandprocessconcerns/SatisfactionStatusKind"/>
     </eClassifiers>
   </eSubpackages>
   <eSubpackages name="requirementclassification" nsURI="http://www.eclipse.org/papyrus/requirements/sysml14/0.7.0/PapyrusRE/RequirementClassification"
@@ -85,15 +85,15 @@
     <eClassifiers xsi:type="ecore:EClass" name="ProcessRequirement" eSuperTypes="#//requirementgenericcharacteristics/Requirement"/>
     <eClassifiers xsi:type="ecore:EClass" name="ConstraintRequirement" eSuperTypes="#//requirementgenericcharacteristics/Requirement">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="constraintKind" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          lowerBound="1" eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementclassificationconcerns/ConstraintKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="WorkloadCapacityRequirement" eSuperTypes="#//requirementgenericcharacteristics/Requirement">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="workloadCapacity" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          lowerBound="1" eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementclassificationconcerns/WorkloadCapacitiesKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="QualityRequirement" eSuperTypes="#//requirementgenericcharacteristics/Requirement">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="specificQualityKind"
-          ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          ordered="false" lowerBound="1" eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementclassificationconcerns/QualityKind"/>
     </eClassifiers>
   </eSubpackages>
   <eSubpackages name="requirementtraceability" nsURI="http://www.eclipse.org/papyrus/requirements/sysml14/0.7.0/PapyrusRE/RequirementTraceability"
@@ -105,15 +105,15 @@
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="validatorName" ordered="false"
           eType="ecore:EDataType ../../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="satisfyStatus" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementandprocessconcerns/SatisfactionStatusKind"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="Verify" eSuperTypes="../../../org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore#//requirements/Verify">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="verifierName" ordered="false"
           eType="ecore:EDataType ../../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="verifyStatus" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//verificationandvalidationconcerns/VV_StatusKind"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="VV_Method" ordered="false"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          eType="ecore:EEnum ../../../org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary/resources/modellibrary/papyrusrestandardutils.ecore#//requirementandprocessconcerns/SatisfactionStatusKind"/>
     </eClassifiers>
   </eSubpackages>
 </ecore:EPackage>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/ConstraintRequirement.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/ConstraintRequirement.java
index 73eef2c..9fbda77 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/ConstraintRequirement.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/ConstraintRequirement.java
@@ -13,6 +13,7 @@
  */
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.ConstraintKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.Requirement;
 
 /**
@@ -34,6 +35,7 @@
 public interface ConstraintRequirement extends Requirement {
 	/**
 	 * Returns the value of the '<em><b>Constraint Kind</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.ConstraintKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Constraint Kind</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Constraint Kind</em>' attribute.
-	 * @see #setConstraintKind(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.ConstraintKind
+	 * @see #setConstraintKind(ConstraintKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.RequirementClassificationPackage#getConstraintRequirement_ConstraintKind()
 	 * @model required="true" ordered="false"
 	 * @generated
 	 */
-	Object getConstraintKind();
+	ConstraintKind getConstraintKind();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.ConstraintRequirement#getConstraintKind <em>Constraint Kind</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Constraint Kind</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.ConstraintKind
 	 * @see #getConstraintKind()
 	 * @generated
 	 */
-	void setConstraintKind(Object value);
+	void setConstraintKind(ConstraintKind value);
 
 } // ConstraintRequirement
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/QualityRequirement.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/QualityRequirement.java
index 0e33aee..95c2454 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/QualityRequirement.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/QualityRequirement.java
@@ -13,6 +13,7 @@
  */
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.Requirement;
 
 /**
@@ -34,6 +35,7 @@
 public interface QualityRequirement extends Requirement {
 	/**
 	 * Returns the value of the '<em><b>Specific Quality Kind</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Specific Quality Kind</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Specific Quality Kind</em>' attribute.
-	 * @see #setSpecificQualityKind(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind
+	 * @see #setSpecificQualityKind(QualityKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.RequirementClassificationPackage#getQualityRequirement_SpecificQualityKind()
 	 * @model required="true" ordered="false"
 	 * @generated
 	 */
-	Object getSpecificQualityKind();
+	QualityKind getSpecificQualityKind();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.QualityRequirement#getSpecificQualityKind <em>Specific Quality Kind</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Specific Quality Kind</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind
 	 * @see #getSpecificQualityKind()
 	 * @generated
 	 */
-	void setSpecificQualityKind(Object value);
+	void setSpecificQualityKind(QualityKind value);
 
 } // QualityRequirement
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/WorkloadCapacityRequirement.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/WorkloadCapacityRequirement.java
index 7509fe3..007ef46 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/WorkloadCapacityRequirement.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/WorkloadCapacityRequirement.java
@@ -13,6 +13,7 @@
  */
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.WorkloadCapacitiesKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.Requirement;
 
 /**
@@ -34,6 +35,7 @@
 public interface WorkloadCapacityRequirement extends Requirement {
 	/**
 	 * Returns the value of the '<em><b>Workload Capacity</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.WorkloadCapacitiesKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Workload Capacity</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Workload Capacity</em>' attribute.
-	 * @see #setWorkloadCapacity(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.WorkloadCapacitiesKind
+	 * @see #setWorkloadCapacity(WorkloadCapacitiesKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.RequirementClassificationPackage#getWorkloadCapacityRequirement_WorkloadCapacity()
 	 * @model required="true" ordered="false"
 	 * @generated
 	 */
-	Object getWorkloadCapacity();
+	WorkloadCapacitiesKind getWorkloadCapacity();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.WorkloadCapacityRequirement#getWorkloadCapacity <em>Workload Capacity</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Workload Capacity</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.WorkloadCapacitiesKind
 	 * @see #getWorkloadCapacity()
 	 * @generated
 	 */
-	void setWorkloadCapacity(Object value);
+	void setWorkloadCapacity(WorkloadCapacitiesKind value);
 
 } // WorkloadCapacityRequirement
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/ConstraintRequirementImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/ConstraintRequirementImpl.java
index d596227..74b5d18 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/ConstraintRequirementImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/ConstraintRequirementImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.EClass;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.ConstraintKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.ConstraintRequirement;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.RequirementClassificationPackage;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object CONSTRAINT_KIND_EDEFAULT = null;
+	protected static final ConstraintKind CONSTRAINT_KIND_EDEFAULT = ConstraintKind.CULTURAL;
 
 	/**
 	 * The cached value of the '{@link #getConstraintKind() <em>Constraint Kind</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object constraintKind = CONSTRAINT_KIND_EDEFAULT;
+	protected ConstraintKind constraintKind = CONSTRAINT_KIND_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getConstraintKind() {
+	public ConstraintKind getConstraintKind() {
 		return constraintKind;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setConstraintKind(Object newConstraintKind) {
-		Object oldConstraintKind = constraintKind;
-		constraintKind = newConstraintKind;
+	public void setConstraintKind(ConstraintKind newConstraintKind) {
+		ConstraintKind oldConstraintKind = constraintKind;
+		constraintKind = newConstraintKind == null ? CONSTRAINT_KIND_EDEFAULT : newConstraintKind;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementClassificationPackage.CONSTRAINT_REQUIREMENT__CONSTRAINT_KIND, oldConstraintKind, constraintKind));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementClassificationPackage.CONSTRAINT_REQUIREMENT__CONSTRAINT_KIND:
-				setConstraintKind(newValue);
+				setConstraintKind((ConstraintKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementClassificationPackage.CONSTRAINT_REQUIREMENT__CONSTRAINT_KIND:
-				return CONSTRAINT_KIND_EDEFAULT == null ? constraintKind != null : !CONSTRAINT_KIND_EDEFAULT.equals(constraintKind);
+				return constraintKind != CONSTRAINT_KIND_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/QualityRequirementImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/QualityRequirementImpl.java
index 291f7b2..382103d 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/QualityRequirementImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/QualityRequirementImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.EClass;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.QualityRequirement;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.RequirementClassificationPackage;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object SPECIFIC_QUALITY_KIND_EDEFAULT = null;
+	protected static final QualityKind SPECIFIC_QUALITY_KIND_EDEFAULT = QualityKind.ADAPTABILITY;
 
 	/**
 	 * The cached value of the '{@link #getSpecificQualityKind() <em>Specific Quality Kind</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object specificQualityKind = SPECIFIC_QUALITY_KIND_EDEFAULT;
+	protected QualityKind specificQualityKind = SPECIFIC_QUALITY_KIND_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getSpecificQualityKind() {
+	public QualityKind getSpecificQualityKind() {
 		return specificQualityKind;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setSpecificQualityKind(Object newSpecificQualityKind) {
-		Object oldSpecificQualityKind = specificQualityKind;
-		specificQualityKind = newSpecificQualityKind;
+	public void setSpecificQualityKind(QualityKind newSpecificQualityKind) {
+		QualityKind oldSpecificQualityKind = specificQualityKind;
+		specificQualityKind = newSpecificQualityKind == null ? SPECIFIC_QUALITY_KIND_EDEFAULT : newSpecificQualityKind;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementClassificationPackage.QUALITY_REQUIREMENT__SPECIFIC_QUALITY_KIND, oldSpecificQualityKind, specificQualityKind));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementClassificationPackage.QUALITY_REQUIREMENT__SPECIFIC_QUALITY_KIND:
-				setSpecificQualityKind(newValue);
+				setSpecificQualityKind((QualityKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementClassificationPackage.QUALITY_REQUIREMENT__SPECIFIC_QUALITY_KIND:
-				return SPECIFIC_QUALITY_KIND_EDEFAULT == null ? specificQualityKind != null : !SPECIFIC_QUALITY_KIND_EDEFAULT.equals(specificQualityKind);
+				return specificQualityKind != SPECIFIC_QUALITY_KIND_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/RequirementClassificationPackageImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/RequirementClassificationPackageImpl.java
index d80aa2d..d0b7071 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/RequirementClassificationPackageImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/RequirementClassificationPackageImpl.java
@@ -19,6 +19,11 @@
 import org.eclipse.emf.ecore.EcorePackage;
 
 import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityAndImportanceConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.RequirementAndProcessConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.RequirementClassificationConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.RequirementsCharacteristicsConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VerificationAndValidationConcernsPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.ConstraintRequirement;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.ProcessRequirement;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.ProjectRequirement;
@@ -40,6 +45,7 @@
 import org.eclipse.uml2.types.TypesPackage;
 
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -131,6 +137,12 @@
 
 		// Initialize simple dependencies
 		EcorePackage.eINSTANCE.eClass();
+		RequirementClassificationConcernsPackage.eINSTANCE.eClass();
+		RequirementsCharacteristicsConcernsPackage.eINSTANCE.eClass();
+		PriorityAndImportanceConcernsPackage.eINSTANCE.eClass();
+		RequirementAndProcessConcernsPackage.eINSTANCE.eClass();
+		VerificationAndValidationConcernsPackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
 		sysmlPackage.eINSTANCE.eClass();
 		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
@@ -297,6 +309,7 @@
 
 		// Obtain other dependent packages
 		RequirementGenericCharacteristicsPackage theRequirementGenericCharacteristicsPackage = (RequirementGenericCharacteristicsPackage)EPackage.Registry.INSTANCE.getEPackage(RequirementGenericCharacteristicsPackage.eNS_URI);
+		RequirementClassificationConcernsPackage theRequirementClassificationConcernsPackage = (RequirementClassificationConcernsPackage)EPackage.Registry.INSTANCE.getEPackage(RequirementClassificationConcernsPackage.eNS_URI);
 
 		// Create type parameters
 
@@ -315,13 +328,13 @@
 		initEClass(processRequirementEClass, ProcessRequirement.class, "ProcessRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
 		initEClass(constraintRequirementEClass, ConstraintRequirement.class, "ConstraintRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getConstraintRequirement_ConstraintKind(), ecorePackage.getEJavaObject(), "constraintKind", null, 1, 1, ConstraintRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintRequirement_ConstraintKind(), theRequirementClassificationConcernsPackage.getConstraintKind(), "constraintKind", null, 1, 1, ConstraintRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(workloadCapacityRequirementEClass, WorkloadCapacityRequirement.class, "WorkloadCapacityRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getWorkloadCapacityRequirement_WorkloadCapacity(), ecorePackage.getEJavaObject(), "workloadCapacity", null, 1, 1, WorkloadCapacityRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getWorkloadCapacityRequirement_WorkloadCapacity(), theRequirementClassificationConcernsPackage.getWorkloadCapacitiesKind(), "workloadCapacity", null, 1, 1, WorkloadCapacityRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(qualityRequirementEClass, QualityRequirement.class, "QualityRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getQualityRequirement_SpecificQualityKind(), ecorePackage.getEJavaObject(), "specificQualityKind", null, 1, 1, QualityRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getQualityRequirement_SpecificQualityKind(), theRequirementClassificationConcernsPackage.getQualityKind(), "specificQualityKind", null, 1, 1, QualityRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		// Create resource
 		createResource(eNS_URI);
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/WorkloadCapacityRequirementImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/WorkloadCapacityRequirementImpl.java
index fa2e71c..fac7242 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/WorkloadCapacityRequirementImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementclassification/impl/WorkloadCapacityRequirementImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.EClass;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.WorkloadCapacitiesKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.RequirementClassificationPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.WorkloadCapacityRequirement;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object WORKLOAD_CAPACITY_EDEFAULT = null;
+	protected static final WorkloadCapacitiesKind WORKLOAD_CAPACITY_EDEFAULT = WorkloadCapacitiesKind.BOUND;
 
 	/**
 	 * The cached value of the '{@link #getWorkloadCapacity() <em>Workload Capacity</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object workloadCapacity = WORKLOAD_CAPACITY_EDEFAULT;
+	protected WorkloadCapacitiesKind workloadCapacity = WORKLOAD_CAPACITY_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getWorkloadCapacity() {
+	public WorkloadCapacitiesKind getWorkloadCapacity() {
 		return workloadCapacity;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setWorkloadCapacity(Object newWorkloadCapacity) {
-		Object oldWorkloadCapacity = workloadCapacity;
-		workloadCapacity = newWorkloadCapacity;
+	public void setWorkloadCapacity(WorkloadCapacitiesKind newWorkloadCapacity) {
+		WorkloadCapacitiesKind oldWorkloadCapacity = workloadCapacity;
+		workloadCapacity = newWorkloadCapacity == null ? WORKLOAD_CAPACITY_EDEFAULT : newWorkloadCapacity;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementClassificationPackage.WORKLOAD_CAPACITY_REQUIREMENT__WORKLOAD_CAPACITY, oldWorkloadCapacity, workloadCapacity));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementClassificationPackage.WORKLOAD_CAPACITY_REQUIREMENT__WORKLOAD_CAPACITY:
-				setWorkloadCapacity(newValue);
+				setWorkloadCapacity((WorkloadCapacitiesKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementClassificationPackage.WORKLOAD_CAPACITY_REQUIREMENT__WORKLOAD_CAPACITY:
-				return WORKLOAD_CAPACITY_EDEFAULT == null ? workloadCapacity != null : !WORKLOAD_CAPACITY_EDEFAULT.equals(workloadCapacity);
+				return workloadCapacity != WORKLOAD_CAPACITY_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/AbstractionLevelReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/AbstractionLevelReqCharac.java
index 9b8d89a..be31998 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/AbstractionLevelReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/AbstractionLevelReqCharac.java
@@ -14,6 +14,7 @@
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.AbstractionLevelKind;
 
 /**
  * <!-- begin-user-doc -->
@@ -34,6 +35,7 @@
 public interface AbstractionLevelReqCharac extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Abstraction Level</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.AbstractionLevelKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Abstraction Level</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Abstraction Level</em>' attribute.
-	 * @see #setAbstractionLevel(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.AbstractionLevelKind
+	 * @see #setAbstractionLevel(AbstractionLevelKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getAbstractionLevelReqCharac_AbstractionLevel()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getAbstractionLevel();
+	AbstractionLevelKind getAbstractionLevel();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.AbstractionLevelReqCharac#getAbstractionLevel <em>Abstraction Level</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Abstraction Level</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.AbstractionLevelKind
 	 * @see #getAbstractionLevel()
 	 * @generated
 	 */
-	void setAbstractionLevel(Object value);
+	void setAbstractionLevel(AbstractionLevelKind value);
 
 } // AbstractionLevelReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/AgreementStatusReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/AgreementStatusReqCharac.java
index 5b95534..56727b1 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/AgreementStatusReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/AgreementStatusReqCharac.java
@@ -13,6 +13,7 @@
  */
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.AgreementStatusKind;
 import org.eclipse.papyrus.sysml14.requirements.Requirement;
 
 /**
@@ -34,6 +35,7 @@
 public interface AgreementStatusReqCharac extends Requirement {
 	/**
 	 * Returns the value of the '<em><b>Agreement Status</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.AgreementStatusKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Agreement Status</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Agreement Status</em>' attribute.
-	 * @see #setAgreementStatus(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.AgreementStatusKind
+	 * @see #setAgreementStatus(AgreementStatusKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getAgreementStatusReqCharac_AgreementStatus()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getAgreementStatus();
+	AgreementStatusKind getAgreementStatus();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.AgreementStatusReqCharac#getAgreementStatus <em>Agreement Status</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Agreement Status</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.AgreementStatusKind
 	 * @see #getAgreementStatus()
 	 * @generated
 	 */
-	void setAgreementStatus(Object value);
+	void setAgreementStatus(AgreementStatusKind value);
 
 } // AgreementStatusReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/ImportanceReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/ImportanceReqCharac.java
index 8e3c39e..e63b60f 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/ImportanceReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/ImportanceReqCharac.java
@@ -13,6 +13,7 @@
  */
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.ImportanceKind;
 import org.eclipse.papyrus.sysml14.requirements.Requirement;
 
 /**
@@ -34,6 +35,7 @@
 public interface ImportanceReqCharac extends Requirement {
 	/**
 	 * Returns the value of the '<em><b>Importance</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.ImportanceKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Importance</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Importance</em>' attribute.
-	 * @see #setImportance(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.ImportanceKind
+	 * @see #setImportance(ImportanceKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getImportanceReqCharac_Importance()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getImportance();
+	ImportanceKind getImportance();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.ImportanceReqCharac#getImportance <em>Importance</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Importance</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.ImportanceKind
 	 * @see #getImportance()
 	 * @generated
 	 */
-	void setImportance(Object value);
+	void setImportance(ImportanceKind value);
 
 } // ImportanceReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/LifeCyclePhaseReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/LifeCyclePhaseReqCharac.java
index 078cc02..e11cd4d 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/LifeCyclePhaseReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/LifeCyclePhaseReqCharac.java
@@ -14,6 +14,7 @@
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.LifeCyclePhaseKind;
 
 /**
  * <!-- begin-user-doc -->
@@ -34,6 +35,7 @@
 public interface LifeCyclePhaseReqCharac extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Life Cycle Phase</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.LifeCyclePhaseKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Life Cycle Phase</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Life Cycle Phase</em>' attribute.
-	 * @see #setLifeCyclePhase(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.LifeCyclePhaseKind
+	 * @see #setLifeCyclePhase(LifeCyclePhaseKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getLifeCyclePhaseReqCharac_LifeCyclePhase()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getLifeCyclePhase();
+	LifeCyclePhaseKind getLifeCyclePhase();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.LifeCyclePhaseReqCharac#getLifeCyclePhase <em>Life Cycle Phase</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Life Cycle Phase</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.LifeCyclePhaseKind
 	 * @see #getLifeCyclePhase()
 	 * @generated
 	 */
-	void setLifeCyclePhase(Object value);
+	void setLifeCyclePhase(LifeCyclePhaseKind value);
 
 } // LifeCyclePhaseReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/PriorityReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/PriorityReqCharac.java
index e11b03d..7249fd6 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/PriorityReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/PriorityReqCharac.java
@@ -14,6 +14,7 @@
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityKind;
 
 /**
  * <!-- begin-user-doc -->
@@ -34,6 +35,7 @@
 public interface PriorityReqCharac extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Priority</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Priority</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Priority</em>' attribute.
-	 * @see #setPriority(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityKind
+	 * @see #setPriority(PriorityKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getPriorityReqCharac_Priority()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getPriority();
+	PriorityKind getPriority();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.PriorityReqCharac#getPriority <em>Priority</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Priority</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityKind
 	 * @see #getPriority()
 	 * @generated
 	 */
-	void setPriority(Object value);
+	void setPriority(PriorityKind value);
 
 } // PriorityReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/QualificationStatusReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/QualificationStatusReqCharac.java
index c826ba6..1ac7711 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/QualificationStatusReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/QualificationStatusReqCharac.java
@@ -14,6 +14,7 @@
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.QualificationStatusKind;
 
 /**
  * <!-- begin-user-doc -->
@@ -34,6 +35,7 @@
 public interface QualificationStatusReqCharac extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Qualification Status</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.QualificationStatusKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Qualification Status</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Qualification Status</em>' attribute.
-	 * @see #setQualificationStatus(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.QualificationStatusKind
+	 * @see #setQualificationStatus(QualificationStatusKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getQualificationStatusReqCharac_QualificationStatus()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getQualificationStatus();
+	QualificationStatusKind getQualificationStatus();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.QualificationStatusReqCharac#getQualificationStatus <em>Qualification Status</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Qualification Status</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.QualificationStatusKind
 	 * @see #getQualificationStatus()
 	 * @generated
 	 */
-	void setQualificationStatus(Object value);
+	void setQualificationStatus(QualificationStatusKind value);
 
 } // QualificationStatusReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/QualityNatureReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/QualityNatureReqCharac.java
index 6ee7228..2518913 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/QualityNatureReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/QualityNatureReqCharac.java
@@ -14,6 +14,7 @@
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind;
 
 /**
  * <!-- begin-user-doc -->
@@ -34,6 +35,7 @@
 public interface QualityNatureReqCharac extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Quality Nature</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Quality Nature</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Quality Nature</em>' attribute.
-	 * @see #setQualityNature(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind
+	 * @see #setQualityNature(QualityKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getQualityNatureReqCharac_QualityNature()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getQualityNature();
+	QualityKind getQualityNature();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.QualityNatureReqCharac#getQualityNature <em>Quality Nature</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Quality Nature</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind
 	 * @see #getQualityNature()
 	 * @generated
 	 */
-	void setQualityNature(Object value);
+	void setQualityNature(QualityKind value);
 
 } // QualityNatureReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/ReviewStatusReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/ReviewStatusReqCharac.java
index fe3a2c4..4442f5e 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/ReviewStatusReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/ReviewStatusReqCharac.java
@@ -14,6 +14,7 @@
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.ReviewStatusKind;
 
 /**
  * <!-- begin-user-doc -->
@@ -34,6 +35,7 @@
 public interface ReviewStatusReqCharac extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Review Status</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.ReviewStatusKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Review Status</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Review Status</em>' attribute.
-	 * @see #setReviewStatus(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.ReviewStatusKind
+	 * @see #setReviewStatus(ReviewStatusKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getReviewStatusReqCharac_ReviewStatus()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getReviewStatus();
+	ReviewStatusKind getReviewStatus();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.ReviewStatusReqCharac#getReviewStatus <em>Review Status</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Review Status</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.ReviewStatusKind
 	 * @see #getReviewStatus()
 	 * @generated
 	 */
-	void setReviewStatus(Object value);
+	void setReviewStatus(ReviewStatusKind value);
 
 } // ReviewStatusReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/SatifiactionStatusReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/SatifiactionStatusReqCharac.java
index a0b6229..a377084 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/SatifiactionStatusReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/SatifiactionStatusReqCharac.java
@@ -14,6 +14,7 @@
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind;
 
 /**
  * <!-- begin-user-doc -->
@@ -34,6 +35,7 @@
 public interface SatifiactionStatusReqCharac extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Satisfaction Status</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Satisfaction Status</em>' attribute isn't clear,
@@ -41,21 +43,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Satisfaction Status</em>' attribute.
-	 * @see #setSatisfactionStatus(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind
+	 * @see #setSatisfactionStatus(SatisfactionStatusKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getSatifiactionStatusReqCharac_SatisfactionStatus()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getSatisfactionStatus();
+	SatisfactionStatusKind getSatisfactionStatus();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.SatifiactionStatusReqCharac#getSatisfactionStatus <em>Satisfaction Status</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Satisfaction Status</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind
 	 * @see #getSatisfactionStatus()
 	 * @generated
 	 */
-	void setSatisfactionStatus(Object value);
+	void setSatisfactionStatus(SatisfactionStatusKind value);
 
 } // SatifiactionStatusReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/VerifierNameReqCharac.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/VerifierNameReqCharac.java
index b205e96..194a428 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/VerifierNameReqCharac.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/VerifierNameReqCharac.java
@@ -14,6 +14,8 @@
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_MethodKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind;
 
 /**
  * <!-- begin-user-doc -->
@@ -62,6 +64,7 @@
 
 	/**
 	 * Returns the value of the '<em><b>VV Method</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_MethodKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>VV Method</em>' attribute isn't clear,
@@ -69,25 +72,28 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>VV Method</em>' attribute.
-	 * @see #setVV_Method(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_MethodKind
+	 * @see #setVV_Method(VV_MethodKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getVerifierNameReqCharac_VV_Method()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getVV_Method();
+	VV_MethodKind getVV_Method();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.VerifierNameReqCharac#getVV_Method <em>VV Method</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>VV Method</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_MethodKind
 	 * @see #getVV_Method()
 	 * @generated
 	 */
-	void setVV_Method(Object value);
+	void setVV_Method(VV_MethodKind value);
 
 	/**
 	 * Returns the value of the '<em><b>VV Status</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>VV Status</em>' attribute isn't clear,
@@ -95,21 +101,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>VV Status</em>' attribute.
-	 * @see #setVV_Status(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind
+	 * @see #setVV_Status(VV_StatusKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage#getVerifierNameReqCharac_VV_Status()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getVV_Status();
+	VV_StatusKind getVV_Status();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.VerifierNameReqCharac#getVV_Status <em>VV Status</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>VV Status</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind
 	 * @see #getVV_Status()
 	 * @generated
 	 */
-	void setVV_Status(Object value);
+	void setVV_Status(VV_StatusKind value);
 
 } // VerifierNameReqCharac
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/AbstractionLevelReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/AbstractionLevelReqCharacImpl.java
index 7c6cf5a..823437a 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/AbstractionLevelReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/AbstractionLevelReqCharacImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.AbstractionLevelKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.AbstractionLevelReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object ABSTRACTION_LEVEL_EDEFAULT = null;
+	protected static final AbstractionLevelKind ABSTRACTION_LEVEL_EDEFAULT = AbstractionLevelKind.SPECIFICATION_LEVEL;
 
 	/**
 	 * The cached value of the '{@link #getAbstractionLevel() <em>Abstraction Level</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object abstractionLevel = ABSTRACTION_LEVEL_EDEFAULT;
+	protected AbstractionLevelKind abstractionLevel = ABSTRACTION_LEVEL_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getAbstractionLevel() {
+	public AbstractionLevelKind getAbstractionLevel() {
 		return abstractionLevel;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setAbstractionLevel(Object newAbstractionLevel) {
-		Object oldAbstractionLevel = abstractionLevel;
-		abstractionLevel = newAbstractionLevel;
+	public void setAbstractionLevel(AbstractionLevelKind newAbstractionLevel) {
+		AbstractionLevelKind oldAbstractionLevel = abstractionLevel;
+		abstractionLevel = newAbstractionLevel == null ? ABSTRACTION_LEVEL_EDEFAULT : newAbstractionLevel;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.ABSTRACTION_LEVEL_REQ_CHARAC__ABSTRACTION_LEVEL, oldAbstractionLevel, abstractionLevel));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.ABSTRACTION_LEVEL_REQ_CHARAC__ABSTRACTION_LEVEL:
-				setAbstractionLevel(newValue);
+				setAbstractionLevel((AbstractionLevelKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.ABSTRACTION_LEVEL_REQ_CHARAC__ABSTRACTION_LEVEL:
-				return ABSTRACTION_LEVEL_EDEFAULT == null ? abstractionLevel != null : !ABSTRACTION_LEVEL_EDEFAULT.equals(abstractionLevel);
+				return abstractionLevel != ABSTRACTION_LEVEL_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/AgreementStatusReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/AgreementStatusReqCharacImpl.java
index 766c5b4..46849bb 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/AgreementStatusReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/AgreementStatusReqCharacImpl.java
@@ -19,6 +19,7 @@
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.AgreementStatusKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.AgreementStatusReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 
@@ -46,7 +47,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object AGREEMENT_STATUS_EDEFAULT = null;
+	protected static final AgreementStatusKind AGREEMENT_STATUS_EDEFAULT = AgreementStatusKind.SUBMITTED;
 
 	/**
 	 * The cached value of the '{@link #getAgreementStatus() <em>Agreement Status</em>}' attribute.
@@ -56,7 +57,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object agreementStatus = AGREEMENT_STATUS_EDEFAULT;
+	protected AgreementStatusKind agreementStatus = AGREEMENT_STATUS_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -82,7 +83,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getAgreementStatus() {
+	public AgreementStatusKind getAgreementStatus() {
 		return agreementStatus;
 	}
 
@@ -91,9 +92,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setAgreementStatus(Object newAgreementStatus) {
-		Object oldAgreementStatus = agreementStatus;
-		agreementStatus = newAgreementStatus;
+	public void setAgreementStatus(AgreementStatusKind newAgreementStatus) {
+		AgreementStatusKind oldAgreementStatus = agreementStatus;
+		agreementStatus = newAgreementStatus == null ? AGREEMENT_STATUS_EDEFAULT : newAgreementStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.AGREEMENT_STATUS_REQ_CHARAC__AGREEMENT_STATUS, oldAgreementStatus, agreementStatus));
 	}
@@ -121,7 +122,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.AGREEMENT_STATUS_REQ_CHARAC__AGREEMENT_STATUS:
-				setAgreementStatus(newValue);
+				setAgreementStatus((AgreementStatusKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -151,7 +152,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.AGREEMENT_STATUS_REQ_CHARAC__AGREEMENT_STATUS:
-				return AGREEMENT_STATUS_EDEFAULT == null ? agreementStatus != null : !AGREEMENT_STATUS_EDEFAULT.equals(agreementStatus);
+				return agreementStatus != AGREEMENT_STATUS_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/ImportanceReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/ImportanceReqCharacImpl.java
index e35e1f0..9fe56b7 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/ImportanceReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/ImportanceReqCharacImpl.java
@@ -19,6 +19,7 @@
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.ImportanceKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.ImportanceReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 
@@ -46,7 +47,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object IMPORTANCE_EDEFAULT = null;
+	protected static final ImportanceKind IMPORTANCE_EDEFAULT = ImportanceKind.IMPORTANCE1;
 
 	/**
 	 * The cached value of the '{@link #getImportance() <em>Importance</em>}' attribute.
@@ -56,7 +57,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object importance = IMPORTANCE_EDEFAULT;
+	protected ImportanceKind importance = IMPORTANCE_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -82,7 +83,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getImportance() {
+	public ImportanceKind getImportance() {
 		return importance;
 	}
 
@@ -91,9 +92,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setImportance(Object newImportance) {
-		Object oldImportance = importance;
-		importance = newImportance;
+	public void setImportance(ImportanceKind newImportance) {
+		ImportanceKind oldImportance = importance;
+		importance = newImportance == null ? IMPORTANCE_EDEFAULT : newImportance;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.IMPORTANCE_REQ_CHARAC__IMPORTANCE, oldImportance, importance));
 	}
@@ -121,7 +122,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.IMPORTANCE_REQ_CHARAC__IMPORTANCE:
-				setImportance(newValue);
+				setImportance((ImportanceKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -151,7 +152,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.IMPORTANCE_REQ_CHARAC__IMPORTANCE:
-				return IMPORTANCE_EDEFAULT == null ? importance != null : !IMPORTANCE_EDEFAULT.equals(importance);
+				return importance != IMPORTANCE_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/LifeCyclePhaseReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/LifeCyclePhaseReqCharacImpl.java
index ec54ec8..fd3b3c9 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/LifeCyclePhaseReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/LifeCyclePhaseReqCharacImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.LifeCyclePhaseKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.LifeCyclePhaseReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object LIFE_CYCLE_PHASE_EDEFAULT = null;
+	protected static final LifeCyclePhaseKind LIFE_CYCLE_PHASE_EDEFAULT = LifeCyclePhaseKind.PRE_CONCEPT;
 
 	/**
 	 * The cached value of the '{@link #getLifeCyclePhase() <em>Life Cycle Phase</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object lifeCyclePhase = LIFE_CYCLE_PHASE_EDEFAULT;
+	protected LifeCyclePhaseKind lifeCyclePhase = LIFE_CYCLE_PHASE_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getLifeCyclePhase() {
+	public LifeCyclePhaseKind getLifeCyclePhase() {
 		return lifeCyclePhase;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setLifeCyclePhase(Object newLifeCyclePhase) {
-		Object oldLifeCyclePhase = lifeCyclePhase;
-		lifeCyclePhase = newLifeCyclePhase;
+	public void setLifeCyclePhase(LifeCyclePhaseKind newLifeCyclePhase) {
+		LifeCyclePhaseKind oldLifeCyclePhase = lifeCyclePhase;
+		lifeCyclePhase = newLifeCyclePhase == null ? LIFE_CYCLE_PHASE_EDEFAULT : newLifeCyclePhase;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.LIFE_CYCLE_PHASE_REQ_CHARAC__LIFE_CYCLE_PHASE, oldLifeCyclePhase, lifeCyclePhase));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.LIFE_CYCLE_PHASE_REQ_CHARAC__LIFE_CYCLE_PHASE:
-				setLifeCyclePhase(newValue);
+				setLifeCyclePhase((LifeCyclePhaseKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.LIFE_CYCLE_PHASE_REQ_CHARAC__LIFE_CYCLE_PHASE:
-				return LIFE_CYCLE_PHASE_EDEFAULT == null ? lifeCyclePhase != null : !LIFE_CYCLE_PHASE_EDEFAULT.equals(lifeCyclePhase);
+				return lifeCyclePhase != LIFE_CYCLE_PHASE_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/PriorityReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/PriorityReqCharacImpl.java
index 194b37b..6da103c 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/PriorityReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/PriorityReqCharacImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.PriorityReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object PRIORITY_EDEFAULT = null;
+	protected static final PriorityKind PRIORITY_EDEFAULT = PriorityKind.MANDATORY;
 
 	/**
 	 * The cached value of the '{@link #getPriority() <em>Priority</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object priority = PRIORITY_EDEFAULT;
+	protected PriorityKind priority = PRIORITY_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getPriority() {
+	public PriorityKind getPriority() {
 		return priority;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setPriority(Object newPriority) {
-		Object oldPriority = priority;
-		priority = newPriority;
+	public void setPriority(PriorityKind newPriority) {
+		PriorityKind oldPriority = priority;
+		priority = newPriority == null ? PRIORITY_EDEFAULT : newPriority;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.PRIORITY_REQ_CHARAC__PRIORITY, oldPriority, priority));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.PRIORITY_REQ_CHARAC__PRIORITY:
-				setPriority(newValue);
+				setPriority((PriorityKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.PRIORITY_REQ_CHARAC__PRIORITY:
-				return PRIORITY_EDEFAULT == null ? priority != null : !PRIORITY_EDEFAULT.equals(priority);
+				return priority != PRIORITY_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/QualificationStatusReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/QualificationStatusReqCharacImpl.java
index ee8fe63..68c40ee 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/QualificationStatusReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/QualificationStatusReqCharacImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.QualificationStatusKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.QualificationStatusReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object QUALIFICATION_STATUS_EDEFAULT = null;
+	protected static final QualificationStatusKind QUALIFICATION_STATUS_EDEFAULT = QualificationStatusKind.NOT_QUALIFIED;
 
 	/**
 	 * The cached value of the '{@link #getQualificationStatus() <em>Qualification Status</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object qualificationStatus = QUALIFICATION_STATUS_EDEFAULT;
+	protected QualificationStatusKind qualificationStatus = QUALIFICATION_STATUS_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getQualificationStatus() {
+	public QualificationStatusKind getQualificationStatus() {
 		return qualificationStatus;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setQualificationStatus(Object newQualificationStatus) {
-		Object oldQualificationStatus = qualificationStatus;
-		qualificationStatus = newQualificationStatus;
+	public void setQualificationStatus(QualificationStatusKind newQualificationStatus) {
+		QualificationStatusKind oldQualificationStatus = qualificationStatus;
+		qualificationStatus = newQualificationStatus == null ? QUALIFICATION_STATUS_EDEFAULT : newQualificationStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.QUALIFICATION_STATUS_REQ_CHARAC__QUALIFICATION_STATUS, oldQualificationStatus, qualificationStatus));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.QUALIFICATION_STATUS_REQ_CHARAC__QUALIFICATION_STATUS:
-				setQualificationStatus(newValue);
+				setQualificationStatus((QualificationStatusKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.QUALIFICATION_STATUS_REQ_CHARAC__QUALIFICATION_STATUS:
-				return QUALIFICATION_STATUS_EDEFAULT == null ? qualificationStatus != null : !QUALIFICATION_STATUS_EDEFAULT.equals(qualificationStatus);
+				return qualificationStatus != QUALIFICATION_STATUS_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/QualityNatureReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/QualityNatureReqCharacImpl.java
index edfef88..dadf87a 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/QualityNatureReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/QualityNatureReqCharacImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.QualityNatureReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object QUALITY_NATURE_EDEFAULT = null;
+	protected static final QualityKind QUALITY_NATURE_EDEFAULT = QualityKind.ADAPTABILITY;
 
 	/**
 	 * The cached value of the '{@link #getQualityNature() <em>Quality Nature</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object qualityNature = QUALITY_NATURE_EDEFAULT;
+	protected QualityKind qualityNature = QUALITY_NATURE_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getQualityNature() {
+	public QualityKind getQualityNature() {
 		return qualityNature;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setQualityNature(Object newQualityNature) {
-		Object oldQualityNature = qualityNature;
-		qualityNature = newQualityNature;
+	public void setQualityNature(QualityKind newQualityNature) {
+		QualityKind oldQualityNature = qualityNature;
+		qualityNature = newQualityNature == null ? QUALITY_NATURE_EDEFAULT : newQualityNature;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.QUALITY_NATURE_REQ_CHARAC__QUALITY_NATURE, oldQualityNature, qualityNature));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.QUALITY_NATURE_REQ_CHARAC__QUALITY_NATURE:
-				setQualityNature(newValue);
+				setQualityNature((QualityKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.QUALITY_NATURE_REQ_CHARAC__QUALITY_NATURE:
-				return QUALITY_NATURE_EDEFAULT == null ? qualityNature != null : !QUALITY_NATURE_EDEFAULT.equals(qualityNature);
+				return qualityNature != QUALITY_NATURE_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/RequirementGenericCharacteristicsPackageImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/RequirementGenericCharacteristicsPackageImpl.java
index cb013f5..83a169e 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/RequirementGenericCharacteristicsPackageImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/RequirementGenericCharacteristicsPackageImpl.java
@@ -19,6 +19,11 @@
 import org.eclipse.emf.ecore.EcorePackage;
 
 import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityAndImportanceConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.RequirementAndProcessConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.RequirementClassificationConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.RequirementsCharacteristicsConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VerificationAndValidationConcernsPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.RequirementClassificationPackage;
 
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.impl.RequirementClassificationPackageImpl;
@@ -53,6 +58,7 @@
 import org.eclipse.uml2.types.TypesPackage;
 
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -207,6 +213,12 @@
 
 		// Initialize simple dependencies
 		EcorePackage.eINSTANCE.eClass();
+		RequirementClassificationConcernsPackage.eINSTANCE.eClass();
+		RequirementsCharacteristicsConcernsPackage.eINSTANCE.eClass();
+		PriorityAndImportanceConcernsPackage.eINSTANCE.eClass();
+		RequirementAndProcessConcernsPackage.eINSTANCE.eClass();
+		VerificationAndValidationConcernsPackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
 		sysmlPackage.eINSTANCE.eClass();
 		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
@@ -635,6 +647,11 @@
 		// Obtain other dependent packages
 		RequirementsPackage theRequirementsPackage = (RequirementsPackage)EPackage.Registry.INSTANCE.getEPackage(RequirementsPackage.eNS_URI);
 		TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+		PriorityAndImportanceConcernsPackage thePriorityAndImportanceConcernsPackage = (PriorityAndImportanceConcernsPackage)EPackage.Registry.INSTANCE.getEPackage(PriorityAndImportanceConcernsPackage.eNS_URI);
+		RequirementAndProcessConcernsPackage theRequirementAndProcessConcernsPackage = (RequirementAndProcessConcernsPackage)EPackage.Registry.INSTANCE.getEPackage(RequirementAndProcessConcernsPackage.eNS_URI);
+		RequirementsCharacteristicsConcernsPackage theRequirementsCharacteristicsConcernsPackage = (RequirementsCharacteristicsConcernsPackage)EPackage.Registry.INSTANCE.getEPackage(RequirementsCharacteristicsConcernsPackage.eNS_URI);
+		RequirementClassificationConcernsPackage theRequirementClassificationConcernsPackage = (RequirementClassificationConcernsPackage)EPackage.Registry.INSTANCE.getEPackage(RequirementClassificationConcernsPackage.eNS_URI);
+		VerificationAndValidationConcernsPackage theVerificationAndValidationConcernsPackage = (VerificationAndValidationConcernsPackage)EPackage.Registry.INSTANCE.getEPackage(VerificationAndValidationConcernsPackage.eNS_URI);
 
 		// Create type parameters
 
@@ -667,48 +684,48 @@
 		initEAttribute(getOwnerReqCharac_Owner(), theTypesPackage.getString(), "owner", null, 0, 1, OwnerReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(importanceReqCharacEClass, ImportanceReqCharac.class, "ImportanceReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getImportanceReqCharac_Importance(), ecorePackage.getEJavaObject(), "importance", null, 0, 1, ImportanceReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getImportanceReqCharac_Importance(), thePriorityAndImportanceConcernsPackage.getImportanceKind(), "importance", null, 0, 1, ImportanceReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(approvalAuthorityReqCharacEClass, ApprovalAuthorityReqCharac.class, "ApprovalAuthorityReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getApprovalAuthorityReqCharac_ApprovalAuthority(), theTypesPackage.getString(), "approvalAuthority", null, 0, 1, ApprovalAuthorityReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(agreementStatusReqCharacEClass, AgreementStatusReqCharac.class, "AgreementStatusReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getAgreementStatusReqCharac_AgreementStatus(), ecorePackage.getEJavaObject(), "agreementStatus", null, 0, 1, AgreementStatusReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getAgreementStatusReqCharac_AgreementStatus(), theRequirementAndProcessConcernsPackage.getAgreementStatusKind(), "agreementStatus", null, 0, 1, AgreementStatusReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(maturityReqCharacEClass, MaturityReqCharac.class, "MaturityReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getMaturityReqCharac_Maturity(), theTypesPackage.getInteger(), "maturity", null, 0, 1, MaturityReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(lifeCyclePhaseReqCharacEClass, LifeCyclePhaseReqCharac.class, "LifeCyclePhaseReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getLifeCyclePhaseReqCharac_LifeCyclePhase(), ecorePackage.getEJavaObject(), "lifeCyclePhase", null, 0, 1, LifeCyclePhaseReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getLifeCyclePhaseReqCharac_LifeCyclePhase(), theRequirementsCharacteristicsConcernsPackage.getLifeCyclePhaseKind(), "lifeCyclePhase", null, 0, 1, LifeCyclePhaseReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(abstractionLevelReqCharacEClass, AbstractionLevelReqCharac.class, "AbstractionLevelReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getAbstractionLevelReqCharac_AbstractionLevel(), ecorePackage.getEJavaObject(), "abstractionLevel", null, 0, 1, AbstractionLevelReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getAbstractionLevelReqCharac_AbstractionLevel(), theRequirementsCharacteristicsConcernsPackage.getAbstractionLevelKind(), "abstractionLevel", null, 0, 1, AbstractionLevelReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(priorityReqCharacEClass, PriorityReqCharac.class, "PriorityReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getPriorityReqCharac_Priority(), ecorePackage.getEJavaObject(), "priority", null, 0, 1, PriorityReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPriorityReqCharac_Priority(), thePriorityAndImportanceConcernsPackage.getPriorityKind(), "priority", null, 0, 1, PriorityReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(sourceReqCharacEClass, SourceReqCharac.class, "SourceReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getSourceReqCharac_Source(), theTypesPackage.getString(), "source", null, 0, 1, SourceReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(qualificationStatusReqCharacEClass, QualificationStatusReqCharac.class, "QualificationStatusReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getQualificationStatusReqCharac_QualificationStatus(), ecorePackage.getEJavaObject(), "qualificationStatus", null, 0, 1, QualificationStatusReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getQualificationStatusReqCharac_QualificationStatus(), theRequirementAndProcessConcernsPackage.getQualificationStatusKind(), "qualificationStatus", null, 0, 1, QualificationStatusReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(reviewStatusReqCharacEClass, ReviewStatusReqCharac.class, "ReviewStatusReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getReviewStatusReqCharac_ReviewStatus(), ecorePackage.getEJavaObject(), "reviewStatus", null, 0, 1, ReviewStatusReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getReviewStatusReqCharac_ReviewStatus(), theRequirementAndProcessConcernsPackage.getReviewStatusKind(), "reviewStatus", null, 0, 1, ReviewStatusReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(validatorNameReqCharacEClass, ValidatorNameReqCharac.class, "ValidatorNameReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getValidatorNameReqCharac_ValidatorName(), theTypesPackage.getString(), "validatorName", null, 0, 1, ValidatorNameReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(qualityNatureReqCharacEClass, QualityNatureReqCharac.class, "QualityNatureReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getQualityNatureReqCharac_QualityNature(), ecorePackage.getEJavaObject(), "qualityNature", null, 0, 1, QualityNatureReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getQualityNatureReqCharac_QualityNature(), theRequirementClassificationConcernsPackage.getQualityKind(), "qualityNature", null, 0, 1, QualityNatureReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(verifierNameReqCharacEClass, VerifierNameReqCharac.class, "VerifierNameReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getVerifierNameReqCharac_VerifierName(), theTypesPackage.getString(), "verifierName", null, 0, 1, VerifierNameReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getVerifierNameReqCharac_VV_Method(), ecorePackage.getEJavaObject(), "VV_Method", null, 0, 1, VerifierNameReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getVerifierNameReqCharac_VV_Status(), ecorePackage.getEJavaObject(), "VV_Status", null, 0, 1, VerifierNameReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getVerifierNameReqCharac_VV_Method(), theVerificationAndValidationConcernsPackage.getVV_MethodKind(), "VV_Method", null, 0, 1, VerifierNameReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getVerifierNameReqCharac_VV_Status(), theVerificationAndValidationConcernsPackage.getVV_StatusKind(), "VV_Status", null, 0, 1, VerifierNameReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(satifiactionStatusReqCharacEClass, SatifiactionStatusReqCharac.class, "SatifiactionStatusReqCharac", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getSatifiactionStatusReqCharac_SatisfactionStatus(), ecorePackage.getEJavaObject(), "satisfactionStatus", null, 0, 1, SatifiactionStatusReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSatifiactionStatusReqCharac_SatisfactionStatus(), theRequirementAndProcessConcernsPackage.getSatisfactionStatusKind(), "satisfactionStatus", null, 0, 1, SatifiactionStatusReqCharac.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		// Create resource
 		createResource(eNS_URI);
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/RequirementImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/RequirementImpl.java
index dd5643e..1691fa9 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/RequirementImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/RequirementImpl.java
@@ -18,6 +18,16 @@
 import org.eclipse.emf.ecore.EClass;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.ImportanceKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.QualificationStatusKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.ReviewStatusKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.QualityKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.AbstractionLevelKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.LifeCyclePhaseKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_MethodKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.AbstractionLevelReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.ApprovalAuthorityReqCharac;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.ImportanceReqCharac;
@@ -72,7 +82,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object IMPORTANCE_EDEFAULT = null;
+	protected static final ImportanceKind IMPORTANCE_EDEFAULT = ImportanceKind.IMPORTANCE1;
 
 	/**
 	 * The cached value of the '{@link #getImportance() <em>Importance</em>}' attribute.
@@ -82,7 +92,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object importance = IMPORTANCE_EDEFAULT;
+	protected ImportanceKind importance = IMPORTANCE_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getVerifierName() <em>Verifier Name</em>}' attribute.
@@ -112,7 +122,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object VV_METHOD_EDEFAULT = null;
+	protected static final VV_MethodKind VV_METHOD_EDEFAULT = VV_MethodKind.ANALYSIS;
 
 	/**
 	 * The cached value of the '{@link #getVV_Method() <em>VV Method</em>}' attribute.
@@ -122,7 +132,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object vV_Method = VV_METHOD_EDEFAULT;
+	protected VV_MethodKind vV_Method = VV_METHOD_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getVV_Status() <em>VV Status</em>}' attribute.
@@ -132,7 +142,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object VV_STATUS_EDEFAULT = null;
+	protected static final VV_StatusKind VV_STATUS_EDEFAULT = VV_StatusKind.PENDING;
 
 	/**
 	 * The cached value of the '{@link #getVV_Status() <em>VV Status</em>}' attribute.
@@ -142,7 +152,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object vV_Status = VV_STATUS_EDEFAULT;
+	protected VV_StatusKind vV_Status = VV_STATUS_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getAbstractionLevel() <em>Abstraction Level</em>}' attribute.
@@ -152,7 +162,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object ABSTRACTION_LEVEL_EDEFAULT = null;
+	protected static final AbstractionLevelKind ABSTRACTION_LEVEL_EDEFAULT = AbstractionLevelKind.SPECIFICATION_LEVEL;
 
 	/**
 	 * The cached value of the '{@link #getAbstractionLevel() <em>Abstraction Level</em>}' attribute.
@@ -162,7 +172,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object abstractionLevel = ABSTRACTION_LEVEL_EDEFAULT;
+	protected AbstractionLevelKind abstractionLevel = ABSTRACTION_LEVEL_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getApprovalAuthority() <em>Approval Authority</em>}' attribute.
@@ -192,7 +202,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object LIFE_CYCLE_PHASE_EDEFAULT = null;
+	protected static final LifeCyclePhaseKind LIFE_CYCLE_PHASE_EDEFAULT = LifeCyclePhaseKind.PRE_CONCEPT;
 
 	/**
 	 * The cached value of the '{@link #getLifeCyclePhase() <em>Life Cycle Phase</em>}' attribute.
@@ -202,7 +212,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object lifeCyclePhase = LIFE_CYCLE_PHASE_EDEFAULT;
+	protected LifeCyclePhaseKind lifeCyclePhase = LIFE_CYCLE_PHASE_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getMaturity() <em>Maturity</em>}' attribute.
@@ -252,7 +262,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object PRIORITY_EDEFAULT = null;
+	protected static final PriorityKind PRIORITY_EDEFAULT = PriorityKind.MANDATORY;
 
 	/**
 	 * The cached value of the '{@link #getPriority() <em>Priority</em>}' attribute.
@@ -262,7 +272,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object priority = PRIORITY_EDEFAULT;
+	protected PriorityKind priority = PRIORITY_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getQualificationStatus() <em>Qualification Status</em>}' attribute.
@@ -272,7 +282,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object QUALIFICATION_STATUS_EDEFAULT = null;
+	protected static final QualificationStatusKind QUALIFICATION_STATUS_EDEFAULT = QualificationStatusKind.NOT_QUALIFIED;
 
 	/**
 	 * The cached value of the '{@link #getQualificationStatus() <em>Qualification Status</em>}' attribute.
@@ -282,7 +292,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object qualificationStatus = QUALIFICATION_STATUS_EDEFAULT;
+	protected QualificationStatusKind qualificationStatus = QUALIFICATION_STATUS_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getQualityNature() <em>Quality Nature</em>}' attribute.
@@ -292,7 +302,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object QUALITY_NATURE_EDEFAULT = null;
+	protected static final QualityKind QUALITY_NATURE_EDEFAULT = QualityKind.ADAPTABILITY;
 
 	/**
 	 * The cached value of the '{@link #getQualityNature() <em>Quality Nature</em>}' attribute.
@@ -302,7 +312,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object qualityNature = QUALITY_NATURE_EDEFAULT;
+	protected QualityKind qualityNature = QUALITY_NATURE_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getReviewStatus() <em>Review Status</em>}' attribute.
@@ -312,7 +322,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object REVIEW_STATUS_EDEFAULT = null;
+	protected static final ReviewStatusKind REVIEW_STATUS_EDEFAULT = ReviewStatusKind.TO_BE_REVIEWED;
 
 	/**
 	 * The cached value of the '{@link #getReviewStatus() <em>Review Status</em>}' attribute.
@@ -322,7 +332,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object reviewStatus = REVIEW_STATUS_EDEFAULT;
+	protected ReviewStatusKind reviewStatus = REVIEW_STATUS_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getSatisfactionStatus() <em>Satisfaction Status</em>}' attribute.
@@ -332,7 +342,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object SATISFACTION_STATUS_EDEFAULT = null;
+	protected static final SatisfactionStatusKind SATISFACTION_STATUS_EDEFAULT = SatisfactionStatusKind.NOT_SATISFIED;
 
 	/**
 	 * The cached value of the '{@link #getSatisfactionStatus() <em>Satisfaction Status</em>}' attribute.
@@ -342,7 +352,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object satisfactionStatus = SATISFACTION_STATUS_EDEFAULT;
+	protected SatisfactionStatusKind satisfactionStatus = SATISFACTION_STATUS_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getSource() <em>Source</em>}' attribute.
@@ -429,7 +439,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getImportance() {
+	public ImportanceKind getImportance() {
 		return importance;
 	}
 
@@ -438,9 +448,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setImportance(Object newImportance) {
-		Object oldImportance = importance;
-		importance = newImportance;
+	public void setImportance(ImportanceKind newImportance) {
+		ImportanceKind oldImportance = importance;
+		importance = newImportance == null ? IMPORTANCE_EDEFAULT : newImportance;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__IMPORTANCE, oldImportance, importance));
 	}
@@ -450,7 +460,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getLifeCyclePhase() {
+	public LifeCyclePhaseKind getLifeCyclePhase() {
 		return lifeCyclePhase;
 	}
 
@@ -459,9 +469,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setLifeCyclePhase(Object newLifeCyclePhase) {
-		Object oldLifeCyclePhase = lifeCyclePhase;
-		lifeCyclePhase = newLifeCyclePhase;
+	public void setLifeCyclePhase(LifeCyclePhaseKind newLifeCyclePhase) {
+		LifeCyclePhaseKind oldLifeCyclePhase = lifeCyclePhase;
+		lifeCyclePhase = newLifeCyclePhase == null ? LIFE_CYCLE_PHASE_EDEFAULT : newLifeCyclePhase;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__LIFE_CYCLE_PHASE, oldLifeCyclePhase, lifeCyclePhase));
 	}
@@ -492,7 +502,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getAbstractionLevel() {
+	public AbstractionLevelKind getAbstractionLevel() {
 		return abstractionLevel;
 	}
 
@@ -501,9 +511,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setAbstractionLevel(Object newAbstractionLevel) {
-		Object oldAbstractionLevel = abstractionLevel;
-		abstractionLevel = newAbstractionLevel;
+	public void setAbstractionLevel(AbstractionLevelKind newAbstractionLevel) {
+		AbstractionLevelKind oldAbstractionLevel = abstractionLevel;
+		abstractionLevel = newAbstractionLevel == null ? ABSTRACTION_LEVEL_EDEFAULT : newAbstractionLevel;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__ABSTRACTION_LEVEL, oldAbstractionLevel, abstractionLevel));
 	}
@@ -534,7 +544,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getPriority() {
+	public PriorityKind getPriority() {
 		return priority;
 	}
 
@@ -543,9 +553,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setPriority(Object newPriority) {
-		Object oldPriority = priority;
-		priority = newPriority;
+	public void setPriority(PriorityKind newPriority) {
+		PriorityKind oldPriority = priority;
+		priority = newPriority == null ? PRIORITY_EDEFAULT : newPriority;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__PRIORITY, oldPriority, priority));
 	}
@@ -555,7 +565,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getQualificationStatus() {
+	public QualificationStatusKind getQualificationStatus() {
 		return qualificationStatus;
 	}
 
@@ -564,9 +574,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setQualificationStatus(Object newQualificationStatus) {
-		Object oldQualificationStatus = qualificationStatus;
-		qualificationStatus = newQualificationStatus;
+	public void setQualificationStatus(QualificationStatusKind newQualificationStatus) {
+		QualificationStatusKind oldQualificationStatus = qualificationStatus;
+		qualificationStatus = newQualificationStatus == null ? QUALIFICATION_STATUS_EDEFAULT : newQualificationStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__QUALIFICATION_STATUS, oldQualificationStatus, qualificationStatus));
 	}
@@ -576,7 +586,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getReviewStatus() {
+	public ReviewStatusKind getReviewStatus() {
 		return reviewStatus;
 	}
 
@@ -585,9 +595,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setReviewStatus(Object newReviewStatus) {
-		Object oldReviewStatus = reviewStatus;
-		reviewStatus = newReviewStatus;
+	public void setReviewStatus(ReviewStatusKind newReviewStatus) {
+		ReviewStatusKind oldReviewStatus = reviewStatus;
+		reviewStatus = newReviewStatus == null ? REVIEW_STATUS_EDEFAULT : newReviewStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__REVIEW_STATUS, oldReviewStatus, reviewStatus));
 	}
@@ -597,7 +607,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getSatisfactionStatus() {
+	public SatisfactionStatusKind getSatisfactionStatus() {
 		return satisfactionStatus;
 	}
 
@@ -606,9 +616,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setSatisfactionStatus(Object newSatisfactionStatus) {
-		Object oldSatisfactionStatus = satisfactionStatus;
-		satisfactionStatus = newSatisfactionStatus;
+	public void setSatisfactionStatus(SatisfactionStatusKind newSatisfactionStatus) {
+		SatisfactionStatusKind oldSatisfactionStatus = satisfactionStatus;
+		satisfactionStatus = newSatisfactionStatus == null ? SATISFACTION_STATUS_EDEFAULT : newSatisfactionStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__SATISFACTION_STATUS, oldSatisfactionStatus, satisfactionStatus));
 	}
@@ -681,7 +691,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getVV_Method() {
+	public VV_MethodKind getVV_Method() {
 		return vV_Method;
 	}
 
@@ -690,9 +700,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setVV_Method(Object newVV_Method) {
-		Object oldVV_Method = vV_Method;
-		vV_Method = newVV_Method;
+	public void setVV_Method(VV_MethodKind newVV_Method) {
+		VV_MethodKind oldVV_Method = vV_Method;
+		vV_Method = newVV_Method == null ? VV_METHOD_EDEFAULT : newVV_Method;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__VV_METHOD, oldVV_Method, vV_Method));
 	}
@@ -702,7 +712,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getVV_Status() {
+	public VV_StatusKind getVV_Status() {
 		return vV_Status;
 	}
 
@@ -711,9 +721,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setVV_Status(Object newVV_Status) {
-		Object oldVV_Status = vV_Status;
-		vV_Status = newVV_Status;
+	public void setVV_Status(VV_StatusKind newVV_Status) {
+		VV_StatusKind oldVV_Status = vV_Status;
+		vV_Status = newVV_Status == null ? VV_STATUS_EDEFAULT : newVV_Status;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__VV_STATUS, oldVV_Status, vV_Status));
 	}
@@ -723,7 +733,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getQualityNature() {
+	public QualityKind getQualityNature() {
 		return qualityNature;
 	}
 
@@ -732,9 +742,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setQualityNature(Object newQualityNature) {
-		Object oldQualityNature = qualityNature;
-		qualityNature = newQualityNature;
+	public void setQualityNature(QualityKind newQualityNature) {
+		QualityKind oldQualityNature = qualityNature;
+		qualityNature = newQualityNature == null ? QUALITY_NATURE_EDEFAULT : newQualityNature;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REQUIREMENT__QUALITY_NATURE, oldQualityNature, qualityNature));
 	}
@@ -792,25 +802,25 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__IMPORTANCE:
-				setImportance(newValue);
+				setImportance((ImportanceKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__VERIFIER_NAME:
 				setVerifierName((String)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__VV_METHOD:
-				setVV_Method(newValue);
+				setVV_Method((VV_MethodKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__VV_STATUS:
-				setVV_Status(newValue);
+				setVV_Status((VV_StatusKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__ABSTRACTION_LEVEL:
-				setAbstractionLevel(newValue);
+				setAbstractionLevel((AbstractionLevelKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__APPROVAL_AUTHORITY:
 				setApprovalAuthority((String)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__LIFE_CYCLE_PHASE:
-				setLifeCyclePhase(newValue);
+				setLifeCyclePhase((LifeCyclePhaseKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__MATURITY:
 				setMaturity((Integer)newValue);
@@ -819,19 +829,19 @@
 				setOwner((String)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__PRIORITY:
-				setPriority(newValue);
+				setPriority((PriorityKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__QUALIFICATION_STATUS:
-				setQualificationStatus(newValue);
+				setQualificationStatus((QualificationStatusKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__QUALITY_NATURE:
-				setQualityNature(newValue);
+				setQualityNature((QualityKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__REVIEW_STATUS:
-				setReviewStatus(newValue);
+				setReviewStatus((ReviewStatusKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__SATISFACTION_STATUS:
-				setSatisfactionStatus(newValue);
+				setSatisfactionStatus((SatisfactionStatusKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__SOURCE:
 				setSource((String)newValue);
@@ -912,33 +922,33 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__IMPORTANCE:
-				return IMPORTANCE_EDEFAULT == null ? importance != null : !IMPORTANCE_EDEFAULT.equals(importance);
+				return importance != IMPORTANCE_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__VERIFIER_NAME:
 				return VERIFIER_NAME_EDEFAULT == null ? verifierName != null : !VERIFIER_NAME_EDEFAULT.equals(verifierName);
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__VV_METHOD:
-				return VV_METHOD_EDEFAULT == null ? vV_Method != null : !VV_METHOD_EDEFAULT.equals(vV_Method);
+				return vV_Method != VV_METHOD_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__VV_STATUS:
-				return VV_STATUS_EDEFAULT == null ? vV_Status != null : !VV_STATUS_EDEFAULT.equals(vV_Status);
+				return vV_Status != VV_STATUS_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__ABSTRACTION_LEVEL:
-				return ABSTRACTION_LEVEL_EDEFAULT == null ? abstractionLevel != null : !ABSTRACTION_LEVEL_EDEFAULT.equals(abstractionLevel);
+				return abstractionLevel != ABSTRACTION_LEVEL_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__APPROVAL_AUTHORITY:
 				return APPROVAL_AUTHORITY_EDEFAULT == null ? approvalAuthority != null : !APPROVAL_AUTHORITY_EDEFAULT.equals(approvalAuthority);
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__LIFE_CYCLE_PHASE:
-				return LIFE_CYCLE_PHASE_EDEFAULT == null ? lifeCyclePhase != null : !LIFE_CYCLE_PHASE_EDEFAULT.equals(lifeCyclePhase);
+				return lifeCyclePhase != LIFE_CYCLE_PHASE_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__MATURITY:
 				return maturity != MATURITY_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__OWNER:
 				return OWNER_EDEFAULT == null ? owner != null : !OWNER_EDEFAULT.equals(owner);
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__PRIORITY:
-				return PRIORITY_EDEFAULT == null ? priority != null : !PRIORITY_EDEFAULT.equals(priority);
+				return priority != PRIORITY_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__QUALIFICATION_STATUS:
-				return QUALIFICATION_STATUS_EDEFAULT == null ? qualificationStatus != null : !QUALIFICATION_STATUS_EDEFAULT.equals(qualificationStatus);
+				return qualificationStatus != QUALIFICATION_STATUS_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__QUALITY_NATURE:
-				return QUALITY_NATURE_EDEFAULT == null ? qualityNature != null : !QUALITY_NATURE_EDEFAULT.equals(qualityNature);
+				return qualityNature != QUALITY_NATURE_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__REVIEW_STATUS:
-				return REVIEW_STATUS_EDEFAULT == null ? reviewStatus != null : !REVIEW_STATUS_EDEFAULT.equals(reviewStatus);
+				return reviewStatus != REVIEW_STATUS_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__SATISFACTION_STATUS:
-				return SATISFACTION_STATUS_EDEFAULT == null ? satisfactionStatus != null : !SATISFACTION_STATUS_EDEFAULT.equals(satisfactionStatus);
+				return satisfactionStatus != SATISFACTION_STATUS_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__SOURCE:
 				return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source);
 			case RequirementGenericCharacteristicsPackage.REQUIREMENT__VALIDATOR_NAME:
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/ReviewStatusReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/ReviewStatusReqCharacImpl.java
index a92e3dd..8878e93 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/ReviewStatusReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/ReviewStatusReqCharacImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.ReviewStatusKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.ReviewStatusReqCharac;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object REVIEW_STATUS_EDEFAULT = null;
+	protected static final ReviewStatusKind REVIEW_STATUS_EDEFAULT = ReviewStatusKind.TO_BE_REVIEWED;
 
 	/**
 	 * The cached value of the '{@link #getReviewStatus() <em>Review Status</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object reviewStatus = REVIEW_STATUS_EDEFAULT;
+	protected ReviewStatusKind reviewStatus = REVIEW_STATUS_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getReviewStatus() {
+	public ReviewStatusKind getReviewStatus() {
 		return reviewStatus;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setReviewStatus(Object newReviewStatus) {
-		Object oldReviewStatus = reviewStatus;
-		reviewStatus = newReviewStatus;
+	public void setReviewStatus(ReviewStatusKind newReviewStatus) {
+		ReviewStatusKind oldReviewStatus = reviewStatus;
+		reviewStatus = newReviewStatus == null ? REVIEW_STATUS_EDEFAULT : newReviewStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.REVIEW_STATUS_REQ_CHARAC__REVIEW_STATUS, oldReviewStatus, reviewStatus));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.REVIEW_STATUS_REQ_CHARAC__REVIEW_STATUS:
-				setReviewStatus(newValue);
+				setReviewStatus((ReviewStatusKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.REVIEW_STATUS_REQ_CHARAC__REVIEW_STATUS:
-				return REVIEW_STATUS_EDEFAULT == null ? reviewStatus != null : !REVIEW_STATUS_EDEFAULT.equals(reviewStatus);
+				return reviewStatus != REVIEW_STATUS_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/SatifiactionStatusReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/SatifiactionStatusReqCharacImpl.java
index 9a1e4ed..9427bad 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/SatifiactionStatusReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/SatifiactionStatusReqCharacImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.SatifiactionStatusReqCharac;
 
@@ -45,7 +46,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object SATISFACTION_STATUS_EDEFAULT = null;
+	protected static final SatisfactionStatusKind SATISFACTION_STATUS_EDEFAULT = SatisfactionStatusKind.NOT_SATISFIED;
 
 	/**
 	 * The cached value of the '{@link #getSatisfactionStatus() <em>Satisfaction Status</em>}' attribute.
@@ -55,7 +56,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object satisfactionStatus = SATISFACTION_STATUS_EDEFAULT;
+	protected SatisfactionStatusKind satisfactionStatus = SATISFACTION_STATUS_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,7 +82,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getSatisfactionStatus() {
+	public SatisfactionStatusKind getSatisfactionStatus() {
 		return satisfactionStatus;
 	}
 
@@ -90,9 +91,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setSatisfactionStatus(Object newSatisfactionStatus) {
-		Object oldSatisfactionStatus = satisfactionStatus;
-		satisfactionStatus = newSatisfactionStatus;
+	public void setSatisfactionStatus(SatisfactionStatusKind newSatisfactionStatus) {
+		SatisfactionStatusKind oldSatisfactionStatus = satisfactionStatus;
+		satisfactionStatus = newSatisfactionStatus == null ? SATISFACTION_STATUS_EDEFAULT : newSatisfactionStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.SATIFIACTION_STATUS_REQ_CHARAC__SATISFACTION_STATUS, oldSatisfactionStatus, satisfactionStatus));
 	}
@@ -120,7 +121,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.SATIFIACTION_STATUS_REQ_CHARAC__SATISFACTION_STATUS:
-				setSatisfactionStatus(newValue);
+				setSatisfactionStatus((SatisfactionStatusKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -150,7 +151,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case RequirementGenericCharacteristicsPackage.SATIFIACTION_STATUS_REQ_CHARAC__SATISFACTION_STATUS:
-				return SATISFACTION_STATUS_EDEFAULT == null ? satisfactionStatus != null : !SATISFACTION_STATUS_EDEFAULT.equals(satisfactionStatus);
+				return satisfactionStatus != SATISFACTION_STATUS_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/VerifierNameReqCharacImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/VerifierNameReqCharacImpl.java
index bbbd60b..60ad020 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/VerifierNameReqCharacImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementgenericcharacteristics/impl/VerifierNameReqCharacImpl.java
@@ -20,6 +20,8 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_MethodKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.RequirementGenericCharacteristicsPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementgenericcharacteristics.VerifierNameReqCharac;
 
@@ -67,7 +69,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object VV_METHOD_EDEFAULT = null;
+	protected static final VV_MethodKind VV_METHOD_EDEFAULT = VV_MethodKind.ANALYSIS;
 
 	/**
 	 * The cached value of the '{@link #getVV_Method() <em>VV Method</em>}' attribute.
@@ -77,7 +79,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object vV_Method = VV_METHOD_EDEFAULT;
+	protected VV_MethodKind vV_Method = VV_METHOD_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getVV_Status() <em>VV Status</em>}' attribute.
@@ -87,7 +89,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object VV_STATUS_EDEFAULT = null;
+	protected static final VV_StatusKind VV_STATUS_EDEFAULT = VV_StatusKind.PENDING;
 
 	/**
 	 * The cached value of the '{@link #getVV_Status() <em>VV Status</em>}' attribute.
@@ -97,7 +99,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object vV_Status = VV_STATUS_EDEFAULT;
+	protected VV_StatusKind vV_Status = VV_STATUS_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -144,7 +146,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getVV_Method() {
+	public VV_MethodKind getVV_Method() {
 		return vV_Method;
 	}
 
@@ -153,9 +155,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setVV_Method(Object newVV_Method) {
-		Object oldVV_Method = vV_Method;
-		vV_Method = newVV_Method;
+	public void setVV_Method(VV_MethodKind newVV_Method) {
+		VV_MethodKind oldVV_Method = vV_Method;
+		vV_Method = newVV_Method == null ? VV_METHOD_EDEFAULT : newVV_Method;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.VERIFIER_NAME_REQ_CHARAC__VV_METHOD, oldVV_Method, vV_Method));
 	}
@@ -165,7 +167,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getVV_Status() {
+	public VV_StatusKind getVV_Status() {
 		return vV_Status;
 	}
 
@@ -174,9 +176,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setVV_Status(Object newVV_Status) {
-		Object oldVV_Status = vV_Status;
-		vV_Status = newVV_Status;
+	public void setVV_Status(VV_StatusKind newVV_Status) {
+		VV_StatusKind oldVV_Status = vV_Status;
+		vV_Status = newVV_Status == null ? VV_STATUS_EDEFAULT : newVV_Status;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementGenericCharacteristicsPackage.VERIFIER_NAME_REQ_CHARAC__VV_STATUS, oldVV_Status, vV_Status));
 	}
@@ -211,10 +213,10 @@
 				setVerifierName((String)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.VERIFIER_NAME_REQ_CHARAC__VV_METHOD:
-				setVV_Method(newValue);
+				setVV_Method((VV_MethodKind)newValue);
 				return;
 			case RequirementGenericCharacteristicsPackage.VERIFIER_NAME_REQ_CHARAC__VV_STATUS:
-				setVV_Status(newValue);
+				setVV_Status((VV_StatusKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -252,9 +254,9 @@
 			case RequirementGenericCharacteristicsPackage.VERIFIER_NAME_REQ_CHARAC__VERIFIER_NAME:
 				return VERIFIER_NAME_EDEFAULT == null ? verifierName != null : !VERIFIER_NAME_EDEFAULT.equals(verifierName);
 			case RequirementGenericCharacteristicsPackage.VERIFIER_NAME_REQ_CHARAC__VV_METHOD:
-				return VV_METHOD_EDEFAULT == null ? vV_Method != null : !VV_METHOD_EDEFAULT.equals(vV_Method);
+				return vV_Method != VV_METHOD_EDEFAULT;
 			case RequirementGenericCharacteristicsPackage.VERIFIER_NAME_REQ_CHARAC__VV_STATUS:
-				return VV_STATUS_EDEFAULT == null ? vV_Status != null : !VV_STATUS_EDEFAULT.equals(vV_Status);
+				return vV_Status != VV_STATUS_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/Satisfy.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/Satisfy.java
index 53e2af4..25356fe 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/Satisfy.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/Satisfy.java
@@ -13,6 +13,8 @@
  */
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind;
+
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Satisfy</b></em>'.
@@ -59,6 +61,7 @@
 
 	/**
 	 * Returns the value of the '<em><b>Satisfy Status</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Satisfy Status</em>' attribute isn't clear,
@@ -66,21 +69,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Satisfy Status</em>' attribute.
-	 * @see #setSatisfyStatus(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind
+	 * @see #setSatisfyStatus(SatisfactionStatusKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.RequirementTraceabilityPackage#getSatisfy_SatisfyStatus()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getSatisfyStatus();
+	SatisfactionStatusKind getSatisfyStatus();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.Satisfy#getSatisfyStatus <em>Satisfy Status</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Satisfy Status</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind
 	 * @see #getSatisfyStatus()
 	 * @generated
 	 */
-	void setSatisfyStatus(Object value);
+	void setSatisfyStatus(SatisfactionStatusKind value);
 
 } // Satisfy
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/Verify.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/Verify.java
index 00cede3..88bc957 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/Verify.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/Verify.java
@@ -13,6 +13,9 @@
  */
 package org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability;
 
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind;
+
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Verify</b></em>'.
@@ -60,6 +63,7 @@
 
 	/**
 	 * Returns the value of the '<em><b>Verify Status</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Verify Status</em>' attribute isn't clear,
@@ -67,25 +71,28 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Verify Status</em>' attribute.
-	 * @see #setVerifyStatus(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind
+	 * @see #setVerifyStatus(VV_StatusKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.RequirementTraceabilityPackage#getVerify_VerifyStatus()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getVerifyStatus();
+	VV_StatusKind getVerifyStatus();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.Verify#getVerifyStatus <em>Verify Status</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Verify Status</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind
 	 * @see #getVerifyStatus()
 	 * @generated
 	 */
-	void setVerifyStatus(Object value);
+	void setVerifyStatus(VV_StatusKind value);
 
 	/**
 	 * Returns the value of the '<em><b>VV Method</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>VV Method</em>' attribute isn't clear,
@@ -93,21 +100,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>VV Method</em>' attribute.
-	 * @see #setVV_Method(Object)
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind
+	 * @see #setVV_Method(SatisfactionStatusKind)
 	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.RequirementTraceabilityPackage#getVerify_VV_Method()
 	 * @model ordered="false"
 	 * @generated
 	 */
-	Object getVV_Method();
+	SatisfactionStatusKind getVV_Method();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.Verify#getVV_Method <em>VV Method</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>VV Method</em>' attribute.
+	 * @see org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind
 	 * @see #getVV_Method()
 	 * @generated
 	 */
-	void setVV_Method(Object value);
+	void setVV_Method(SatisfactionStatusKind value);
 
 } // Verify
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/RequirementTraceabilityPackageImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/RequirementTraceabilityPackageImpl.java
index ebb08c7..c7712b7 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/RequirementTraceabilityPackageImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/RequirementTraceabilityPackageImpl.java
@@ -19,6 +19,11 @@
 import org.eclipse.emf.ecore.EcorePackage;
 
 import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.priorityandimportanceconcerns.PriorityAndImportanceConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.RequirementAndProcessConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementclassificationconcerns.RequirementClassificationConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementscharacteristicsconcerns.RequirementsCharacteristicsConcernsPackage;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VerificationAndValidationConcernsPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.RequirementClassificationPackage;
 
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementclassification.impl.RequirementClassificationPackageImpl;
@@ -39,6 +44,7 @@
 import org.eclipse.uml2.types.TypesPackage;
 
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -109,6 +115,12 @@
 
 		// Initialize simple dependencies
 		EcorePackage.eINSTANCE.eClass();
+		RequirementClassificationConcernsPackage.eINSTANCE.eClass();
+		RequirementsCharacteristicsConcernsPackage.eINSTANCE.eClass();
+		PriorityAndImportanceConcernsPackage.eINSTANCE.eClass();
+		RequirementAndProcessConcernsPackage.eINSTANCE.eClass();
+		VerificationAndValidationConcernsPackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
 		sysmlPackage.eINSTANCE.eClass();
 		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
@@ -263,6 +275,8 @@
 		// Obtain other dependent packages
 		RequirementsPackage theRequirementsPackage = (RequirementsPackage)EPackage.Registry.INSTANCE.getEPackage(RequirementsPackage.eNS_URI);
 		TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+		RequirementAndProcessConcernsPackage theRequirementAndProcessConcernsPackage = (RequirementAndProcessConcernsPackage)EPackage.Registry.INSTANCE.getEPackage(RequirementAndProcessConcernsPackage.eNS_URI);
+		VerificationAndValidationConcernsPackage theVerificationAndValidationConcernsPackage = (VerificationAndValidationConcernsPackage)EPackage.Registry.INSTANCE.getEPackage(VerificationAndValidationConcernsPackage.eNS_URI);
 
 		// Create type parameters
 
@@ -275,12 +289,12 @@
 		// Initialize classes, features, and operations; add parameters
 		initEClass(satisfyEClass, Satisfy.class, "Satisfy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getSatisfy_ValidatorName(), theTypesPackage.getString(), "validatorName", null, 0, 1, Satisfy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getSatisfy_SatisfyStatus(), ecorePackage.getEJavaObject(), "satisfyStatus", null, 0, 1, Satisfy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSatisfy_SatisfyStatus(), theRequirementAndProcessConcernsPackage.getSatisfactionStatusKind(), "satisfyStatus", null, 0, 1, Satisfy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(verifyEClass, Verify.class, "Verify", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getVerify_VerifierName(), theTypesPackage.getString(), "verifierName", null, 0, 1, Verify.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getVerify_VerifyStatus(), ecorePackage.getEJavaObject(), "verifyStatus", null, 0, 1, Verify.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getVerify_VV_Method(), ecorePackage.getEJavaObject(), "VV_Method", null, 0, 1, Verify.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getVerify_VerifyStatus(), theVerificationAndValidationConcernsPackage.getVV_StatusKind(), "verifyStatus", null, 0, 1, Verify.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getVerify_VV_Method(), theRequirementAndProcessConcernsPackage.getSatisfactionStatusKind(), "VV_Method", null, 0, 1, Verify.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		// Create resource
 		createResource(eNS_URI);
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/SatisfyImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/SatisfyImpl.java
index 1ee235f..3d2be35 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/SatisfyImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/SatisfyImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.EClass;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.RequirementTraceabilityPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.Satisfy;
 
@@ -64,7 +65,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object SATISFY_STATUS_EDEFAULT = null;
+	protected static final SatisfactionStatusKind SATISFY_STATUS_EDEFAULT = SatisfactionStatusKind.NOT_SATISFIED;
 
 	/**
 	 * The cached value of the '{@link #getSatisfyStatus() <em>Satisfy Status</em>}' attribute.
@@ -74,7 +75,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object satisfyStatus = SATISFY_STATUS_EDEFAULT;
+	protected SatisfactionStatusKind satisfyStatus = SATISFY_STATUS_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -121,7 +122,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getSatisfyStatus() {
+	public SatisfactionStatusKind getSatisfyStatus() {
 		return satisfyStatus;
 	}
 
@@ -130,9 +131,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setSatisfyStatus(Object newSatisfyStatus) {
-		Object oldSatisfyStatus = satisfyStatus;
-		satisfyStatus = newSatisfyStatus;
+	public void setSatisfyStatus(SatisfactionStatusKind newSatisfyStatus) {
+		SatisfactionStatusKind oldSatisfyStatus = satisfyStatus;
+		satisfyStatus = newSatisfyStatus == null ? SATISFY_STATUS_EDEFAULT : newSatisfyStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementTraceabilityPackage.SATISFY__SATISFY_STATUS, oldSatisfyStatus, satisfyStatus));
 	}
@@ -165,7 +166,7 @@
 				setValidatorName((String)newValue);
 				return;
 			case RequirementTraceabilityPackage.SATISFY__SATISFY_STATUS:
-				setSatisfyStatus(newValue);
+				setSatisfyStatus((SatisfactionStatusKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -200,7 +201,7 @@
 			case RequirementTraceabilityPackage.SATISFY__VALIDATOR_NAME:
 				return VALIDATOR_NAME_EDEFAULT == null ? validatorName != null : !VALIDATOR_NAME_EDEFAULT.equals(validatorName);
 			case RequirementTraceabilityPackage.SATISFY__SATISFY_STATUS:
-				return SATISFY_STATUS_EDEFAULT == null ? satisfyStatus != null : !SATISFY_STATUS_EDEFAULT.equals(satisfyStatus);
+				return satisfyStatus != SATISFY_STATUS_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/VerifyImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/VerifyImpl.java
index f2ebe84..ec8bc85 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/VerifyImpl.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.papyrusre/src-gen/org/eclipse/papyrus/requirements/sysml14/papyrusre/requirementtraceability/impl/VerifyImpl.java
@@ -18,6 +18,8 @@
 import org.eclipse.emf.ecore.EClass;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.requirementandprocessconcerns.SatisfactionStatusKind;
+import org.eclipse.papyrus.requirements.sysml14.papyrusre.modellibrary.papyrusrestandardutils.verificationandvalidationconcerns.VV_StatusKind;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.RequirementTraceabilityPackage;
 import org.eclipse.papyrus.requirements.sysml14.papyrusre.requirementtraceability.Verify;
 
@@ -65,7 +67,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object VERIFY_STATUS_EDEFAULT = null;
+	protected static final VV_StatusKind VERIFY_STATUS_EDEFAULT = VV_StatusKind.PENDING;
 
 	/**
 	 * The cached value of the '{@link #getVerifyStatus() <em>Verify Status</em>}' attribute.
@@ -75,7 +77,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object verifyStatus = VERIFY_STATUS_EDEFAULT;
+	protected VV_StatusKind verifyStatus = VERIFY_STATUS_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getVV_Method() <em>VV Method</em>}' attribute.
@@ -85,7 +87,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final Object VV_METHOD_EDEFAULT = null;
+	protected static final SatisfactionStatusKind VV_METHOD_EDEFAULT = SatisfactionStatusKind.NOT_SATISFIED;
 
 	/**
 	 * The cached value of the '{@link #getVV_Method() <em>VV Method</em>}' attribute.
@@ -95,7 +97,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Object vV_Method = VV_METHOD_EDEFAULT;
+	protected SatisfactionStatusKind vV_Method = VV_METHOD_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -142,7 +144,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getVerifyStatus() {
+	public VV_StatusKind getVerifyStatus() {
 		return verifyStatus;
 	}
 
@@ -151,9 +153,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setVerifyStatus(Object newVerifyStatus) {
-		Object oldVerifyStatus = verifyStatus;
-		verifyStatus = newVerifyStatus;
+	public void setVerifyStatus(VV_StatusKind newVerifyStatus) {
+		VV_StatusKind oldVerifyStatus = verifyStatus;
+		verifyStatus = newVerifyStatus == null ? VERIFY_STATUS_EDEFAULT : newVerifyStatus;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementTraceabilityPackage.VERIFY__VERIFY_STATUS, oldVerifyStatus, verifyStatus));
 	}
@@ -163,7 +165,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object getVV_Method() {
+	public SatisfactionStatusKind getVV_Method() {
 		return vV_Method;
 	}
 
@@ -172,9 +174,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setVV_Method(Object newVV_Method) {
-		Object oldVV_Method = vV_Method;
-		vV_Method = newVV_Method;
+	public void setVV_Method(SatisfactionStatusKind newVV_Method) {
+		SatisfactionStatusKind oldVV_Method = vV_Method;
+		vV_Method = newVV_Method == null ? VV_METHOD_EDEFAULT : newVV_Method;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, RequirementTraceabilityPackage.VERIFY__VV_METHOD, oldVV_Method, vV_Method));
 	}
@@ -209,10 +211,10 @@
 				setVerifierName((String)newValue);
 				return;
 			case RequirementTraceabilityPackage.VERIFY__VERIFY_STATUS:
-				setVerifyStatus(newValue);
+				setVerifyStatus((VV_StatusKind)newValue);
 				return;
 			case RequirementTraceabilityPackage.VERIFY__VV_METHOD:
-				setVV_Method(newValue);
+				setVV_Method((SatisfactionStatusKind)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -250,9 +252,9 @@
 			case RequirementTraceabilityPackage.VERIFY__VERIFIER_NAME:
 				return VERIFIER_NAME_EDEFAULT == null ? verifierName != null : !VERIFIER_NAME_EDEFAULT.equals(verifierName);
 			case RequirementTraceabilityPackage.VERIFY__VERIFY_STATUS:
-				return VERIFY_STATUS_EDEFAULT == null ? verifyStatus != null : !VERIFY_STATUS_EDEFAULT.equals(verifyStatus);
+				return verifyStatus != VERIFY_STATUS_EDEFAULT;
 			case RequirementTraceabilityPackage.VERIFY__VV_METHOD:
-				return VV_METHOD_EDEFAULT == null ? vV_Method != null : !VV_METHOD_EDEFAULT.equals(vV_Method);
+				return vV_Method != VV_METHOD_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}