From 0f0ece587b4c092eb64ddbe1d31faefacaa2ce5c Mon Sep 17 00:00:00 2001
From: Fabian Brosig <fabian.brosig@uni-wuerzburg.de>
Date: Tue, 5 Aug 2014 14:26:29 +0000
Subject: [PATCH] changed type of property ResourceDemand::explicitDescription
 from ExplicitDescription back to RandomVariable changed type of property
 ResponseTime::explicitDescription from ExplicitDescription back to
 RandomVariable changed type of property
 ControlFlowVariable::explicitDescription from ExplicitDescription back to
 RandomVariable added property ResourceDemand::specification

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/DMM/trunk@16322 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../model/applicationlevel.genmodel           |  1 +
 .../model/functions.ecore                     |  3 +-
 .../model/functions.ecore.oclinecore          |  1 +
 .../model/parameterdependency.ecore           |  2 +-
 .../parameterdependency.ecore.oclinecore      |  2 +-
 .../model/servicebehavior.ecore               |  4 +-
 .../model/servicebehavior.ecore.oclinecore    |  4 +-
 .../functions/FunctionsPackage.java           | 34 +++++++++-
 .../functions/RandomVariable.java             | 27 ++++++++
 .../functions/impl/FunctionsPackageImpl.java  | 17 ++++-
 .../functions/impl/RandomVariableImpl.java    | 66 +++++++++++++++++++
 .../ControlFlowVariable.java                  |  7 +-
 .../impl/ControlFlowVariableImpl.java         | 15 +++--
 .../ParameterdependenciesPackageImpl.java     |  2 +-
 .../servicebehavior/ResourceDemand.java       |  7 +-
 .../servicebehavior/ResponseTime.java         |  7 +-
 .../impl/ResourceDemandImpl.java              | 15 +++--
 .../impl/ResponseTimeImpl.java                | 15 +++--
 .../impl/ServicebehaviorPackageImpl.java      |  4 +-
 19 files changed, 187 insertions(+), 46 deletions(-)

diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/applicationlevel.genmodel b/edu.kit.ipd.descartes.mm.applicationlevel/model/applicationlevel.genmodel
index 864239d7..99303976 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/applicationlevel.genmodel
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/applicationlevel.genmodel
@@ -84,6 +84,7 @@
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference functions.ecore#//Power/exponent"/>
     </genClasses>
     <genClasses ecoreClass="functions.ecore#//RandomVariable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute functions.ecore#//RandomVariable/specification"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference functions.ecore#//RandomVariable/probFunction"/>
     </genClasses>
     <genClasses image="false" ecoreClass="functions.ecore#//ProbabilityFunction"/>
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore
index f3ed1c48..05068a7d 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore
@@ -3,8 +3,8 @@
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functions" nsURI="http://www.descartes-research.net/metamodel/functions/0.1"
     nsPrefix="functions">
   <eAnnotations source="http://www.eclipse.org/OCL/Import">
+    <details key="ecore_0" value="http://www.eclipse.org/emf/2002/Ecore"/>
     <details key="repository_0" value="repository.ecore#/"/>
-    <details key="ecore_0" value="http://www.eclipse.org/emf/2002/Ecore#/"/>
   </eAnnotations>
   <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true"/>
   <eClassifiers xsi:type="ecore:EClass" name="ExplicitDescription">
@@ -90,6 +90,7 @@
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="RandomVariable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="specification" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="probFunction" eType="#//ProbabilityFunction"
         containment="true"/>
   </eClassifiers>
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore.oclinecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore.oclinecore
index d04818b7..937022f0 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore.oclinecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore.oclinecore
@@ -93,6 +93,7 @@ package functions : functions = 'http://www.descartes-research.net/metamodel/fun
 	--#########################################################
 	
 	class RandomVariable {
+		attribute specification : String[0..1];
 		property probFunction : ProbabilityFunction[0..1] {composes};
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore
index f21a3674..b2038b35 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore
@@ -39,7 +39,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterization" lowerBound="1"
         eType="#//ModelVariableCharacterizationType"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//ExplicitDescription"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//RandomVariable"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InfluencedVariableReference">
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore.oclinecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore.oclinecore
index 2af6b009..027336f1 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore.oclinecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore.oclinecore
@@ -28,7 +28,7 @@ package parameterdependencies : parameterdependencies = 'http://www.descartes-re
 	
 	abstract class ControlFlowVariable extends ModelVariable {
 		attribute characterization : ModelVariableCharacterizationType[1];
-		property explicitDescription : functions_0::ExplicitDescription[?] { composes };
+		property explicitDescription : functions_0::RandomVariable[?] { composes };
 		invariant EnforceExplicitDescriptionWhenExplicitCharacterizationType :
 			self.characterization = RelationshipCharacterizationType::EXPLICIT implies explicitDescription <> null;
 	}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore
index bffcd0eb..931ac563 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore
@@ -125,7 +125,7 @@
         eType="ecore:EClass ../../edu.kit.ipd.descartes.mm.resourcelandscape/model/resourcetype.ecore#//ResourceType"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterization" lowerBound="1"
         eType="ecore:EEnum parameterdependency.ecore#//ModelVariableCharacterizationType"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//ExplicitDescription"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//RandomVariable"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CoarseGrainedBehavior" eSuperTypes="#//ServiceBehaviorAbstraction">
@@ -181,7 +181,7 @@
         eType="#//BlackBoxBehavior" eOpposite="#//BlackBoxBehavior/responseTime"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterization" lowerBound="1"
         eType="ecore:EEnum parameterdependency.ecore#//ModelVariableCharacterizationType"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//ExplicitDescription"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//RandomVariable"
         containment="true"/>
   </eClassifiers>
 </ecore:EPackage>
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore.oclinecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore.oclinecore
index 7aebdda3..f0822f38 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore.oclinecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore.oclinecore
@@ -85,7 +85,7 @@ package servicebehavior : servicebehavior = 'http://www.descartes-research.net/m
 		property resourceType : resourcetype_0::ResourceType[1];		
 		
 		attribute characterization : parameterdependencies::ModelVariableCharacterizationType[1];
-		property explicitDescription : functions_0::ExplicitDescription[?] { composes };
+		property explicitDescription : functions_0::RandomVariable[?] { composes };
 		invariant EnforceExplicitDescriptionWhenExplicitCharacterizationType :
 		   self.characterization = parameterdependencies::RelationshipCharacterizationType::EXPLICIT implies explicitDescription <> null;
 		
@@ -156,7 +156,7 @@ package servicebehavior : servicebehavior = 'http://www.descartes-research.net/m
 		property blackBoxBehavior#responseTime : BlackBoxBehavior[1];
 		
 		attribute characterization : parameterdependencies::ModelVariableCharacterizationType[1];
-		property explicitDescription : functions_0::ExplicitDescription[?] { composes };
+		property explicitDescription : functions_0::RandomVariable[?] { composes };
 		invariant EnforceExplicitDescriptionWhenExplicitCharacterizationType :
 			self.characterization = parameterdependencies::RelationshipCharacterizationType::EXPLICIT implies explicitDescription <> null;
 	}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/FunctionsPackage.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/FunctionsPackage.java
index 658f9475..aefccab0 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/FunctionsPackage.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/FunctionsPackage.java
@@ -22,7 +22,7 @@ import org.eclipse.emf.ecore.EReference;
  * <!-- end-user-doc -->
  * @see edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsFactory
  * @model kind="package"
- *        annotation="http://www.eclipse.org/OCL/Import repository_0='repository.ecore#/' ecore_0='http://www.eclipse.org/emf/2002/Ecore#/'"
+ *        annotation="http://www.eclipse.org/OCL/Import ecore_0='http://www.eclipse.org/emf/2002/Ecore' repository_0='repository.ecore#/'"
  * @generated
  */
 public interface FunctionsPackage extends EPackage {
@@ -503,6 +503,15 @@ public interface FunctionsPackage extends EPackage {
 	 */
 	int RANDOM_VARIABLE = 12;
 
+	/**
+	 * The feature id for the '<em><b>Specification</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RANDOM_VARIABLE__SPECIFICATION = 0;
+
 	/**
 	 * The feature id for the '<em><b>Prob Function</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
@@ -510,7 +519,7 @@ public interface FunctionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int RANDOM_VARIABLE__PROB_FUNCTION = 0;
+	int RANDOM_VARIABLE__PROB_FUNCTION = 1;
 
 	/**
 	 * The number of structural features of the '<em>Random Variable</em>' class.
@@ -519,7 +528,7 @@ public interface FunctionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int RANDOM_VARIABLE_FEATURE_COUNT = 1;
+	int RANDOM_VARIABLE_FEATURE_COUNT = 2;
 
 	/**
 	 * The meta object id for the '{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.impl.ProbabilityFunctionImpl <em>Probability Function</em>}' class.
@@ -1561,6 +1570,17 @@ public interface FunctionsPackage extends EPackage {
 	 */
 	EClass getRandomVariable();
 
+	/**
+	 * Returns the meta object for the attribute '{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getSpecification <em>Specification</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Specification</em>'.
+	 * @see edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getSpecification()
+	 * @see #getRandomVariable()
+	 * @generated
+	 */
+	EAttribute getRandomVariable_Specification();
+
 	/**
 	 * Returns the meta object for the containment reference '{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getProbFunction <em>Prob Function</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2410,6 +2430,14 @@ public interface FunctionsPackage extends EPackage {
 		 */
 		EClass RANDOM_VARIABLE = eINSTANCE.getRandomVariable();
 
+		/**
+		 * The meta object literal for the '<em><b>Specification</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute RANDOM_VARIABLE__SPECIFICATION = eINSTANCE.getRandomVariable_Specification();
+
 		/**
 		 * The meta object literal for the '<em><b>Prob Function</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/RandomVariable.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/RandomVariable.java
index ef0c6776..cade47f4 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/RandomVariable.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/RandomVariable.java
@@ -13,6 +13,7 @@ import org.eclipse.emf.ecore.EObject;
  * <p>
  * The following features are supported:
  * <ul>
+ *   <li>{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getSpecification <em>Specification</em>}</li>
  *   <li>{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getProbFunction <em>Prob Function</em>}</li>
  * </ul>
  * </p>
@@ -22,6 +23,32 @@ import org.eclipse.emf.ecore.EObject;
  * @generated
  */
 public interface RandomVariable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Specification</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Specification</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Specification</em>' attribute.
+	 * @see #setSpecification(String)
+	 * @see edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsPackage#getRandomVariable_Specification()
+	 * @model
+	 * @generated
+	 */
+	String getSpecification();
+
+	/**
+	 * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getSpecification <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Specification</em>' attribute.
+	 * @see #getSpecification()
+	 * @generated
+	 */
+	void setSpecification(String value);
+
 	/**
 	 * Returns the value of the '<em><b>Prob Function</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/FunctionsPackageImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/FunctionsPackageImpl.java
index 59b2154b..e1f08004 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/FunctionsPackageImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/FunctionsPackageImpl.java
@@ -753,13 +753,22 @@ public class FunctionsPackageImpl extends EPackageImpl implements FunctionsPacka
 		return randomVariableEClass;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRandomVariable_Specification() {
+		return (EAttribute)randomVariableEClass.getEStructuralFeatures().get(0);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public EReference getRandomVariable_ProbFunction() {
-		return (EReference)randomVariableEClass.getEStructuralFeatures().get(0);
+		return (EReference)randomVariableEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1270,6 +1279,7 @@ public class FunctionsPackageImpl extends EPackageImpl implements FunctionsPacka
 		createEReference(powerEClass, POWER__EXPONENT);
 
 		randomVariableEClass = createEClass(RANDOM_VARIABLE);
+		createEAttribute(randomVariableEClass, RANDOM_VARIABLE__SPECIFICATION);
 		createEReference(randomVariableEClass, RANDOM_VARIABLE__PROB_FUNCTION);
 
 		probabilityFunctionEClass = createEClass(PROBABILITY_FUNCTION);
@@ -1452,6 +1462,7 @@ public class FunctionsPackageImpl extends EPackageImpl implements FunctionsPacka
 		initEReference(getPower_Exponent(), this.getExpression(), null, "exponent", null, 0, 1, Power.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(randomVariableEClass, RandomVariable.class, "RandomVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getRandomVariable_Specification(), ecorePackage.getEString(), "specification", null, 0, 1, RandomVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getRandomVariable_ProbFunction(), this.getProbabilityFunction(), null, "probFunction", null, 0, 1, RandomVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(probabilityFunctionEClass, ProbabilityFunction.class, "ProbabilityFunction", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1563,8 +1574,8 @@ public class FunctionsPackageImpl extends EPackageImpl implements FunctionsPacka
 		  (this, 
 		   source, 
 		   new String[] {
-			 "repository_0", "repository.ecore#/",
-			 "ecore_0", "http://www.eclipse.org/emf/2002/Ecore#/"
+			 "ecore_0", "http://www.eclipse.org/emf/2002/Ecore",
+			 "repository_0", "repository.ecore#/"
 		   });
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/RandomVariableImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/RandomVariableImpl.java
index 24a4b45d..920283bf 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/RandomVariableImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/RandomVariableImpl.java
@@ -23,6 +23,7 @@ import org.eclipse.emf.ecore.impl.EObjectImpl;
  * <p>
  * The following features are implemented:
  * <ul>
+ *   <li>{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.impl.RandomVariableImpl#getSpecification <em>Specification</em>}</li>
  *   <li>{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.impl.RandomVariableImpl#getProbFunction <em>Prob Function</em>}</li>
  * </ul>
  * </p>
@@ -30,6 +31,24 @@ import org.eclipse.emf.ecore.impl.EObjectImpl;
  * @generated
  */
 public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
+	/**
+	 * The default value of the '{@link #getSpecification() <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSpecification()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SPECIFICATION_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getSpecification() <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSpecification()
+	 * @generated
+	 * @ordered
+	 */
+	protected String specification = SPECIFICATION_EDEFAULT;
 	/**
 	 * The cached value of the '{@link #getProbFunction() <em>Prob Function</em>}' containment reference.
 	 * <!-- begin-user-doc -->
@@ -59,6 +78,27 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 		return FunctionsPackage.Literals.RANDOM_VARIABLE;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSpecification() {
+		return specification;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSpecification(String newSpecification) {
+		String oldSpecification = specification;
+		specification = newSpecification;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION, oldSpecification, specification));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124,6 +164,8 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION:
+				return getSpecification();
 			case FunctionsPackage.RANDOM_VARIABLE__PROB_FUNCTION:
 				return getProbFunction();
 		}
@@ -138,6 +180,9 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION:
+				setSpecification((String)newValue);
+				return;
 			case FunctionsPackage.RANDOM_VARIABLE__PROB_FUNCTION:
 				setProbFunction((ProbabilityFunction)newValue);
 				return;
@@ -153,6 +198,9 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION:
+				setSpecification(SPECIFICATION_EDEFAULT);
+				return;
 			case FunctionsPackage.RANDOM_VARIABLE__PROB_FUNCTION:
 				setProbFunction((ProbabilityFunction)null);
 				return;
@@ -168,10 +216,28 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION:
+				return SPECIFICATION_EDEFAULT == null ? specification != null : !SPECIFICATION_EDEFAULT.equals(specification);
 			case FunctionsPackage.RANDOM_VARIABLE__PROB_FUNCTION:
 				return probFunction != null;
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (specification: ");
+		result.append(specification);
+		result.append(')');
+		return result.toString();
+	}
+
 } //RandomVariableImpl
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ControlFlowVariable.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ControlFlowVariable.java
index 69c9544d..3b955ec8 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ControlFlowVariable.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ControlFlowVariable.java
@@ -4,6 +4,7 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 
 /**
  * <!-- begin-user-doc -->
@@ -63,12 +64,12 @@ public interface ControlFlowVariable extends ModelVariable {
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Explicit Description</em>' containment reference.
-	 * @see #setExplicitDescription(ExplicitDescription)
+	 * @see #setExplicitDescription(RandomVariable)
 	 * @see edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage#getControlFlowVariable_ExplicitDescription()
 	 * @model containment="true"
 	 * @generated
 	 */
-	ExplicitDescription getExplicitDescription();
+	RandomVariable getExplicitDescription();
 
 	/**
 	 * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ControlFlowVariable#getExplicitDescription <em>Explicit Description</em>}' containment reference.
@@ -78,6 +79,6 @@ public interface ControlFlowVariable extends ModelVariable {
 	 * @see #getExplicitDescription()
 	 * @generated
 	 */
-	void setExplicitDescription(ExplicitDescription value);
+	void setExplicitDescription(RandomVariable value);
 
 } // ControlFlowVariable
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ControlFlowVariableImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ControlFlowVariableImpl.java
index 43112f12..415c2a67 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ControlFlowVariableImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ControlFlowVariableImpl.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.impl;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ControlFlowVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
@@ -60,7 +61,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 	 * @generated
 	 * @ordered
 	 */
-	protected ExplicitDescription explicitDescription;
+	protected RandomVariable explicitDescription;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -107,7 +108,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ExplicitDescription getExplicitDescription() {
+	public RandomVariable getExplicitDescription() {
 		return explicitDescription;
 	}
 
@@ -116,8 +117,8 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetExplicitDescription(ExplicitDescription newExplicitDescription, NotificationChain msgs) {
-		ExplicitDescription oldExplicitDescription = explicitDescription;
+	public NotificationChain basicSetExplicitDescription(RandomVariable newExplicitDescription, NotificationChain msgs) {
+		RandomVariable oldExplicitDescription = explicitDescription;
 		explicitDescription = newExplicitDescription;
 		if (eNotificationRequired()) {
 			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ParameterdependenciesPackage.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION, oldExplicitDescription, newExplicitDescription);
@@ -131,7 +132,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setExplicitDescription(ExplicitDescription newExplicitDescription) {
+	public void setExplicitDescription(RandomVariable newExplicitDescription) {
 		if (newExplicitDescription != explicitDescription) {
 			NotificationChain msgs = null;
 			if (explicitDescription != null)
@@ -187,7 +188,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 				setCharacterization((ModelVariableCharacterizationType)newValue);
 				return;
 			case ParameterdependenciesPackage.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)newValue);
+				setExplicitDescription((RandomVariable)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -205,7 +206,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 				setCharacterization(CHARACTERIZATION_EDEFAULT);
 				return;
 			case ParameterdependenciesPackage.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)null);
+				setExplicitDescription((RandomVariable)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java
index 6541cbe0..dfbc398f 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java
@@ -844,7 +844,7 @@ public class ParameterdependenciesPackageImpl extends EPackageImpl implements Pa
 
 		initEClass(controlFlowVariableEClass, ControlFlowVariable.class, "ControlFlowVariable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getControlFlowVariable_Characterization(), this.getModelVariableCharacterizationType(), "characterization", null, 1, 1, ControlFlowVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getControlFlowVariable_ExplicitDescription(), theFunctionsPackage.getExplicitDescription(), null, "explicitDescription", null, 0, 1, ControlFlowVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getControlFlowVariable_ExplicitDescription(), theFunctionsPackage.getRandomVariable(), null, "explicitDescription", null, 0, 1, ControlFlowVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(influencedVariableReferenceEClass, InfluencedVariableReference.class, "InfluencedVariableReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getInfluencedVariableReference_GetInfluencedVariable(), this.getModelVariable(), null, "getInfluencedVariable", null, 1, 1, InfluencedVariableReference.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResourceDemand.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResourceDemand.java
index 5cbea30e..078301a5 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResourceDemand.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResourceDemand.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 
@@ -152,12 +153,12 @@ public interface ResourceDemand extends ModelVariable {
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Explicit Description</em>' containment reference.
-	 * @see #setExplicitDescription(ExplicitDescription)
+	 * @see #setExplicitDescription(RandomVariable)
 	 * @see edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorPackage#getResourceDemand_ExplicitDescription()
 	 * @model containment="true"
 	 * @generated
 	 */
-	ExplicitDescription getExplicitDescription();
+	RandomVariable getExplicitDescription();
 
 	/**
 	 * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResourceDemand#getExplicitDescription <em>Explicit Description</em>}' containment reference.
@@ -167,6 +168,6 @@ public interface ResourceDemand extends ModelVariable {
 	 * @see #getExplicitDescription()
 	 * @generated
 	 */
-	void setExplicitDescription(ExplicitDescription value);
+	void setExplicitDescription(RandomVariable value);
 
 } // ResourceDemand
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResponseTime.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResponseTime.java
index b79cfb94..84111891 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResponseTime.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResponseTime.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 
@@ -94,12 +95,12 @@ public interface ResponseTime extends ModelVariable {
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Explicit Description</em>' containment reference.
-	 * @see #setExplicitDescription(ExplicitDescription)
+	 * @see #setExplicitDescription(RandomVariable)
 	 * @see edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorPackage#getResponseTime_ExplicitDescription()
 	 * @model containment="true"
 	 * @generated
 	 */
-	ExplicitDescription getExplicitDescription();
+	RandomVariable getExplicitDescription();
 
 	/**
 	 * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResponseTime#getExplicitDescription <em>Explicit Description</em>}' containment reference.
@@ -109,6 +110,6 @@ public interface ResponseTime extends ModelVariable {
 	 * @see #getExplicitDescription()
 	 * @generated
 	 */
-	void setExplicitDescription(ExplicitDescription value);
+	void setExplicitDescription(RandomVariable value);
 
 } // ResponseTime
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResourceDemandImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResourceDemandImpl.java
index 9f10ec6a..1055a541 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResourceDemandImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResourceDemandImpl.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.impl;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.impl.ModelVariableImpl;
@@ -82,7 +83,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 	 * @generated
 	 * @ordered
 	 */
-	protected ExplicitDescription explicitDescription;
+	protected RandomVariable explicitDescription;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -249,7 +250,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ExplicitDescription getExplicitDescription() {
+	public RandomVariable getExplicitDescription() {
 		return explicitDescription;
 	}
 
@@ -258,8 +259,8 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetExplicitDescription(ExplicitDescription newExplicitDescription, NotificationChain msgs) {
-		ExplicitDescription oldExplicitDescription = explicitDescription;
+	public NotificationChain basicSetExplicitDescription(RandomVariable newExplicitDescription, NotificationChain msgs) {
+		RandomVariable oldExplicitDescription = explicitDescription;
 		explicitDescription = newExplicitDescription;
 		if (eNotificationRequired()) {
 			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ServicebehaviorPackage.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION, oldExplicitDescription, newExplicitDescription);
@@ -273,7 +274,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setExplicitDescription(ExplicitDescription newExplicitDescription) {
+	public void setExplicitDescription(RandomVariable newExplicitDescription) {
 		if (newExplicitDescription != explicitDescription) {
 			NotificationChain msgs = null;
 			if (explicitDescription != null)
@@ -385,7 +386,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 				setCharacterization((ModelVariableCharacterizationType)newValue);
 				return;
 			case ServicebehaviorPackage.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)newValue);
+				setExplicitDescription((RandomVariable)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -412,7 +413,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 				setCharacterization(CHARACTERIZATION_EDEFAULT);
 				return;
 			case ServicebehaviorPackage.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)null);
+				setExplicitDescription((RandomVariable)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResponseTimeImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResponseTimeImpl.java
index 268a51f2..54597609 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResponseTimeImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResponseTimeImpl.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.impl;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.impl.ModelVariableImpl;
@@ -67,7 +68,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 	 * @generated
 	 * @ordered
 	 */
-	protected ExplicitDescription explicitDescription;
+	protected RandomVariable explicitDescription;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -155,7 +156,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ExplicitDescription getExplicitDescription() {
+	public RandomVariable getExplicitDescription() {
 		return explicitDescription;
 	}
 
@@ -164,8 +165,8 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetExplicitDescription(ExplicitDescription newExplicitDescription, NotificationChain msgs) {
-		ExplicitDescription oldExplicitDescription = explicitDescription;
+	public NotificationChain basicSetExplicitDescription(RandomVariable newExplicitDescription, NotificationChain msgs) {
+		RandomVariable oldExplicitDescription = explicitDescription;
 		explicitDescription = newExplicitDescription;
 		if (eNotificationRequired()) {
 			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ServicebehaviorPackage.RESPONSE_TIME__EXPLICIT_DESCRIPTION, oldExplicitDescription, newExplicitDescription);
@@ -179,7 +180,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setExplicitDescription(ExplicitDescription newExplicitDescription) {
+	public void setExplicitDescription(RandomVariable newExplicitDescription) {
 		if (newExplicitDescription != explicitDescription) {
 			NotificationChain msgs = null;
 			if (explicitDescription != null)
@@ -272,7 +273,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 				setCharacterization((ModelVariableCharacterizationType)newValue);
 				return;
 			case ServicebehaviorPackage.RESPONSE_TIME__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)newValue);
+				setExplicitDescription((RandomVariable)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -293,7 +294,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 				setCharacterization(CHARACTERIZATION_EDEFAULT);
 				return;
 			case ServicebehaviorPackage.RESPONSE_TIME__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)null);
+				setExplicitDescription((RandomVariable)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ServicebehaviorPackageImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ServicebehaviorPackageImpl.java
index 411a3a6c..c6f5a731 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ServicebehaviorPackageImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ServicebehaviorPackageImpl.java
@@ -1033,7 +1033,7 @@ public class ServicebehaviorPackageImpl extends EPackageImpl implements Serviceb
 		initEReference(getResourceDemand_CoarseGrainedBehavior(), this.getCoarseGrainedBehavior(), this.getCoarseGrainedBehavior_ResourceDemand(), "coarseGrainedBehavior", null, 0, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getResourceDemand_ResourceType(), theResourcetypePackage.getResourceType(), null, "resourceType", null, 1, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getResourceDemand_Characterization(), theParameterdependenciesPackage.getModelVariableCharacterizationType(), "characterization", null, 1, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getResourceDemand_ExplicitDescription(), theFunctionsPackage.getExplicitDescription(), null, "explicitDescription", null, 0, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getResourceDemand_ExplicitDescription(), theFunctionsPackage.getRandomVariable(), null, "explicitDescription", null, 0, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(coarseGrainedBehaviorEClass, CoarseGrainedBehavior.class, "CoarseGrainedBehavior", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCoarseGrainedBehavior_DescribedEntity(), theRepositoryPackage.getInterfaceProvidingRequiringEntity(), null, "describedEntity", null, 1, 1, CoarseGrainedBehavior.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1055,7 +1055,7 @@ public class ServicebehaviorPackageImpl extends EPackageImpl implements Serviceb
 		initEClass(responseTimeEClass, ResponseTime.class, "ResponseTime", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getResponseTime_BlackBoxBehavior(), this.getBlackBoxBehavior(), this.getBlackBoxBehavior_ResponseTime(), "blackBoxBehavior", null, 1, 1, ResponseTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getResponseTime_Characterization(), theParameterdependenciesPackage.getModelVariableCharacterizationType(), "characterization", null, 1, 1, ResponseTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getResponseTime_ExplicitDescription(), theFunctionsPackage.getExplicitDescription(), null, "explicitDescription", null, 0, 1, ResponseTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getResponseTime_ExplicitDescription(), theFunctionsPackage.getRandomVariable(), null, "explicitDescription", null, 0, 1, ResponseTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		// Create resource
 		createResource(eNS_URI);
-- 
GitLab