diff --git a/org.fortiss.af3.exploration.alg/trunk/model/moea.ecore b/org.fortiss.af3.exploration.alg/trunk/model/moea.ecore
index cea982e53ccabad5e2ca2ac083d534673a31d4c4..09a56b93615a69a1a3730dc99e887822fc34ffbc 100644
--- a/org.fortiss.af3.exploration.alg/trunk/model/moea.ecore
+++ b/org.fortiss.af3.exploration.alg/trunk/model/moea.ecore
@@ -50,6 +50,15 @@
       <eStructuralFeatures xsi:type="ecore:EReference" name="componentRef" upperBound="-1"
           eType="ecore:EClass platform:/resource/org.fortiss.af3.component/model/component.ecore#//Component"/>
     </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="ReplicationBounds" eSuperTypes="platform:/resource/org.fortiss.tooling.base/model/base.ecore#//element/IAnnotatedSpecification platform:/resource/org.fortiss.tooling.base/model/base.ecore#//element/IHiddenSpecification">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="{@link IAnnotatedSpecification} specifying the minmally required and maximally allowed number of replica of the specified {@link Task}."/>
+      </eAnnotations>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="minReplication" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxReplication" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
+    </eClassifiers>
   </eSubpackages>
   <eSubpackages name="feature" nsURI="http://www.fortiss.org/af3/exploration/moea/feature"
       nsPrefix="org-fortiss-af3-exploration-moea-feature">
diff --git a/org.fortiss.af3.exploration.alg/trunk/model/moea.genmodel b/org.fortiss.af3.exploration.alg/trunk/model/moea.genmodel
index 77294a70f01b81ba936e94dccf4ad8ecd6019627..713399b3761f1bf97252b09b7bf47fa925558b4d 100644
--- a/org.fortiss.af3.exploration.alg/trunk/model/moea.genmodel
+++ b/org.fortiss.af3.exploration.alg/trunk/model/moea.genmodel
@@ -32,6 +32,10 @@
         <genFeatures notify="false" createChild="false" propertySortChoices="true"
             ecoreFeature="ecore:EReference moea.ecore#//annotation/ComponentDiverseImplRef/componentRef"/>
       </genClasses>
+      <genClasses ecoreClass="moea.ecore#//annotation/ReplicationBounds">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute moea.ecore#//annotation/ReplicationBounds/minReplication"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute moea.ecore#//annotation/ReplicationBounds/maxReplication"/>
+      </genClasses>
     </nestedGenPackages>
     <nestedGenPackages prefix="Feature" basePackage="org.fortiss.af3.exploration.moea.model"
         disposableProviderFactory="true" ecorePackage="moea.ecore#//feature">
diff --git a/org.fortiss.af3.exploration.alg/trunk/plugin.xml b/org.fortiss.af3.exploration.alg/trunk/plugin.xml
index 7e8bc43fc7de0ff7c1896afdc3cadc9927c83b48..4401646fb624cffd58eb4cb332128ab0179e1d5c 100644
--- a/org.fortiss.af3.exploration.alg/trunk/plugin.xml
+++ b/org.fortiss.af3.exploration.alg/trunk/plugin.xml
@@ -14,6 +14,12 @@
       <annotation binding="org.fortiss.af3.exploration.alg.annotation.valueprovider.ComponentImplDiversityRefValueProvider">
          <modelElementClass modelElementClass="org.fortiss.af3.component.model.Component"/>
       </annotation>
+      <annotation binding="org.fortiss.af3.timing.annotation.valueprovider.MaxReplicationBoundValueProvider">
+         <modelElementClass modelElementClass="org.fortiss.af3.task.model.Task"/>
+      </annotation>
+      <annotation binding="org.fortiss.af3.timing.annotation.valueprovider.MinReplicationBoundValueProvider">
+         <modelElementClass modelElementClass="org.fortiss.af3.task.model.Task"/>
+      </annotation>
       <annotation binding="org.fortiss.af3.timing.annotation.valueprovider.WcetValueProvider">
          <modelElementClass modelElementClass="org.fortiss.af3.deployment.model.DeploymentParameterValue"/>
       </annotation>
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/.ratings
index f2c9c9aaaee1809d25a31f53ada99d3ab33be95f..8732d84450cc26fa68181840cd8cd337f44370b5 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/.ratings
@@ -1 +1,3 @@
 ComponentImplDiversityRefValueProvider.java d2cbe7d1acefd9941a766ea7cf2ac958a4347ef6 RED
+MaxReplicationBoundValueProvider.java 697ecf4593ec7fd29992b25b782ddf20f191c975 RED
+MinReplicationBoundValueProvider.java 3e806929a039c49b83455b637bf16c079a9e9c29 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/MaxReplicationBoundValueProvider.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/MaxReplicationBoundValueProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..965e454e52d5ec88bf718c528caa12237e7ddeb6
--- /dev/null
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/MaxReplicationBoundValueProvider.java
@@ -0,0 +1,44 @@
+/*--------------------------------------------------------------------------+
+$Id$
+|                                                                          |
+| Copyright 2014 ForTISS GmbH                     |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.af3.exploration.alg.annotation.valueprovider;
+
+import org.fortiss.af3.exploration.moea.model.annotation.AnnotationPackage;
+import org.fortiss.af3.exploration.moea.model.annotation.ReplicationBounds;
+import org.fortiss.af3.task.model.Task;
+import org.fortiss.tooling.base.annotation.valueprovider.EStructuralFeatureValueProviderBase;
+
+/**
+ * Maximum number of instances that shall be generated for this {@link Task}.
+ * 
+ * @author diewald
+ */
+public class MaxReplicationBoundValueProvider
+		extends EStructuralFeatureValueProviderBase<ReplicationBounds> {
+
+	/** Constructor. */
+	public MaxReplicationBoundValueProvider() {
+		super(AnnotationPackage.Literals.REPLICATION_BOUNDS,
+				AnnotationPackage.Literals.REPLICATION_BOUNDS__MAX_REPLICATION);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public String getAnnotationName(ReplicationBounds specification) {
+		return "Max Replication";
+	}
+}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/MinReplicationBoundValueProvider.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/MinReplicationBoundValueProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..c6c1939474c0cd6b47bc89d1c068509039ef270e
--- /dev/null
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/MinReplicationBoundValueProvider.java
@@ -0,0 +1,44 @@
+/*--------------------------------------------------------------------------+
+$Id$
+|                                                                          |
+| Copyright 2014 ForTISS GmbH                     |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.af3.exploration.alg.annotation.valueprovider;
+
+import org.fortiss.af3.exploration.moea.model.annotation.AnnotationPackage;
+import org.fortiss.af3.exploration.moea.model.annotation.ReplicationBounds;
+import org.fortiss.af3.task.model.Task;
+import org.fortiss.tooling.base.annotation.valueprovider.EStructuralFeatureValueProviderBase;
+
+/**
+ * Minimum number of instances that shall be generated for this {@link Task}.
+ * 
+ * @author diewald
+ */
+public class MinReplicationBoundValueProvider
+		extends EStructuralFeatureValueProviderBase<ReplicationBounds> {
+
+	/** Constructor. */
+	public MinReplicationBoundValueProvider() {
+		super(AnnotationPackage.Literals.REPLICATION_BOUNDS,
+				AnnotationPackage.Literals.REPLICATION_BOUNDS__MIN_REPLICATION);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public String getAnnotationName(ReplicationBounds specification) {
+		return "Min Replication";
+	}
+}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/backend/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/backend/.ratings
index 79e0269296450851936a9785c0822d67bddc1b84..7997c2ae4b0347225485224440a03937d3d9c88d 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/backend/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/backend/.ratings
@@ -1 +1 @@
-Opt4JDseBackend.java 02ad3770ed32b70bd97cd6e5407c5b5988d6347c RED
+Opt4JDseBackend.java 2d4b0c96fcda02bf428fb5a6c02a48bbef74374b RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/backend/Opt4JDseBackend.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/backend/Opt4JDseBackend.java
index eb58def5a85611cd109024c3e52c78439cb2c6b8..31e8c7b3dd27bcc037d66e98866c03a1df310664 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/backend/Opt4JDseBackend.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/backend/Opt4JDseBackend.java
@@ -89,7 +89,7 @@ public class Opt4JDseBackend implements IDseBackend {
 			Collection<IExplorationFeature> explorationModules, IProgressMonitor monitor,
 			int timeoutMS) throws Exception {
 		ExplorationSolutionSet explorationSolutionSet;
-		SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+		SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 		// TODO: Find a cleaner way to extract the model context.
 		TaskArchitecture taskArchitecture =
 				getArchModel(superSets, TaskArchitecture.class, Task.class);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/.ratings
index 822fb461d46018a9a1c034970d56eba4f8c1582e..14e19ce8e9d28acfdfc4197b18bd089da87491f9 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/.ratings
@@ -1,6 +1,6 @@
 CompositeExplorationSolution.java 528283a3dd57500539b2e11dd3d3eb35512de9b8 RED
-DSEFactory.java d8163c2b1df1b9cc690367140096e4b29d4dd2ae RED
-Explorer.java c4a8aa9673bb84df89971775c4b0ea1697e725e8 RED
-ImplicitExplorationTargetFactory.java 897d89b5d5beb580da9007290acc835ff15e1e7c RED
+DSEFactory.java 069d001586ce88cb320537b1411b1a3b8649003b RED
+Explorer.java c857d21f603d09447953d3e4929aedb76b1b1bfd RED
+ImplicitExplorationTargetFactory.java 0b10dc4e8385bbdee0217dac783203080eb723f0 RED
 SolutionQuantification.java efd31f192c3adbf1a4434452a19eb836a17390e2 RED
-TaskMappingFactory.java 87cfb7ec5e24acb167fa4ffd7210b093fa5b5b4d RED
+TaskMappingFactory.java eb8e4a8b70f9465b849dd5700f603f55aa26363e RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/DSEFactory.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/DSEFactory.java
index 8c29476af8aa2fabcb59b4e311d29a1ff75e9638..5400412739026bd3fe813ced9551f386779600aa 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/DSEFactory.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/DSEFactory.java
@@ -107,7 +107,8 @@ public class DSEFactory {
 	@SuppressWarnings("unchecked")
 	public <C, S extends InstantiatedTaskMappingEntry, T extends InstantiatedTaskMappingEncoding<S>>
 			void createSubProblems(ArchitectureExplorationProblemModule archExpProblemModule,
-					DseSpecification dse, SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter,
+					DseSpecification dse,
+					SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DecoderDependencyGraph execDepGraph) throws Exception {
 		// Java-limitation: it is not possible to pass the generic to the static methods.
 		TaskMappingFactory<S, T> tmFactory =
@@ -147,7 +148,7 @@ public class DSEFactory {
 	@SuppressWarnings("unchecked")
 	private <C, T extends SafetyFunctionArchEncoding<C>> void createSafetyFunctionArchProblem(
 			ArchitectureExplorationProblemModule archExpProblemModule,
-			SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) throws Exception {
 		// These suppress warnings are required since type erasure in Java does not allow to pass
 		// XY<Z>.class.
@@ -195,7 +196,7 @@ public class DSEFactory {
 	@SuppressWarnings("unchecked")
 	private void createPartitionMappingProblem(
 			ArchitectureExplorationProblemModule archExpProblemModule, DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) throws CycleFoundException {
 		Class<PartitionMappingEncoding> pmEnodingClass = PartitionMappingEncoding.class;
 		PartitionMappingCreator pmCreator =
@@ -219,7 +220,7 @@ public class DSEFactory {
 	@SuppressWarnings("unchecked")
 	private void createPlatformCommunicationGraphProblem(
 			ArchitectureExplorationProblemModule archExpProblemModule,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) throws CycleFoundException {
 		Class<PlatformCommunicationGraphEncoding> pmEnodingClass =
 				PlatformCommunicationGraphEncoding.class;
@@ -256,7 +257,7 @@ public class DSEFactory {
 	private <S extends InstantiatedTaskMappingEntry, T extends InstantiatedTaskMappingEncoding<S>>
 			void createAbstractTaskMappingProblem(TaskMappingFactory<S, T> tmFactory,
 					ArchitectureExplorationProblemModule archExpProblemModule, DseSpecification dse,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DecoderDependencyGraph execDepGraph) throws Exception {
 		Class<AbstractTaskMappingEncoding> tmEnodingClass = AbstractTaskMappingEncoding.class;
 		AbstractTaskMappingCreator tmCreator =
@@ -299,7 +300,7 @@ public class DSEFactory {
 	private <S extends InstantiatedTaskMappingEntry, T extends InstantiatedTaskMappingEncoding<S>>
 			void createTaskMappingInstantiationProblem(TaskMappingFactory<S, T> tmFactory,
 					ArchitectureExplorationProblemModule archExpProblemModule, DseSpecification dse,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DecoderDependencyGraph execDepGraph) throws Exception {
 		// These suppress warnings are required since type erasure in Java does not allow to pass
 		// XY<Z>.class.
@@ -329,7 +330,7 @@ public class DSEFactory {
 	 * calls the creators of the genotypes composing the architecture exploration problem.
 	 */
 	public ArchitectureExplorationCreator createArchitectureExplorationCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new ArchitectureExplorationCreator(dse, systemModelAdapter);
 	}
 
@@ -366,7 +367,7 @@ public class DSEFactory {
 	 * It delegates the subproblems to sub decoders, e.g. a decoder for the task mapping problem.
 	 */
 	public ArchitectureDecoder createArchitectureDecoder(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execdepGraph) {
 		return new ArchitectureDecoder(systemModelAdapter, execdepGraph);
 	}
@@ -377,8 +378,8 @@ public class DSEFactory {
 	 * It delegates the evaluation of the overall problem to sub-decoders, e.g. an evaluator of the
 	 * power consumption of a TT-schedule.
 	 */
-	public ArchitectureEvaluator
-			createArchitectureEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public ArchitectureEvaluator createArchitectureEvaluator(
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new ArchitectureEvaluator(systemModelAdapter);
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/Explorer.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/Explorer.java
index 446783060828d4c06c8caaaf3a5eafe076b50895..806837be7ba3b946ffd58948b73d8e589618844b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/Explorer.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/Explorer.java
@@ -55,7 +55,7 @@ public class Explorer {
 	 * @throws Exception
 	 */
 	public CompositeExplorationSolution<?> explore(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Set<Class<? extends IExplorationEncoding>> requestedSolutions,
 			boolean generateImplicitConstraints) throws Exception {
 		return explore(dse, systemModelAdapter, requestedSolutions, null,
@@ -67,7 +67,7 @@ public class Explorer {
 	 * system model (represented by a {@link SystemModelAdapter}).
 	 */
 	public CompositeExplorationSolution<?> explore(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Set<Class<? extends IExplorationEncoding>> requestedSolutions,
 			IProgressMonitor progressMonitor, boolean generateImplicitConstraints)
 			throws Exception {
@@ -191,8 +191,8 @@ public class Explorer {
 	// TODO: Port validation of system model to model validation framework that creates markers
 	// in the problem view
 	/** Validation of system model */
-	private void validateSystemModelAdapter(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
-			throws Exception {
+	private void validateSystemModelAdapter(
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 
 		if(systemModelAdapter == null) {
 			createSystemModelAdapterConfigurationException(
@@ -231,7 +231,7 @@ public class Explorer {
 	private Opt4JExplorerBackend createExplorerBackend(DseSpecification dse,
 			ExplorationSpecification expSpec,
 			Map<ExplorationTarget<?>, ExplorationTarget<?>> targetAssocMap,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Set<Class<? extends IExplorationEncoding>> requestedSolutions,
 			IProgressMonitor progressMonitor) throws Exception {
 		if(dse.getOptimizer() instanceof EAOptimizer) {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/ImplicitExplorationTargetFactory.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/ImplicitExplorationTargetFactory.java
index 9a8537ac0f810e5bf9677a4f2f0e91541f17a60d..6e2162ac8b739af9627cd8d1872b20d2103b884f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/ImplicitExplorationTargetFactory.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/ImplicitExplorationTargetFactory.java
@@ -69,7 +69,7 @@ public class ImplicitExplorationTargetFactory {
 	 *             if any of the constraint generators fails.
 	 */
 	public Collection<ExplorationConstraint<?>> createImplicitExplorationTargets(
-			DseSpecification dse, SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
+			DseSpecification dse, SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
 			throws Exception {
 		Collection<ExplorationConstraint<?>> constraints = new ArrayList<>();
 		constraints.addAll(createPeriodConstraints(systemModelAdapter));
@@ -93,7 +93,7 @@ public class ImplicitExplorationTargetFactory {
 	 *             if the generation of any {@link PeriodConstraint} fails.
 	 */
 	private static Collection<ExplorationConstraint<?>>
-			createPeriodConstraints(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
+			createPeriodConstraints(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
 					throws ConstraintGenerationException {
 		Collection<ExplorationConstraint<?>> constraints = new ArrayList<>();
 		for(TaskGraph tg : systemModelAdapter.getTaskGraphs()) {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/TaskMappingFactory.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/TaskMappingFactory.java
index 31c2532d29ff3cd0e6c37a33e70a76b13869e129..cdb34c19f1b7888ccbcfea187a4a5338c7852e69 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/TaskMappingFactory.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/TaskMappingFactory.java
@@ -103,7 +103,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return instance of an {@link AbstractTaskMappingCreator}.
 	 */
 	public AbstractTaskMappingCreator createAbstractTaskMappingCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) {
 		return new AbstractTaskMappingCreator(dse, systemModelAdapter, execDepGraph);
 	}
@@ -121,7 +121,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 */
 	// TODO: document execDepGraph param.
 	public TaskMappingCreator<S, T> createTaskMappingCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
@@ -140,7 +140,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 */
 	// TODO: update doc
 	public TaskMappingCreator<S, T> createTaskMappingCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			AbstractTaskMappingEncoding abstractEnc) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
@@ -156,7 +156,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 */
 	public MutateAllocation<? extends TaskMappingEntry<?, ?>, ? extends TaskMappingEncoding<?, ?>>
 			createMutateAllocationOperator(
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
 
@@ -168,7 +168,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return Mutation operator that decreases the redundant instances of tasks.
 	 */
 	public MutateRedundancyDecrement<?, ?> createMutateRedundancyDecrementOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
 
@@ -180,7 +180,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return Mutation operator that increases the redundant instances of tasks.
 	 */
 	public MutateRedundancyIncrement<?, ?> createMutateRedundancyIncrementOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
 
@@ -195,7 +195,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 *         another.
 	 */
 	public CrossoverRandManyAllocation<?, ?> createCrossoverRandManyAllocationOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
 
@@ -209,7 +209,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return Crossover operator that swaps a single allocation from one resource with another.
 	 */
 	public CrossoverSingleAllocation<?, ?> createCrossoverSingleAllocationOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
 
@@ -228,7 +228,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return instance of an {@link AbstractTaskMappingDecoder}.
 	 */
 	public AbstractTaskMappingDecoder<?, ?> createAbstractTaskMappingDecoder(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DseSpecification explorationDefinition) {
 		throw new UnsupportedOperationException(
 				"The Decoder to instantiate an \"abstract\" Task Mapping has not been defined for current Execution Model.");
@@ -245,7 +245,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	@SuppressWarnings({"rawtypes", "unchecked"})
 	public InstantiatedTaskMappingDecoder<S, InstantiatedTaskGraphEncoding>
 			createInstantiatedTaskMappingDecoder(
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new InstantiatedTaskMappingDecoder(systemModelAdapter);
 	}
 
@@ -257,7 +257,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return An instance on an {@link InstantiatedTaskMappingDecoderAcyclic}.
 	 */
 	public InstantiatedTaskMappingDecoderAcyclic<S, ?> createAbstractToAcyclicTaskGraphDecoder(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		throw new UnsupportedOperationException(
 				"The Decoder to instantiate an \"abstract\" and acyclic Task Graph has not been defined for current Execution Model.");
 	}
@@ -270,7 +270,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return An instance of a {@link MessageDecoder}.
 	 */
 	public MessageDecoder<S, T>
-			createMessageDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			createMessageDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		throw new UnsupportedOperationException(
 				"The Decoder which generates messages from task mappings has not been defined for current Execution Model.");
 	}
@@ -287,7 +287,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return instance of a {@link StrictTTDecoder}
 	 */
 	public StrictTTDecoder<S, T> createStrictTTDecoder(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DseSpecification explorationDefinition) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
@@ -298,7 +298,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * instantiations of an {@link ITaskAdapter} for a given platform.
 	 */
 	public IMessageRouter
-			createShortestPathRouter(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			createShortestPathRouter(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new ShortestPathRouter(systemModelAdapter);
 	}
 
@@ -313,7 +313,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 * @return instance of the EDF schedule decoder.
 	 */
 	public EDFSchedulerBase<?, ?> createEDFScheduler(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationSpecification expSpec) {
 		throw new UnsupportedOperationException(SCHED_NOT_IMPL_MSG);
 	}
@@ -328,7 +328,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	@SuppressWarnings("unchecked")
 	public <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, RT, ET>
 			createEvaluatorWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		ExplorationEvaluationService<?> evalService = ExplorationEvaluationService.getInstance();
 		EvaluatorWrapper<?, RT, ET> evaluatorWrapper = (EvaluatorWrapper<?, RT, ET>)evalService
 				.createEvalWrapperFor(systemModelAdapter, goal);
@@ -389,7 +389,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	protected <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, Double, FailureMinObjective>
 			createFailureMinObjectiveWrapper(ExplorationTarget<?> optGoal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		throw new UnsupportedOperationException(GOAL_NOT_IMPL_MSG);
 	}
 
@@ -409,7 +409,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 */
 	protected <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, Double, DeadlineConstraint>
 			createDeadlineConstraintWrapper(ExplorationTarget<?> optGoal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		throw new UnsupportedOperationException(GOAL_NOT_IMPL_MSG);
 	}
 
@@ -429,7 +429,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	 */
 	protected <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, Double, PeriodConstraint>
 			createPeriodConstraintWrapper(ExplorationTarget<?> optGoal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		throw new UnsupportedOperationException(GOAL_NOT_IMPL_MSG);
 	}
 
@@ -450,7 +450,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	protected <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, Boolean, ComponentMultiAllocationConstraint>
 			createComponentMultiAllocationConstraintWrapper(ExplorationTarget<?> optGoal,
-					int priority, SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
+					int priority, SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
 					throws Exception {
 		throw new UnsupportedOperationException(GOAL_NOT_IMPL_MSG);
 	}
@@ -472,7 +472,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	protected <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, Boolean, ComponentMultiDislocationConstraint>
 			createComponentMultiDislocationConstraintWrapper(ExplorationTarget<?> optGoal,
-					int priority, SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
+					int priority, SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
 					throws Exception {
 		throw new UnsupportedOperationException(GOAL_NOT_IMPL_MSG);
 	}
@@ -494,7 +494,7 @@ public abstract class TaskMappingFactory<S extends InstantiatedTaskMappingEntry,
 	protected <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, SIL, SafetyIntegrityLevelConstraint>
 			createSafetyIntegrityLevelConstraintWrapper(ExplorationTarget<?> optGoal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		throw new UnsupportedOperationException(GOAL_NOT_IMPL_MSG);
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/.ratings
index c17e596b0b1743545fe44dfa5588ee6203b2f038..52edec4a34019085d244be317ae92f12e1292c01 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/.ratings
@@ -1,3 +1,3 @@
-ExplorerBackendBase.java 2e86b95490d6b278ad1c4e9a777b04a5a0552b5d RED
+ExplorerBackendBase.java ed85fa4a1638a3e50df5dc2f9d8bfc09f158452c RED
 IExplorerBackend.java 92b54d5179ebb9fe969664a215e1fb701ed98d15 RED
 SolutionCandidateBase.java d4b54cf5ec00fc62028d75c44068c99261af3a3c RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/ExplorerBackendBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/ExplorerBackendBase.java
index 2eebc168beff60f55b798f69c51498ca893dcdda..704b078e59c1900a17cefcb6fd3a8a12ac47c6e1 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/ExplorerBackendBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/ExplorerBackendBase.java
@@ -60,7 +60,7 @@ public abstract class ExplorerBackendBase<O extends IOptimizer> implements IExpl
 	protected Map<ExplorationTarget<?>, ExplorationTarget<?>> targetAssocMap;
 
 	/** Representation of system model (=input) that is evaluated during this DSE run */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Set of requested {@link ComposablePhenotype}s that form the solution set. */
 	protected Set<Class<? extends IExplorationEncoding>> requestedSolutions;
@@ -83,7 +83,7 @@ public abstract class ExplorerBackendBase<O extends IOptimizer> implements IExpl
 	 */
 	protected ExplorerBackendBase(DseSpecification dse, ExplorationSpecification expSpec,
 			Map<ExplorationTarget<?>, ExplorationTarget<?>> targetAssocMap,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Set<Class<? extends IExplorationEncoding>> requestedSolutions,
 			IProgressMonitor progressMonitor) {
 		this.dse = dse;
@@ -97,8 +97,8 @@ public abstract class ExplorerBackendBase<O extends IOptimizer> implements IExpl
 		// instantiation of the Evaluators by the goals. Those are generified, and hence, the
 		// instance must exist already.
 		try {
-			DSEFactory.getInstance().createTaskMappingFactory(
-					dse.getParameters().getExecutionModel());
+			DSEFactory.getInstance()
+					.createTaskMappingFactory(dse.getParameters().getExecutionModel());
 		} catch(UnsupportedDataTypeException e) {
 			// See todo above
 			e.printStackTrace();
@@ -168,8 +168,10 @@ public abstract class ExplorerBackendBase<O extends IOptimizer> implements IExpl
 			Collection<EvaluatorWrapper<?, ?, ?>> evalWrappers) {
 		EvaluatorWrapper<?, ?, ?> evalWrapper = getEvaluatorOf(target, evalWrappers);
 
-		assert (evalWrapper.getEvaluator() instanceof IConstraintEvaluator) : "The evaluator for the exploration constraint " +
-				target.getName() + " has an evaluator which is not an IConstraintEvaluator.";
+		assert (evalWrapper
+				.getEvaluator() instanceof IConstraintEvaluator) : "The evaluator for the exploration constraint " +
+						target.getName() +
+						" has an evaluator which is not an IConstraintEvaluator.";
 
 		@SuppressWarnings("unchecked") Class<M> phenoClass =
 				(Class<M>)evalWrapper.getTargetPhenotypeType();
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/.ratings
index 332d72132a0e20f5625009e38f89ab924169bf8c..0ceea9394dcfa6d70ec1fb909a51ee87d4fa6ab3 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/.ratings
@@ -1,3 +1,3 @@
 Opt4JExplorationSolutionSet.java fd1ca946198990604ea7a521e9d0335bef4ad8e1 RED
-Opt4JExplorerBackend.java 1cbe89233576aa55d6705b92fc31934a5f4eb584 RED
+Opt4JExplorerBackend.java 387e63ad7ae0f98836c2f6cfa5a89f63966619c0 RED
 Opt4JSingleExplorationSolution.java 5b9e6ccdb887605faaa4d2a8b17b8fa1350fbafd RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/Opt4JExplorerBackend.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/Opt4JExplorerBackend.java
index f934f458f9f1a9bcebaf0c6e94d0053ea9a7d419..3073d306a2437fac1e138843edf3871cf5e673f5 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/Opt4JExplorerBackend.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/Opt4JExplorerBackend.java
@@ -100,7 +100,7 @@ public class Opt4JExplorerBackend extends ExplorerBackendBase<EAOptimizer> {
 	 */
 	public Opt4JExplorerBackend(DseSpecification dse, ExplorationSpecification expSpec,
 			Map<ExplorationTarget<?>, ExplorationTarget<?>> targetAssocMap,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Set<Class<? extends IExplorationEncoding>> requestedSolutions,
 			IProgressMonitor progressMonitor) throws Exception {
 		// Optimizer independent configuration
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/.ratings
index 996587ed9ee281b18d6fedd5e1b5cb9362645465..b88f42483b86ce2365e2304303afbea1ae7eaf34 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/.ratings
@@ -1 +1 @@
-ArchitectureExplorationCreator.java b549845e58fe36bc77e08e7585343d079b802b24 RED
+ArchitectureExplorationCreator.java 5bbd448f433da0e455e026f9452b7bccf67e4905 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/ArchitectureExplorationCreator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/ArchitectureExplorationCreator.java
index f02e0545d74aaf88372ad5ab7be8f3fe5e3f5bf0..d4bf0d59597b6d849ab55da9c838643195c968d3 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/ArchitectureExplorationCreator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/ArchitectureExplorationCreator.java
@@ -31,8 +31,8 @@ import com.google.inject.Inject;
  * 
  * @author diewald
  */
-public class ArchitectureExplorationCreator extends
-		CompositeCreatorBase<ArchitectureExplorationEncoding> {
+public class ArchitectureExplorationCreator
+		extends CompositeCreatorBase<ArchitectureExplorationEncoding> {
 
 	/** DSE specification */
 	protected DseSpecification dse;
@@ -40,7 +40,7 @@ public class ArchitectureExplorationCreator extends
 	/** Constructor. */
 	@Inject
 	public ArchitectureExplorationCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 		this.dse = dse;
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/.ratings
index 372551f4cf55a5f447a4959471eae289169ed15a..ec4315b53f38c11d946adb7b377bdb6dacca5d0e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/.ratings
@@ -1 +1 @@
-PartitionMappingCreator.java dd76847eaeb119609c58ea7412cd9ae4330d7a7e RED
+PartitionMappingCreator.java c5536fccefbe437360efe9fe8a60409991192243 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/PartitionMappingCreator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/PartitionMappingCreator.java
index 4635030612f9bead07f75917350464588be01d21..7849120558e41c2b3ce76c6a6d82ebf126d1634a 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/PartitionMappingCreator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/PartitionMappingCreator.java
@@ -35,7 +35,7 @@ import org.opt4j.core.problem.Creator;
 public class PartitionMappingCreator extends ComposableCreatorBase<PartitionMappingEncoding> {
 
 	/** Constructor. */
-	public PartitionMappingCreator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public PartitionMappingCreator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph depGraph) {
 		super(systemModelAdapter, depGraph);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings
index 81bd771cfcdb16902b25dfdcd63e5334eeff8666..98d16b028d0e71aae562862f2cd15eaa6635f490 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings
@@ -1 +1 @@
-PlatformCommunicationGraphCreator.java dca11304889fd796f721c4035940290a602659fb RED
+PlatformCommunicationGraphCreator.java 072bb6445dc182931ef28e47dbaad19ae87cc3d6 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/PlatformCommunicationGraphCreator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/PlatformCommunicationGraphCreator.java
index 7178369b995018a2b4f431577fd07c3f00d3ef15..9427662c76976c40febfb02b1ec83b4da6417d4b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/PlatformCommunicationGraphCreator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/PlatformCommunicationGraphCreator.java
@@ -32,7 +32,7 @@ public class PlatformCommunicationGraphCreator
 		extends ComposableCreatorBase<PlatformCommunicationGraphEncoding> {
 	/** Constructor. */
 	public PlatformCommunicationGraphCreator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph depGraph) {
 		super(systemModelAdapter, depGraph);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/.ratings
index f218e2be02612f87ea97dfa3e69f7fc4d6fbc54b..20c6ada402194e67d871eb2aaba16673f5e7c659 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/.ratings
@@ -1 +1 @@
-SafetyFunctionArchCreator.java 8727cb4ecce45135ad5f6815d2dd0cb4c700b1ce RED
+SafetyFunctionArchCreator.java 26770ef069fd786ecf579cbb761a1071073c975d RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/SafetyFunctionArchCreator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/SafetyFunctionArchCreator.java
index ef4f39b8627fb0269d32a3c1116cfe06d9eff3d0..eea946000bedef55ccbe394d6efb59dd8327d22f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/SafetyFunctionArchCreator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/SafetyFunctionArchCreator.java
@@ -36,7 +36,7 @@ public class SafetyFunctionArchCreator<C>
 
 	/** Constructor. */
 	@Inject
-	public SafetyFunctionArchCreator(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter,
+	public SafetyFunctionArchCreator(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) {
 		super(systemModelAdapter, execDepGraph);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/.ratings
index 3de3e3fc2ec8f51f5a3d2c2f10e61496f3814a4e..049b045ec5a5b679a316f32fa856fd9508249624 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/.ratings
@@ -1,4 +1,4 @@
-AbstractTaskMappingCreator.java 64a04dad3e653ee9b5bd91dfa842e2043eda3e94 RED
-FailSilentTaskMappingCreator.java 6aa1828a87ab6bdaa8077101e004fe4ddddd8a7f RED
-FaultDetectionVotingTaskMappingCreator.java 2cc96c6197eaafa803b9794246ff40346802342a RED
-TaskMappingCreator.java d3c381308b8c8cafda84feed0ea443f62ea563d3 RED
+AbstractTaskMappingCreator.java 1e4473c63abb2aa49b0d85a96ad0de025f42bebb RED
+FailSilentTaskMappingCreator.java ec7daa0d1bd3c42eedc69a5d955269e7ff3798d0 RED
+FaultDetectionVotingTaskMappingCreator.java 34efb7f7574f833aac75c8f4f80d4d5da0dd9c37 RED
+TaskMappingCreator.java e5aa46677ddc797f92847dfe3179a22424a780f8 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/AbstractTaskMappingCreator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/AbstractTaskMappingCreator.java
index 4f5f45b2016d9c04931f1c2d0ee0887dbabc14bc..f8bcc0e592e19886759962b980f25484c1b19c69 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/AbstractTaskMappingCreator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/AbstractTaskMappingCreator.java
@@ -45,7 +45,7 @@ public class AbstractTaskMappingCreator
 	/** Constructor */
 	@Inject
 	public AbstractTaskMappingCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) {
 		super(dse, systemModelAdapter, execDepGraph);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/FailSilentTaskMappingCreator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/FailSilentTaskMappingCreator.java
index aff9d2125ef003cf90f6e209030c76e283890c1b..e26e68115bd4c4fc3ad2c456a577156820977b5f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/FailSilentTaskMappingCreator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/FailSilentTaskMappingCreator.java
@@ -45,7 +45,7 @@ public class FailSilentTaskMappingCreator
 	 */
 	@Inject
 	public FailSilentTaskMappingCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) {
 		super(dse, systemModelAdapter, execDepGraph);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/FaultDetectionVotingTaskMappingCreator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/FaultDetectionVotingTaskMappingCreator.java
index 2181f0737dd920b27bd717b8c002d276c3ccb1a0..c1991126ae6537d97f53ac62b2eefcab9c7e1c59 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/FaultDetectionVotingTaskMappingCreator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/FaultDetectionVotingTaskMappingCreator.java
@@ -45,7 +45,7 @@ public class FaultDetectionVotingTaskMappingCreator extends
 	 */
 	@Inject
 	public FaultDetectionVotingTaskMappingCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) {
 		super(dse, systemModelAdapter, execDepGraph);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/TaskMappingCreator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/TaskMappingCreator.java
index 9eaa1507df094af769575bb8876bc82f5986a18c..576da44e2c6d60430d2a0ecaa2ac0e26800f9b64 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/TaskMappingCreator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/TaskMappingCreator.java
@@ -43,7 +43,7 @@ public abstract class TaskMappingCreator<S extends TaskMappingEntry<ITaskAdapter
 	/** Constructor. */
 	@Inject
 	public TaskMappingCreator(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execDepGraph) {
 		super(systemModelAdapter, execDepGraph);
 		this.dse = dse;
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
index 34061c3613d523b667df82075b32b170431beec6..069573fa6a1bf56259a5dc15a353071b5637dd09 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
@@ -1,3 +1,3 @@
 Partition.java b870fdd306818d8195b662daee9546feebb28e18 RED
-PartitionMappingEncoding.java 09dd8deba0a922ba9f5bdf8138676e945095edfc RED
+PartitionMappingEncoding.java 345a25f0324c07a8e4c5b83d2cabeae2ba7c9608 RED
 PartitionMappingEntry.java 2f8f082e6bcd49dbe2f5ba88724850b54b20d637 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
index 9968729f9f35c58850e1f8022ad3d7f7e6f0c4b3..d298d291d8ae741714ee1bc08c446cd6e7a868be 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
@@ -52,7 +52,7 @@ public class PartitionMappingEncoding extends
 
 	/** Constructor. */
 	// TODO: The strategy can be replaced by lambdas for a cleaner design.
-	public PartitionMappingEncoding(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public PartitionMappingEncoding(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			CREATE_STARTEGY strategy) {
 		// Number of tasks to deploy
 		// TODO: This does not consider task replicas yet.
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
index c88f38ee4bbe21a61ec12b44255e1dcde4d548b7..1a3629389d11d4d12156a1c2877fa769c7e62773 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
@@ -1 +1 @@
-PlatformCommunicationGraphEncoding.java cf2aba24c9e569e37996e57b2df017f83a3e28db RED
+PlatformCommunicationGraphEncoding.java 5cd55e1eb23fdb27389dd95ef7edaf16bb4bc01e RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
index c28fd928e1bbee928f97e1761893aa0b99eb3cbe..2aa5bb16ea543fbc22af665bdcada91c71d921e8 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
@@ -18,8 +18,8 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.platform;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.PartitionMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.graph.display.JGraphTVisualizer;
 import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
@@ -38,14 +38,14 @@ public class PlatformCommunicationGraphEncoding implements IExplorationEncoding,
 		ComposablePhenotype<PartitionMappingEncoding>, Cloneable {
 
 	/** Representation of input system model */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** The graph representing the communication structure of a platform. */
 	protected DirectedGraph<IResourceAdapter<?>, DefaultEdge> platformGraph;
 
 	/** Constructor for the initial version of the Graph w/o available Partitions. */
 	public PlatformCommunicationGraphEncoding(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DirectedGraph<IResourceAdapter<?>, DefaultEdge> platformGraph) {
 		this.systemModelAdapter = systemModelAdapter;
 		this.platformGraph = platformGraph;
@@ -53,7 +53,7 @@ public class PlatformCommunicationGraphEncoding implements IExplorationEncoding,
 
 	/** Copy constructor. */
 	protected PlatformCommunicationGraphEncoding(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
index 0cd302f7acfba5716103ef0aa3cc9e9972f8f22e..4d759b43f02c1143ac95296fd93c785818de2b44 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
@@ -1,5 +1,5 @@
-AbstractTaskGraphEncoding.java 79c2482106c0fa2895dc5ca2760bc68e8199ea89 RED
-InstantiatedAcyclicTaskGraphEncoding.java 5446f693086aaa2a0b39e1c8180af186a7c55809 RED
-InstantiatedTaskGraphEncoding.java 1ffb6b33efb6673d51a8ef99822caf42f43b2782 RED
-SafeTaskGraphEncoding.java 49f4c06f6db45e7751794bcc7e3892570c8daa29 RED
-TaskGraphEncoding.java e9d40278aca607bd27a817c4859b493ef4c32ce3 RED
+AbstractTaskGraphEncoding.java 5978cc6ab893cbd36e337da149b23f728885a923 RED
+InstantiatedAcyclicTaskGraphEncoding.java d350697fc6ce436f0eb7466be1462b922f35f1ef RED
+InstantiatedTaskGraphEncoding.java 9ac64514fb83bbc4f0258b3fc40ac40bd76a5f83 RED
+SafeTaskGraphEncoding.java 2df896a20d2f1759b07de59385df00440a20e8a2 RED
+TaskGraphEncoding.java 2b90454bea36e75301633fdeec83cf9a874d7269 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
index 829fd8fbfd1f63d84462299b6d4955df29eade77..fd50f6bdb7a8f889bad359a52524b24d6d5ce7ee 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
@@ -31,7 +31,7 @@ public class AbstractTaskGraphEncoding<G extends ComposableGenotype, C>
 		extends TaskGraphEncoding<G, C, DefaultTaskGraph<?>> {
 
 	/** Constructor. See {@link TaskGraphEncoding#TaskGraphEncoding(SystemModelAdapter)}. */
-	public AbstractTaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public AbstractTaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
index 652b4c5c0318396a5747377aab9905fdf31e0395..67998b5b51bca104adcc270a0a0e0edaddb04af7 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
@@ -39,14 +39,14 @@ public class InstantiatedAcyclicTaskGraphEncoding<T extends InstantiatedTaskMapp
 	 * Constructor. See {@link TaskGraphEncoding#TaskGraphEncoding(SystemModelAdapter, Collection)}.
 	 */
 	public InstantiatedAcyclicTaskGraphEncoding(
-			SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Collection<DefaultTaskGraph<?>> taskGraphs) {
 		super(systemModelAdapter, AcyclicTaskGraph.transformToAcyclicGraphs(taskGraphs));
 	}
 
 	/** Constructor. See {@link TaskGraphEncoding#TaskGraphEncoding(SystemModelAdapter)}. */
 	public InstantiatedAcyclicTaskGraphEncoding(
-			SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
index 7f7d6635d64fb0ba264d6ae0029708242ca74473..cf1f8f170d773719dc18232745d6ae0e54a5d745 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
@@ -35,13 +35,14 @@ public class InstantiatedTaskGraphEncoding<T extends InstantiatedTaskMappingEntr
 	/**
 	 * Constructor. See {@link TaskGraphEncoding#TaskGraphEncoding(SystemModelAdapter, Collection)}.
 	 */
-	public InstantiatedTaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter,
+	public InstantiatedTaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Collection<DefaultTaskGraph<?>> taskGraphs) {
 		super(systemModelAdapter, taskGraphs);
 	}
 
 	/** Constructor. See {@link TaskGraphEncoding#TaskGraphEncoding(SystemModelAdapter)}. */
-	public InstantiatedTaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public InstantiatedTaskGraphEncoding(
+			SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
index 388e7b5531fe2fb16827756130a2d25f6c41ab18..5a2726db0a69d64b6535ed461bc7165989a107f1 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
@@ -26,11 +26,11 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
  * 
  * @author diewald
  */
-public class SafeTaskGraphEncoding<C> extends
-		AbstractTaskGraphEncoding<SafetyFunctionArchEncoding<C>, C> {
+public class SafeTaskGraphEncoding<C>
+		extends AbstractTaskGraphEncoding<SafetyFunctionArchEncoding<C>, C> {
 
 	/** Constructor. See {@link TaskGraphEncoding#TaskGraphEncoding(SystemModelAdapter)}. */
-	public SafeTaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public SafeTaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/TaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/TaskGraphEncoding.java
index a74981b4f016418c737599c0eb90daaa15a2acd7..3890f90dce7151bda197f44cd7eb60a842fc62aa 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/TaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/TaskGraphEncoding.java
@@ -24,10 +24,10 @@ import java.util.stream.Collectors;
 import org.eclipse.emf.ecore.EObject;
 import org.fortiss.af3.component.model.Component;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.ChannelAdapterWeightedEdge;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.SignalAdapterWeightedEdge;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
 import org.fortiss.af3.platform.model.ExecutionUnit;
@@ -43,7 +43,7 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 		implements IExplorationEncoding, ComposablePhenotype<G>, Cloneable {
 
 	/** References the {@link SystemModelAdapter} which adapts the input models. */
-	protected SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** {@link TaskGraph} that represents the deployable components and their signals. */
 	protected Collection<T> taskGraphs;
@@ -65,7 +65,7 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 	 * {@link ITaskAdapter}s as they are extracted from the input models.
 	 */
 	@SuppressWarnings("unchecked")
-	public TaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public TaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 
 		taskGraphs = (Collection<T>)systemModelAdapter.getTaskGraphs().stream().map(tg -> tg.copy())
@@ -79,7 +79,7 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 	 * Constructor that initializes {@code this} encoding with the collection of
 	 * {@link ITaskAdapter}s as they are extracted from the input models.
 	 */
-	public TaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter,
+	public TaskGraphEncoding(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Collection<T> taskGraphs) {
 		this(systemModelAdapter);
 		this.taskGraphs = taskGraphs;
@@ -159,17 +159,17 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 		assert (taskGraph != null);
 
 		TaskGraph systemTG = systemModelAdapter.getTaskGraph(task);
-		Collection<ChannelAdapterWeightedEdge> incomingEdges =
+		Collection<SignalAdapterWeightedEdge> incomingEdges =
 				systemTG.getGraph().incomingEdgesOf(task);
-		Collection<ChannelAdapterWeightedEdge> outgoingEdges =
+		Collection<SignalAdapterWeightedEdge> outgoingEdges =
 				systemTG.getGraph().outgoingEdgesOf(task);
 
-		for(ChannelAdapterWeightedEdge edge : incomingEdges) {
+		for(SignalAdapterWeightedEdge edge : incomingEdges) {
 			ITaskAdapter<?> source = systemTG.getGraph().getEdgeSource(edge);
 			taskGraph.getGraph().addEdge(source, task, edge);
 		}
 
-		for(ChannelAdapterWeightedEdge edge : outgoingEdges) {
+		for(SignalAdapterWeightedEdge edge : outgoingEdges) {
 			ITaskAdapter<?> target = systemTG.getGraph().getEdgeTarget(edge);
 			taskGraph.getGraph().addEdge(task, target, edge);
 		}
@@ -179,29 +179,28 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 	 * Adds the signals of a cloned task by querying the existing signals from the clone's original
 	 * task.
 	 */
-	public void addClonedSignalsOf(ITaskAdapter<C> originalTask,
-			ITaskAdapter<C> clonedTask) {
+	public void addClonedSignalsOf(ITaskAdapter<C> originalTask, ITaskAdapter<C> clonedTask) {
 		// The given task must be in the any of the task graphs!
 
 		T taskGraph = getGraphOf(originalTask, taskGraphs);
 		// TODO: This should be transformed into an exception.
 		assert (taskGraph != null);
 
-		Collection<ChannelAdapterWeightedEdge> incomingEdges =
+		Collection<SignalAdapterWeightedEdge> incomingEdges =
 				taskGraph.getGraph().incomingEdgesOf(originalTask);
-		Collection<ChannelAdapterWeightedEdge> outgoingEdges =
+		Collection<SignalAdapterWeightedEdge> outgoingEdges =
 				taskGraph.getGraph().outgoingEdgesOf(originalTask);
 
-		for(ChannelAdapterWeightedEdge edge : incomingEdges) {
+		for(SignalAdapterWeightedEdge edge : incomingEdges) {
 			ITaskAdapter<?> source = taskGraph.getGraph().getEdgeSource(edge);
 			taskGraph.getGraph().addEdge(source, clonedTask,
-					new ChannelAdapterWeightedEdge(edge.getChannelAdapter()));
+					new SignalAdapterWeightedEdge(edge.getSignalAdapter()));
 		}
 
-		for(ChannelAdapterWeightedEdge edge : outgoingEdges) {
+		for(SignalAdapterWeightedEdge edge : outgoingEdges) {
 			ITaskAdapter<?> target = taskGraph.getGraph().getEdgeTarget(edge);
 			taskGraph.getGraph().addEdge(clonedTask, target,
-					new ChannelAdapterWeightedEdge(edge.getChannelAdapter()));
+					new SignalAdapterWeightedEdge(edge.getSignalAdapter()));
 		}
 	}
 
@@ -279,8 +278,7 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 	 * @return The asociated {@link ITaskAdapter}, or {@code null} if none can be
 	 *         identified.
 	 */
-	public synchronized ITaskAdapter<C>
-			getDeployableComponentOf(EObject originalEObject) {
+	public synchronized ITaskAdapter<C> getDeployableComponentOf(EObject originalEObject) {
 		for(ITaskAdapter<C> deployableComponentAdapter : deployableComponents) {
 			if(deployableComponentAdapter.getObject() == originalEObject) {
 				return deployableComponentAdapter;
@@ -302,8 +300,7 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 	 * only those {@link ITaskAdapter} are searched which can be actually executed on
 	 * {@link ExecutionUnit}s, i.e. "abstract" components are not considered.
 	 */
-	public ITaskAdapter<C>
-			getReplicableDeployableComponentOf(EObject originalEObject) {
+	public ITaskAdapter<C> getReplicableDeployableComponentOf(EObject originalEObject) {
 		for(ITaskAdapter<C> deployableComponentAdapter : replicableComponents) {
 			if(deployableComponentAdapter.getObject() == originalEObject) {
 				return deployableComponentAdapter;
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/.ratings
index b2638f3c120aa09a2574fe13cad8594a5f122454..a92b55cd861fc4e5254a57e7b89444c9e22b80ca 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/.ratings
@@ -1,2 +1,2 @@
-TaskMappingEncoding.java 4b7241a53286d947e29335afdf89b791d0b706f0 RED
+TaskMappingEncoding.java 930be52f3d4940c4905ce901e8376ea076caf2c7 RED
 TaskMappingEntry.java 8872e14a5d29f267ce2be78e9a3f3f817f16edd2 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/TaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/TaskMappingEncoding.java
index 97e0f04696f0ffa4a035052a3e64acd15b21655f..63ca9e12982bd26ca42dd0567f2d951f98a6e2bb 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/TaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/TaskMappingEncoding.java
@@ -101,7 +101,7 @@ public abstract class TaskMappingEncoding<S extends ITaskAdapter<?>, T extends T
 	protected Collection<ITaskAdapter<?>> fixAllocatedComponents;
 
 	/** Representation of input system */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/**
 	 * Collection of deployable {@link ITaskAdapter}s represented by {@code this}
@@ -124,7 +124,7 @@ public abstract class TaskMappingEncoding<S extends ITaskAdapter<?>, T extends T
 	 */
 	@SuppressWarnings("unchecked")
 	public TaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partMappingEncoding, TaskGraphEncoding<?, ?, ?> tgEncoding) {
 		this.dse = dse;
 		this.systemModelAdapter = systemModelAdapter;
@@ -145,7 +145,7 @@ public abstract class TaskMappingEncoding<S extends ITaskAdapter<?>, T extends T
 	 *             {@link ITaskAdapter}.
 	 */
 	public TaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
 			throws ExplorationException {
 		this(dse, systemModelAdapter, new PartitionMappingEncoding(systemModelAdapter, null),
 				new TaskGraphEncoding<>(systemModelAdapter));
@@ -162,7 +162,7 @@ public abstract class TaskMappingEncoding<S extends ITaskAdapter<?>, T extends T
 	 *             {@link ITaskAdapter}.
 	 */
 	public TaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partMappingEncoding, TaskGraphEncoding<?, ?, ?> tgEncoding,
 			boolean initialize) throws ExplorationException {
 		this(dse, systemModelAdapter, partMappingEncoding, tgEncoding);
@@ -179,7 +179,7 @@ public abstract class TaskMappingEncoding<S extends ITaskAdapter<?>, T extends T
 	 *             {@link ITaskAdapter}.
 	 */
 	public TaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partMappingEncoding, TaskGraphEncoding<?, ?, ?> tgEncoding,
 			TaskMappingEncoding<ITaskAdapter<?>, ?> incompleteEncoding)
 			throws ExplorationException {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
index f0c82406b8732340e89935e9550fa4c44d5f2d58..be62ba9ca9419f7d01bbf26fb21c82b7cdc10f4c 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
@@ -1,2 +1,2 @@
-AbstractTaskMappingEncoding.java 7c37f41a2322d747a90f6179a40c41da77d3e14f RED
+AbstractTaskMappingEncoding.java 631cdcc84f476354eadd07abb21106d2390815bb RED
 AbstractTaskMappingEntry.java 0bef4c1102baf6bfbddc759fd103cf18df4b5553 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
index cc323f9126096ecf3f73bf83b4a30a164ddc97f5..bc825e86933f217a0008cc9578a057f83d1074fb 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
@@ -47,7 +47,7 @@ public class AbstractTaskMappingEncoding
 	 * system model.
 	 */
 	AbstractTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, SafeTaskGraphEncoding<?> tgEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding);
 	}
@@ -60,7 +60,7 @@ public class AbstractTaskMappingEncoding
 	 *             {@link ITaskAdapter}.
 	 */
 	public AbstractTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, SafeTaskGraphEncoding<?> tgEncoding,
 			boolean initialize) throws ExplorationException {
 		super(dse, systemModelAdapter, partEnc, tgEncoding, initialize);
@@ -68,7 +68,7 @@ public class AbstractTaskMappingEncoding
 
 	/** Copy Constructor. */
 	public AbstractTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, TaskGraphEncoding<?, ?, ?> tgEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding);
 	}
@@ -81,7 +81,7 @@ public class AbstractTaskMappingEncoding
 	 *             {@link ITaskAdapter}.
 	 */
 	public AbstractTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
 			throws ExplorationException {
 		super(dse, systemModelAdapter, initialize);
 	}
@@ -94,7 +94,7 @@ public class AbstractTaskMappingEncoding
 	 *             {@link ITaskAdapter}.
 	 */
 	public AbstractTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> atgEnc,
 			boolean initialize) throws ExplorationException {
 		super(dse, systemModelAdapter, partEnc, atgEnc, initialize);
@@ -111,7 +111,7 @@ public class AbstractTaskMappingEncoding
 	 *             {@link ITaskAdapter}.
 	 */
 	public AbstractTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> atgEnc,
 			AbstractTaskMappingEncoding partialEncoding) throws ExplorationException {
 		super(dse, systemModelAdapter, partEnc, atgEnc, partialEncoding);
@@ -131,8 +131,8 @@ public class AbstractTaskMappingEncoding
 
 	/** {@inheritDoc} */
 	@Override
-	protected <S extends TaskMappingEntry<ITaskAdapter<?>, Partition>>
-			AbstractTaskMappingEntry createEntry(S allocEntry) {
+	protected <S extends TaskMappingEntry<ITaskAdapter<?>, Partition>> AbstractTaskMappingEntry
+			createEntry(S allocEntry) {
 		// TODO: Remove the ugly casts.
 		return new AbstractTaskMappingEntry(allocEntry.getSource(), allocEntry.getTarget());
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
index d7f4cbb2f159e0456a4cdd49300b655ffe4c49a1..a815873fa8fe5acd8f5a9e35dd9d81a888375788 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
@@ -1,6 +1,6 @@
-FailSilentTaskMappingEncoding.java 3a209701976bb08d43a9e073524f5e7c32a703d8 RED
+FailSilentTaskMappingEncoding.java 1457b164ab20624575f4bcbd3e9263c2d9c029c5 RED
 FailSilentTaskMappingEntry.java 28c15e958f6208c1c65e5076bc7c3be26d7a2dc9 RED
-FaultDetectionVotingTaskMappingEncoding.java 9540b78592189b8a94ac924c3a422d91dcecfe64 RED
+FaultDetectionVotingTaskMappingEncoding.java 95d5befaeb9185f2ebe5ee5ff0d5e58412afcd03 RED
 FaultDetectionVotingTaskMappingEntry.java c6f6588154665d765b506850a78d8a434000c843 RED
-InstantiatedTaskMappingEncoding.java 8bfb0c0ef37f617d9fb8d16f5dd2c60f1591ac7e RED
+InstantiatedTaskMappingEncoding.java 564ee5ab7d5eaf98a134dd92faee35cc30d038fd RED
 InstantiatedTaskMappingEntry.java 06181aa57ffb0c269c4dac8047cdccc2ae7afdd9 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/FailSilentTaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/FailSilentTaskMappingEncoding.java
index 7e2a2ef7b53c5d51324cc4ab0fa161f5199369e3..61622c70e3e04243c513c463dc3c1824d9062761 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/FailSilentTaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/FailSilentTaskMappingEncoding.java
@@ -41,14 +41,14 @@ public class FailSilentTaskMappingEncoding
 	 * system model.
 	 */
 	FailSilentTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding);
 	}
 
 	/** Copy Constructor. */
 	FailSilentTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, TaskGraphEncoding<?, ?, ?> tgEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding);
 	}
@@ -62,7 +62,7 @@ public class FailSilentTaskMappingEncoding
 	 *             {@link ITaskAdapter}.
 	 */
 	public FailSilentTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding,
 			boolean initialize) throws ExplorationException {
 		super(dse, systemModelAdapter, partEnc, tgEncoding, initialize);
@@ -76,7 +76,7 @@ public class FailSilentTaskMappingEncoding
 	 *             {@link ITaskAdapter}.
 	 */
 	public FailSilentTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
 			throws ExplorationException {
 		super(dse, systemModelAdapter, initialize);
 	}
@@ -86,7 +86,7 @@ public class FailSilentTaskMappingEncoding
 	 * {@link AbstractTaskMappingEncoding}.
 	 */
 	public FailSilentTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding,
 			AbstractTaskMappingEncoding abstractEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding, abstractEncoding);
@@ -94,8 +94,8 @@ public class FailSilentTaskMappingEncoding
 
 	/** {@inheritDoc} */
 	@Override
-	public FailSilentTaskMappingEntry createEntry(
-			ITaskAdapter<?> deployableComponent, Partition deploymentTarget) {
+	public FailSilentTaskMappingEntry createEntry(ITaskAdapter<?> deployableComponent,
+			Partition deploymentTarget) {
 		// Request not needed to construct a {@link FailSilentTaskMappingEncoding}
 		if(deploymentTarget == null) {
 			return null;
@@ -106,8 +106,8 @@ public class FailSilentTaskMappingEncoding
 
 	/** {@inheritDoc} */
 	@Override
-	public <S extends TaskMappingEntry<ITaskAdapter<?>, Partition>>
-			FailSilentTaskMappingEntry createEntry(S mapping) {
+	public <S extends TaskMappingEntry<ITaskAdapter<?>, Partition>> FailSilentTaskMappingEntry
+			createEntry(S mapping) {
 		return new FailSilentTaskMappingEntry((AbstractTaskMappingEntry)mapping);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/FaultDetectionVotingTaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/FaultDetectionVotingTaskMappingEncoding.java
index 7b17d4612356a1d7eff02bd3c3f904feb09eb5bd..2d7b0bdb194b3fc436f5b401e817ca7b4964f21d 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/FaultDetectionVotingTaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/FaultDetectionVotingTaskMappingEncoding.java
@@ -40,7 +40,7 @@ public class FaultDetectionVotingTaskMappingEncoding extends
 	 * system model.
 	 */
 	FaultDetectionVotingTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding);
 	}
@@ -54,7 +54,7 @@ public class FaultDetectionVotingTaskMappingEncoding extends
 	 *             {@link ITaskAdapter}.
 	 */
 	public FaultDetectionVotingTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding,
 			boolean initialize) throws ExplorationException {
 		super(dse, systemModelAdapter, partEnc, tgEncoding, initialize);
@@ -69,7 +69,7 @@ public class FaultDetectionVotingTaskMappingEncoding extends
 	 *             {@link ITaskAdapter}.
 	 */
 	public FaultDetectionVotingTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
 			throws ExplorationException {
 		super(dse, systemModelAdapter, initialize);
 		assert (false) : "Never here any more.";
@@ -80,7 +80,7 @@ public class FaultDetectionVotingTaskMappingEncoding extends
 	 * the given {@link AbstractTaskMappingEncoding}.
 	 */
 	public FaultDetectionVotingTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding,
 			AbstractTaskMappingEncoding abstractEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding, abstractEncoding);
@@ -88,8 +88,8 @@ public class FaultDetectionVotingTaskMappingEncoding extends
 
 	/** {@inheritDoc} */
 	@Override
-	public FaultDetectionVotingTaskMappingEntry createEntry(
-			ITaskAdapter<?> deployableComponent, Partition deploymentTarget) {
+	public FaultDetectionVotingTaskMappingEntry createEntry(ITaskAdapter<?> deployableComponent,
+			Partition deploymentTarget) {
 		if(deployableComponent == null || deploymentTarget == null) {
 			return null;
 		}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
index 8a09e8e577e40cb4543a7cb973a972cc6eaede57..a616471c347402fbf90e352225cd4cba43cba4a2 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
@@ -25,8 +25,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.ab
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
 import org.fortiss.af3.exploration.moea.model.DseSpecification;
@@ -48,14 +48,14 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 	 * system model.
 	 */
 	protected InstantiatedTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding);
 	}
 
 	/** Copy Constructor. */
 	protected InstantiatedTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, TaskGraphEncoding<?, ?, ?> tgEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding);
 	}
@@ -69,7 +69,7 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 	 *             {@link ITaskAdapter}.
 	 */
 	public InstantiatedTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding,
 			boolean initialize) throws ExplorationException {
 		super(dse, systemModelAdapter, partEnc, tgEncoding, initialize);
@@ -83,7 +83,7 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 	 *             {@link ITaskAdapter}.
 	 */
 	public InstantiatedTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, boolean initialize)
 			throws ExplorationException {
 		super(dse, systemModelAdapter, initialize);
 	}
@@ -93,7 +93,7 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 	 * given {@link AbstractTaskMappingEncoding}.
 	 */
 	public InstantiatedTaskMappingEncoding(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PartitionMappingEncoding partEnc, AbstractTaskGraphEncoding<?, ?> tgEncoding,
 			AbstractTaskMappingEncoding abstractEncoding) {
 		super(dse, systemModelAdapter, partEnc, tgEncoding);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/.ratings
index cb1014a45a871718a68d6a04b14a351e8278d490..cba6099fd05ed0a0d3c13c4c8d06e1c99ca92a60 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/.ratings
@@ -1,4 +1,4 @@
 ComposableCreator.java 14cb174847cd3a0882bc4fd17cf8cbe18b2b7f36 RED
-ComposableCreatorBase.java 3f7b038a706b0abd8790539c38a140bd6521b0c2 RED
+ComposableCreatorBase.java 1973a3b7381a283020361df273ef7cdf3bfd3948 RED
 CompositeCreator.java 65ab9f283191b081e40e8587431fd0a95f1daca6 RED
-CompositeCreatorBase.java ce0a74a4b8acf68069534443468f4995a091139e RED
+CompositeCreatorBase.java c701656ca99b43c8e868216c0399de635595ca7a RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreatorBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreatorBase.java
index 68aaa13a78bd935ce4a81a5161354ae1183428c2..e6437bb41078b289151b16b3bb31d9763a7a297f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreatorBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreatorBase.java
@@ -50,7 +50,7 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 		implements ComposableCreator<G> {
 
 	/** References the input models */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** References the {@link ComposableDecoder}s that decode the created {@link Genotype}. */
 	private List<ComposableDecoder<G, ? extends ComposablePhenotype<G>>> subDecoders =
@@ -70,7 +70,7 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 	DecoderDependencyGraph depGraph;
 
 	/** Default constructor that requires a representation of the input models. */
-	public ComposableCreatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public ComposableCreatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph depGraph) {
 		this.systemModelAdapter = systemModelAdapter;
 		this.depGraph = depGraph;
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreatorBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreatorBase.java
index afe74ae692324b190a3db4bd0a5efc6a2f4cdb0e..0a609d7abdb37405c1079a47a30ea252eb41eadc 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreatorBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreatorBase.java
@@ -46,14 +46,14 @@ public abstract class CompositeCreatorBase<G extends CompositeGenotype<Class<? e
 	private List<ComposableCreator<? extends ComposableGenotype>> subCreators = new LinkedList<>();
 
 	/** Representation of input system. */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/**
 	 * Default Constructor that requires a {@link SystemModelAdapter} such that {@link Creator}s are
 	 * aware of the input models.
 	 */
 	@Inject
-	public CompositeCreatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public CompositeCreatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -102,8 +102,8 @@ public abstract class CompositeCreatorBase<G extends CompositeGenotype<Class<? e
 
 			// Directly execute the identity decoders. They have no other dependencies, but allow
 			// the access to the created
-			decodedPhenotypes.addAll(castedCreator.identityDecodeCreatedGenotype(subGenotype,
-					decodedPhenotypes));
+			decodedPhenotypes.addAll(
+					castedCreator.identityDecodeCreatedGenotype(subGenotype, decodedPhenotypes));
 
 			// TODO #checking: invoke the checking here.
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings
index 7e571dabdf39ba44b314a031e144d7c3b9bc41ba..35d587cc6f6f157122a14d74eae8986c2b779127 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings
@@ -1,5 +1,5 @@
 ComposableDecoder.java 197abec80b880e25fccfc66d61b471b0b5d7e10f RED
 ComposableDecoderBase.java 4f366cc6c0f8ca929cac43d9c5de675cbafbb132 RED
 CompositeDecoder.java 9d34dd0b342e6433ab894974f9430531ce2de39a RED
-CompositeDecoderBase.java 9b41916f13b73ae910e3a3135b0a2ee97c48b81b RED
+CompositeDecoderBase.java 9f992f1cb91e7575ad10393f013872a67015581d RED
 PhenotypeDecoder.java 44079e8545aaf8b8729919f0b07c774c3ca0df06 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java
index 33a42479f9ca32a7f9e20fe2f8e05f7a13fff65c..fad862eba7c9f4237021104d3fe379213b5e9311 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java
@@ -49,7 +49,7 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 		implements CompositeDecoder<C, P> {
 
 	/** representation of the input models. */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/**
 	 * References the {@link DecoderDependencyGraph} which defines execution orders and which
@@ -87,7 +87,7 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 	private boolean isDecoderRegistrationChecked = false;
 
 	/** Default constructor that requires a representation of the input models. */
-	public CompositeDecoderBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public CompositeDecoderBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph depGraph) {
 		this.systemModelAdapter = systemModelAdapter;
 		this.depGraph = depGraph;
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/.ratings
index b69be0d2c9adc72637af8a626713c0144538c74d..9215094dc6a330d2097476a53ce7d120ffa411a9 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/.ratings
@@ -1,3 +1,3 @@
 ComposableEvaluator.java 5882908b5b90aa31bcf806cbfca047d2d0725640 RED
 CompositeEvaluator.java 185b9a6776a419ce0fc2adae31eced97c0d756d5 RED
-CompositeEvaluatorBase.java 892ecced8aa996be57baad178bdbeefd6855c2d6 RED
+CompositeEvaluatorBase.java a496b7824e5d5fcff8414c18df93a1fec3d43601 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluatorBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluatorBase.java
index 1ecde2ab17a1e269f7ddb2d29819ace8bd606c78..53a0844fd01fbcfd16c1ef0f74bcee7c8903f50a 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluatorBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluatorBase.java
@@ -59,7 +59,7 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 		implements CompositeEvaluator<P> {
 
 	/** Representation of the input models. */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Flag to mark that marks the top-most evaluator in the composite structure. */
 	protected boolean isTopLevelEvaluator = false;
@@ -85,7 +85,7 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 	/**
 	 * Default constructor which requires a {@link SystemModelAdapter} to access the input models.
 	 */
-	public CompositeEvaluatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public CompositeEvaluatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 
 		if(!ComposableEvaluator.class.isAssignableFrom(getClass())) {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/.ratings
index f66a02fd4ada571cf38f2fbc510c312e3720a7cf..14cc86ade91d15412d52fda702bf1096d4fa8c10 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/.ratings
@@ -1,2 +1,2 @@
-DecoderDependencyGraph.java 9d2cb0db817f2372d675caba7e2e3128ded00b45 RED
+DecoderDependencyGraph.java e0f55416161a46d7fb0663fe3d358aacd3db32ae RED
 DecoderEdge.java 364767c6d4b15b02830e1c58a47f28f6e3bf3fcb RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderDependencyGraph.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderDependencyGraph.java
index bcfe90be039864e74690a21b9d2d6a4dea872d84..02273be7471344ffab828a9b5a9ac06710a2329c 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderDependencyGraph.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderDependencyGraph.java
@@ -37,18 +37,19 @@ import org.opt4j.core.problem.Decoder;
  * 
  * @author diewald
  */
-public class DecoderDependencyGraph
-		extends
+public class DecoderDependencyGraph extends
 		DependencyGraph<IExplorationEncoding, ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>>, DecoderEdge<ComposableGenotype, ComposablePhenotype<?>>> {
 
-	/** Set of {@link IExplorationEncoding} types that can be obtained from the SystemModelAdapter. */
+	/**
+	 * Set of {@link IExplorationEncoding} types that can be obtained from the SystemModelAdapter.
+	 */
 	protected Set<Class<? extends IExplorationEncoding>> sysModelEncodings;
 
 	/** Internal graph representation for the execution order of {@link Creator}s. */
 	private HashSet<ComposableCreator<?>> registeredCreators = new HashSet<>();
 
 	/** Constructor. */
-	public DecoderDependencyGraph(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public DecoderDependencyGraph(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Set<Class<? extends IExplorationEncoding>> pTypeCollection) {
 		super(pTypeCollection, IExplorationEncoding.class);
 		sysModelEncodings = systemModelAdapter.getRegisteredEncodingTypes();
@@ -63,8 +64,8 @@ public class DecoderDependencyGraph
 			for(Class<?> reqEnc : reqEncodings) {
 				if(!dependencyDagGraph
 						.containsVertex((Class<? extends IExplorationEncoding>)reqEnc) &&
-						!registeredCreators.stream().anyMatch(
-								c -> c.getCreatedEncodingType().equals(reqEnc)) &&
+						!registeredCreators.stream()
+								.anyMatch(c -> c.getCreatedEncodingType().equals(reqEnc)) &&
 						!sysModelEncodings.contains(reqEnc)) {
 					throw new MissingDependencyException(dec,
 							(Class<? extends IExplorationEncoding>)reqEnc, "");
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
index f5c9cdd346466ce50daf17fb902dea3a28aedb04..307eb0fd9f13017066405d40413f1c833e2773ce 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
@@ -1,5 +1,5 @@
 ComposablePhenotype.java c480ccbf2ed93bdb5a0ec5461629475bff033e18 RED
 CompositePhenotype.java 8706a2d636e49472dd5160dc8a0c871801f4fb69 RED
 CompositePhenotypeBase.java dc30951b9b55fef23ba657c54fef512a8886ec93 RED
-FlatPhenotypeMap.java ee0b3709282c84911292c6d73b3fe06f35c1b62c RED
+FlatPhenotypeMap.java dd51eb1e3ed9a0c4ec67eac8c28342f0e98735fe RED
 Phenotype.java 3b01d5fc912747b3409fe2868447f395dafd860c RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/FlatPhenotypeMap.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/FlatPhenotypeMap.java
index 77c120db92bc0dbe1760d323fa530a8805dc967b..7c5e0ac81125946728caeb29e220e54f78bba646 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/FlatPhenotypeMap.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/FlatPhenotypeMap.java
@@ -32,7 +32,7 @@ import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
 public class FlatPhenotypeMap<T extends Phenotype> extends ExplorationEncodingMap<T> {
 
 	/** Constructor. */
-	public FlatPhenotypeMap(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public FlatPhenotypeMap(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/.ratings
index 4bae8432e3aadb1d2357d015db1cf7bdaeb79bdf..803c17bb29eabccce952d6a544cf39e716114987 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/.ratings
@@ -1,2 +1,2 @@
-MatingCrossoverMutateRepair.java 9e19a498c422f257075aba697493a52bea8a3682 RED
-MatingCrossoverMutateRepairModule.java b0b129a5172f79e7fc7369bd86f5fa92181b01c9 RED
+MatingCrossoverMutateRepair.java e5a96095b3139ec52cd38175020c272c8407d183 RED
+MatingCrossoverMutateRepairModule.java cbf79310c5c003908f057d842158b4f2b95456ca RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/MatingCrossoverMutateRepair.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/MatingCrossoverMutateRepair.java
index e43acacffe37ac17039f56979290b5836bd118f4..92403b27c60f6978f522f31a32dc96ad8157399e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/MatingCrossoverMutateRepair.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/MatingCrossoverMutateRepair.java
@@ -56,7 +56,7 @@ public class MatingCrossoverMutateRepair extends MatingCrossoverMutate {
 	/** References the input model. */
 	@Inject
 	@Named("SystemModelAdapter")
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/**
 	 * Constructor for the {@link MatingCrossoverMutateRepair} module which extends
@@ -125,14 +125,14 @@ public class MatingCrossoverMutateRepair extends MatingCrossoverMutate {
 			while(!traversalQueue.isEmpty()) {
 				ComposableGenotype curGenotype = traversalQueue.poll();
 				List<IRepairModule<ComposableGenotype>> repairModules =
-						getService(IExplorationRepairService.class).getRepairFunctionsOf(
-								curGenotype, systemModelAdapter);
+						getService(IExplorationRepairService.class)
+								.getRepairFunctionsOf(curGenotype, systemModelAdapter);
 				for(IRepairModule<?> curRepairModule : repairModules) {
 					if(curRepairModule.needsRepair(curGenotype, ind.getObjectives().getValues())) {
 						ComposableGenotype copiedGenotype =
 								(ComposableGenotype)copy.copy(curGenotype);
-						curRepairModule.repairGenotype(copiedGenotype, ind.getObjectives()
-								.getValues());
+						curRepairModule.repairGenotype(copiedGenotype,
+								ind.getObjectives().getValues());
 						isRepaired = true;
 					}
 				}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/MatingCrossoverMutateRepairModule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/MatingCrossoverMutateRepairModule.java
index 4d3d24112b65daeb7e6e595c9f84f2ba90db08a9..004d221f35cd73c5f64a62d485bf668858fd4e1e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/MatingCrossoverMutateRepairModule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/MatingCrossoverMutateRepairModule.java
@@ -32,10 +32,11 @@ import com.google.inject.name.Names;
 public class MatingCrossoverMutateRepairModule extends MatingModule {
 
 	/** References the input model adapter. */
-	private final SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private final SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructor. */
-	public MatingCrossoverMutateRepairModule(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MatingCrossoverMutateRepairModule(
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -52,7 +53,7 @@ public class MatingCrossoverMutateRepairModule extends MatingModule {
 	@Provides
 	@Singleton
 	@Named("SystemModelAdapter")
-	public SystemModelAdapter<?, ?, ?, ?, ?, ?> getSystemModelAdapter() {
+	public SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> getSystemModelAdapter() {
 		return systemModelAdapter;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/.ratings
index dab5c473a42229bd4385a77c93acdd10ee1d1e3e..08cb6b2ccc492631b8827b57a3ed9078fee038fc 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/.ratings
@@ -1,8 +1,8 @@
-CrossoverAbstractTaskMappingModule.java db35eba8d31ba9c7054174d97990a70fdef2e8ab RED
-CrossoverAllocationBase.java 5c19d9226b686f697fed4c041704b6702c47dab3 RED
+CrossoverAbstractTaskMappingModule.java 2378665cf352620597d819fbca37f1b6c60416d0 RED
+CrossoverAllocationBase.java 5ecd7b699a04fe129434ec12b35abdcecdc40ba2 RED
 CrossoverOperatorModuleBase.java 03f237eba55f15043082bb1f5cc47f052cb24d33 RED
-CrossoverRandManyAllocation.java 1fe1d75e49535aa4d7399872494cf2ec2d4c1da1 RED
-CrossoverSingleAllocation.java 13b147eb30b479fcea3304bb01977ca23dcbea0a RED
+CrossoverRandManyAllocation.java 6e198ea496ec0293db170e911ecdb77896a18213 RED
+CrossoverSingleAllocation.java 81ae86925841f41f0073613382d2cf8326385db6 RED
 NopCrossover.java 70500c9db651250298c97e261e4f8a0d8b6941e3 RED
 NopCrossoverInstantiatedTaskMappingModule.java 95156489b862633b428a87df2ae51aa304c7f6f1 RED
 NopCrossoverPartitionMappingModule.java ac1eb750baf51027e352f4b95e6145e914bc4d19 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverAbstractTaskMappingModule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverAbstractTaskMappingModule.java
index e11266b397c5b404b5f4dabc088d2b12042fbc31..fbcc187a99213291616c2aa7aabcefe3aec1eb1e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverAbstractTaskMappingModule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverAbstractTaskMappingModule.java
@@ -30,11 +30,11 @@ public class CrossoverAbstractTaskMappingModule extends CrossoverOperatorModuleB
 	private double rate;
 
 	/** References the {@link SystemModelAdapter} that handles the input models. */
-	SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructor where execution model and mutation rate has to be specified */
 	public CrossoverAbstractTaskMappingModule(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
 		this.systemModelAdapter = systemModelAdapter;
 		this.rate = rate;
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverAllocationBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverAllocationBase.java
index a77fd825d2c3193dac0becae3aecfa956ae34419..42bff2bda3eb68878a264dfa7391141e91c3947d 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverAllocationBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverAllocationBase.java
@@ -25,8 +25,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.comm.constrain
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.Partition;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.random.RandomExploration;
 import org.opt4j.operators.crossover.Crossover;
@@ -46,7 +46,7 @@ public abstract class CrossoverAllocationBase<S extends TaskMappingEntry<ITaskAd
 		implements Crossover<T> {
 
 	/** Reference to the {@link SystemModelAdapter} which handles the input models. */
-	SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Cross-over rate */
 	protected double rate;
@@ -55,7 +55,7 @@ public abstract class CrossoverAllocationBase<S extends TaskMappingEntry<ITaskAd
 	protected RandomExploration rand = RandomExploration.getInstance();
 
 	/** Constructor that allows to set the cross-over rate */
-	public CrossoverAllocationBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public CrossoverAllocationBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			double rate) {
 		this.systemModelAdapter = systemModelAdapter;
 		this.rate = rate;
@@ -66,8 +66,8 @@ public abstract class CrossoverAllocationBase<S extends TaskMappingEntry<ITaskAd
 	 * newEncoding1} and {#link newEncoding2} for the allocations/mapping of the given
 	 * {@link ITaskAdapter}.
 	 */
-	protected void crossoverAllocation(ITaskAdapter<?> deployableComponent,
-			T newEncoding1, T newEncoding2) {
+	protected void crossoverAllocation(ITaskAdapter<?> deployableComponent, T newEncoding1,
+			T newEncoding2) {
 		List<S> newAssignedResources1 =
 				new ArrayList<>(newEncoding1.getMappingEntriesOf(deployableComponent));
 		List<S> newAssignedResources2 =
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverRandManyAllocation.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverRandManyAllocation.java
index 062a4310f55dd51f31150cfac14c56bedcdc71d7..61b480416f3c502d6a0498b9660f9dddc15c70c2 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverRandManyAllocation.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverRandManyAllocation.java
@@ -18,8 +18,8 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.crossover;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.Partition;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.opt4j.operators.crossover.Pair;
 
@@ -35,7 +35,7 @@ public class CrossoverRandManyAllocation<S extends TaskMappingEntry<ITaskAdapter
 		extends CrossoverAllocationBase<S, T> {
 
 	/** Constructor that allows to set the cross-over rate */
-	public CrossoverRandManyAllocation(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public CrossoverRandManyAllocation(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			double rate) {
 		super(systemModelAdapter, rate);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverSingleAllocation.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverSingleAllocation.java
index af3e39cfd25e5dedfa91057d6564079b459cfecb..b70541b3a522259404949c72753b533e0a54eedc 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverSingleAllocation.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/CrossoverSingleAllocation.java
@@ -18,8 +18,8 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.crossover;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.Partition;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.opt4j.operators.crossover.Pair;
 
@@ -34,7 +34,7 @@ public class CrossoverSingleAllocation<S extends TaskMappingEntry<ITaskAdapter<?
 		extends CrossoverAllocationBase<S, T> {
 
 	/** Constructor that allows to set the cross-over rate */
-	public CrossoverSingleAllocation(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public CrossoverSingleAllocation(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			double rate) {
 		super(systemModelAdapter, rate);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/.ratings
index 03cb89f928ba2a0a6e312cae0534a43e8da03da2..0bf9bbd4da74b020f3c005b9f42cd5295f3ed180 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/.ratings
@@ -1 +1 @@
-CrossoverAllocationFailSilent.java d12540c97581622c1efbe2acd823ad68c6bd8205 RED
+CrossoverAllocationFailSilent.java d5b9611669bc320448e984c3c7f1a7f319ccbf7b RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/CrossoverAllocationFailSilent.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/CrossoverAllocationFailSilent.java
index f51d5c4633dbd53ba0f261ff46ce4dd91a5aabdf..6d0e7f9854a43126e3346541b135434d8a1ef710 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/CrossoverAllocationFailSilent.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/CrossoverAllocationFailSilent.java
@@ -29,7 +29,7 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 public class CrossoverAllocationFailSilent extends
 		CrossoverRandManyAllocation<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding> {
 	/** Constructs a resource allocation crossover operator for fail-silent execution model */
-	public CrossoverAllocationFailSilent(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public CrossoverAllocationFailSilent(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			double rate) {
 		super(systemModelAdapter, rate);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/.ratings
index a9021c4e670fdb59333959018a46566a39dd7003..fe20f0fa50da5bee72e8e7945d1dc15026f3d609 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/.ratings
@@ -1 +1 @@
-CrossoverAllocationFaultDetectionVoting.java e0642161bc0adffabc6ba9dcc3a1244f814a6c87 RED
+CrossoverAllocationFaultDetectionVoting.java f40741b1440a3638808016bf8cabf4c6f6da80e2 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/CrossoverAllocationFaultDetectionVoting.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/CrossoverAllocationFaultDetectionVoting.java
index 51b7c851c3a3eeae3b48cd921c9b080f01a08da9..f30d57ad784864830a35ba621f9e592cfe36f8fd 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/CrossoverAllocationFaultDetectionVoting.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/CrossoverAllocationFaultDetectionVoting.java
@@ -26,12 +26,11 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
  * 
  * @author diewald
  */
-public class CrossoverAllocationFaultDetectionVoting
-		extends
+public class CrossoverAllocationFaultDetectionVoting extends
 		CrossoverRandManyAllocation<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding> {
 	/** Constructs a resource allocation crossover operator for fail-silent execution model */
 	public CrossoverAllocationFaultDetectionVoting(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
 		super(systemModelAdapter, rate);
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/.ratings
index 2ad622cfba69786e59e1896c5b804a77043a46cf..842f012aa415f2a59561dc16431bf1f512ba431b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/.ratings
@@ -1,3 +1,3 @@
-MutateBase.java b151fab2adf99fa9dbe43805c0fbb7d856234165 RED
+MutateBase.java 954077b22d74f84b13ba10afbf1e94661d9c0347 RED
 MutateOperatorModuleBase.java b17ea95c0f3e8ccbdd9005c416c6d9aff54a5517 RED
 NopMutateOperator.java c016ee80e96392d663e59d151b16ea546111cecf RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/MutateBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/MutateBase.java
index 12c702ac148c422715428b70b3b8a9faa28b01b2..977b70a984c8c215506e9fd063eebc015c7010ec 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/MutateBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/MutateBase.java
@@ -31,10 +31,10 @@ public abstract class MutateBase<T extends Genotype> implements Mutate<T> {
 	protected RandomExploration rand = RandomExploration.getInstance();
 
 	/** Representation of input system */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructs a new mutation operator for a given exploration run */
-	protected MutateBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	protected MutateBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/.ratings
index da3e59a293b6c61958466c45c9bc83f4c729256d..943b9bdceb69a2a35ee4aee4856d7b1052b9b376 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/.ratings
@@ -1,4 +1,4 @@
-MutatePartitionBase.java db3ed01fe0a4fdf4c504d84b264ac724ae4447e7 RED
-MutatePartitionDecrement.java 741a0280e5e65d5360dba834e926cc879b9bd94a RED
-MutatePartitionIncrement.java e550d00c767f2350b7b6f7d664d3b7766e71059c RED
-PartitionMappingModule.java 379d07cd5495d4ddc657269a85962d95fde1287c RED
+MutatePartitionBase.java 855767f50de089baa974214c3f209dbf643a7c23 RED
+MutatePartitionDecrement.java 0f5157c637b29dea2edd4d99f56ae3f83b25345e RED
+MutatePartitionIncrement.java cfefa5d913c40a4d5b66e1d2fb0efd70022f7978 RED
+PartitionMappingModule.java a0f0eac2bda10c15611015266648735d6e9ac5be RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionBase.java
index ee5d6032c8e256b2f9130b958302ec1e608da571..aaff7118e3ec2a0d293fb5a2157a4c5778148ffa 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionBase.java
@@ -39,7 +39,7 @@ public abstract class MutatePartitionBase extends MutateBase<PartitionMappingEnc
 	private double rate;
 
 	/** Constructor. */
-	public MutatePartitionBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutatePartitionBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 		// TODO: The statement below hard-wires the module.
 		this.allocationTargets.addAll(systemModelAdapter.getDeploymentTargets());
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionDecrement.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionDecrement.java
index a22acd63fb772a2454c285f1200a7491789fd6f5..d0214e9aa516246e7aebd57ade85d7082ad2b0c6 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionDecrement.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionDecrement.java
@@ -31,7 +31,7 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 public class MutatePartitionDecrement extends MutatePartitionBase {
 
 	/** Constructor. */
-	public MutatePartitionDecrement(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutatePartitionDecrement(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionIncrement.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionIncrement.java
index e1625d6f521f03547b4e13d972b8708547446010..54ea1dffd07c6d5bdbe4a385e05ac81ecace7676 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionIncrement.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/MutatePartitionIncrement.java
@@ -31,7 +31,7 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 public class MutatePartitionIncrement extends MutatePartitionBase {
 
 	/** Constructor. */
-	public MutatePartitionIncrement(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutatePartitionIncrement(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/PartitionMappingModule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/PartitionMappingModule.java
index 186360b7d693cd3097558391f3f67128be9af278..9a775f934fec0ba87e436a5ca065186c33318030 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/PartitionMappingModule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/PartitionMappingModule.java
@@ -25,10 +25,10 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
  */
 public class PartitionMappingModule extends MutateOperatorModuleBase {
 	/** Representation of input system */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructor where the input system model has to be specified. */
-	public PartitionMappingModule(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public PartitionMappingModule(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/.ratings
index 6534587c2596dd838822b6c667d55f0ff20c1a85..c33bb16eeb399bf4e857e91adf0fc6dcae7c7040 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/.ratings
@@ -1,5 +1,5 @@
-MutateChannelNumber.java 143128d4baebda3e2848d4159c0bbfb42775338f RED
-MutateConnectedDiagnosisPresent.java 6084b6ccbcfa19ea30dbc676e18472b7aef3fd32 RED
-MutateSafetyArchBase.java 4db35541673c5d31b753ffbbbe8564151643c564 RED
-MutateSafetyFunctionArchitectureModule.java 7b1d1a126f4b84815e2439defdc2e7bce7214c30 RED
-MutateSafetyTriggerSignalNumber.java 31b5273c2fd098bc7e53bdec3f993896fdebf686 RED
+MutateChannelNumber.java 68458da7fddd5359d667916e865e07b2afabc963 RED
+MutateConnectedDiagnosisPresent.java d8484434cd4984fdb1d13ed6f786533e5e2c7b28 RED
+MutateSafetyArchBase.java 912851bc3df719910ffa1bc384ac4a457472da74 RED
+MutateSafetyFunctionArchitectureModule.java 543c5384f56e4b41da417af3e7067a29e477c2f1 RED
+MutateSafetyTriggerSignalNumber.java a77f526222524c855feb82197fdf7677abf956f0 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateChannelNumber.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateChannelNumber.java
index c5a844a253253ff62387b769d5068984964d4807..c0e6ad96838ee68053c6356c902868eb226a9ad5 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateChannelNumber.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateChannelNumber.java
@@ -30,7 +30,7 @@ import org.opt4j.operators.mutate.Mutate;
 public class MutateChannelNumber<C> extends MutateSafetyArchBase<C> {
 
 	/** Constructor. */
-	protected MutateChannelNumber(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	protected MutateChannelNumber(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateConnectedDiagnosisPresent.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateConnectedDiagnosisPresent.java
index ad7b6289c32d7fa53960e9a96fe599d22e1a4700..14fa9a394fbed92a5063baf22dc3e1b111e59aab 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateConnectedDiagnosisPresent.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateConnectedDiagnosisPresent.java
@@ -32,7 +32,7 @@ public class MutateConnectedDiagnosisPresent<C> extends MutateSafetyArchBase<C>
 
 	/** Constructor. */
 	protected MutateConnectedDiagnosisPresent(
-			SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyArchBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyArchBase.java
index 0a3c1007711a3652afe3eee0d96f7be9b1d2e483..637de8cee1d3fa637fe82d956e37a0edec7b4cf0 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyArchBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyArchBase.java
@@ -33,7 +33,7 @@ import org.opt4j.operators.mutate.Mutate;
 public abstract class MutateSafetyArchBase<C> extends MutateBase<SafetyFunctionArchEncoding<C>> {
 
 	/** Constructor. */
-	protected MutateSafetyArchBase(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	protected MutateSafetyArchBase(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
@@ -42,8 +42,8 @@ public abstract class MutateSafetyArchBase<C> extends MutateBase<SafetyFunctionA
 	 * {@link SafetyFunctionArchEncoding} whose element number depends on the given probability
 	 * {@code p}.
 	 */
-	protected Collection<SafetyFunctionArchEntry<C>> selectSafetyFunctions(
-			SafetyFunctionArchEncoding<C> genotype, double p) {
+	protected Collection<SafetyFunctionArchEntry<C>>
+			selectSafetyFunctions(SafetyFunctionArchEncoding<C> genotype, double p) {
 		Collection<SafetyFunctionArchEntry<C>> selEntries = new ArrayList<>();
 		int size = genotype.size();
 		int idx = rand.nextInt(size);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyFunctionArchitectureModule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyFunctionArchitectureModule.java
index 77acb7f43caed9fe606e237ec088797e69dfb378..afe8727137c6e0ad85b07a183435872a3cb8d212 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyFunctionArchitectureModule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyFunctionArchitectureModule.java
@@ -31,11 +31,11 @@ import com.google.inject.Module;
  */
 public class MutateSafetyFunctionArchitectureModule extends MutateOperatorModuleBase {
 	/** Representation of input system */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructor where the input system model has to be specified. */
 	public MutateSafetyFunctionArchitectureModule(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -45,11 +45,11 @@ public class MutateSafetyFunctionArchitectureModule extends MutateOperatorModule
 	public void config() {
 		super.config();
 
-		addOperatorInstance(SafetyFunctionArchEncoding.class, new MutateChannelNumber(
-				systemModelAdapter));
-		addOperatorInstance(SafetyFunctionArchEncoding.class, new MutateSafetyTriggerSignalNumber(
-				systemModelAdapter));
-		addOperatorInstance(SafetyFunctionArchEncoding.class, new MutateConnectedDiagnosisPresent(
-				systemModelAdapter));
+		addOperatorInstance(SafetyFunctionArchEncoding.class,
+				new MutateChannelNumber(systemModelAdapter));
+		addOperatorInstance(SafetyFunctionArchEncoding.class,
+				new MutateSafetyTriggerSignalNumber(systemModelAdapter));
+		addOperatorInstance(SafetyFunctionArchEncoding.class,
+				new MutateConnectedDiagnosisPresent(systemModelAdapter));
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyTriggerSignalNumber.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyTriggerSignalNumber.java
index fc6d299c84d1d247201535cdf70f78629261bbc4..f6ebb9ce03c4ac30cf5fdf53aa56bba6159badbe 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyTriggerSignalNumber.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/MutateSafetyTriggerSignalNumber.java
@@ -32,7 +32,7 @@ public class MutateSafetyTriggerSignalNumber<C> extends MutateSafetyArchBase<C>
 
 	/** Constructor. */
 	protected MutateSafetyTriggerSignalNumber(
-			SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
@@ -43,9 +43,8 @@ public class MutateSafetyTriggerSignalNumber<C> extends MutateSafetyArchBase<C>
 		Collection<SafetyFunctionArchEntry<C>> selEntries = selectSafetyFunctions(genotype, p);
 
 		for(SafetyFunctionArchEntry<C> sfEntry : selEntries) {
-			int[] allowedTriggers =
-					sfEntry.getSafetyFunctionAdapter().getAllowedTriggerSignalNumbers(
-							sfEntry.getNumChannels());
+			int[] allowedTriggers = sfEntry.getSafetyFunctionAdapter()
+					.getAllowedTriggerSignalNumbers(sfEntry.getNumChannels());
 			int selectedTriggerIdx = sfEntry.getTriggerSignalIdx();
 			if(rand.nextBoolean()) {
 				// Increase the req. number of trigger for the safety function.
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/.ratings
index 3e0fa75b7cf793d7941c5afec4c45b3db51dd0c0..9f9030912734f220e223e43f9d10965f42eac849 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/.ratings
@@ -1,2 +1,2 @@
-MutateTaskInstance.java 8ec0051a95c2c0b76264efc6c1de48854661e455 RED
-MutateTaskInstanceModule.java e465af3bd491cead2aa70d5096f68ecd22badd14 RED
+MutateTaskInstance.java 770afdf378f8f753f4a5615f88ecf39a5d52777a RED
+MutateTaskInstanceModule.java 545184274a31861d51c915d787e9ae6b721daf4c RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/MutateTaskInstance.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/MutateTaskInstance.java
index b67af2d5841233f0fd7a66fe80d427f7a2a4d3c1..880a43dc309228f76e3e7ef977206124facec75d 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/MutateTaskInstance.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/MutateTaskInstance.java
@@ -38,8 +38,7 @@ import org.opt4j.operators.mutate.Mutate;
  * 
  * @author diewald
  */
-public class MutateTaskInstance
-		extends
+public class MutateTaskInstance extends
 		MutateTasksBase<InstantiatedTaskMappingEntry, InstantiatedTaskMappingEncoding<InstantiatedTaskMappingEntry>> {
 	/**
 	 * Collection of {@link ITaskAdapter}s which must be instantiated to obtain a
@@ -48,12 +47,11 @@ public class MutateTaskInstance
 	private Collection<ITaskAdapter<?>> abstractComponents;
 
 	/** Constructor. */
-	public MutateTaskInstance(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutateTaskInstance(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 		abstractComponents = new HashSet<ITaskAdapter<?>>();
 
-		for(ITaskAdapter<?> deployableComponent : systemModelAdapter
-				.getDeployableComponents()) {
+		for(ITaskAdapter<?> deployableComponent : systemModelAdapter.getDeployableComponents()) {
 			if(deployableComponent.isInstantiationRequired()) {
 				abstractComponents.add(deployableComponent);
 			}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/MutateTaskInstanceModule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/MutateTaskInstanceModule.java
index aad2b5d066eb42f7e093ab73fa663794417e56dd..29586e3bc65c270de19b88aac2b49c165ab43134 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/MutateTaskInstanceModule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/MutateTaskInstanceModule.java
@@ -37,10 +37,10 @@ import com.google.inject.Module;
 public class MutateTaskInstanceModule extends MutateOperatorModuleBase {
 
 	/** Representation of input system */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructor where the input system model has to be specified. */
-	public MutateTaskInstanceModule(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutateTaskInstanceModule(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -49,7 +49,7 @@ public class MutateTaskInstanceModule extends MutateOperatorModuleBase {
 	public void config() {
 		super.config();
 
-		addOperatorInstance(InstantiatedTaskMappingEncoding.class, new MutateTaskInstance(
-				systemModelAdapter));
+		addOperatorInstance(InstantiatedTaskMappingEncoding.class,
+				new MutateTaskInstance(systemModelAdapter));
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/.ratings
index ca37608723af9d1d7214e6b8d7fdd6188989b9d9..5d5b5e7702e66ad8fb06590808b00db73a8a1c31 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/.ratings
@@ -1,6 +1,6 @@
-MutateAllocation.java 728685a4052cf266b94d165bd58d9b2982efaa2f RED
-MutateRedundancy.java 3ea1cdb42e3aa3000e5db3d581f28ee21272186a RED
-MutateRedundancyDecrement.java b6bb89127a938dafabc4c48ebe8ceb2f42d946dd RED
-MutateRedundancyIncrement.java 92967225c7a135759f7ce70d4eb69d983d2dcff7 RED
-MutateTaskMappingModule.java 22c97eb8bd2dbf8a5a9eae145010f4fa14932c8c RED
-MutateTasksBase.java 85e3f642be9d4df9d52f0fe700f51ab229279cee RED
+MutateAllocation.java 39fdbaf0e9bf57743f157a561fa954f4bd907871 RED
+MutateRedundancy.java 916b93f4ee2eb953033daa38273cc2360234c89e RED
+MutateRedundancyDecrement.java 38c930eb6d5648d58e31d5c0bb39f7edf50f9a87 RED
+MutateRedundancyIncrement.java 5256080dcaab5482c33915fd8c78e0bb3c3fbcd6 RED
+MutateTaskMappingModule.java 3af775566334bb030f5f54a98f746e59ebb4cac7 RED
+MutateTasksBase.java 0c2628eac42373cac6c69ec8a7ac8542a40d2a36 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateAllocation.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateAllocation.java
index 7a7e94193ef4d9a91238508c1273bd213016a317..b63e0a893ab26b764e0b129bb3ae97cc5d2c0d5e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateAllocation.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateAllocation.java
@@ -24,8 +24,8 @@ import java.util.List;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.Partition;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
 
@@ -39,7 +39,7 @@ public class MutateAllocation<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 		extends MutateTasksBase<S, T> {
 
 	/** Constructs a new allocation mutation operator for a given exploration run */
-	public MutateAllocation(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutateAllocation(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
@@ -51,8 +51,7 @@ public class MutateAllocation<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	public void mutate(T encoding, double rate) {
 		checkReplicationCount(encoding);
 
-		Collection<ITaskAdapter<?>> encDeplComponents =
-				new ArrayList<>(encoding.getRequesters());
+		Collection<ITaskAdapter<?>> encDeplComponents = new ArrayList<>(encoding.getRequesters());
 		for(ITaskAdapter<?> deployableComponent : encDeplComponents) {
 			if(rand.nextDouble() < rate) {
 				Collection<S> assignedResources = encoding.getMappingEntriesOf(deployableComponent);
@@ -76,8 +75,7 @@ public class MutateAllocation<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	/** Checks the replication count and prints a message in case of errors. */
 	private void checkReplicationCount(T encoding) {
 		if(CHECK_REPLICATION_COUNT) {
-			for(ITaskAdapter<?> currentComponent : systemModelAdapter
-					.getDeployableComponents()) {
+			for(ITaskAdapter<?> currentComponent : systemModelAdapter.getDeployableComponents()) {
 				if(encoding.getAllocatedResourcesFor(currentComponent).size() != 1) {
 					System.out.println("Encoding replications exceed the allowed amount");
 				}
@@ -92,8 +90,8 @@ public class MutateAllocation<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	 *             if no valid allocation targets can be identified for one
 	 *             {@link ITaskAdapter}.
 	 */
-	private void reAllocateMappingEntry(T encoding,
-			ITaskAdapter<?> deployableComponent) throws ExplorationException {
+	private void reAllocateMappingEntry(T encoding, ITaskAdapter<?> deployableComponent)
+			throws ExplorationException {
 		// The assigned resources must be an indexed list, such that randomly determined allocations
 		// can be directly removed using a random number generator.
 		List<S> assignedResources =
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancy.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancy.java
index dbc7fc029192d1586d67491ccf1a95b30f9be5c1..4a6b67df2e2a99a6cc9b90feef437abfad0ebc9b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancy.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancy.java
@@ -35,7 +35,7 @@ public abstract class MutateRedundancy<S extends TaskMappingEntry<ITaskAdapter<?
 		extends MutateTasksBase<S, T> {
 
 	/** Constructs a new redundancy mutation operator for a given exploration run */
-	MutateRedundancy(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	MutateRedundancy(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancyDecrement.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancyDecrement.java
index ef9c861d7ac954e4d75337532a72330b57597191..62001365d323bbcd20693228f7334e6161e2a5a2 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancyDecrement.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancyDecrement.java
@@ -32,14 +32,14 @@ public class MutateRedundancyDecrement<S extends TaskMappingEntry<ITaskAdapter<?
 		extends MutateRedundancy<S, T> {
 
 	/** Constructs a new decrement redundancy mutation operator for a given exploration run */
-	public MutateRedundancyDecrement(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutateRedundancyDecrement(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected void mutate(T encoding, ITaskAdapter<?> deployableComponent,
-			int minReplicatation, int maxReplication) {
+	protected void mutate(T encoding, ITaskAdapter<?> deployableComponent, int minReplicatation,
+			int maxReplication) {
 		List<S> assignedResources = encoding.getMappingEntriesOf(deployableComponent);
 		assert (assignedResources != null);
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancyIncrement.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancyIncrement.java
index a046ba6413d7aa112304a9fdf794e3c5e8dfc318..9fd1c7a9410555ce5ffd7713569f7ba5876f85b7 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancyIncrement.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateRedundancyIncrement.java
@@ -33,7 +33,7 @@ import org.fortiss.af3.exploration.alg.exception.ExplorationException;
 public class MutateRedundancyIncrement<S extends TaskMappingEntry<ITaskAdapter<?>, Partition>, T extends TaskMappingEncoding<ITaskAdapter<?>, S>>
 		extends MutateRedundancy<S, T> {
 	/** Constructs a new increment redundancy mutation operator for a given exploration run */
-	public MutateRedundancyIncrement(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutateRedundancyIncrement(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
@@ -43,8 +43,8 @@ public class MutateRedundancyIncrement<S extends TaskMappingEntry<ITaskAdapter<?
 	 * @throws ExplorationException
 	 */
 	@Override
-	protected void mutate(T encoding, ITaskAdapter<?> deployableComponent,
-			int minReplicatation, int maxReplication) throws ExplorationException {
+	protected void mutate(T encoding, ITaskAdapter<?> deployableComponent, int minReplicatation,
+			int maxReplication) throws ExplorationException {
 		Collection<S> assignedResources = encoding.getMappingEntriesOf(deployableComponent);
 		assert (assignedResources != null);
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateTaskMappingModule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateTaskMappingModule.java
index ffa7e5af48040496e6822dd50319a53f153cf398..278e9df95b2f828b9dab69b28fba6e0c3704cead 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateTaskMappingModule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateTaskMappingModule.java
@@ -33,10 +33,10 @@ import com.google.inject.Module;
  */
 public class MutateTaskMappingModule extends MutateOperatorModuleBase {
 	/** Representation of input system */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructor where the input system model has to be specified. */
-	public MutateTaskMappingModule(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MutateTaskMappingModule(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateTasksBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateTasksBase.java
index 6b3ae2cf6db86e3f52d66985d33f6695deaeec19..2173de78708d7ad3bfa940385d72a1c9e1eb7a89 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateTasksBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/MutateTasksBase.java
@@ -31,7 +31,7 @@ public abstract class MutateTasksBase<S extends TaskMappingEntry<ITaskAdapter<?>
 		extends MutateBase<T> {
 
 	/** Constructor. */
-	protected MutateTasksBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	protected MutateTasksBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/.ratings
index bd7cf90886c2fbaf8ba621c9e8d010340d4f6828..4027b6e6a3108d7bf8328972947ad4beadf8f468 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/.ratings
@@ -1,8 +1,8 @@
 ArchExpSubDecoder.java b53315dae39fd6afdae22e2412af5cf9dff5e574 RED
-ArchitectureDecoder.java 04fa225b9e5befa3cca3d4fbdff4d767b2888f8d RED
-ArchitectureExplorationProblemModule.java bd2dcb2b945ed51b7fddb864f49eafe675ff34e7 RED
-DseProblemModuleBase.java 67ea368a0824fb500f85bf49868754455049b9c9 RED
+ArchitectureDecoder.java 676d76512f665c3d52ff06a84c65f7d272e33975 RED
+ArchitectureExplorationProblemModule.java ebed1fbcb71842bf8f2940c5f6a266568acd8184 RED
+DseProblemModuleBase.java ad44baebb3c417c3778672f10ae4f3e61f1fa932 RED
 EvaluatorWrapper.java 47ff0b2df7f75e232fa269b55750f0e2c408b08c RED
 ExplorationGoalPriorityMultiEvaluator.java 0f900f86c8adc14b69d95bb8eb3a34ea1ed2d41e RED
 ProblemModuleBase.java fb1401b846d001dfc78bbd8b8881929788b10d41 RED
-StrictTTDecoder.java 433d1f8cd1cacda8b6fed6e6c3d10b7edfe3ee8e RED
+StrictTTDecoder.java 0f0719bb800da1a9308dd1049f2aeedf80efef4b RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureDecoder.java
index a772d6634de1d954338b62522ef067d25d26ebb1..cdd3b5aedd85fe3f1916678673a8759927fd1640 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureDecoder.java
@@ -36,12 +36,12 @@ import com.google.inject.Inject;
  * 
  * @author diewald
  */
-public class ArchitectureDecoder extends
-		CompositeDecoderBase<ArchitectureExplorationEncoding, ArchitectureSolution> {
+public class ArchitectureDecoder
+		extends CompositeDecoderBase<ArchitectureExplorationEncoding, ArchitectureSolution> {
 
 	/** Default constructor that makes the input models accessible for the decoders. */
 	@Inject
-	public ArchitectureDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public ArchitectureDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DecoderDependencyGraph execdepGraph) {
 		super(systemModelAdapter, execdepGraph);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureExplorationProblemModule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureExplorationProblemModule.java
index d026792030cb46ba54ebb4dd68d38c9e4a74508e..4bd9474e8efbc5acea4e66cf5c9562fedcf9b093 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureExplorationProblemModule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureExplorationProblemModule.java
@@ -34,18 +34,19 @@ import org.fortiss.af3.exploration.moea.model.DseSpecification;
  * 
  * @author huang
  */
-public class ArchitectureExplorationProblemModule
-		extends
+public class ArchitectureExplorationProblemModule extends
 		DseProblemModuleBase<ArchitectureExplorationEncoding, ArchitectureSolution, ArchitectureDecoder> {
 
 	/** Constructor. */
 	public ArchitectureExplorationProblemModule(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Set<Class<? extends IExplorationEncoding>> requestedSolutions) {
 		super(dse, systemModelAdapter, requestedSolutions);
 	}
 
-	/** Configure genotype creator (execution model dependent), problem decoder and goal evaluators. */
+	/**
+	 * Configure genotype creator (execution model dependent), problem decoder and goal evaluators.
+	 */
 	@Override
 	protected void config() {
 		/*
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/DseProblemModuleBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/DseProblemModuleBase.java
index e0f8609a01b2d3cbef199f118e4fd302ef4a4805..e8661b3e7f48aa5000403ee5571b9aa1daee9b47 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/DseProblemModuleBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/DseProblemModuleBase.java
@@ -57,7 +57,7 @@ public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? e
 	protected DseSpecification dse;
 
 	/** Representation of input system */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Set of requested {@link ComposablePhenotype}s that form the solution set. */
 	Set<Class<? extends IExplorationEncoding>> requestedSolutions;
@@ -67,7 +67,7 @@ public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? e
 	 * specified.
 	 */
 	public DseProblemModuleBase(DseSpecification dse,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Set<Class<? extends IExplorationEncoding>> requestedSolutions) {
 		this.dse = dse;
 		this.systemModelAdapter = systemModelAdapter;
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/StrictTTDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/StrictTTDecoder.java
index d6d929cc870f91765f83f7ef3c1a43f69327e745..59d11e624c94125a9a432020a6359093b48e6a2c 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/StrictTTDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/StrictTTDecoder.java
@@ -49,7 +49,7 @@ public class StrictTTDecoder<S extends InstantiatedTaskMappingEntry, T extends I
 		extends ComposableDecoderBase<T, StrictTTSchedule<S, T>> implements ArchExpSubDecoder {
 
 	/** Representation of input system model */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Underlying EDF task scheduler */
 	private EDFSchedulerBase<S, T> simpleEDFScheduler;
@@ -63,7 +63,7 @@ public class StrictTTDecoder<S extends InstantiatedTaskMappingEntry, T extends I
 	 */
 	@SuppressWarnings("unchecked")
 	@Inject
-	public StrictTTDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public StrictTTDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DseSpecification explorationDefinition) {
 		this.systemModelAdapter = systemModelAdapter;
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings
index e317c62d4244ca3003d63445c5893ea3b40b8eb0..568e28eaae419a81a36f3f09d01566cc97f1b99b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings
@@ -1 +1 @@
-MessageDecoder.java 74e6d7c77fc31809f104d3b0aff037eb9c24c851 RED
+MessageDecoder.java 2785a0a781c6b6f49be33104599314c309fd1329 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java
index 536af4a9e9e44e9d6108243708458eb0ee740aa7..fbace084d8111d8508f90a285dcf505d85fe3013 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java
@@ -32,8 +32,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.DecodingException;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.comm.Message;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.comm.MessageGenerator;
@@ -56,7 +56,7 @@ public class MessageDecoder<S extends TaskMappingEntry<ITaskAdapter<?>, Partitio
 		extends ComposableDecoderBase<T, MessageEncoding<S, T>> {
 
 	/** References the input system models. */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/**
 	 * {@link MessageGenerator} which analyzes an {@link InstantiatedTaskMappingEncoding} and
@@ -69,7 +69,7 @@ public class MessageDecoder<S extends TaskMappingEntry<ITaskAdapter<?>, Partitio
 
 	/** Default constructor that requires a reference to the input models. */
 	@Inject
-	public MessageDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MessageDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 		messageGenerator = new MessageGenerator<S, T>(systemModelAdapter);
 		messageRouter = new MessageRouter(systemModelAdapter);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/.ratings
index f556b706d76258d3ffe6f57ddbb7f4cdf0fd2358..db79dd4cfce938347660798c1e7aec1b6ebbb461 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/.ratings
@@ -1,2 +1,2 @@
-InstantiatedTaskMappingDecoder.java 287c38c6f85cb60c1d1ae830fb8792ee54037bfe RED
-InstantiatedTaskMappingDecoderAcyclic.java 7abff3b7998604fa61a32b4cfa1d98fb9960ffb6 RED
+InstantiatedTaskMappingDecoder.java bfd10ee690ab13330e70c87fced365e66403d6a6 RED
+InstantiatedTaskMappingDecoderAcyclic.java 32e5e157dd67b7b5db99fb72a86440f83dd8605f RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/InstantiatedTaskMappingDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/InstantiatedTaskMappingDecoder.java
index c812e7569c38d42b65fb80a6fd3c59dc655eb992..8a8aaebd7e8505ab1ce4828cb858261c052ffe43 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/InstantiatedTaskMappingDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/InstantiatedTaskMappingDecoder.java
@@ -35,8 +35,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.ChannelAdapterWeightedEdge;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.DefaultTaskGraph;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.SignalAdapterWeightedEdge;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraphInstantiator;
 
@@ -52,11 +52,12 @@ public class InstantiatedTaskMappingDecoder<T extends InstantiatedTaskMappingEnt
 		ComposableDecoderBase<InstantiatedTaskMappingEncoding<T>, InstantiatedTaskGraphEncoding<T, C>> {
 
 	/** Representation of input system model */
-	private SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructs a new decoder to generate {@link InstantiatedTaskGraphEncoding}. */
 	@Inject
-	public InstantiatedTaskMappingDecoder(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public InstantiatedTaskMappingDecoder(
+			SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -104,8 +105,7 @@ public class InstantiatedTaskMappingDecoder<T extends InstantiatedTaskMappingEnt
 			// since we don't know which one was instantiated (or it would be more costly to find
 			// out).
 			DefaultTaskGraph<?> sfTG = null;
-			for(ITaskAdapter<?> curSFCompAdp : sfCompAdp
-					.getReplacementComponents()) {
+			for(ITaskAdapter<?> curSFCompAdp : sfCompAdp.getReplacementComponents()) {
 				sfTG = itgEnc.getTaskGraphOf(curSFCompAdp);
 				if(sfTG != null) {
 					break;
@@ -128,18 +128,15 @@ public class InstantiatedTaskMappingDecoder<T extends InstantiatedTaskMappingEnt
 				ITaskAdapter<?> outputUnit =
 						sfEntry.getSafetyFunctionAdapter().getOutputComponent();
 				// TODO: only for a single diag unit.
-				Collection<ITaskAdapter<?>> realizingSFUnits =
-						itgEnc.getDeployableComponents().stream()
-								.filter(d -> sfUnits.contains(d.getReplacedComponent()))
-								.collect(Collectors.toList());
-				Collection<ITaskAdapter<?>> realizingDiagUnits =
-						itgEnc.getDeployableComponents().stream()
-								.filter(d -> diagUnits.contains(d.getReplacedComponent()))
-								.collect(Collectors.toList());
-				Collection<ITaskAdapter<?>> outComps =
-						itgEnc.getDeployableComponents().stream()
-								.filter(d -> d.getObject() == outputUnit.getObject())
-								.collect(Collectors.toList());
+				Collection<ITaskAdapter<?>> realizingSFUnits = itgEnc.getDeployableComponents()
+						.stream().filter(d -> sfUnits.contains(d.getReplacedComponent()))
+						.collect(Collectors.toList());
+				Collection<ITaskAdapter<?>> realizingDiagUnits = itgEnc.getDeployableComponents()
+						.stream().filter(d -> diagUnits.contains(d.getReplacedComponent()))
+						.collect(Collectors.toList());
+				Collection<ITaskAdapter<?>> outComps = itgEnc.getDeployableComponents().stream()
+						.filter(d -> d.getObject() == outputUnit.getObject())
+						.collect(Collectors.toList());
 
 				// Pick an sf component instance that is assigned to the current channel.
 				ITaskAdapter<?> currentChannelSFUnit = null;
@@ -205,15 +202,13 @@ public class InstantiatedTaskMappingDecoder<T extends InstantiatedTaskMappingEnt
 	 */
 	private void updateTaskGraph(DefaultTaskGraph<?> sfTG,
 			Collection<ITaskAdapter<?>> realizingSFUnits,
-			Collection<ITaskAdapter<?>> realizingDiagUnits,
-			Collection<ITaskAdapter<?>> outComps,
-			ITaskAdapter<?> currentChannelSFUnit,
-			ITaskAdapter<?> currentChannelDiagUnit,
+			Collection<ITaskAdapter<?>> realizingDiagUnits, Collection<ITaskAdapter<?>> outComps,
+			ITaskAdapter<?> currentChannelSFUnit, ITaskAdapter<?> currentChannelDiagUnit,
 			ITaskAdapter<?> currentChannelOutputUnit) {
 		for(ITaskAdapter<?> curSFUnit : realizingSFUnits) {
 			if(currentChannelSFUnit != curSFUnit) {
 				// Eliminate all other signals to different channels.
-				ChannelAdapterWeightedEdge interChannelSignal =
+				SignalAdapterWeightedEdge interChannelSignal =
 						sfTG.getGraph().getEdge(currentChannelDiagUnit, curSFUnit);
 				sfTG.getGraph().removeEdge(interChannelSignal);
 				interChannelSignal = sfTG.getGraph().getEdge(currentChannelOutputUnit, curSFUnit);
@@ -223,7 +218,7 @@ public class InstantiatedTaskMappingDecoder<T extends InstantiatedTaskMappingEnt
 		for(ITaskAdapter<?> curDiagUnit : realizingDiagUnits) {
 			if(currentChannelDiagUnit != curDiagUnit) {
 				// Eliminate all other signals to different channels.
-				ChannelAdapterWeightedEdge interChannelSignal =
+				SignalAdapterWeightedEdge interChannelSignal =
 						sfTG.getGraph().getEdge(currentChannelSFUnit, curDiagUnit);
 				sfTG.getGraph().removeEdge(interChannelSignal);
 				interChannelSignal = sfTG.getGraph().getEdge(currentChannelOutputUnit, curDiagUnit);
@@ -233,7 +228,7 @@ public class InstantiatedTaskMappingDecoder<T extends InstantiatedTaskMappingEnt
 		for(ITaskAdapter<?> curOutUnit : outComps) {
 			if(currentChannelOutputUnit != curOutUnit) {
 				// Eliminate all other signals to different channels.
-				ChannelAdapterWeightedEdge interChannelSignal =
+				SignalAdapterWeightedEdge interChannelSignal =
 						sfTG.getGraph().getEdge(currentChannelSFUnit, curOutUnit);
 				sfTG.getGraph().removeEdge(interChannelSignal);
 				interChannelSignal = sfTG.getGraph().getEdge(currentChannelDiagUnit, curOutUnit);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/InstantiatedTaskMappingDecoderAcyclic.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/InstantiatedTaskMappingDecoderAcyclic.java
index 42983f8246ce3a6c13500c659c8f78ac659b337e..5aaaf2f79302a2aeaa81591234744d8ff6ccb742 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/InstantiatedTaskMappingDecoderAcyclic.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/InstantiatedTaskMappingDecoderAcyclic.java
@@ -44,12 +44,12 @@ public class InstantiatedTaskMappingDecoderAcyclic<T extends InstantiatedTaskMap
 		ComposableDecoderBase<InstantiatedTaskMappingEncoding<T>, InstantiatedAcyclicTaskGraphEncoding<T, C>> {
 
 	/** Representation of input system model */
-	private SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructs a new decoder to generate {@link InstantiatedTaskGraphEncoding}. */
 	@Inject
 	public InstantiatedTaskMappingDecoderAcyclic(
-			SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings
index c2f62bf7002391995f84fb16984faecb3fc271d1..f008274a3dcd5d0cd6f5bfb6dad0ad064dc54538 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings
@@ -1,4 +1,4 @@
 SFEncodingDecoder.java 8e1594c92aa5e0c23d07038bb63db5b483c4f727 RED
-SFGraphDecoder.java 614f9894d678367b356e987df7e407b001bbeada RED
-SFMappingConstraintDecoder.java 6c72acbd0a65d0db701da8ab4de2e26869f10493 RED
-SFMappingDecoder.java 7d95377e4eda5ddeb17da9c0db1e32a254d3c294 RED
+SFGraphDecoder.java bad196d3f1f5aca199765783ae80ca30981bc84e RED
+SFMappingConstraintDecoder.java 567af65d0f1344a22e5d0fb5ccf6b9beedd631d4 RED
+SFMappingDecoder.java 12bccf9c5c44e03a4268b04bf98f29b94a39ed1e RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFGraphDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFGraphDecoder.java
index 613219cc5469d81818a74ec4984bc1a29c84ee23..a0d0ba4c51c29e265bb77fee12b1a46d31223ee2 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFGraphDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFGraphDecoder.java
@@ -48,11 +48,11 @@ public class SFGraphDecoder<C>
 		implements ArchExpSubDecoder {
 
 	/** Reference to the {@link SystemModelAdapter} that handles input models for the DSE. */
-	SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter;
+	SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructs a new decoder that instantiates {@link AbstractTaskMappingEncoding}. */
 	@Inject
-	public SFGraphDecoder(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public SFGraphDecoder(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -123,8 +123,7 @@ public class SFGraphDecoder<C>
 	 * Adds the given collection of {@link ITaskAdapter}s from the
 	 * {@link SafetyFunctionArchEntry} to the {@link TaskGraphEncoding}.
 	 */
-	private void addTasks(Collection<ITaskAdapter<C>> deplComp,
-			SafeTaskGraphEncoding<C> encoding) {
+	private void addTasks(Collection<ITaskAdapter<C>> deplComp, SafeTaskGraphEncoding<C> encoding) {
 		// Add the Components.
 		deplComp.stream().forEach(task -> encoding.addTask(task));
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingConstraintDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingConstraintDecoder.java
index bff365d932865db7176cd4eedd64bdd2b007ed05..1a28d877b3cf01f6362849eb24224c932ba71ce3 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingConstraintDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingConstraintDecoder.java
@@ -29,8 +29,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.decode.ConstraintGenerationDecoder;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISafetyFunctionAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 
 import com.google.inject.Inject;
@@ -47,11 +47,11 @@ public class SFMappingConstraintDecoder<C>
 
 	// TODO: replace with a dynamic mechanism for the retrieval of deployable components.
 	/** Reference to the {@link SystemModelAdapter} that handles input models for the DSE. */
-	private SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructs a new decoder that instantiates {@link AbstractTaskMappingEncoding}. */
 	@Inject
-	public SFMappingConstraintDecoder(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public SFMappingConstraintDecoder(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -73,8 +73,7 @@ public class SFMappingConstraintDecoder<C>
 			int channelNumber = sFAEntry.getNumChannels();
 
 			Collection<InternalReplicationConstraint> replicationConstraints = new HashSet<>();
-			for(ITaskAdapter<?> comp : sFAEntry.getSafetyFunctionAdapter()
-					.getAllComponents()) {
+			for(ITaskAdapter<?> comp : sFAEntry.getSafetyFunctionAdapter().getAllComponents()) {
 				replicationConstraints
 						.add(new InternalReplicationConstraint(comp, channelNumber, channelNumber));
 			}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingDecoder.java
index 3cc2fd1a165591716d8a27d708d3eafb28397ef0..a4e23b9278136c0fcc3c364f5f20ea63b624df66 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingDecoder.java
@@ -55,11 +55,11 @@ public class SFMappingDecoder<C>
 
 	// TODO: replace with a dynamic mechanism for the retrieval of deployable components.
 	/** Reference to the {@link SystemModelAdapter} that handles input models for the DSE. */
-	private SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructs a new decoder that instantiates {@link AbstractTaskMappingEncoding}. */
 	@Inject
-	public SFMappingDecoder(SystemModelAdapter<C, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public SFMappingDecoder(SystemModelAdapter<C, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -103,8 +103,7 @@ public class SFMappingDecoder<C>
 					sFAEntry.getSafetyFunctionAdapter().getRealizingComponents();
 			Collection<ITaskAdapter<C>> diagComps =
 					sFAEntry.getSafetyFunctionAdapter().getDiagnosticComponents();
-			ITaskAdapter<C> outComponent =
-					sFAEntry.getSafetyFunctionAdapter().getOutputComponent();
+			ITaskAdapter<C> outComponent = sFAEntry.getSafetyFunctionAdapter().getOutputComponent();
 
 			// We assume that the entry number must be equal for all realizing components of a
 			// safety function.
@@ -116,8 +115,7 @@ public class SFMappingDecoder<C>
 			// the creation phase.
 			Set<IMappingEntry<?, ?>> existingEntries = new HashSet<>();
 			if(outGenotype.getConstraintsOf(InternalIsolatedCommunicationSet.class).isEmpty()) {
-				for(ITaskAdapter<C> comp : sFAEntry.getSafetyFunctionAdapter()
-						.getAllComponents()) {
+				for(ITaskAdapter<C> comp : sFAEntry.getSafetyFunctionAdapter().getAllComponents()) {
 					Collection<AbstractTaskMappingEntry> curEntry =
 							outGenotype.getMappingEntriesOf(comp);
 					assert (curEntry.size() <= 1);
@@ -190,8 +188,7 @@ public class SFMappingDecoder<C>
 	 *             {@link ITaskAdapter}.
 	 */
 	private void addMissingDiagUnits(AbstractTaskMappingEncoding outGenotype,
-			Collection<ITaskAdapter<C>> diagComps, int entryNumber)
-			throws ExplorationException {
+			Collection<ITaskAdapter<C>> diagComps, int entryNumber) throws ExplorationException {
 		List<InternalIsolatedCommunicationSet> isoComm = new ArrayList<>(
 				outGenotype.getConstraintsOf(InternalIsolatedCommunicationSet.class));
 		for(int i = 0; i < entryNumber; i++) {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/.ratings
index 1755d9c28f3626168bebf0ebed5ccf60e2cf70f2..784ff10089e09e3022510a70b5b9432f909d79d5 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/.ratings
@@ -1,4 +1,4 @@
-AbstractTaskMappingDecoder.java 8daae35d8536b37e000eed45cec870fa94958f2e RED
-FailSilentAbstractTaskMappingDecoder.java e68e58f1eb1a5400060f804701873eab36c710ed RED
-FaultDetectionVotingAbstractTaskMappingDecoder.java a3dcf021b83dce8574f076440fc2fadfc2402a23 RED
+AbstractTaskMappingDecoder.java edd7bd622640dfd8359d4f55b8f1f74839970823 RED
+FailSilentAbstractTaskMappingDecoder.java 449364213ecc7a68d1eb2c42b710dea35efa073a RED
+FaultDetectionVotingAbstractTaskMappingDecoder.java 80f4f41e445d7ed6decfd6f3125e14b355ee7e15 RED
 TaskInstanceResourceAlignmentDecoder.java 116f72a16a02c9aac617cc4c9684cd583b87e1b6 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/AbstractTaskMappingDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/AbstractTaskMappingDecoder.java
index bf0423025a24af20211e5af1af01d25a34550cef..15cd38f17a7c3a2dd820c2ff6c9b778593c1dae9 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/AbstractTaskMappingDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/AbstractTaskMappingDecoder.java
@@ -41,14 +41,14 @@ public abstract class AbstractTaskMappingDecoder<S extends InstantiatedTaskMappi
 		extends ComposableDecoderBase<AbstractTaskMappingEncoding, T> implements ArchExpSubDecoder {
 
 	/** Reference to the {@link SystemModelAdapter} that handles input models for the DSE. */
-	SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Reference to the {@link DseSpecification} specification that defines the DSE. */
 	DseSpecification explorationDefinition;
 
 	/** Constructs a new decoder that instantiates {@link AbstractTaskMappingEncoding}. */
 	@Inject
-	public AbstractTaskMappingDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public AbstractTaskMappingDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DseSpecification explorationDefinition) {
 		this.systemModelAdapter = systemModelAdapter;
 		this.explorationDefinition = explorationDefinition;
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/FailSilentAbstractTaskMappingDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/FailSilentAbstractTaskMappingDecoder.java
index c162c84952fd9a15ca505b2a567400bd1000419b..c01bd7952d8790ad7efd0b5a7d2ea6924770326a 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/FailSilentAbstractTaskMappingDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/FailSilentAbstractTaskMappingDecoder.java
@@ -45,7 +45,7 @@ public class FailSilentAbstractTaskMappingDecoder extends
 
 	/** Constructor. */
 	public FailSilentAbstractTaskMappingDecoder(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DseSpecification explorationDefinition) {
 		super(systemModelAdapter, explorationDefinition);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/FaultDetectionVotingAbstractTaskMappingDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/FaultDetectionVotingAbstractTaskMappingDecoder.java
index 7e0ac023b20dad9551320cfe135f542bbc3633d3..8b31cecb2ff4ca7426a67c6173ba53ae8c216a6a 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/FaultDetectionVotingAbstractTaskMappingDecoder.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/FaultDetectionVotingAbstractTaskMappingDecoder.java
@@ -45,7 +45,7 @@ public class FaultDetectionVotingAbstractTaskMappingDecoder extends
 
 	/** Constructor. */
 	public FaultDetectionVotingAbstractTaskMappingDecoder(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DseSpecification explorationDefinition) {
 		super(systemModelAdapter, explorationDefinition);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/.ratings
index 14c5be0206659b1dab5a01f5910221e88be29d7b..8f1f27b5c4196a8d466009ca102eb889a45f1b09 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/.ratings
@@ -1 +1 @@
-RepairModuleBase.java 843851e133ef5888b7c8916b9f42ee7b37fe4c54 RED
+RepairModuleBase.java fa29abd77e23ccf196105cceac50e216d0384252 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/RepairModuleBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/RepairModuleBase.java
index e444550c9c8252595f38e438e4263a1ae33deaf4..d7f221ab2467ff19e258de5d49f08f0b7e8857ab 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/RepairModuleBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/RepairModuleBase.java
@@ -27,10 +27,10 @@ import org.opt4j.core.Genotype;
 public abstract class RepairModuleBase<T extends Genotype> implements IRepairModule<T> {
 
 	/** References the input model. */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Creates an evaluator for a given exploration goal */
-	protected RepairModuleBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	protected RepairModuleBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
index b91d9f9e6d62db01b5d7e4f6bdd0c7b45823dd43..9318b140ba1368b652e89caf7b6a4a53fcebeca4 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
@@ -2,5 +2,5 @@ ArchExpSubSolution.java 3bb56206fe70f19f7cb6aee575eba552ce9bbc4e RED
 ArchitectureSolution.java 8ba40ce339c4195641ed1b67c79718e297d66e4c RED
 IExplorationSolution.java a6153937197358907ceec46606a7f28620c26f2b RED
 IScheduleSolution.java 8a2959147bdca874fd43b1591bc5471b68c04333 RED
-StrictTTSchedule.java d6ca9625a09d36f29d2b8db1cc5d64095d84ca18 RED
+StrictTTSchedule.java 3a6c9f1e00ff66a52bb2891c00a7ebb84ddf2192 RED
 TimeSlot.java 499ba8b40aca05351c4baf03d104dd20e5eb19d1 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
index d87bf12d5f0b205a149b7fa15956c1c6fe487c03..156e81c03244557fa6774d2584d13a114c813bd2 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
@@ -95,13 +95,14 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	private T encoding;
 
 	/** Representation of input system model */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/**
 	 * Constructor that creates a time-triggered schedule for a given encoding (mapping) and
 	 * optionally directly performs the scheduling.
 	 */
-	public StrictTTSchedule(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, T encoding) {
+	public StrictTTSchedule(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
+			T encoding) {
 		schedule = new HashMap<IResourceAdapter<?>, ResourceSchedule>();
 		timeSlotsOfMappingEntries = new HashMap<S, TimeSlot>();
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/.ratings
index 481e488608e25452761411904fcd461dfbcb49a4..aa2879b26530e82bd491c191626ab4892c3adf30 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/.ratings
@@ -1,6 +1,6 @@
 ArchExpSubEvaluator.java 3516cc5a58514e47f965920012cf0cd738ddbaa4 RED
-ArchitectureEvaluator.java 600c424651bc22bacecef9e596360763fdf28585 RED
-ExplorationTargetEvaluatorBase.java b6db855e18f03c4f5c8dd7b42dbae72836509f01 RED
-ExpressionEvaluatorBase.java 1552c9232d4ef9589560b6a95523ca21739ad110 RED
+ArchitectureEvaluator.java cf3c9627aa7d4b00413fc3810a42769709432390 RED
+ExplorationTargetEvaluatorBase.java 1b45c04cb27a911806682b9f5ee18bcaa5f0ee0d RED
+ExpressionEvaluatorBase.java 920ee255df1861cbad8db5e94e6365d1d69d5fa4 RED
 ITopLevelEvaluator.java 032ec6375efff2234664690f271cec98816abcc5 RED
-TaskMappingEvaluator.java d73211bc436bf951dbac5e66065b82aa9d9e97a1 RED
+TaskMappingEvaluator.java 742dd84439cfc62186a2799a1293248e2def32e2 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ArchitectureEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ArchitectureEvaluator.java
index 2bc27acc3692a8b6f68d3a3e3c4b62cae89a09d1..969118d77f44d00d395c3d6eba41e5d185a14724 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ArchitectureEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ArchitectureEvaluator.java
@@ -32,12 +32,14 @@ import com.google.inject.Inject;
  * 
  * @author diewald
  */
-public class ArchitectureEvaluator extends CompositeEvaluatorBase<ArchitectureSolution> implements
-		ITopLevelEvaluator {
+public class ArchitectureEvaluator extends CompositeEvaluatorBase<ArchitectureSolution>
+		implements ITopLevelEvaluator {
 
-	/** Default constructor which requires a {@link SystemModelAdapter} to access the input models. */
+	/**
+	 * Default constructor which requires a {@link SystemModelAdapter} to access the input models.
+	 */
 	@Inject
-	public ArchitectureEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public ArchitectureEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ExplorationTargetEvaluatorBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ExplorationTargetEvaluatorBase.java
index a6ad81fd3c4be0eede640bac68ce7967b187a4ce..d50dc78ab5d72b727f4ff305634e3f604e45ba7b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ExplorationTargetEvaluatorBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ExplorationTargetEvaluatorBase.java
@@ -42,7 +42,7 @@ public abstract class ExplorationTargetEvaluatorBase<P, RT, T extends Exploratio
 		implements IExplorationTargetEvaluator<P, RT, T> {
 
 	/** Representation of system model */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Exploration goal evaluated by this evaluator */
 	protected T explorationTarget;
@@ -59,7 +59,8 @@ public abstract class ExplorationTargetEvaluatorBase<P, RT, T extends Exploratio
 	 *             {@link ExplorationTarget} evaluators.
 	 */
 	protected ExplorationTargetEvaluatorBase(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, T optTarget) throws Exception {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, T optTarget)
+			throws Exception {
 		this.systemModelAdapter = systemModelAdapter;
 		this.explorationTarget = optTarget;
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ExpressionEvaluatorBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ExpressionEvaluatorBase.java
index 1c1b944bbe35ab6ca9e1794457fd2a66423359ef..29a366b926edf434ae92f9a72fabcca076d0e98b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ExpressionEvaluatorBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/ExpressionEvaluatorBase.java
@@ -42,7 +42,7 @@ public abstract class ExpressionEvaluatorBase<P extends Phenotype, RT, T extends
 		extends ExplorationExpressionEvaluator implements IExplorationTargetEvaluator<P, RT, T> {
 
 	/** Representation of system model */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Exploration goal evaluated by this evaluator */
 	protected T explorationTarget;
@@ -61,7 +61,7 @@ public abstract class ExpressionEvaluatorBase<P extends Phenotype, RT, T extends
 	 *             if the input validation fails (has to be implemented by the concrete
 	 *             {@link ExplorationTarget} evaluators.
 	 */
-	protected ExpressionEvaluatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	protected ExpressionEvaluatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			T explorationTarget) throws Exception {
 		if(!(explorationTarget instanceof ExplorationTargetExpression<?>)) {
 			throw new Exception("The exploration target " + explorationTarget.getName() + " is" +
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/TaskMappingEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/TaskMappingEvaluator.java
index 8596fa799a6915b186b0c8539ad90ac2e7f0bca3..880a7527976c6dc61998be684997a7bc953ad064 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/TaskMappingEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/TaskMappingEvaluator.java
@@ -22,9 +22,9 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.MappingEncodin
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.Partition;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IRequestAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.dsl_v2.model.booleanp.Implies;
 import org.fortiss.af3.exploration.dsl_v2.model.booleanp.allocation.Allocation;
@@ -55,7 +55,7 @@ public abstract class TaskMappingEvaluator extends
 	}
 
 	/** Constructor. */
-	public TaskMappingEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public TaskMappingEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationTarget<Double> explorationTarget) throws Exception {
 		super(systemModelAdapter, explorationTarget);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/.ratings
index ac519bada43aa29247fe811d5e24ba066f0701c7..8e5cb9b8e80bdc984c10c4cb9cc7e3c69eef3abc 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/.ratings
@@ -1,8 +1,8 @@
-ComponentMultiAllocationConstraintEvaluator.java 7742b1ca3553eb066830cae7e42e57502317ab02 RED
-ComponentMultiDislocationConstraintEvaluator.java 27140484b86611f07080e59de1ff54313c6c7ade RED
-ConstraintEvaluatorBase.java f42f71e64d32201b232c24542a2c0367a6293942 RED
-DeadlineConstraintEvaluator.java 7cafe322514b562da0475cf0ed21cc0103ff5354 RED
+ComponentMultiAllocationConstraintEvaluator.java af0a6ce0274cd07605d03048fa6ec18321c02029 RED
+ComponentMultiDislocationConstraintEvaluator.java fcb867e1317a51c8ef85de00bb958ae1ae7f576a RED
+ConstraintEvaluatorBase.java 4a0e50681708c882bf314d689e1ddce322d0cd50 RED
+DeadlineConstraintEvaluator.java 6763810616860bd149f90a653776276681ee480e RED
 IConstraintEvaluator.java bca49bbdea5e089b0d045fc356ceedcb466df55e RED
-MappingEvaluatorConstraint.java 9ffa75d8a7ffe974b2ac547fefd16a95e7423ae7 RED
-PeriodConstraintEvaluator.java fa430e00be92b210a633ef2661d54f2d742b37eb RED
-SafetyIntegrityLevelConstraintEvaluator.java b9b6594e9b8065b27a4cc28f8cfe5b2eb5b4e3d1 RED
+MappingEvaluatorConstraint.java f1f44bffbef03f1650a7f026428423838b16b845 RED
+PeriodConstraintEvaluator.java 05cf21be06c9ae12593f870efdf9c358efa2d97c RED
+SafetyIntegrityLevelConstraintEvaluator.java 9ad7129faaa35d89af4fced7a7121a0a142cb6f1 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiAllocationConstraintEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiAllocationConstraintEvaluator.java
index 734815b2cc6cfd36e725965fd463e5e4b102f922..1c3d042eaaec011bd4d2daaa20e3decf8a273c0a 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiAllocationConstraintEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiAllocationConstraintEvaluator.java
@@ -27,8 +27,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.in
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.mapping.IMappingEntry;
 import org.fortiss.af3.exploration.alg.service.IExplorationTargetEvaluator;
@@ -52,7 +52,7 @@ public class ComponentMultiAllocationConstraintEvaluator<S extends InstantiatedT
 
 	/** Constructor. */
 	public ComponentMultiAllocationConstraintEvaluator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ComponentMultiAllocationConstraint optGoal) throws Exception {
 		super(systemModelAdapter, optGoal);
 	}
@@ -145,7 +145,7 @@ public class ComponentMultiAllocationConstraintEvaluator<S extends InstantiatedT
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<T, Boolean, ComponentMultiAllocationConstraint>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					ComponentMultiAllocationConstraint explorationTarget) throws Exception {
 		return new ComponentMultiAllocationConstraintEvaluator<>(systemModelAdapter,
 				explorationTarget);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiDislocationConstraintEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiDislocationConstraintEvaluator.java
index 8b31c80f51ad8656a313f87081809875e93e58a8..851d415151da11a72f1b0b708ec264dfe97f6928 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiDislocationConstraintEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiDislocationConstraintEvaluator.java
@@ -26,8 +26,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.in
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.service.IExplorationTargetEvaluator;
 import org.fortiss.af3.exploration.model.ExplorationConstraint;
@@ -49,7 +49,7 @@ public class ComponentMultiDislocationConstraintEvaluator<S extends Instantiated
 
 	/** Constructor. */
 	public ComponentMultiDislocationConstraintEvaluator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ComponentMultiDislocationConstraint optGoal) throws Exception {
 		super(systemModelAdapter, optGoal);
 	}
@@ -72,8 +72,8 @@ public class ComponentMultiDislocationConstraintEvaluator<S extends Instantiated
 	 */
 	@Override
 	public boolean validateInputs() throws Exception {
-		if(explorationTarget.getComponent() == null ||
-				systemModelAdapter.getDeployableComponentOf(explorationTarget.getComponent()) == null) {
+		if(explorationTarget.getComponent() == null || systemModelAdapter
+				.getDeployableComponentOf(explorationTarget.getComponent()) == null) {
 			throw new Exception("The referenced component of the dislocation constraint " +
 					explorationTarget.getName() + "(id: " + explorationTarget.getId() +
 					") is not correctly specified." +
@@ -94,7 +94,8 @@ public class ComponentMultiDislocationConstraintEvaluator<S extends Instantiated
 
 	/** {@inheritDoc} */
 	@Override
-	public boolean validateInternal(ExplorationConstraint<?> expTarget, T solution, Value<?> value) {
+	public boolean validateInternal(ExplorationConstraint<?> expTarget, T solution,
+			Value<?> value) {
 		// Already considered in the operators.
 		// TODO: Just to be safe: add a real check.
 		return true;
@@ -115,7 +116,7 @@ public class ComponentMultiDislocationConstraintEvaluator<S extends Instantiated
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<T, Boolean, ComponentMultiDislocationConstraint>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					ComponentMultiDislocationConstraint explorationTarget) throws Exception {
 		return new ComponentMultiDislocationConstraintEvaluator<>(systemModelAdapter,
 				explorationTarget);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ConstraintEvaluatorBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ConstraintEvaluatorBase.java
index 772adcacf45a7230568da184a05d55aa92e79bf6..390219c84242650b2c5ed3732499a77ce815a552 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ConstraintEvaluatorBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ConstraintEvaluatorBase.java
@@ -47,7 +47,7 @@ public abstract class ConstraintEvaluatorBase<P extends Phenotype, RT, T extends
 	}
 
 	/** Creates an evaluator for a given exploration goal. */
-	protected ConstraintEvaluatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	protected ConstraintEvaluatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			T goal) throws Exception {
 		super(systemModelAdapter, goal);
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/DeadlineConstraintEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/DeadlineConstraintEvaluator.java
index e0cb48b19cd1ad7c862da9ecb723ea295fe2cc62..dfe69382d843405eb1c9626c578f04a8c141b49c 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/DeadlineConstraintEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/DeadlineConstraintEvaluator.java
@@ -65,7 +65,7 @@ public class DeadlineConstraintEvaluator<S extends InstantiatedTaskMappingEntry,
 	private double deadline;
 
 	/** Objective to track evaluation of this {@link ExplorationTarget}. */
-	public DeadlineConstraintEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public DeadlineConstraintEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			DeadlineConstraint optGoal) throws Exception {
 		super(systemModelAdapter, optGoal);
 		sourceDeployableComponent = new ArrayList<>();
@@ -205,7 +205,7 @@ public class DeadlineConstraintEvaluator<S extends InstantiatedTaskMappingEntry,
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<StrictTTSchedule<S, T>, Double, DeadlineConstraint>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DeadlineConstraint explorationTarget) throws Exception {
 		return new DeadlineConstraintEvaluator<S, T>(systemModelAdapter, explorationTarget);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/MappingEvaluatorConstraint.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/MappingEvaluatorConstraint.java
index e5f1270450efa80f573e308d19562c7bb31a16ed..9e704335297e306d32ad777e12df978e60e67ab4 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/MappingEvaluatorConstraint.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/MappingEvaluatorConstraint.java
@@ -50,7 +50,7 @@ public class MappingEvaluatorConstraint extends TaskMappingEvaluator implements
 	 * Constructor for execution: Defines the systemModelAdapter abstraction and the
 	 * {@link ExplorationTarget} to evaluate.
 	 */
-	public MappingEvaluatorConstraint(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public MappingEvaluatorConstraint(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationTarget<Double> explorationTarget) throws Exception {
 		super(systemModelAdapter, explorationTarget);
 	}
@@ -96,7 +96,7 @@ public class MappingEvaluatorConstraint extends TaskMappingEvaluator implements
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<TaskMappingEncoding<ITaskAdapter<?>, TaskMappingEntry<ITaskAdapter<?>, Partition>>, Double, ExplorationTarget<Double>>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					ExplorationTarget<Double> explorationTarget)
 					throws InstantiationException, Exception {
 		return new MappingEvaluatorConstraint(systemModelAdapter, explorationTarget);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/PeriodConstraintEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/PeriodConstraintEvaluator.java
index 1a9c9ee958ced9b7f64b99fa4645be30801e4bb5..10830bfc9386df4a9617914a4830637f3fdb90ae 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/PeriodConstraintEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/PeriodConstraintEvaluator.java
@@ -27,8 +27,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.in
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.StrictTTSchedule;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 import org.fortiss.af3.exploration.alg.service.IExplorationTargetEvaluator;
@@ -50,7 +50,7 @@ public class PeriodConstraintEvaluator<S extends InstantiatedTaskMappingEntry, T
 		extends ConstraintEvaluatorBase<StrictTTSchedule<S, T>, Double, PeriodConstraint> {
 
 	/** Objective to track evaluation of this {@link ExplorationTarget}. */
-	public PeriodConstraintEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public PeriodConstraintEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			PeriodConstraint optGoal) throws Exception {
 		super(systemModelAdapter, optGoal);
 	}
@@ -104,8 +104,7 @@ public class PeriodConstraintEvaluator<S extends InstantiatedTaskMappingEntry, T
 	@Override
 	public boolean validateInputs() throws Exception {
 		// Each deployable component has a period.
-		for(ITaskAdapter<?> component : systemModelAdapter
-				.getDeployableComponents()) {
+		for(ITaskAdapter<?> component : systemModelAdapter.getDeployableComponents()) {
 			if(component.getPeriod() == null) {
 				throw new Exception("The component " + component.getName() +
 						" has no period specified. Each component that shall be considered" +
@@ -115,8 +114,7 @@ public class PeriodConstraintEvaluator<S extends InstantiatedTaskMappingEntry, T
 		}
 
 		// Check WCETs of each component/execution unit combination.
-		for(ITaskAdapter<?> component : systemModelAdapter
-				.getDeployableComponents()) {
+		for(ITaskAdapter<?> component : systemModelAdapter.getDeployableComponents()) {
 			for(IExecutionUnitAdapter<?> execUnit : systemModelAdapter.getDeploymentTargets()) {
 				if(component.getWcet(execUnit) == null) {
 					throw new Exception("The combination of the component " + component.getName() +
@@ -162,7 +160,7 @@ public class PeriodConstraintEvaluator<S extends InstantiatedTaskMappingEntry, T
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<StrictTTSchedule<S, T>, Double, PeriodConstraint>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					PeriodConstraint explorationTarget) throws Exception {
 		return new PeriodConstraintEvaluator<>(systemModelAdapter, explorationTarget);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/SafetyIntegrityLevelConstraintEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/SafetyIntegrityLevelConstraintEvaluator.java
index 2b797123e747078fa063649bb8cf8f76f5a744f2..fce18765a86640032e7135cdefc98eee9702366c 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/SafetyIntegrityLevelConstraintEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/SafetyIntegrityLevelConstraintEvaluator.java
@@ -31,8 +31,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.in
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.service.IExplorationTargetEvaluator;
 import org.fortiss.af3.exploration.model.ExplorationConstraint;
@@ -56,7 +56,7 @@ public class SafetyIntegrityLevelConstraintEvaluator<S extends InstantiatedTaskM
 
 	/** Constructor. */
 	public SafetyIntegrityLevelConstraintEvaluator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			SafetyIntegrityLevelConstraint optGoal) throws Exception {
 		super(systemModelAdapter, optGoal);
 	}
@@ -126,8 +126,7 @@ public class SafetyIntegrityLevelConstraintEvaluator<S extends InstantiatedTaskM
 
 	// TODO: Port to org.fortiss.af3.safety
 	/** Helper function for the calculation of the actual SIL of a deployed component. */
-	private SIL detectSIL(
-			@SuppressWarnings("unused") ITaskAdapter<?> deployableComponent,
+	private SIL detectSIL(@SuppressWarnings("unused") ITaskAdapter<?> deployableComponent,
 			Collection<S> allEntries) {
 		// Determine the number of replications onto different execution units. This separation is
 		// yet very primitive.
@@ -203,7 +202,7 @@ public class SafetyIntegrityLevelConstraintEvaluator<S extends InstantiatedTaskM
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<T, SIL, SafetyIntegrityLevelConstraint> createEvaluator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			SafetyIntegrityLevelConstraint explorationTarget) throws Exception {
 		return new SafetyIntegrityLevelConstraintEvaluator<S, T>(systemModelAdapter,
 				explorationTarget);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/.ratings
index b79d94118b19d324e7c1f66adbe04591b52c5311..e28f2068b54f8aedef20863afeb0fc35ce840f04 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/.ratings
@@ -1,5 +1,5 @@
-EnergyObjectiveEvaluator.java a1ba92a7191a5d8883cc5b30e71640117ef98548 RED
-FailSilentReliabilityEvaluator.java 038633e5f181ff6d610da803663613589e34defb RED
-FaultDetectionVotingReliabilityEvaluator.java 7a5de8a099ec40bb2d46e67247feb7f6fff0ecc5 RED
-MappingEvaluatorObjective.java 6b220a94ac9d5f7b19e8d9f0721e47bb74b8c526 RED
-ReliabilityEvaluatorBase.java 7637e5338c1ce33c53b6c6458fe0256266a1459f RED
+EnergyObjectiveEvaluator.java ad2b868aa3dce2c7708ee6cc90f357b79a4cf799 RED
+FailSilentReliabilityEvaluator.java 83211c8e2b69579c424a486cd6845bb8d1bb69fa RED
+FaultDetectionVotingReliabilityEvaluator.java 189fdfd0daed3348c510a6aeac0bd391e835c524 RED
+MappingEvaluatorObjective.java d92d716e5a8ecb531896e66c0254e3a4602d46d8 RED
+ReliabilityEvaluatorBase.java 98fa54270cba25137112fe55f3551fbd8064ac28 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/EnergyObjectiveEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/EnergyObjectiveEvaluator.java
index f6f2932ca1ecaf8636511d9dee37897b117467e9..55b55ad26c1ab1ec6511615678df01f08b4927b7 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/EnergyObjectiveEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/EnergyObjectiveEvaluator.java
@@ -30,9 +30,9 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.StrictTTSchedu
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.TimeSlot;
 import org.fortiss.af3.exploration.alg.dse.evaluator.ExplorationTargetEvaluatorBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ICommunicationResourceAdapter;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITransmissionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.service.IExplorationTargetEvaluator;
@@ -54,7 +54,7 @@ public class EnergyObjectiveEvaluator<S extends TaskMappingEntry<ITaskAdapter<?>
 	}
 
 	/** Creates an energy objective evaluator */
-	public EnergyObjectiveEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public EnergyObjectiveEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			EnergyMinObjective goal) throws Exception {
 		super(systemModelAdapter, goal);
 	}
@@ -88,8 +88,7 @@ public class EnergyObjectiveEvaluator<S extends TaskMappingEntry<ITaskAdapter<?>
 						IExecutionUnitAdapter<?> executionUnit =
 								(IExecutionUnitAdapter<?>)deploymentTarget;
 						// TODO: Rework Schedule to avoid casting.
-						ITaskAdapter<?> deployedComponent =
-								t.getDeployedRequester().getSource();
+						ITaskAdapter<?> deployedComponent = t.getDeployedRequester().getSource();
 
 						energy += deployedComponent.getEnergyConsumption(executionUnit);
 					} else if(deploymentTarget instanceof ICommunicationResourceAdapter) {
@@ -113,8 +112,7 @@ public class EnergyObjectiveEvaluator<S extends TaskMappingEntry<ITaskAdapter<?>
 	public boolean validateInputs() throws Exception {
 		// TODO: If constraints exist for the allocation, only consider component / execution unit
 		// allocations that are valid acc. to these constraints.
-		for(ITaskAdapter<?> component : systemModelAdapter
-				.getDeployableComponents()) {
+		for(ITaskAdapter<?> component : systemModelAdapter.getDeployableComponents()) {
 			for(IExecutionUnitAdapter<?> execUnit : systemModelAdapter.getDeploymentTargets()) {
 				if(component.getEnergyConsumption(execUnit) == null) {
 					throw new Exception(
@@ -146,7 +144,7 @@ public class EnergyObjectiveEvaluator<S extends TaskMappingEntry<ITaskAdapter<?>
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<StrictTTSchedule<S, T>, Double, EnergyMinObjective>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					EnergyMinObjective explorationTarget) throws Exception {
 		return new EnergyObjectiveEvaluator<>(systemModelAdapter, explorationTarget);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/FailSilentReliabilityEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/FailSilentReliabilityEvaluator.java
index 4f72253e790ac263f960fadaff2ddef9a2273fa4..b3167361dc95242d6a3bedff716890d70be12622 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/FailSilentReliabilityEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/FailSilentReliabilityEvaluator.java
@@ -38,8 +38,9 @@ public class FailSilentReliabilityEvaluator extends
 		ReliabilityEvaluatorBase<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding> {
 
 	/** Creates a fail-silent reliability analysis evaluator for a given exploration goal. */
-	public FailSilentReliabilityEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
-			FailureMinObjective goal) throws Exception {
+	public FailSilentReliabilityEvaluator(
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, FailureMinObjective goal)
+			throws Exception {
 		super(systemModelAdapter, goal);
 	}
 
@@ -102,7 +103,7 @@ public class FailSilentReliabilityEvaluator extends
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<StrictTTSchedule<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>, Double, FailureMinObjective>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					FailureMinObjective explorationTarget) throws InstantiationException {
 		try {
 			return new FailSilentReliabilityEvaluator(systemModelAdapter, explorationTarget);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/FaultDetectionVotingReliabilityEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/FaultDetectionVotingReliabilityEvaluator.java
index 334002031c4223fb94b6086801b5144fc844dde7..f855845cbea8a2aaba5481b3769f6b00d8683480 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/FaultDetectionVotingReliabilityEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/FaultDetectionVotingReliabilityEvaluator.java
@@ -118,7 +118,7 @@ public class FaultDetectionVotingReliabilityEvaluator extends
 	 * goal.
 	 */
 	public FaultDetectionVotingReliabilityEvaluator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, FailureMinObjective target)
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, FailureMinObjective target)
 			throws Exception {
 		super(systemModelAdapter, target);
 	}
@@ -202,8 +202,8 @@ public class FaultDetectionVotingReliabilityEvaluator extends
 	}
 
 	/** Analyzes the reliability of a task. */
-	private void taskAnalysis(ITaskAdapter<?> deployableComponent,
-			ActorAnalysisNode current, DefaultTaskGraph<?> taskgraph, ReliabilityMeasure rm,
+	private void taskAnalysis(ITaskAdapter<?> deployableComponent, ActorAnalysisNode current,
+			DefaultTaskGraph<?> taskgraph, ReliabilityMeasure rm,
 			List<FaultDetectionVotingTaskMappingEntry> mappings) {
 
 		// the start node
@@ -306,8 +306,8 @@ public class FaultDetectionVotingReliabilityEvaluator extends
 	}
 
 	/** Computes the success probability of a task */
-	private static Apfloat computeTaskSuc(
-			Map<ITaskAdapter<?>, ReliabilityMeasure> actorReliabilities) {
+	private static Apfloat
+			computeTaskSuc(Map<ITaskAdapter<?>, ReliabilityMeasure> actorReliabilities) {
 		// SUC: the task is successful, iff all actors are successful
 		Apfloat taskSuc = new Apfloat(1, FP_PRECISION);
 		for(ITaskAdapter<?> deployableComponent : actorReliabilities.keySet()) {
@@ -320,8 +320,7 @@ public class FaultDetectionVotingReliabilityEvaluator extends
 	 * SDC(T)=SDC(t0)(SUC(T\t0)+SDC(T\t0))+SUC(t0)SDC(T\t0)
 	 * =SDC(t0)SUC(T\t0) + (SDC(t0)+SUC(t0)) SDC(T\t0)
 	 */
-	private Apfloat computeTaskSdc(
-			Map<ITaskAdapter<?>, ReliabilityMeasure> actorReliabilities) {
+	private Apfloat computeTaskSdc(Map<ITaskAdapter<?>, ReliabilityMeasure> actorReliabilities) {
 
 		Apfloat taskSdc;
 
@@ -379,7 +378,7 @@ public class FaultDetectionVotingReliabilityEvaluator extends
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<StrictTTSchedule<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>, Double, FailureMinObjective>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					FailureMinObjective explorationTarget) throws InstantiationException {
 		try {
 			return new FaultDetectionVotingReliabilityEvaluator(systemModelAdapter,
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/MappingEvaluatorObjective.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/MappingEvaluatorObjective.java
index 200cc7c7d387532e736356b10e48a0d5b061f3b0..b970ee5c04c1799e4b4baeb7c1e494cc3c9fa8e6 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/MappingEvaluatorObjective.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/MappingEvaluatorObjective.java
@@ -59,7 +59,7 @@ public class MappingEvaluatorObjective extends TaskMappingEvaluator {
 	 * @throws Exception
 	 *             if the inputs don't satisfy the {@link Evaluator}'s requirements.
 	 */
-	public MappingEvaluatorObjective(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public MappingEvaluatorObjective(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationTarget<Double> explorationTarget) throws Exception {
 		super(systemModelAdapter, explorationTarget);
 	}
@@ -110,7 +110,7 @@ public class MappingEvaluatorObjective extends TaskMappingEvaluator {
 	/** {@inheritDoc} */
 	@Override
 	public IExplorationTargetEvaluator<TaskMappingEncoding<ITaskAdapter<?>, TaskMappingEntry<ITaskAdapter<?>, Partition>>, Double, ExplorationTarget<Double>>
-			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvaluator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					ExplorationTarget<Double> explorationTarget)
 					throws InstantiationException, Exception {
 		return new MappingEvaluatorObjective(systemModelAdapter, explorationTarget);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/ReliabilityEvaluatorBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/ReliabilityEvaluatorBase.java
index cad040c4c6aae058166ed0e54308adbb89d647f8..303e2f735ec79e533522e1cfedc6b568ce5352d8 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/ReliabilityEvaluatorBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/ReliabilityEvaluatorBase.java
@@ -35,9 +35,9 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.StrictTTSchedule;
 import org.fortiss.af3.exploration.alg.dse.evaluator.ExplorationTargetEvaluatorBase;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.DefaultTaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
@@ -76,7 +76,7 @@ public abstract class ReliabilityEvaluatorBase<S extends InstantiatedTaskMapping
 	ITaskAdapter<?> targetComponent;
 
 	/** Constructor. */
-	public ReliabilityEvaluatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public ReliabilityEvaluatorBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			FailureMinObjective target) throws Exception {
 		super(systemModelAdapter, target);
 
@@ -102,8 +102,7 @@ public abstract class ReliabilityEvaluatorBase<S extends InstantiatedTaskMapping
 		componentReliability.clear();
 
 		// extract the detector annotations
-		for(ITaskAdapter<?> deployableComponent : systemModelAdapter
-				.getDeployableComponents()) {
+		for(ITaskAdapter<?> deployableComponent : systemModelAdapter.getDeployableComponents()) {
 			TaskGraph tg = systemModelAdapter.getTaskGraph(deployableComponent);
 			// TODO: re-add the consideration of fault detector annotations here after the
 			// annotations (or specifications) are defined
@@ -281,8 +280,8 @@ public abstract class ReliabilityEvaluatorBase<S extends InstantiatedTaskMapping
 
 	/** Stores the failure rate of a component to a task map. */
 	private void storeComponentFailureRate(Map<IExecutionUnitAdapter<?>, Apfloat> taskmap,
-			ITaskAdapter<?> deployableComponent,
-			IExecutionUnitAdapter<?> deploymentTarget, double coreFailureRate) {
+			ITaskAdapter<?> deployableComponent, IExecutionUnitAdapter<?> deploymentTarget,
+			double coreFailureRate) {
 		// get the execution time from annotation
 		// TODO: heterogeneous cores
 		// TODO: Scaling of time unit
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/.ratings
index a88db7b2c802fd70c30e9bec9c4efc7b425529ea..9ee1c142eb5420fa381cb0a8f42a62ba940e0d92 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/.ratings
@@ -1,2 +1,2 @@
-FailSilentExecModelFactory.java ce11e05c0e28b6a097b518c8c64c7dbb69fa0cdd RED
-FaultDetectionVotingExecModelFactory.java 14645f9d06fa26cdc9e7ebc65b2e590a39969e63 RED
+FailSilentExecModelFactory.java 64552c491927f16db7f63406347f0338a0845c06 RED
+FaultDetectionVotingExecModelFactory.java 3f06e1e2b33abe9c9830191979da49219a860d8e RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/FailSilentExecModelFactory.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/FailSilentExecModelFactory.java
index 24efbb94777ecefa50eb14ccfe1f7f3c42924cdf..cb5d58160ce1a14564a2a3f73655b1956396cad0 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/FailSilentExecModelFactory.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/FailSilentExecModelFactory.java
@@ -85,7 +85,7 @@ public class FailSilentExecModelFactory
 	@Override
 	public TaskMappingCreator<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>
 			createTaskMappingCreator(DseSpecification dse,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DecoderDependencyGraph execDepGraph) {
 		return new FailSilentTaskMappingCreator(dse, systemModelAdapter, execDepGraph);
 	}
@@ -95,7 +95,7 @@ public class FailSilentExecModelFactory
 	/** {@inheritDoc} */
 	@Override
 	public MutateAllocation<?, ?> createMutateAllocationOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new MutateAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter);
 	}
@@ -103,7 +103,7 @@ public class FailSilentExecModelFactory
 	/** {@inheritDoc} */
 	@Override
 	public MutateRedundancyDecrement<?, ?> createMutateRedundancyDecrementOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new MutateRedundancyDecrement<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter);
 	}
@@ -111,7 +111,7 @@ public class FailSilentExecModelFactory
 	/** {@inheritDoc} */
 	@Override
 	public MutateRedundancyIncrement<?, ?> createMutateRedundancyIncrementOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new MutateRedundancyIncrement<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter);
 	}
@@ -119,7 +119,7 @@ public class FailSilentExecModelFactory
 	/** {@inheritDoc} */
 	@Override
 	public CrossoverRandManyAllocation<?, ?> createCrossoverRandManyAllocationOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
 		return new CrossoverRandManyAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter, rate);
 	}
@@ -127,7 +127,7 @@ public class FailSilentExecModelFactory
 	/** {@inheritDoc} */
 	@Override
 	public CrossoverSingleAllocation<?, ?> createCrossoverSingleAllocationOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
 		return new CrossoverSingleAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter, rate);
 	}
@@ -138,7 +138,7 @@ public class FailSilentExecModelFactory
 	@Override
 	public AbstractTaskMappingDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>
 			createAbstractTaskMappingDecoder(
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DseSpecification explorationDefinition) {
 		return new FailSilentAbstractTaskMappingDecoder(systemModelAdapter, explorationDefinition);
 	}
@@ -149,14 +149,14 @@ public class FailSilentExecModelFactory
 	// TODO: identify why a warning is generated here.
 	public InstantiatedTaskMappingDecoderAcyclic<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>
 			createAbstractToAcyclicTaskGraphDecoder(
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new InstantiatedTaskMappingDecoderAcyclic(systemModelAdapter);
 	}
 
 	/** {@inheritDoc} */
 	@Override
 	public MessageDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>
-			createMessageDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			createMessageDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new MessageDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>(
 				systemModelAdapter);
 	}
@@ -164,7 +164,7 @@ public class FailSilentExecModelFactory
 	/** {@inheritDoc} */
 	@Override
 	public StrictTTDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>
-			createStrictTTDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createStrictTTDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DseSpecification explorationDefinition) {
 		return new StrictTTDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>(
 				systemModelAdapter, explorationDefinition);
@@ -176,7 +176,7 @@ public class FailSilentExecModelFactory
 	 */
 	@Override
 	public EDFSchedulerBase<?, ?> createEDFScheduler(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationSpecification expSpec) {
 		return new FailSilentEDFScheduler(systemModelAdapter, expSpec);
 	}
@@ -188,7 +188,7 @@ public class FailSilentExecModelFactory
 	@SuppressWarnings("unchecked")
 	public <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, Double, FailureMinObjective>
 			createFailureMinObjectiveWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<StrictTTSchedule<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>, Double, FailureMinObjective>(
 				(FailureMinObjective)goal,
 				new FailSilentReliabilityEvaluator(systemModelAdapter, (FailureMinObjective)goal),
@@ -201,7 +201,7 @@ public class FailSilentExecModelFactory
 	@Override
 	public <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, Double, DeadlineConstraint>
 			createDeadlineConstraintWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<StrictTTSchedule<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>, Double, DeadlineConstraint>(
 				(DeadlineConstraint)goal,
 				new DeadlineConstraintEvaluator<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>(
@@ -215,7 +215,7 @@ public class FailSilentExecModelFactory
 	@Override
 	public <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, Double, PeriodConstraint>
 			createPeriodConstraintWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<StrictTTSchedule<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>, Double, PeriodConstraint>(
 				(PeriodConstraint)goal,
 				new PeriodConstraintEvaluator<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>(
@@ -230,7 +230,7 @@ public class FailSilentExecModelFactory
 	public <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, Boolean, ComponentMultiAllocationConstraint>
 			createComponentMultiAllocationConstraintWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<FailSilentTaskMappingEncoding, Boolean, ComponentMultiAllocationConstraint>(
 				(ComponentMultiAllocationConstraint)goal,
 				new ComponentMultiAllocationConstraintEvaluator<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>(
@@ -244,7 +244,7 @@ public class FailSilentExecModelFactory
 	public <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, Boolean, ComponentMultiDislocationConstraint>
 			createComponentMultiDislocationConstraintWrapper(ExplorationTarget<?> goal,
-					int priority, SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
+					int priority, SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
 					throws Exception {
 		return new EvaluatorWrapper<FailSilentTaskMappingEncoding, Boolean, ComponentMultiDislocationConstraint>(
 				(ComponentMultiDislocationConstraint)goal,
@@ -258,7 +258,7 @@ public class FailSilentExecModelFactory
 	public <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, SIL, SafetyIntegrityLevelConstraint>
 			createSafetyIntegrityLevelConstraintWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<FailSilentTaskMappingEncoding, SIL, SafetyIntegrityLevelConstraint>(
 				(SafetyIntegrityLevelConstraint)goal,
 				new SafetyIntegrityLevelConstraintEvaluator<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>(
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/FaultDetectionVotingExecModelFactory.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/FaultDetectionVotingExecModelFactory.java
index 7153d4bed804aa8b7673631b8e80237709f9d3e4..2e62878aeb75c5676564924de201015c97b0b11f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/FaultDetectionVotingExecModelFactory.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/FaultDetectionVotingExecModelFactory.java
@@ -88,7 +88,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	@Override
 	public TaskMappingCreator<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>
 			createTaskMappingCreator(DseSpecification dse,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DecoderDependencyGraph execDepGraph) {
 		return new FaultDetectionVotingTaskMappingCreator(dse, systemModelAdapter, execDepGraph);
 	}
@@ -98,7 +98,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	/** {@inheritDoc} */
 	@Override
 	public MutateAllocation<?, ?> createMutateAllocationOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new MutateAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter);
 	}
@@ -106,7 +106,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	/** {@inheritDoc} */
 	@Override
 	public MutateRedundancyDecrement<?, ?> createMutateRedundancyDecrementOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new MutateRedundancyDecrement<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter);
 	}
@@ -114,7 +114,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	/** {@inheritDoc} */
 	@Override
 	public MutateRedundancyIncrement<?, ?> createMutateRedundancyIncrementOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new MutateRedundancyIncrement<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter);
 	}
@@ -122,7 +122,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	/** {@inheritDoc} */
 	@Override
 	public CrossoverRandManyAllocation<?, ?> createCrossoverRandManyAllocationOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
 		return new CrossoverRandManyAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter, rate);
 	}
@@ -130,7 +130,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	/** {@inheritDoc} */
 	@Override
 	public CrossoverSingleAllocation<?, ?> createCrossoverSingleAllocationOperator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, double rate) {
 		return new CrossoverSingleAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
 				systemModelAdapter, rate);
 	}
@@ -143,7 +143,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	@Override
 	public AbstractTaskMappingDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>
 			createAbstractTaskMappingDecoder(
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DseSpecification explorationDefinition) {
 		return new FaultDetectionVotingAbstractTaskMappingDecoder(systemModelAdapter,
 				explorationDefinition);
@@ -155,14 +155,14 @@ public class FaultDetectionVotingExecModelFactory extends
 	// TODO: identify why a warning is generated here.
 	public InstantiatedTaskMappingDecoderAcyclic<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>
 			createAbstractToAcyclicTaskGraphDecoder(
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new InstantiatedTaskMappingDecoderAcyclic(systemModelAdapter);
 	}
 
 	/** {@inheritDoc} */
 	@Override
 	public MessageDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>
-			createMessageDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			createMessageDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		return new MessageDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>(
 				systemModelAdapter);
 	}
@@ -170,7 +170,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	/** {@inheritDoc} */
 	@Override
 	public StrictTTDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>
-			createStrictTTDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createStrictTTDecoder(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					DseSpecification explorationDefinition) {
 		return new StrictTTDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>(
 				systemModelAdapter, explorationDefinition);
@@ -179,7 +179,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	/** {@inheritDoc} */
 	@Override
 	public EDFSchedulerBase<?, ?> createEDFScheduler(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationSpecification expSpec) {
 		return new FaultDetectionVotingEDFScheduler(systemModelAdapter, expSpec);
 	}
@@ -191,7 +191,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	@Override
 	public <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, Double, FailureMinObjective>
 			createFailureMinObjectiveWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<StrictTTSchedule<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>, Double, FailureMinObjective>(
 				(FailureMinObjective)goal,
 				new FaultDetectionVotingReliabilityEvaluator(systemModelAdapter,
@@ -205,7 +205,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	@Override
 	public <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, Double, DeadlineConstraint>
 			createDeadlineConstraintWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<StrictTTSchedule<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>, Double, DeadlineConstraint>(
 				(DeadlineConstraint)goal,
 				new DeadlineConstraintEvaluator<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>(
@@ -219,7 +219,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	@Override
 	public <RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<?, Double, PeriodConstraint>
 			createPeriodConstraintWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<StrictTTSchedule<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>, Double, PeriodConstraint>(
 				(PeriodConstraint)goal,
 				new PeriodConstraintEvaluator<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>(
@@ -234,7 +234,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	public <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, Boolean, ComponentMultiAllocationConstraint>
 			createComponentMultiAllocationConstraintWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<FaultDetectionVotingTaskMappingEncoding, Boolean, ComponentMultiAllocationConstraint>(
 				(ComponentMultiAllocationConstraint)goal,
 				new ComponentMultiAllocationConstraintEvaluator<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>(
@@ -248,7 +248,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	public <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, Boolean, ComponentMultiDislocationConstraint>
 			createComponentMultiDislocationConstraintWrapper(ExplorationTarget<?> goal,
-					int priority, SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
+					int priority, SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
 					throws Exception {
 		return new EvaluatorWrapper<FaultDetectionVotingTaskMappingEncoding, Boolean, ComponentMultiDislocationConstraint>(
 				(ComponentMultiDislocationConstraint)goal,
@@ -262,7 +262,7 @@ public class FaultDetectionVotingExecModelFactory extends
 	public <RT, ET extends ExplorationTarget<RT>>
 			EvaluatorWrapper<?, SIL, SafetyIntegrityLevelConstraint>
 			createSafetyIntegrityLevelConstraintWrapper(ExplorationTarget<?> goal, int priority,
-					SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
+					SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws Exception {
 		return new EvaluatorWrapper<FaultDetectionVotingTaskMappingEncoding, SIL, SafetyIntegrityLevelConstraint>(
 				(SafetyIntegrityLevelConstraint)goal,
 				new SafetyIntegrityLevelConstraintEvaluator<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>(
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings
index aba3765fc559f0ac0df9a2cb0afcd0030a3bad0c..d20afb79d5f0fd632dffec405598922244cbe007 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings
@@ -1,4 +1,3 @@
-DeprecatedSystemModelAdapter.java fdee2a13cb08c3bcde6c38ef74b16fb2f768ab96 RED
 ICommunicationResourceAdapter.java 54dd128bfa04c5cfd16551eec8983e712636f86a RED
 IComponentAdapter.java c8425150287be21b48d686469b88ea7fb77793e4 RED
 IExecutionUnitAdapter.java a93c835d5dce6a6054eea7b0abb9663c04a335b8 RED
@@ -10,10 +9,10 @@ IPlatformArchitectureAdapter.java 0a785dcff9147e1904751714ccd61ed758e0f1fe RED
 IRequestAdapter.java bb7b3c05c4f52215cd79b27207bad8ce66a28506 RED
 IResourceAdapter.java 634866895c9d1aa427f3c8d47e69acd807d0b582 RED
 IResourceConnectionAdapter.java 7e20a8c3e60a9892597301556c891ba2dd43387f RED
-ISafetyFunctionAdapter.java 02c3777272abddd5f60d2c840cf3739827e8287a RED
-ISignalAdapter.java a158c54dc238fa5c8891f4355ffa2833f6984f81 RED
+ISafetyFunctionAdapter.java f20249e7c37f54774a9e8eaa0566a85492c80654 RED
+ISignalAdapter.java d4e3f25bce705ad35e0ba633cf00b8a51db4cda7 RED
 ITaskAdapter.java 97ad40c0ca14be2fb4fd070214a3d6ebe5be914a RED
 ITransmissionUnitAdapter.java 8965b73bfe9ef232a2a6d5427f7001761716d583 RED
 InternalComponentParameters.java 2b19f4eeddee84e4c6e558ed9a1613cba33b7665 RED
-SystemModelAdapter.java 318c8b657c703f6b928bd7974363c2d9db7bc247 RED
+SystemModelAdapter.java 393b4017059b41dc296d881a0fe39cfc83ccaa39 RED
 SystemParameterContainer.java eddfc430acd8661dfe8ffbf191ef71a83157eff5 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/DeprecatedSystemModelAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/DeprecatedSystemModelAdapter.java
deleted file mode 100644
index e9956883879313253a10f995dcdb895b63bc7a9d..0000000000000000000000000000000000000000
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/DeprecatedSystemModelAdapter.java
+++ /dev/null
@@ -1,1166 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2014 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.af3.exploration.alg.dse.sysmodel.arch;
-
-import static org.fortiss.af3.exploration.util.ExplorationUtils.isDebugVerboseEnabled;
-import static org.fortiss.af3.schedule.utils.MathUtils.lcmDoubleCollection;
-import static org.fortiss.af3.task.util.TaskAllocationUtils.getAllocatedComponentsTo;
-import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickFirstInstanceOf;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.stream.Collectors;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.fortiss.af3.component.model.Component;
-import org.fortiss.af3.component.model.ComponentArchitecture;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.platform.PlatformCommunicationGraphEncoding;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph.AbstractTaskGraphEncoding;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceConnectionAdapter.ConnectionType;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.AcyclicTaskGraph;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.ChannelAdapterWeightedEdge;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.DefaultTaskGraph;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
-import org.fortiss.af3.exploration.alg.exception.InvalidTimingModelException;
-import org.fortiss.af3.exploration.alg.guava.MutableSubClassToInstanceMap;
-import org.fortiss.af3.exploration.alg.guava.SubClassToInstanceMap;
-import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
-import org.fortiss.af3.platform.model.ExecutionUnit;
-import org.fortiss.af3.platform.model.IPlatformArchitectureElement;
-import org.fortiss.af3.platform.model.IPlatformCommunicationResource;
-import org.fortiss.af3.platform.model.IPlatformExport;
-import org.fortiss.af3.platform.model.IPlatformResource;
-import org.fortiss.af3.platform.model.PlatformArchitecture;
-import org.fortiss.af3.platform.model.annotation.ResourceLink;
-import org.fortiss.af3.platform.utils.PlatformArchitectureUtils;
-import org.fortiss.af3.task.model.Task;
-import org.fortiss.af3.task.model.TaskArchitecture;
-import org.fortiss.tooling.base.model.element.IConnection;
-import org.fortiss.tooling.base.model.element.IConnector;
-import org.fortiss.tooling.base.model.element.IHierarchicElement;
-import org.fortiss.tooling.base.model.element.IModelElement;
-import org.jgrapht.DirectedGraph;
-import org.jgrapht.Graphs;
-import org.jgrapht.alg.ConnectivityInspector;
-import org.jgrapht.graph.DefaultDirectedGraph;
-import org.jgrapht.graph.DefaultEdge;
-
-/**
- * Adapter to the system model used as input for the DSE which is created for a specific DSE run.
- * 
- * @author barner, huang
- */
-public class DeprecatedSystemModelAdapter<C, E, S, G, TR, M> {
-
-	/**
-	 * Constant defining the allowed tolerance for the calculation of the greatest common divisor
-	 * used in the calculation of the effective periods.
-	 */
-	protected final static int GCD_PRECISION = 3;
-
-	/** Logical architecture of this {@link DeprecatedSystemModelAdapter}. */
-	protected ILogicalArchitectureAdapter<?> logicalArchitecture;
-
-	/** Platform architecture of this {@link DeprecatedSystemModelAdapter}. */
-	protected IPlatformArchitectureAdapter<?> platformArchitecture;
-
-	/**
-	 * Input models that can be retrieved via {@code this} {@link DeprecatedSystemModelAdapter}. It
-	 * references
-	 * the original
-	 */
-	protected SubClassToInstanceMap<EObject> inputModels = MutableSubClassToInstanceMap.create();
-
-	/** Deployable software components, to be mapped to deployment targets provided by platform. */
-	protected Collection<ITaskAdapter<C>> deployableComponents;
-
-	/** Collection of deployable components from the base model. */
-	protected Collection<C> deployableComponentObjects;
-
-	/**
-	 * Look up table to determine the input/output directions of {@link IConnector} types of the
-	 * target {@link PlatformArchitecture}.
-	 */
-	protected Map<Class<? extends IConnector>, ConnectionType> connectionTypeLUT;
-
-	/**
-	 * Deployable software components that may be replicated (per default: all @{code
-	 * deployableComponent}s.
-	 */
-	protected Collection<ITaskAdapter<C>> replicableComponents;
-
-	/** Schedulable software components, to be scheduled by the internal scheduling algorithm. */
-	protected Collection<ITaskAdapter<C>> schedulableComponents = new ArrayList<>();
-
-	/**
-	 * Collection of software components that will be actually executed. This includes realizations
-	 * of "abstract" software components (-> interfaces) that are contained in the
-	 * {@code deployableComponents} collection.
-	 */
-	protected Collection<ITaskAdapter<C>> realizableDeployableComponents;
-
-	/**
-	 * Deployment targets, i.e. the execution units of the target platform, where deployable
-	 * software components will be mapped to.
-	 */
-	protected Collection<IExecutionUnitAdapter<E>> deploymentTargets;
-
-	/** Channels that define the (allowed) data exchange between logical components. */
-	protected Collection<ISignalAdapter<S>> messages;
-
-	/** All {@link ExecutionUnit}s that are present in the target platform. */
-	protected Collection<IExecutionUnitAdapter<E>> allPresentExecutionUnits;
-
-	/** {@link Collection} of memories present in the system. */
-	protected Collection<IMemoryUnitAdapter<M>> memoryUnits;
-
-	/**
-	 * Gateway units that are employed to manage the communication between multiple networks
-	 * (connecting the same or different layers).
-	 */
-	protected Collection<IGatewayUnitAdapter<G>> gatewayUnits;
-
-	// TODO Consider more than one transmission unit
-	/** TDMA arbitrated transmission unit */
-	protected Collection<ITransmissionUnitAdapter<TR>> transmissionUnits;
-
-	/** Contains all available communication resources of the platform. */
-	protected Collection<ICommunicationResourceAdapter<TR>> availableCommunicationResource;
-
-	/** Contains all resources that are available in the given platform. */
-	protected Collection<IResourceAdapter<?>> availableResources;
-
-	/**
-	 * Contains all deployment target resources, i.e. the deployment targets and their
-	 * interconnects.
-	 */
-	protected Collection<IResourceAdapter<?>> deploymentTargetResources;
-
-	/** Contains the connections between the {@link IResourceAdapter}s of the platform. */
-	private Collection<IResourceConnectionAdapter> deploymentTargetConnectors;
-
-	/**
-	 * Collection of the safety functions adapters that represent the safety functions from the
-	 * input models.
-	 */
-	protected Collection<ISafetyFunctionAdapter<C>> safetyFunctionAdapters = new ArrayList<>();
-
-	/** The {@link PlatformCommunicationGraphEncoding} that is given by the current platform. */
-	protected PlatformCommunicationGraphEncoding platformCommunicationGraph;
-
-	/** The set of independent {@link DefaultTaskGraph}s derived from the logical architecture. */
-	protected Collection<TaskGraph> taskGraphs;
-
-	/**
-	 * The set of independent directed acyclic {@link DefaultTaskGraph}s derived from the logical
-	 * architecture.
-	 */
-	protected Collection<AcyclicTaskGraph> acyclicTaskGraphs;
-
-	/** The "messages" emitted by the sender {@link ITaskAdapter}. */
-	protected Map<ITaskAdapter<C>, Collection<ISignalAdapter<S>>> emittedMessagesBySender;
-
-	/** Hyper-period of independent tasks graphs */
-	protected Double hyperPeriod;
-
-	/**
-	 * Map: deployable component (= task) -> corresponding (independent, connected)
-	 * {@link DefaultTaskGraph}.
-	 */
-	protected Map<ITaskAdapter<C>, TaskGraph> componentInGraph;
-
-	/**
-	 * Map: deployable component (= task) -> corresponding (independent, connected)
-	 * {@link AcyclicTaskGraph}.
-	 */
-	protected Map<ITaskAdapter<C>, AcyclicTaskGraph> componentInAcyclicGraph;
-
-	/**
-	 * Mapping virtual resource -> hardware resource onto which virtual resource is (statically)
-	 * mapped, e.g., partition -> hardware execution unit / processor core.
-	 * 
-	 * The virtual resources are considered as deployment targets where {@link IRequestAdapter}s can
-	 * be allocated to.
-	 * 
-	 * However, deployment targets running on the same core share the same time line.
-	 * Hence,a map between the deployment targets and the "time line" is maintained which
-	 * will be considered during scheduling to separate partitions in time.
-	 */
-	protected Map<IResourceAdapter<?>, IResourceAdapter<?>> virtualResourceToHardwareResourceMap;
-
-	/** Defines the fault containment region defined for the target {@link PlatformArchitecture}. */
-	protected Class<? extends IPlatformResource> faultContainmentRegion;
-
-	/**
-	 * Maintains a map of {@link IExplorationEncoding}s that can be provided by {@code this}
-	 * {@link DeprecatedSystemModelAdapter} by their corresponding types.
-	 */
-	private Map<Class<? extends IExplorationEncoding>, IExplorationEncoding> inputEncodings =
-			new HashMap<>();
-
-	/** Registers a given input encoding with {@code this} {@link DeprecatedSystemModelAdapter}. */
-	protected <T extends IExplorationEncoding> void registerInputEncoding(T encoding) {
-		@SuppressWarnings("unchecked") Class<T> encodingType = (Class<T>)encoding.getClass();
-		assert (!inputEncodings.containsKey(
-				encodingType)) : "You are trying to add an encoding to the input encoding whose type is already registered. This is not supported";
-		inputEncodings.put(encodingType, encoding);
-	}
-
-	/** Returns the input encoding of the given type. */
-	@SuppressWarnings("unchecked")
-	public <T extends IExplorationEncoding> T getInputEncoding(Class<T> encodingType) {
-		return (T)inputEncodings.get(encodingType);
-	}
-
-	/**
-	 * Returns the collection of {@link IExplorationEncoding} types that are availably through
-	 * {@code this} {@link DeprecatedSystemModelAdapter}.
-	 */
-	public Set<Class<? extends IExplorationEncoding>> getRegisteredEncodingTypes() {
-		return inputEncodings.keySet();
-	}
-
-	/**
-	 * Returns the input models accessible via {@code this} {@link DeprecatedSystemModelAdapter}.
-	 */
-	public SubClassToInstanceMap<EObject> getInputModels() {
-		return inputModels;
-	}
-
-	/**
-	 * Adds the given model to the input models that can be obtained via {@code this}
-	 * {@link DeprecatedSystemModelAdapter}.
-	 */
-	@SuppressWarnings("unchecked")
-	public <T extends EObject> void putInputModel(Class<? extends T> modelType, T inputModel) {
-		inputModels.putInstance((Class<T>)modelType, inputModel);
-	}
-
-	/**
-	 * Creates and registers an {@link AbstractTaskGraphEncoding} with @code this}
-	 * {@link DeprecatedSystemModelAdapter}.
-	 */
-	protected void createAbstractTaskGraphEncoding() {
-		// AbstractTaskGraphEncoding<AbstractTaskMappingEncoding, C> atgEnc =
-		// new AbstractTaskGraphEncoding<>(this);
-		// registerInputEncoding(atgEnc);
-	}
-
-	/**
-	 * Setups the list of {@link ITaskAdapter}s that are scheduleable by a
-	 * time-triggered scheduler.
-	 */
-	protected void setupScheduleableComponents() {
-		for(ITaskAdapter<C> comp : deployableComponents) {
-			if(comp.getPeriod() != null) {
-				schedulableComponents.add(comp);
-			}
-		}
-	}
-
-	// TODO: Make the task graph setup independent from the AF3-Component Architecture and write a
-	// wrapper in the specific AF3 SystemModelAdapter.
-	/**
-	 * Sets up the {@link DefaultTaskGraph}s for all (independent) connected sub-component
-	 * model contained in the logical {@link ComponentArchitecture}. This method
-	 * also determines the hyper-period of all {@link DefaultTaskGraph}s.
-	 * 
-	 * @throws Exception
-	 */
-	protected void setupTaskGraphs() throws Exception {
-		// - Add data dependencies to {@link TaskGraph}s
-		// - Print some debugging output
-		// - Determine the hyper-period of all {@link TaskGraph}s contained in this {@link
-		// SystemModelAdapter}.
-		taskGraphs = new ArrayList<TaskGraph>();
-		acyclicTaskGraphs = new ArrayList<>();
-
-		// Temporary task graph: add vertices (= software components / tasks that need to be mapped
-		// to processing elements, and that potentially require data from other software components)
-		DefaultTaskGraph<?> temporaryTaskGraph = new DefaultTaskGraph<>();
-		// createTaskForrest();
-		for(ITaskAdapter<?> deployableComponent : deployableComponents) {
-			temporaryTaskGraph.addTask(deployableComponent);
-		}
-		// Temporary task graph: add edges
-		addDataDependenciesToTaskGraph(temporaryTaskGraph);
-
-		// Separate temporary task graph into multiple TaskGraphs that consist of exactly one
-		// connected graph component. I.e., there are no data dependencies between the resulting new
-		// TaskGraphs.
-		// TODO: handle the removal of taskgraphs in another way. Throw an exception / display an
-		// error for inconsistent period specifications?
-
-		// Create a generic TaskGraph of the logical architecture (can contain cycles)
-		taskGraphs = createDefaultTaskGraphs(temporaryTaskGraph);
-		// removeInvalidTaskGraphs(taskGraphs);
-		componentInGraph = registerTaskGraphsForComponents(taskGraphs);
-
-		// Construct an Directed Acyclic TaskGraph (e.g., utilized in scheduling).
-		acyclicTaskGraphs = taskGraphs.stream().map(tg -> new AcyclicTaskGraph(tg))
-				.collect(Collectors.toList());
-		removeInvalidTaskGraphs(acyclicTaskGraphs);
-		componentInAcyclicGraph = registerTaskGraphsForComponents(acyclicTaskGraphs);
-
-		// Print some debugging output: print the taskgraphs and display them in a dialog.
-		if(isDebugVerboseEnabled()) {
-			printAndDisplayTaskGraphs(taskGraphs);
-			printAndDisplayTaskGraphs(acyclicTaskGraphs);
-		}
-
-		Collection<TaskGraph> allTaskGraphs = new ArrayList<TaskGraph>();
-		allTaskGraphs.addAll(taskGraphs);
-		allTaskGraphs.addAll(acyclicTaskGraphs);
-		hyperPeriod = determineHyperPeriod(allTaskGraphs);
-	}
-
-	/**
-	 * Creates a set of independent {@link TaskGraph}s of the given type ({#link graphClass}). The
-	 * subgraphs may have different implementation to construct themselves (via
-	 * addDataDependencies).
-	 * 
-	 * @throws InvalidTimingModelException
-	 *             if the periods for a single task graph cannot be set up.
-	 */
-	private Collection<TaskGraph> createDefaultTaskGraphs(TaskGraph monolithicTaskGraph)
-			throws InvalidTimingModelException {
-		Collection<TaskGraph> independentTaskGraphs = new ArrayList<>();
-
-		// Compute vertex sets of maximum connected components of temporary task graph
-		ConnectivityInspector<ITaskAdapter<?>, ChannelAdapterWeightedEdge> ci =
-				new ConnectivityInspector<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(
-						monolithicTaskGraph.getDelegateGraph());
-		List<Set<ITaskAdapter<?>>> connectedSets = ci.connectedSets();
-		// Reconstruct TaskGraphs from vertex sets of connected components
-		for(Set<ITaskAdapter<?>> connectedSet : connectedSets) {
-			TaskGraph taskGraph = new DefaultTaskGraph<>();
-			Graphs.addAllVertices(taskGraph.getGraph(), connectedSet);
-
-			for(ISignalAdapter<?> message : messages) {
-				if(connectedSet.contains(message.getSource()) && !message.getTargets().isEmpty()) {
-					// taskGraph.addDataDependency(message.getSource(), message.getTargets(),
-					// message);
-				}
-			}
-
-			// Check if tasks within current sub TaskGraph share the same common period
-			taskGraph.updatePeriod();
-			independentTaskGraphs.add(taskGraph);
-		}
-		return independentTaskGraphs;
-	}
-
-	/**
-	 * Adds the given collection of {@link ISafetyFunctionAdapter}s to {@code this}
-	 * {@link DeprecatedSystemModelAdapter} that represents the input system models. In contrast to
-	 * other
-	 * input parameters, the {@link ISafetyFunctionAdapter}s are created dynamically if a
-	 * safety constraint is present which results in the safety functions to be
-	 * extracted <b>after</b> the {@link DeprecatedSystemModelAdapter} has been constructed.
-	 * <p>
-	 * This method updates the set of replicable components by removing those components that are
-	 * referenced by the safety function.
-	 */
-	// TODO: remove the enclosed cast. The difficulty is that the ISafetyFunctionAdapters are added
-	// from within the DSE where the system types are not known any more.
-	// It would be more appropriate to shift this addition before launching the DSE.
-	@SuppressWarnings({"unchecked", "rawtypes"})
-	public void
-			addSafetyFunctionAdapters(Collection<ISafetyFunctionAdapter> safetyFunctionAdapters) {
-		if(safetyFunctionAdapters == null) {
-			return;
-		}
-		this.safetyFunctionAdapters
-				.addAll((Collection<? extends ISafetyFunctionAdapter<C>>)safetyFunctionAdapters);
-
-		for(ISafetyFunctionAdapter<?> sfAdapter : safetyFunctionAdapters) {
-			replicableComponents.removeAll(sfAdapter.getDiagnosticComponents());
-			replicableComponents.removeAll(sfAdapter.getRealizingComponents());
-			replicableComponents.remove(sfAdapter.getOutputComponent());
-		}
-	}
-
-	/**
-	 * Creates a map for the given collection of {@link TaskGraph}s which allows to identify the
-	 * {@link TaskGraph} that contains the given {@link ITaskAdapter} as a vertex.
-	 */
-	// TODO: Here, we know that the IDeployableCOmponentAdapters are constructed using Components.
-	// However, we should try to avoid the "SuppressWarnings".
-	@SuppressWarnings("unchecked")
-	private <T extends TaskGraph> Map<ITaskAdapter<C>, T>
-			registerTaskGraphsForComponents(Collection<T> graphs) {
-		Map<ITaskAdapter<C>, T> componentToGraphMap = new HashMap<ITaskAdapter<C>, T>();
-
-		for(T taskGraph : graphs) {
-			for(ITaskAdapter<?> deployableComponent : taskGraph.getGraph().vertexSet()) {
-				componentToGraphMap.put((ITaskAdapter<C>)deployableComponent, taskGraph);
-			}
-		}
-
-		return componentToGraphMap;
-	}
-
-	/**
-	 * For a given collection of {@link TaskGraph}s this method removes all the {@link TaskGraph}s
-	 * from the given collection and the contained {@link ITaskAdapter}s from the set
-	 * of deployable components if the corresponding {@link TaskGraph} has a non-strictly positive
-	 * hyperperiod.
-	 */
-	private <T extends TaskGraph> void removeInvalidTaskGraphs(Collection<T> taskGraphs) {
-		Set<ITaskAdapter<?>> tasksToBeRemoved = new HashSet<ITaskAdapter<?>>();
-		Collection<T> graphsToBeRemoved = new HashSet<T>();
-		// for(T currentGraph : taskGraphs) {
-		// if(currentGraph.getPeriod() <= 0) {
-		// // No valid period specification: TaskGraph cannot be mapped.
-		// tasksToBeRemoved.addAll((currentGraph).getTasks());
-		// graphsToBeRemoved.add(currentGraph);
-		// System.out.println("No valid period specification: TaskGraph cannot be mapped.");
-		// System.out.println(currentGraph);
-		// }
-		// }
-
-		// TODO: Move these checks to a model validation framework
-		// Remove tasks with invalid specification
-		if(!tasksToBeRemoved.isEmpty()) {
-			System.out.println(
-					"The following deployable components are ignored during design exploration due to lack of timing annotations.");
-			System.out.println(
-					"Each deployable component must be annotated with delay (execution time) and the source commpoent must be annotated with a period!");
-			for(ITaskAdapter<?> deployableComponent : tasksToBeRemoved) {
-				System.out.print(deployableComponent.getName() + " , ");
-				deployableComponents.remove(deployableComponent);
-			}
-			for(T currentGraph : graphsToBeRemoved) {
-				taskGraphs.remove(currentGraph);
-			}
-			System.out.print("\n");
-		}
-
-	}
-
-	/**
-	 * Calculates and returns the hyperperiod of the set of all given {@link TaskGraph}s by
-	 * calculating the least common multiple from the hyperperiods of the {@link TaskGraph}s.
-	 */
-	private Double determineHyperPeriod(Collection<TaskGraph> allTaskGraphs) {
-		Set<Double> taskgraphPeriods = new TreeSet<Double>();
-		for(TaskGraph currentGraph : allTaskGraphs) {
-			Double period = currentGraph.getPeriod();
-			if(period != null && period > 0) {
-				taskgraphPeriods.add(period);
-			}
-		}
-
-		if(taskgraphPeriods.isEmpty()) {
-			return null;
-		}
-		return lcmDoubleCollection(taskgraphPeriods, GCD_PRECISION);
-	}
-
-	/**
-	 * Prints the given collection of {@link TaskGraph}s to the standard output and displays them in
-	 * a separate dialog.
-	 */
-	private <T extends TaskGraph> void printAndDisplayTaskGraphs(Collection<T> taskGraphs) {
-		for(T taskGraph : taskGraphs) {
-			System.out.println(
-					"Application " + taskGraph + ":" + " period = " + taskGraph.getPeriod());
-			System.out.println(taskGraph);
-			System.out.println("");
-
-			// Open a dialog for the visualization of the TaskGraph
-			taskGraph.display();
-		}
-	}
-
-	/**
-	 * Add edges to a {@link TaskGraph} that describe the data dependencies between the software
-	 * components of the logical {@link ComponentArchitecture}.
-	 * 
-	 * @throws Exception
-	 */
-	private void addDataDependenciesToTaskGraph(DefaultTaskGraph<?> taskGraph) throws Exception {
-
-		// TODO: Currently, top-level components are considered as deployable components (=tasks)
-		for(ISignalAdapter<?> channelAdapter : messages) {
-
-			ITaskAdapter<?> sourceDeployableComponent = channelAdapter.getSource();
-			Collection<ITaskAdapter<?>> targetDeployableComponents = channelAdapter.getTargets();
-
-			if(sourceDeployableComponent != null && !(targetDeployableComponents.isEmpty())) {
-				// taskGraph.addDataDependency(sourceDeployableComponent,
-				// targetDeployableComponents,
-				// channelAdapter);
-			}
-		}
-	}
-
-	/**
-	 * Creates the {@link PlatformCommunicationGraphEncoding} that is used to determine the routing
-	 * of
-	 * messages between {@link ITaskAdapter}s and their respective
-	 * {@link IExecutionUnitAdapter}s.
-	 */
-	protected void setupPlatformGraph() {
-		// platformCommunicationGraph = new PlatformCommunicationGraphEncoding(this, createGraph());
-	}
-
-	/**
-	 * Creates the communication (or connection) graph which is implicitly given by the platform
-	 * referenced in the {@link DeprecatedSystemModelAdapter}. This graph is used for routing
-	 * messages.
-	 */
-	public DirectedGraph<IResourceAdapter<?>, DefaultEdge> createGraph() {
-		DirectedGraph<IResourceAdapter<?>, DefaultEdge> tempPlatformCommGraph =
-				new DefaultDirectedGraph<IResourceAdapter<?>, DefaultEdge>(DefaultEdge.class);
-		DirectedGraph<IResourceAdapter<?>, DefaultEdge> platformGraph =
-				new DefaultDirectedGraph<IResourceAdapter<?>, DefaultEdge>(DefaultEdge.class);
-
-		// Add all resources present in the platform as vertices to the "connection graph"
-		for(IResourceAdapter<?> resource : getDeploymentTargets()) {
-			tempPlatformCommGraph.addVertex(resource);
-		}
-		for(IResourceAdapter<?> resource : getMemoryUnits()) {
-			tempPlatformCommGraph.addVertex(resource);
-		}
-		for(IResourceAdapter<?> resource : getGatewayUnits()) {
-			tempPlatformCommGraph.addVertex(resource);
-		}
-		for(IResourceAdapter<?> resource : getTransmissionUnits()) {
-			tempPlatformCommGraph.addVertex(resource);
-		}
-
-		// Successively connect the resources in the graph. The edges are given within the
-		// collection resource connectors are assumed to be fully connected.
-		for(IResourceConnectionAdapter connection : getDeploymentTargetConnectors()) {
-			// We add edges for each receiver in order to support broadcast connections
-			for(IResourceAdapter<?> currentReceiverResource : connection.getTargetResources()) {
-				// If the current resource is a child of a {@link TransmissionUnit} (like a NoC
-				// router), respect the direction of connections such that complex networks are
-				// correctly reflected.
-				if(connection
-						.getConnectionType(currentReceiverResource) == ConnectionType.OUTGOING) {
-					Graphs.addEdgeWithVertices(platformGraph, connection.getSourceResource(),
-							currentReceiverResource);
-				} else if(connection
-						.getConnectionType(currentReceiverResource) == ConnectionType.INCOMING) {
-					Graphs.addEdgeWithVertices(platformGraph, currentReceiverResource,
-							connection.getSourceResource());
-				} else {
-					// Add the edges of a single connection. We add to edges for each connection
-					// such that an undirected graph is generated effectively. It is required to use
-					// this "trick" in order to be able to use the standard shortest path
-					// algorithms.
-					Graphs.addEdgeWithVertices(platformGraph, connection.getSourceResource(),
-							currentReceiverResource);
-					Graphs.addEdgeWithVertices(platformGraph, currentReceiverResource,
-							connection.getSourceResource());
-				}
-			}
-		}
-
-		return platformGraph;
-	}
-
-	/**
-	 * Setups the {#link emittedMessagesBySender} map which makes it possible to easily identify the
-	 * {@link ISignalAdapter}s that are emitted by the given {@link ITaskAdapter}.
-	 */
-	protected void setupEmittedMessages() {
-		emittedMessagesBySender = new HashMap<ITaskAdapter<C>, Collection<ISignalAdapter<S>>>();
-
-		for(ITaskAdapter<C> currentSender : deployableComponents) {
-			Collection<ISignalAdapter<S>> emittedMessages = new ArrayList<ISignalAdapter<S>>();
-			for(ISignalAdapter<S> currentMessage : messages) {
-				if(currentSender == currentMessage.getSource()) {
-					emittedMessages.add(currentMessage);
-				}
-			}
-			emittedMessagesBySender.put(currentSender, emittedMessages);
-		}
-	}
-
-	/**
-	 * Returns the logical architecture that is associated with this
-	 * {@link DeprecatedSystemModelAdapter}.
-	 */
-	public ILogicalArchitectureAdapter<?> getLogicalArchitecture() {
-		return logicalArchitecture;
-	}
-
-	/**
-	 * Returns the platform architecture (Middleware/HW) that is associated with this
-	 * {@link DeprecatedSystemModelAdapter}.
-	 */
-	public IPlatformArchitectureAdapter<?> getPlatformArchitecture() {
-		return platformArchitecture;
-	}
-
-	/**
-	 * Returns the deployable (software) component from the original logical architecture. May
-	 * contain "abstract" {@link Component}s.
-	 */
-	public Collection<ITaskAdapter<C>> getDeployableComponents() {
-		return deployableComponents;
-	}
-
-	/**
-	 * Returns the deployable (software) component from the original logical architecture that my be
-	 * replicated. May contain "abstract" {@link Component}s.
-	 */
-	public Collection<ITaskAdapter<C>> getReplicableComponents() {
-		return replicableComponents;
-	}
-
-	/**
-	 * Returns the scheduleable (software) component from the original logical architecture. May
-	 * contain "abstract" {@link Component}s.
-	 */
-	public Collection<ITaskAdapter<C>> getScheduleableComponents() {
-		return schedulableComponents;
-	}
-
-	/**
-	 * Returns the deployable (software) components that can be actually executed on
-	 * {@link ExecutionUnit}s, i.e. software components that are backed by an implementation.
-	 */
-	public Collection<ITaskAdapter<C>> getRealizableDeployableComponents() {
-		return realizableDeployableComponents;
-	}
-
-	// TODO: Consider implementing this method as a map, since this operation is run often?
-	/**
-	 * Returns the {@link ITaskAdapter} that is constructed form the given object.
-	 * 
-	 * @param originalEObject
-	 *            The object for which the corresponding {@link ITaskAdapter} shall
-	 *            be identified.
-	 * @return The asociated {@link ITaskAdapter}, or {@code null} if none can be
-	 *         identified.
-	 */
-	public synchronized ITaskAdapter<C> getDeployableComponentOf(EObject originalEObject) {
-		// FIXME: HACK to work around the missing consideration of the Task Architecture ATM.
-		if(originalEObject instanceof Task) {
-			TaskArchitecture ta = (TaskArchitecture)((Task)originalEObject).getContainer();
-			Collection<Component> cCol = getAllocatedComponentsTo(ta, (Task)originalEObject);
-			originalEObject = cCol.iterator().next();
-		}
-
-		for(ITaskAdapter<C> deployableComponentAdapter : deployableComponents) {
-			if(deployableComponentAdapter.getObject() == originalEObject) {
-				return deployableComponentAdapter;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the {@link ITaskAdapter} that wraps the given {@link EObject}. Here,
-	 * only those {@link ITaskAdapter} are searched which can be actually executed on
-	 * {@link ExecutionUnit}s, i.e. "abstract" components are not considered.
-	 */
-	public synchronized ITaskAdapter<C>
-			getRealizeableDeployableComponentOf(EObject originalEObject) {
-		for(ITaskAdapter<C> deployableComponentAdapter : realizableDeployableComponents) {
-			if(deployableComponentAdapter.getObject() == originalEObject) {
-				return deployableComponentAdapter;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the {@link ISignalAdapter} corresponding the sender and receiver {@link Component}.
-	 * Returns null if no channel exists between the two given components.
-	 */
-	public synchronized ISignalAdapter<S> getChannelAdapter(ITaskAdapter<C> source,
-			ITaskAdapter<C> target) {
-		// TODO: Currently, top-level components are considered as deployable components (=tasks)
-		for(ISignalAdapter<S> currentChannel : messages) {
-			if(currentChannel.getSource() == source &&
-					currentChannel.getTargets().contains(target)) {
-				return currentChannel;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns the deployment targets, i.e. the execution units of the target platform,
-	 * where deployable software components will be mapped to.
-	 */
-	public Collection<IExecutionUnitAdapter<E>> getDeploymentTargets() {
-		return deploymentTargets;
-	}
-
-	/** Returns the {@link IMemoryUnitAdapter} present in the target platform. */
-	public Collection<IMemoryUnitAdapter<M>> getMemoryUnits() {
-		return memoryUnits;
-	}
-
-	/** Returns the gateway units present in the platform. */
-	public Collection<IGatewayUnitAdapter<G>> getGatewayUnits() {
-		return gatewayUnits;
-	}
-
-	/** Returns the systems TDMA arbitrated transmission unit */
-	public Collection<ITransmissionUnitAdapter<TR>> getTransmissionUnits() {
-		return transmissionUnits;
-	}
-
-	/** Returns all the {@link IResourceAdapter}s present in the platform. */
-	public Collection<IResourceAdapter<?>> getAvailableResources() {
-		return availableResources;
-	}
-
-	/**
-	 * Returns the hardware resource (e.g., processor core) onto which a virtual resource
-	 * (e.g. partition) is (statically) mapped.
-	 */
-	public IResourceAdapter<?> getHardwareResource(IResourceAdapter<?> virtualResource) {
-		return virtualResourceToHardwareResourceMap.get(virtualResource);
-	}
-
-	/**
-	 * Returns the {@link ISafetyFunctionAdapter}s constructed from the safety functions that are
-	 * present in the input models.
-	 */
-	public Collection<ISafetyFunctionAdapter<C>> getSafetyFunctionAdapters() {
-		if(safetyFunctionAdapters != null) {
-			return safetyFunctionAdapters;
-		}
-		return Collections.emptySet();
-	}
-
-	/**
-	 * Returns the {@link PlatformCommunicationGraphEncoding} required for routing of the messages
-	 * located
-	 * in different parts of the platform.
-	 */
-	public PlatformCommunicationGraphEncoding getPlatformCommunicationGraph() {
-		return platformCommunicationGraph;
-	}
-
-	/**
-	 * Returns the {@link TaskGraph}s of the demanded type that has been constructed by {@code this}
-	 * {@link DeprecatedSystemModelAdapter}, if any exists. Otherwise, an empty collection is
-	 * returned.
-	 */
-	@SuppressWarnings("unchecked")
-	public <T extends TaskGraph> Collection<T> getTaskGraphsByType(Class<T> tgType) {
-		if(DefaultTaskGraph.class.isAssignableFrom(tgType)) {
-			return (Collection<T>)getTaskGraphs();
-		} else if(AcyclicTaskGraph.class.isAssignableFrom(tgType)) {
-			return (Collection<T>)getAcyclicTaskGraphs();
-		}
-		return Collections.emptySet();
-	}
-
-	/**
-	 * Returns all independent {@link DefaultTaskGraph}s contained in this
-	 * {@link DeprecatedSystemModelAdapter}.
-	 */
-	public Collection<? extends TaskGraph> getTaskGraphs() {
-		return taskGraphs;
-	}
-
-	/**
-	 * Returns all independent {@link DefaultTaskGraph}s contained in this
-	 * {@link DeprecatedSystemModelAdapter}.
-	 */
-	public Collection<? extends TaskGraph> getAcyclicTaskGraphs() {
-		return acyclicTaskGraphs;
-	}
-
-	/**
-	 * Returns the {@link DefaultTaskGraph} in which a given deployable component (=task) is
-	 * contained.
-	 */
-	public TaskGraph getTaskGraph(ITaskAdapter<?> deployableComponent) {
-		return componentInGraph.get(deployableComponent);
-	}
-
-	/**
-	 * Returns the {@link DefaultTaskGraph} in which a given deployable component (=task) is
-	 * contained.
-	 */
-	public DefaultTaskGraph<?> getAcyclicTaskGraph(ITaskAdapter<?> deployableComponent) {
-		return componentInAcyclicGraph.get(deployableComponent);
-	}
-
-	/**
-	 * Returns the {@link ISignalAdapter}s "emitted" by the given
-	 * {@link ITaskAdapter}. Returns an empty collection if the given
-	 * {@link ITaskAdapter} does not emit anything.
-	 */
-	public Collection<ISignalAdapter<S>> getEmmittedMessages(ITaskAdapter<?> sender) {
-		// TODO: use another representation ro make an access via the reference obsolete
-		if(sender.isInstantiation()) {
-			sender = sender.getReplacedComponent();
-		}
-		// TODO: replace by map or similar.
-		ITaskAdapter<?> origSender = getDeployableComponentOf((EObject)sender.getObject());
-		return emittedMessagesBySender.get(origSender);
-	}
-
-	/**
-	 * Returns the hyper period of all tasks in the system, i.e. the hyper-period of all independent
-	 * {@link DefaultTaskGraph}s.
-	 */
-	public Double getHyperPeriod() {
-		return hyperPeriod;
-	}
-
-	/** Returns whether the given {@link Component} is a deployable {@link Component}. */
-	public boolean isDeployableComponent(Component component) {
-		return deployableComponentObjects.contains(component);
-	}
-
-	/** Returns the input output behavior of the given platform connector. */
-	public ConnectionType getConnectionType(Class<? extends IConnector> connector) {
-		return connectionTypeLUT.get(connector);
-	}
-
-	// ===============================================================
-	// To be removed / generalized
-	// ===============================================================
-
-	/**
-	 * <p>
-	 * Determines the effective target {@link IConnector}s of a given "source" {@link IConnector}.
-	 * Elements/{@link IConnector}s that are irrelevant to communication within the platform are not
-	 * added to the target list. Instead, the connectors that are accessible by the source
-	 * {@link IConnector} are traversed until relevant targets are identified, like
-	 * {@link ExecutionUnit}s selected for the deployment.
-	 * </p>
-	 * <p>
-	 * <b>NOTE:</b> This method may return targets that are not directly involved in the
-	 * communication between {@link ExecutionUnit}s. However, 'hull' elements (or similar elements)
-	 * that may "disturb" the communication between {@link ExecutionUnit}s will not appear.
-	 * </p>
-	 * <p>
-	 * <b>Implementation Note:</b> The <i>valid</i> targets are determined via path walk following
-	 * all connections from the source {@link IConnector} until <i>valid</i> targets are found.
-	 * </p>
-	 * 
-	 * @throws Exception
-	 *             if the references between the {@link IModelElement}s are incorrectly specified.
-	 */
-	protected Collection<IConnector> getEffectiveConnectionTargets(IConnector sourceConnector,
-			Collection<ExecutionUnit> af3DeploymentTargets) throws Exception {
-		Collection<IConnector> targetConnectors = new HashSet<IConnector>();
-		if(sourceConnector == null) {
-			return targetConnectors;
-		}
-
-		LinkedList<IConnector> possibleTargetConnectors = new LinkedList<IConnector>();
-		Collection<IConnector> visitedTargetConnectors = new HashSet<IConnector>();
-
-		possibleTargetConnectors.add(sourceConnector);
-		while(!possibleTargetConnectors.isEmpty()) {
-			IConnector nextTargetConnector = possibleTargetConnectors.poll();
-
-			// This section handles the traversal between the elements of the same platform
-			// architecture.
-			targetConnectors.addAll(
-					seekIntraPlatformTargetConnectors(sourceConnector, possibleTargetConnectors,
-							visitedTargetConnectors, nextTargetConnector, af3DeploymentTargets));
-
-			visitedTargetConnectors.add(nextTargetConnector);
-		}
-
-		return targetConnectors;
-	}
-
-	/**
-	 * Identifies those {@link IConnector}s that are actual target {@link IConnector}s of data sent
-	 * out by the given {@code sourceConnector}. This methos is needed as in a
-	 * {@link PlatformArchitecture}, there exist {@link IConnector}s which are attached to container
-	 * elements that are not backed by physical interface ports (These are represented by the
-	 * contained elements).
-	 * 
-	 * @param sourceConnector
-	 *            Source {@link IConnector} for which the target {@link IConnector}s need to be
-	 *            identified.
-	 * @param possibleTargetConnectors
-	 *            List to which those {@link IConnector}s are added that are directly connected to
-	 *            the {@code sourceConnector} but are no "communication targets" as described above
-	 *            an need further traversal.
-	 * @param visitedTargetConnectors
-	 *            Set of already traversed connectors (to avoid loops).
-	 * @param nextTargetConnector
-	 *            Current {@link IConnector} whose target {@link IConnector}s need to be searched.
-	 * @param deploymentTargets
-	 *            Set of execution units present on the target platform.
-	 * @return Collection of {@link IConnector}s that are actual target {@link IConnector}s of the
-	 *         {@code sourceConnector}.
-	 */
-	@Deprecated
-	protected Collection<IConnector> seekIntraPlatformTargetConnectors(IConnector sourceConnector,
-			LinkedList<IConnector> possibleTargetConnectors,
-			Collection<IConnector> visitedTargetConnectors, IConnector nextTargetConnector,
-			Collection<ExecutionUnit> deploymentTargets) {
-		Collection<IConnector> targetConnectors = new ArrayList<IConnector>();
-
-		Collection<IConnection> attachedConnections = new ArrayList<IConnection>();
-		attachedConnections.addAll(nextTargetConnector.getOutgoing());
-		attachedConnections.addAll(nextTargetConnector.getIncoming());
-
-		for(IConnection connToTarget : attachedConnections) {
-			IConnector connectorTgt = null;
-			IConnector connectorSrc = null;
-			if(connToTarget.getTarget().getOwner() != nextTargetConnector.getOwner()) {
-				connectorTgt = connToTarget.getTarget();
-				connectorSrc = connToTarget.getSource();
-			}
-			if(connToTarget.getSource().getOwner() != nextTargetConnector.getOwner()) {
-				connectorTgt = connToTarget.getSource();
-				connectorSrc = connToTarget.getTarget();
-			}
-			if(connectorTgt == null || connectorSrc == null) {
-				throw new RuntimeException(
-						"Error: \"floating\" connection found during transformation for the DSE.");
-			}
-
-			IHierarchicElement tgtElement = connectorTgt.getOwner();
-			// Do not traverse back (to same connector) & not to the same IHierarchicElement.
-			if(!visitedTargetConnectors.contains(connectorTgt) &&
-					tgtElement != sourceConnector.getOwner()) {
-				if(tgtElement instanceof IPlatformArchitectureElement && isValidConnectionTarget(
-						(IPlatformArchitectureElement)tgtElement, deploymentTargets)) {
-					targetConnectors.add(connectorTgt);
-				} else if(tgtElement == connectorSrc.getOwner().getContainer() &&
-						!(nextTargetConnector instanceof IPlatformExport)) {
-					// Treatment of hull ports: Do not walk a path that would just traverse a 'hull'
-					// port. Hence, just consider the ports to the "outside" (upper level).
-					for(IConnection currConn : connectorTgt.getOutgoing()) {
-						IConnector currTgtConnector = currConn.getTarget();
-						if(currTgtConnector.getOwner().getContainer() != tgtElement) {
-							if(tgtElement instanceof IPlatformArchitectureElement &&
-									isValidConnectionTarget(
-											(IPlatformArchitectureElement)currTgtConnector
-													.getOwner(),
-											deploymentTargets)) {
-								targetConnectors.add(currTgtConnector);
-							} else {
-								possibleTargetConnectors.add(currTgtConnector);
-							}
-						}
-					}
-					for(IConnection currConn : connectorTgt.getIncoming()) {
-						IConnector currTgtConnector = currConn.getSource();
-						if(currTgtConnector.getOwner().getContainer() != tgtElement) {
-							if(tgtElement instanceof IPlatformArchitectureElement &&
-									isValidConnectionTarget(
-											(IPlatformArchitectureElement)currTgtConnector
-													.getOwner(),
-											deploymentTargets)) {
-								targetConnectors.add(currTgtConnector);
-							} else {
-								possibleTargetConnectors.add(currTgtConnector);
-							}
-						}
-					}
-
-					visitedTargetConnectors.add(connectorTgt);
-				} else {
-					possibleTargetConnectors.add(connectorTgt);
-				}
-			}
-		}
-
-		return targetConnectors;
-	}
-
-	/**
-	 * Determines those {@link IConnector}s (in a different {@link PlatformArchitecture} than the
-	 * {@code sourceConnector}) that establish a link between between two elements of different
-	 * {@link PlatformArchitecture}s and which are connected by a {@link ResourceLink}.
-	 * This method is agnostic of the "direction" of the {@link ResourceLink}, i.e. it does not
-	 * matter whether the {@code sourceConnector} is attached to an
-	 * {@link IPlatformArchitectureElement} to which the {@link ResourceLink} is annotated or is
-	 * referenced by virtual link.
-	 * <p>
-	 * <b>NOTE:</b> The current implementation assumes that there exist only n:1 links between
-	 * {@link IModelElement}s that establish a "communication path" between different platforms
-	 * (virtual -> physical).
-	 * 
-	 * @param sourceConnector
-	 *            {@link IConnector} for which the target {@link IConnector}s in another platform
-	 *            have to be identified.
-	 * @param invElementReferences
-	 *            Map representing all 1:1 inverse {@link ResourceLink}s.
-	 * @param possibleTargetConnectors
-	 *            List of {@link IConnector}s to which those {@link IConnector}s are added that are
-	 *            located in referenced {@link PlatformArchitecture} but need to be traversed
-	 *            further such that valid "communication targets" are identified.
-	 * @param deploymentTargets
-	 *            Set of execution units present on the target platform.
-	 * @return List of {@link IConnector}s that a message actually traverses when being sent by the
-	 *         {@code sourceConnector}.
-	 * @throws Exception
-	 *             if the references between the {@link IModelElement}s are incorrectly specified.
-	 */
-	// TODO: Throw appropriate Exceptions on failure, i.e. wrong types of referenced elements etc.
-	protected Collection<IConnector> seekInterPlatformConnectors(IConnector sourceConnector,
-			Map<IModelElement, IModelElement> invElementReferences,
-			LinkedList<IConnector> possibleTargetConnectors,
-			Collection<ExecutionUnit> deploymentTargets) throws Exception {
-		Collection<IConnector> identifiedTargets = new ArrayList<IConnector>();
-
-		if(connectsSwHwPlatform(sourceConnector)) {
-			// Special treatment for the connection between the virtual
-			// platform and the physical platform.
-			IPlatformArchitectureElement referencingElement =
-					(IPlatformArchitectureElement)sourceConnector.getOwner();
-			EList<IPlatformArchitectureElement> referencedElements =
-					PlatformArchitectureUtils.getReferencedElementsWithType(referencingElement,
-							IPlatformArchitectureElement.class);
-			if(referencedElements.size() == 0) {
-				throw new Exception(
-						"No Network Interface is referenced in the ResourceLink annotation of " +
-								referencingElement.getName() +
-								". Please specify at least one reference.");
-			}
-
-			for(IPlatformArchitectureElement currRefElem : referencedElements) {
-				if(sourceConnector.getOwner() instanceof IPlatformArchitectureElement &&
-						isValidConnectionTarget(
-								(IPlatformArchitectureElement)sourceConnector.getOwner(),
-								deploymentTargets)) {
-					identifiedTargets.add(pickFirstInstanceOf(IPlatformExport.class,
-							currRefElem.getConnectors()));
-				} else {
-					possibleTargetConnectors.addAll(currRefElem.getPlatformConnectorUnits());
-				}
-			}
-		} else if(invElementReferences.get(sourceConnector.getOwner()) != null) {
-			// Special treatment for the connection between the physical platform
-			// and the virtual platform.
-			IModelElement referencedElement = invElementReferences.get(sourceConnector.getOwner());
-			assert (referencedElement instanceof IPlatformArchitectureElement) : "A non-platform model element has been referenced.";
-			IPlatformArchitectureElement referencedPlatformElement =
-					(IPlatformArchitectureElement)referencedElement;
-			IPlatformExport driverExport = pickFirstInstanceOf(IPlatformExport.class,
-					referencedPlatformElement.getConnectors());
-
-			if(driverExport.getOwner() instanceof IPlatformArchitectureElement &&
-					isValidConnectionTarget((IPlatformArchitectureElement)driverExport.getOwner(),
-							deploymentTargets)) {
-				identifiedTargets.add(driverExport);
-			} else {
-				// TODO: dead code path? Is not called for any recent model.
-				possibleTargetConnectors
-						.addAll(referencedPlatformElement.getPlatformConnectorUnits());
-			}
-		}
-
-		return identifiedTargets;
-	}
-
-	/**
-	 * Determines whether the given connector (or its containing element) is used to establish a
-	 * connection between separate {@link PlatformArchitecture}s. This method is capable of
-	 * identifying connections between different {@link PlatformArchitecture} even if the links are
-	 * defined only for the elements of {@link PlatformArchitecture}. This feature requires a map
-	 * that tracks the link between the referenced elements and the elements containing the link.
-	 * 
-	 * @param connector
-	 *            {@link IConnection} to be examined for its role of connecting different
-	 *            {@link PlatformArchitecture}s.
-	 * @param invNetDriverRef
-	 *            Map tracking the inverse link of inter-{@link PlatformArchitecture} links.
-	 * @return Flag, if the given connector (or its containing {@link IModelElement}) connects model
-	 *         elements form different {@link PlatformArchitecture}s.
-	 */
-	@Deprecated
-	protected boolean connectsSwHwPlatform(IConnector connector,
-			Map<IModelElement, IModelElement> invNetDriverRef) {
-		if(!connectsSwHwPlatform(connector)) {
-			if(connector != null) {
-				IHierarchicElement parent = connector.getOwner();
-				// Second: physical counter part of inter-platform connection.
-				// if(platformInterconnectTypes != null &&
-				// platformInterconnectTypes.getSecond().isAssignableFrom(parent.getClass()) &&
-				// invNetDriverRef.get(parent) != null) {
-				// return true;
-				// }
-			}
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * Determines whether the given connector is used to establish a connection between separate
-	 * {@link PlatformArchitecture}s.
-	 * <p>
-	 * <b>NOTE:</b> This method only works correctly if the given {@link IConnector} is attached to
-	 * a {@link IModelElement} that has an explicit reference to an {@link IModelElement} of another
-	 * {@link PlatformArchitecture}. Otherwise, use {#link connectsSwHwPlatform(IConnector,
-	 * Map<NetworkInterface, OnChipNetworkDriver>)}.
-	 */
-	protected boolean connectsSwHwPlatform(IConnector connector) {
-		// if(connector instanceof IPlatformExport && platformInterconnectTypes.getFirst()
-		// .isAssignableFrom(connector.getOwner().getClass())) {
-		// return true;
-		// }
-		return false;
-	}
-
-	/**
-	 * Returns whether the given {@link IHierarchicElement} is a valid connection end-point. These
-	 * end-points are either {@link ExecutionUnit}s selected as deployment targets for
-	 * {@link Component}s or {@link IPlatformCommunicationResource}s whose internal structure is not
-	 * modeled.
-	 */
-	protected boolean isValidConnectionTarget(IPlatformArchitectureElement element,
-			Collection<ExecutionUnit> deploymentTargets) {
-		if(element instanceof IPlatformResource && deploymentTargets.contains(element)) {
-			return true;
-		} else if(element instanceof IPlatformCommunicationResource &&
-				element.getContainedElements().isEmpty()) {
-			return true;
-		}
-		return false;
-	}
-
-	/** Returns the fault containment region specified for the target platform. */
-	public Class<? extends IPlatformResource> getFaultContainmentRegion() {
-		return faultContainmentRegion;
-	}
-
-	/** Returns deploymentTargetConnectors. */
-	public Collection<IResourceConnectionAdapter> getDeploymentTargetConnectors() {
-		return deploymentTargetConnectors;
-	}
-
-	/** Sets deploymentTargetConnectors. */
-	public void setDeploymentTargetConnectors(
-			Collection<IResourceConnectionAdapter> deploymentTargetConnectors) {
-		this.deploymentTargetConnectors = deploymentTargetConnectors;
-	}
-}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/ISafetyFunctionAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/ISafetyFunctionAdapter.java
index 4013b99415482ade72eca11682c57564fa150ec6..503745b2c45c19995f37b10e8d640aeca06d5154 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/ISafetyFunctionAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/ISafetyFunctionAdapter.java
@@ -30,7 +30,7 @@ public interface ISafetyFunctionAdapter<T> {
 	 * Initialization routine for externally contributed adapters that are created before the
 	 * {@link SystemModelAdapter} of the DSE.
 	 */
-	void initializeAdapter(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter);
+	void initializeAdapter(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter);
 
 	/**
 	 * Returns the collection of {@link ITaskAdapter}s that are realizing the safety
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/ISignalAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/ISignalAdapter.java
index 51ba90cc4c571d9699cdf41fa59f8728a0c4367f..a576d906bd4de73ee42c0a88f8c7f65777caf3ea 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/ISignalAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/ISignalAdapter.java
@@ -25,7 +25,7 @@ import org.fortiss.af3.exploration.backend.IDseInputContainer.SignalType;
  * 
  * @author barner
  */
-public interface ISignalAdapter<T> extends IRequestAdapter<T> {
+public interface ISignalAdapter<S, T> extends IRequestAdapter<S> {
 
 	/** Returns the source component of this {@link ISignalAdapter}. */
 	ITaskAdapter<?> getSource();
@@ -33,6 +33,9 @@ public interface ISignalAdapter<T> extends IRequestAdapter<T> {
 	/** Returns the collection of target components of this {@link ISignalAdapter}. */
 	Collection<ITaskAdapter<?>> getTargets();
 
+	/** Returns the target ports of the input models. */
+	Collection<T> getTargetPorts();
+
 	/**
 	 * Returns the size of the message sent via this {@link ISignalAdapter} if it was deployed onto
 	 * the given {@link ICommunicationResourceAdapter}.
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/SystemModelAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/SystemModelAdapter.java
index 1c878ff45a84484d98725d3dec77cb48604ba6d7..def49c10acf8e4812e41193d24b1cc78ca25ba1b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/SystemModelAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/SystemModelAdapter.java
@@ -38,8 +38,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph.Abst
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceConnectionAdapter.ConnectionType;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.AcyclicTaskGraph;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.ChannelAdapterWeightedEdge;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.DefaultTaskGraph;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.SignalAdapterWeightedEdge;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 import org.fortiss.af3.exploration.alg.exception.InvalidTimingModelException;
 import org.fortiss.af3.exploration.alg.guava.MutableSubClassToInstanceMap;
@@ -61,12 +61,15 @@ import org.jgrapht.alg.ConnectivityInspector;
 import org.jgrapht.graph.DefaultDirectedGraph;
 import org.jgrapht.graph.DefaultEdge;
 
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.Multimap;
+
 /**
  * Adapter to the system model used as input for the DSE which is created for a specific DSE run.
  * 
  * @author barner, huang
  */
-public class SystemModelAdapter<C, E, S, G, TR, M> {
+public class SystemModelAdapter<C, E, SO, SI, G, TR, M> {
 
 	/**
 	 * Constant defining the allowed tolerance for the calculation of the greatest common divisor
@@ -93,7 +96,7 @@ public class SystemModelAdapter<C, E, S, G, TR, M> {
 	protected Collection<C> taskObjects;
 
 	/** Collection of signals exchanged between tasks. */
-	protected Collection<ISignalAdapter<S>> signals;
+	protected Collection<ISignalAdapter<SO, SI>> signals;
 
 	/**
 	 * Look up table to determine the input/output directions of {@link IConnector} types of the
@@ -174,7 +177,8 @@ public class SystemModelAdapter<C, E, S, G, TR, M> {
 	protected Collection<AcyclicTaskGraph> acyclicTaskGraphs;
 
 	/** The "messages" emitted by the sender {@link ITaskAdapter}. */
-	protected Map<ITaskAdapter<C>, Collection<ISignalAdapter<S>>> emittedMessagesBySender;
+	protected Multimap<ITaskAdapter<C>, ISignalAdapter<SO, ?>> emittedMessagesBySender =
+			HashMultimap.create();
 
 	/** Hyper-period of independent tasks graphs */
 	protected Double hyperPeriod;
@@ -294,7 +298,7 @@ public class SystemModelAdapter<C, E, S, G, TR, M> {
 		DefaultTaskGraph<?> temporaryTaskGraph = new DefaultTaskGraph<>();
 		// TODO: Use generics in the task graph
 		temporaryTaskGraph.addAllTask((Collection<ITaskAdapter<?>>)(Collection<?>)tasks);
-		temporaryTaskGraph.addAllSignals((Collection<ISignalAdapter<?>>)(Collection<?>)signals);
+		temporaryTaskGraph.addAllSignals((Collection<ISignalAdapter<?, ?>>)(Collection<?>)signals);
 
 		temporaryTaskGraph.display();
 
@@ -334,15 +338,15 @@ public class SystemModelAdapter<C, E, S, G, TR, M> {
 			throws InvalidTimingModelException {
 		Collection<TaskGraph> independentTaskGraphs = new ArrayList<>();
 		// Compute vertex sets of maximum connected components of temporary task graph
-		ConnectivityInspector<ITaskAdapter<?>, ChannelAdapterWeightedEdge> ci =
-				new ConnectivityInspector<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(
+		ConnectivityInspector<ITaskAdapter<?>, SignalAdapterWeightedEdge> ci =
+				new ConnectivityInspector<ITaskAdapter<?>, SignalAdapterWeightedEdge>(
 						monolithicTaskGraph.getDelegateGraph());
 		List<Set<ITaskAdapter<?>>> connectedSets = ci.connectedSets();
 		// Reconstruct TaskGraphs from vertex sets of connected components
 		for(Set<ITaskAdapter<?>> connectedSet : connectedSets) {
 			TaskGraph taskGraph = new DefaultTaskGraph<>();
 			Graphs.addAllVertices(taskGraph.getGraph(), connectedSet);
-			for(ISignalAdapter<?> signal : signals) {
+			for(ISignalAdapter<?, ?> signal : signals) {
 				if(connectedSet.contains(signal.getSource())) {
 					taskGraph.addSignal(signal);
 				}
@@ -509,16 +513,12 @@ public class SystemModelAdapter<C, E, S, G, TR, M> {
 	 * {@link ISignalAdapter}s that are emitted by the given {@link ITaskAdapter}.
 	 */
 	protected void setupEmittedMessages() {
-		emittedMessagesBySender = new HashMap<ITaskAdapter<C>, Collection<ISignalAdapter<S>>>();
-
 		for(ITaskAdapter<C> currentSender : tasks) {
-			Collection<ISignalAdapter<S>> emittedMessages = new ArrayList<ISignalAdapter<S>>();
-			for(ISignalAdapter<S> currentMessage : signals) {
-				if(currentSender == currentMessage.getSource()) {
-					emittedMessages.add(currentMessage);
+			for(ISignalAdapter<SO, ?> sig : signals) {
+				if(currentSender == sig.getSource()) {
+					emittedMessagesBySender.put(currentSender, sig);
 				}
 			}
-			emittedMessagesBySender.put(currentSender, emittedMessages);
 		}
 	}
 
@@ -605,16 +605,13 @@ public class SystemModelAdapter<C, E, S, G, TR, M> {
 	 * Returns the {@link ISignalAdapter} corresponding the sender and receiver {@link Component}.
 	 * Returns null if no channel exists between the two given components.
 	 */
-	public synchronized ISignalAdapter<S> getChannelAdapter(ITaskAdapter<C> source,
+	public synchronized ISignalAdapter<SO, ?> getSignalAdapter(ITaskAdapter<C> source,
 			ITaskAdapter<C> target) {
-		// TODO: Currently, top-level components are considered as deployable components (=tasks)
-		for(ISignalAdapter<S> currentChannel : signals) {
-			if(currentChannel.getSource() == source &&
-					currentChannel.getTargets().contains(target)) {
-				return currentChannel;
+		for(ISignalAdapter<SO, ?> sig : signals) {
+			if(sig.getSource() == source && sig.getTargets().contains(target)) {
+				return sig;
 			}
 		}
-
 		return null;
 	}
 
@@ -725,13 +722,13 @@ public class SystemModelAdapter<C, E, S, G, TR, M> {
 	 * {@link ITaskAdapter}. Returns an empty collection if the given
 	 * {@link ITaskAdapter} does not emit anything.
 	 */
-	public Collection<ISignalAdapter<S>> getEmmittedMessages(ITaskAdapter<?> sender) {
+	public Collection<ISignalAdapter<SO, ?>> getEmmittedMessages(ITaskAdapter<?> sender) {
 		// TODO: use another representation ro make an access via the reference obsolete
 		if(sender.isInstantiation()) {
 			sender = sender.getReplacedComponent();
 		}
 		// TODO: replace by map or similar.
-		ITaskAdapter<?> origSender = getDeployableComponentOf((EObject)sender.getObject());
+		ITaskAdapter<C> origSender = getDeployableComponentOf((EObject)sender.getObject());
 		return emittedMessagesBySender.get(origSender);
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/.ratings
index 9db5d44071f2d9c8b287fddf0c161ef0a1d559d2..b59352373134ef6179c0493688284053d5de937d 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/.ratings
@@ -1,13 +1,13 @@
-AF3ExecutionUnitAdapter.java bc68d73a77512eb6695b663f3e84c24696df447e RED
-AF3GatewayAdapter.java f61ab5ff2fa58f561ea6720ba1add06c0d1f437e RED
+AF3ExecutionUnitAdapter.java fcc78cb56ae62cc56e2d2985d3586296a226c7b6 RED
+AF3GatewayAdapter.java 4a9d8c3d10c3c92867caea37bbce199b9e634741 RED
 AF3LogicalArchitectureAdapter.java b129b15fefcd1864df1d2584f2ca0820ef6600c4 RED
-AF3MemoryUnitAdapter.java 4737c88556ab6274f19c8b31196870063e800b9d RED
+AF3MemoryUnitAdapter.java f4846d229dedc3b2b8e023204d0101e2a8c1c0c2 RED
 AF3ModelElementAdapter.java 9266176a61425e1af8efd4ea37856d67c93dbddb RED
-AF3PlatformArchitectureAdapter.java 1d4acb95db3042cdbbc43484687e935124df2114 RED
-AF3RequestAdapter.java 8b551cf83401d93705d0527184a961ea8244daa3 RED
-AF3ResourceAdapter.java f20b7da41445acadc3d3cc5b662a993ecbaed47a RED
-AF3ResourceConnectionAdapter.java b0804eb7d4a2b36065d45bfd90ad548ca7e6c0f8 RED
-AF3SignalAdapter.java c636c07318ba0f166b35cbf3d45f3b5ec2868e0e RED
-AF3SystemModelAdapter.java 8ddfaa7c415a231ad7bff6194c7f075baecaab34 RED
-AF3TaskAdapter.java 5b1a6389970bad5feee7ace642d550ec208e1602 RED
-AF3TransmissionUnitAdapter.java f50b20ebf32bed0a7c28d317ef300317ad1198cc RED
+AF3PlatformArchitectureAdapter.java fb657d182999dc73eed16c0adc57c5876c8104b9 RED
+AF3RequestAdapter.java 7cfea424beeacaac81b48efd4e1c24270dcb3929 RED
+AF3ResourceAdapter.java 00070d4e3ec7f19a672b6295c546fa1d30d7fc50 RED
+AF3ResourceConnectionAdapter.java 0e791fd7d9602f4cf00f54c6254d31f1c9cc72b0 RED
+AF3SignalAdapter.java 9ef141f12e93b851192d1e8cb0c2f68102afec8c RED
+AF3SystemModelAdapter.java 6ecf47e813341aa68f049a8cdec77782b98c2a96 RED
+AF3TaskAdapter.java a3cfe04d7b235cc61031c5477de2cb54ac810aac RED
+AF3TransmissionUnitAdapter.java 0ce1a08c29d75a05fb49668d02abddd852487a4c RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ExecutionUnitAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ExecutionUnitAdapter.java
index 23c379228cd62ffc19e355d3ee3677573a7b0516..e0a7927c59a16a7f73fe21c4e34267dfede20e02 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ExecutionUnitAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ExecutionUnitAdapter.java
@@ -15,8 +15,9 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.sysmodel.arch.af3;
 
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
+import org.fortiss.af3.exploration.alg.exception.InvalidModelException;
 import org.fortiss.af3.platform.model.ExecutionUnit;
 
 /**
@@ -30,14 +31,10 @@ public class AF3ExecutionUnitAdapter extends AF3ResourceAdapter<ExecutionUnit>
 	/**
 	 * Creates a {@link IExecutionUnitAdapter} for an {@link ExecutionUnit}.
 	 * 
-	 * @param executionUnit
-	 *            execution unit model element.
-	 * @param failureProb
-	 *            failure probability of the given {@link ExecutionUnit}.
-	 * @throws Exception
+	 * @throws InvalidModelException
+	 *             if a required annotation cannot be found.
 	 */
-	public AF3ExecutionUnitAdapter(ExecutionUnit executionUnit, Double failureProb)
-			throws Exception {
-		super(executionUnit, failureProb);
+	public AF3ExecutionUnitAdapter(ExecutionUnit executionUnit) throws InvalidModelException {
+		super(executionUnit);
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3GatewayAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3GatewayAdapter.java
index 7cc21dc91ac15af1f3b8074f07df057884412d3c..cbfca3b46722cd0e01fa90ffffc4664da369019f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3GatewayAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3GatewayAdapter.java
@@ -15,15 +15,11 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.sysmodel.arch.af3;
 
-import static org.fortiss.tooling.base.utils.AnnotationUtils.getAnnotation;
-
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IGatewayUnitAdapter;
-import org.fortiss.af3.exploration.alg.exception.InvalidPlatformModelException;
+import org.fortiss.af3.exploration.alg.exception.InvalidModelException;
 import org.fortiss.af3.platform.model.ExecutionUnit;
 import org.fortiss.af3.platform.model.GatewayUnit;
-import org.fortiss.af3.platform.model.IVirtualizationPlatformArchitectureElement;
-import org.fortiss.af3.platform.model.annotation.ResourceLink;
 
 /**
  * Adapter between the AF3 {@link GatewayUnit} and the DSE.
@@ -41,32 +37,11 @@ public class AF3GatewayAdapter extends AF3ResourceAdapter<GatewayUnit>
 	 * 
 	 * @param gatewayUnit
 	 *            {@link GatewayUnit} to create an adapter for.
-	 * @param failureProb
-	 *            failure probability of the {@link GatewayUnit}.
-	 * @param power
-	 *            Power consumption of the Gateway.
-	 * 
-	 * @throws Exception
-	 *             if the {@link GatewayUnit} is part of the virtual platform (e.g., a driver) that
-	 *             cannot be associated with any hardware element.
+	 * @throws InvalidModelException
+	 *             if a required annotation cannot be found.
 	 */
-	public AF3GatewayAdapter(GatewayUnit gatewayUnit, Double failureProb, Double power)
-			throws Exception {
-		super(gatewayUnit, failureProb);
-		this.power = power;
-
-		if(gatewayUnit instanceof IVirtualizationPlatformArchitectureElement) {
-			ResourceLink resLink = getAnnotation(gatewayUnit, ResourceLink.class);
-			if(resLink == null) {
-				throw new InvalidPlatformModelException(gatewayUnit,
-						"No Resource Link annotation has been found: None is attached to this model element.");
-			}
-
-			if(resLink.getResources() != null && resLink.getResources().size() == 0) {
-				throw new InvalidPlatformModelException(gatewayUnit,
-						"One (or even more) gateway units must be referenced by an OnChipNetworkDriver in the Resource Link annotation. Each driver must be associated with at least one hardware element that is managed by the driver.");
-			}
-		}
+	public AF3GatewayAdapter(GatewayUnit gatewayUnit) throws InvalidModelException {
+		super(gatewayUnit);
 	}
 
 	/** {@inheritDoc} */
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3MemoryUnitAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3MemoryUnitAdapter.java
index ab710b5b8c660b457d1799a4d1c9b00b802a0cbc..4d896d2e564a5fd4d88aa00db5aa3a29d3966ad1 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3MemoryUnitAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3MemoryUnitAdapter.java
@@ -15,9 +15,10 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.sysmodel.arch.af3;
 
-import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickFirstInstanceOf;
+import static org.fortiss.af3.exploration.alg.util.AF3Utils.getAnnotationChecked;
 
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IMemoryUnitAdapter;
+import org.fortiss.af3.exploration.alg.exception.InvalidModelException;
 import org.fortiss.af3.platform.model.MemoryUnit;
 import org.fortiss.af3.platform.model.PlatformArchitecture;
 import org.fortiss.af3.platform.model.annotation.MemorySize;
@@ -38,21 +39,13 @@ public class AF3MemoryUnitAdapter extends AF3ResourceAdapter<MemoryUnit>
 	 * 
 	 * @param modelElement
 	 *            {@link MemoryUnit} from the target platform.
-	 * @param failureProb
-	 *            failure probability of the memory unit.
 	 * 
-	 * @throws Exception
-	 *             if the memory size specification is missing.
+	 * @throws InvalidModelException
+	 *             if a required annotation cannot be found.
 	 */
-	public AF3MemoryUnitAdapter(MemoryUnit modelElement, Double failureProb) throws Exception {
-		super(modelElement, failureProb);
-
-		memorySizeSpec = pickFirstInstanceOf(MemorySize.class, modelElement.getSpecifications());
-
-		if(memorySizeSpec == null) {
-			throw new Exception("The memory element " + modelElement +
-					" does not have a MemorySize annotation.");
-		}
+	public AF3MemoryUnitAdapter(MemoryUnit modelElement) throws InvalidModelException {
+		super(modelElement);
+		memorySizeSpec = getAnnotationChecked(modelElement, MemorySize.class);
 	}
 
 	/** {@inheritDoc} */
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3PlatformArchitectureAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3PlatformArchitectureAdapter.java
index 58d805ad5cde016d3e611c9dfbd0d79e4e9718fe..d5a5a7a88e7fca74d747d4e7720419265c38defe 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3PlatformArchitectureAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3PlatformArchitectureAdapter.java
@@ -25,7 +25,6 @@ import org.fortiss.af3.platform.model.PlatformArchitecture;
  */
 public class AF3PlatformArchitectureAdapter extends AF3ModelElementAdapter<PlatformArchitecture>
 		implements IPlatformArchitectureAdapter<PlatformArchitecture> {
-
 	/** Constructor. */
 	public AF3PlatformArchitectureAdapter(PlatformArchitecture platformArchitecture) {
 		super(platformArchitecture);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3RequestAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3RequestAdapter.java
index f1fd8c6a1a66a97f326c9e7ce921c30022011770..c859ff360212cdab994895ee84390a235922c3cf 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3RequestAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3RequestAdapter.java
@@ -23,9 +23,8 @@ import org.fortiss.tooling.base.model.element.IModelElement;
  * 
  * @author barner
  */
-public class AF3RequestAdapter<T extends IModelElement> extends AF3ModelElementAdapter<T> implements
-		IRequestAdapter<T> {
-
+public class AF3RequestAdapter<T extends IModelElement> extends AF3ModelElementAdapter<T>
+		implements IRequestAdapter<T> {
 	/** Creates a {@link IRequestAdapter}. */
 	public AF3RequestAdapter(T modelElement) {
 		super(modelElement);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ResourceAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ResourceAdapter.java
index 5ed7ec7a76b1653e85f90b14674785934fea13bd..ca6c78c2cffe0e7c2d28990138e309b851a192d7 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ResourceAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ResourceAdapter.java
@@ -15,8 +15,12 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.sysmodel.arch.af3;
 
+import static org.fortiss.af3.exploration.alg.util.AF3Utils.getAnnotationChecked;
+
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
+import org.fortiss.af3.exploration.alg.exception.InvalidModelException;
+import org.fortiss.af3.platform.hierarchic.model.annotation.FailureRate;
 import org.fortiss.af3.platform.model.ExecutionUnit;
 import org.fortiss.af3.platform.model.IVirtualizationPlatformArchitectureElement;
 import org.fortiss.tooling.base.model.element.IModelElement;
@@ -30,15 +34,19 @@ import org.fortiss.tooling.base.model.element.IModelElement;
 public class AF3ResourceAdapter<T extends IModelElement> extends AF3ModelElementAdapter<T>
 		implements IResourceAdapter<T> {
 	/** Failure rate annotation */
-	private Double failureRate;
+	protected Double failureRate = 0.0;
 
 	/**
-	 * Creates a {@link IExecutionUnitAdapter} for an {@link ExecutionUnit}.
+	 * Constructor. Creates an {@link IExecutionUnitAdapter} for an {@link ExecutionUnit}.
+	 * 
+	 * @throws InvalidModelException
+	 *             if a required annotation cannot be found.
 	 */
-	public AF3ResourceAdapter(T modelElement, Double failureRate) throws Exception {
+	public AF3ResourceAdapter(T modelElement) throws InvalidModelException {
 		super(modelElement);
-
-		this.failureRate = failureRate;
+		if(!isVirtual()) {
+			failureRate = getAnnotationChecked(getObject(), FailureRate.class).getFailureRate_FIT();
+		}
 	}
 
 	/** {@inheritDoc} */
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ResourceConnectionAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ResourceConnectionAdapter.java
index 4406f4f30e4b5d5137f7ba5a5c767298e3da6662..56a9eb31aa8a64702bf82b5c072ccdc3cd32bf53 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ResourceConnectionAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3ResourceConnectionAdapter.java
@@ -28,7 +28,6 @@ import org.fortiss.tooling.base.model.element.IConnection;
  * @author diewald
  */
 public class AF3ResourceConnectionAdapter implements IResourceConnectionAdapter {
-
 	/** The (actual) source element of an AF3 connection in the platform. */
 	IResourceAdapter<?> sourceResource;
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SignalAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SignalAdapter.java
index 6b0d549b22f839d55f40db5ed04ce04a2a408aeb..2cbd39d79e5bada9d6649efd9e29459f421a65b8 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SignalAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SignalAdapter.java
@@ -15,17 +15,18 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.sysmodel.arch.af3;
 
+import static org.fortiss.af3.exploration.alg.util.AF3Utils.getAnnotationChecked;
+
 import java.util.Collection;
 import java.util.Iterator;
 
 import org.fortiss.af3.component.model.Channel;
-import org.fortiss.af3.component.model.InputPort;
-import org.fortiss.af3.component.model.OutputPort;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISignalAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITransmissionUnitAdapter;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.comm.Message;
+import org.fortiss.af3.exploration.alg.exception.InvalidModelException;
 import org.fortiss.af3.exploration.backend.IDseInputContainer.SignalType;
+import org.fortiss.af3.platform.model.annotation.MessageSize;
 import org.fortiss.af3.task.model.TaskInputPort;
 import org.fortiss.af3.task.model.TaskOutputPort;
 
@@ -34,16 +35,14 @@ import org.fortiss.af3.task.model.TaskOutputPort;
  * 
  * @author barner
  */
-public class AF3SignalAdapter implements ISignalAdapter<TaskOutputPort> {
+public class AF3SignalAdapter extends AF3RequestAdapter<TaskOutputPort>
+		implements ISignalAdapter<TaskOutputPort, TaskInputPort> {
 	/** Conversion constant for the message size. */
 	private static final long MBYTES_TO_BYTES = 1000 * 1000;
 
 	/** Message's source component */
 	private ITaskAdapter<?> source;
 
-	/** Message's source component */
-	private TaskOutputPort sourcePort;
-
 	/** Message's target component adapter */
 	private Collection<ITaskAdapter<?>> targets;
 
@@ -51,7 +50,7 @@ public class AF3SignalAdapter implements ISignalAdapter<TaskOutputPort> {
 	private Collection<TaskInputPort> targetPorts;
 
 	/** Message size annotation */
-	private long messageSize;
+	private int messageSize;
 
 	/**
 	 * Contains the {#link SignalType} of this {@link ISignalAdapter}. Defaults to {#link
@@ -62,22 +61,18 @@ public class AF3SignalAdapter implements ISignalAdapter<TaskOutputPort> {
 	/**
 	 * Creates an {@link ISignalAdapter} for an {@link Channel}.
 	 * 
-	 * @throws Exception
+	 * @throws InvalidModelException
+	 *             if a required annotation cannot be found.
 	 */
 	public AF3SignalAdapter(TaskOutputPort senderPort, ITaskAdapter<?> source,
 			Collection<TaskInputPort> targetPorts, Collection<ITaskAdapter<?>> targets)
-			throws Exception {
-		this.sourcePort = senderPort;
+			throws InvalidModelException {
+		super(senderPort);
 		this.source = source;
 		this.targets = targets;
 		this.targetPorts = targetPorts;
 
-		// TODO: reinclude the message size, i.e. data size of the signal
-		// if(messageSize != null) {
-		// this.messageSize = messageSize;
-		// } else {
-		// throw new Exception("Port " + senderPort + " does not have a message size annotation.");
-		// }
+		messageSize = getAnnotationChecked(senderPort, MessageSize.class).getMaxMessageSizeBytes();
 
 		signalType = SignalType.PERIODIC;
 	}
@@ -88,33 +83,14 @@ public class AF3SignalAdapter implements ISignalAdapter<TaskOutputPort> {
 		return source;
 	}
 
-	/**
-	 * Adds a target to the target list of the channel adapter. Compatibility layer for AF3 /wo
-	 * multicast patch.
-	 */
-	public void addTarget(ITaskAdapter<?> target) {
-		targets.add(target);
-	}
-
 	/** {@inheritDoc} */
 	@Override
 	public Collection<ITaskAdapter<?>> getTargets() {
-		// TODO: use another representation ro make an access via the reference obsolete
 		return targets;
 	}
 
-	/**
-	 * Returns the AF3 {@link OutputPort} that is responsible for emitting the {@link Message} (if
-	 * required).
-	 */
-	public TaskOutputPort getSenderPort() {
-		// Known by construction.
-		return getObject();
-	}
-
-	/**
-	 * Returns the AF3 {@link InputPort} that is that receives the {@link Message} (if required).
-	 */
+	/** {@inheritDoc} */
+	@Override
 	public Collection<TaskInputPort> getTargetPorts() {
 		return targetPorts;
 	}
@@ -157,10 +133,4 @@ public class AF3SignalAdapter implements ISignalAdapter<TaskOutputPort> {
 	public SignalType getSignalType() {
 		return signalType;
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public TaskOutputPort getObject() {
-		return sourcePort;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java
index a9166087660fef903c43e5a0d70b071f9a9a12c8..08d7f655744392ef6bd966aed4073ad2a732a11e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java
@@ -38,7 +38,6 @@ import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.Set;
 
-import org.conqat.lib.commons.collections.Pair;
 import org.fortiss.af3.component.model.Component;
 import org.fortiss.af3.component.model.ComponentArchitecture;
 import org.fortiss.af3.component.model.OutputPort;
@@ -53,7 +52,6 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceConnectionAdap
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISignalAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITransmissionUnitAdapter;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.InternalComponentParameters;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.af3.helper.AF3DeploymentParameterMapAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
@@ -86,7 +84,7 @@ import com.google.common.collect.Multimap;
  * @author diewald
  */
 public class AF3SystemModelAdapter extends
-		SystemModelAdapter<Task, ExecutionUnit, TaskOutputPort, GatewayUnit, TransmissionUnit, MemoryUnit> {
+		SystemModelAdapter<Task, ExecutionUnit, TaskOutputPort, TaskInputPort, GatewayUnit, TransmissionUnit, MemoryUnit> {
 
 	/**
 	 * References the {@link AF3DeploymentParameterMapAdapter} providing access to the deployment
@@ -207,29 +205,12 @@ public class AF3SystemModelAdapter extends
 	 * 
 	 * @throws Exception
 	 */
-	// TODO(#3262): Periods, Replication bounds.
 	private Collection<ITaskAdapter<Task>> createTaskAdapters(
 			Multimap<Task, ITaskAdapter<Task>> componentReplacementAdapters) throws Exception {
 		Collection<ITaskAdapter<Task>> rval = new HashSet<>();
-
-		Map<Task, InternalComponentParameters> internalParameterMap =
-				createInternalParameterMaps(taskObjects);
-
 		for(Task currentTask : taskObjects) {
-			Double period = 10.0;
-			// No replication for the porting time.
-			Pair<Integer, Integer> replicationBounds = new Pair<>(1, 1);
-			// componentReplicationBounds.get(currentComponent);
-			if(replicationBounds == null || replicationBounds.getFirst() == null ||
-					replicationBounds.getSecond() == null) {
-				throw new Exception("The replication bounds for the task " + currentTask +
-						" have not been defined properly.");
-			}
-
-			rval.add(new AF3TaskAdapter(currentTask, internalParameterMap,
-					replicationBounds.getFirst(), replicationBounds.getSecond(), period));
+			rval.add(new AF3TaskAdapter(currentTask));
 		}
-
 		return rval;
 	}
 
@@ -261,11 +242,11 @@ public class AF3SystemModelAdapter extends
 	 * 
 	 * @throws Exception
 	 */
-	private Collection<ISignalAdapter<TaskOutputPort>>
+	private Collection<ISignalAdapter<TaskOutputPort, TaskInputPort>>
 			createSignalAdapters(SuperSet<Signal> signals) throws Exception {
 		// TODO: We could also use the signals directly, but that affects the rest of the DSE. Thus
 		// this change needs to be considered thoroughly and requires (maybe) large changes.
-		Collection<ISignalAdapter<TaskOutputPort>> rval = new ArrayList<>();
+		Collection<ISignalAdapter<TaskOutputPort, TaskInputPort>> rval = new ArrayList<>();
 		Multimap<TaskOutputPort, TaskInputPort> outputPorts = HashMultimap.create();
 
 		for(Signal sig : signals.getEntries()) {
@@ -284,38 +265,6 @@ public class AF3SystemModelAdapter extends
 		return rval;
 	}
 
-	/**
-	 * Collects the deployment-specific parameters (namely the WCET and energy consumption values)
-	 * of each given component using the {@link AF3DeploymentParameterMapAdapter} and transforms
-	 * them into a {@link InternalComponentParameters} representation.
-	 */
-	private Map<Task, InternalComponentParameters>
-			createInternalParameterMaps(Collection<Task> tasks) {
-		if(parameterAdapter == null) {
-			return Collections.emptyMap();
-		}
-
-		Map<Task, InternalComponentParameters> internalParameterMap = new HashMap<>();
-		for(Task currentComponent : tasks) {
-			Map<IExecutionUnitAdapter<?>, Double> wcetMap =
-					new HashMap<IExecutionUnitAdapter<?>, Double>();
-			Map<IExecutionUnitAdapter<?>, Double> energyConsumptionMap =
-					new HashMap<IExecutionUnitAdapter<?>, Double>();
-			for(IExecutionUnitAdapter<?> execUnit : deploymentTargets) {
-				// TODO(#3262): Also reinclude the WCets.
-				wcetMap.put(execUnit,
-						1.0/* parameterAdapter.getWcet(currentComponent, execUnit) */);
-				// energyConsumptionMap.put(execUnit,
-				// parameterAdapter.getEnergyConsumption(currentComponent, execUnit));
-			}
-			InternalComponentParameters parameterMap = new InternalComponentParameters();
-			parameterMap.setWcetMap(wcetMap);
-			parameterMap.setEnergyConsumptionMap(energyConsumptionMap);
-			internalParameterMap.put(currentComponent, parameterMap);
-		}
-		return internalParameterMap;
-	}
-
 	/**
 	 * Propagates the periods defined in a timing model to other deployable components that are
 	 * required to maintain the data dependencies of the logical architecture.
@@ -405,27 +354,14 @@ public class AF3SystemModelAdapter extends
 	 * 
 	 * @throws Exception
 	 */
-	private Collection<IMemoryUnitAdapter<MemoryUnit>> createMemoryUnits(
-			PlatformArchitecture platformArchitecture/*
-														 * ,
-														 * Map<IPlatformArchitectureElement, Double>
-														 * resourceFailureRates
-														 */) throws Exception {
+	private Collection<IMemoryUnitAdapter<MemoryUnit>>
+			createMemoryUnits(PlatformArchitecture platformArchitecture) throws Exception {
 		Collection<IMemoryUnitAdapter<MemoryUnit>> rval =
 				new ArrayList<IMemoryUnitAdapter<MemoryUnit>>();
-
 		for(MemoryUnit currentMemoryUnit : getChildrenWithType(platformArchitecture,
 				MemoryUnit.class)) {
-			// Double failureRate = resourceFailureRates.get(currentMemoryUnit);
-			// if(failureRate == null) {
-			// throw new Exception("The failure probablity for the " +
-			// currentMemoryUnit.getClass().getSimpleName() + " " +
-			// currentMemoryUnit.getName() + " has not been defined.");
-			// }
-
-			rval.add(new AF3MemoryUnitAdapter(currentMemoryUnit, 0.8/* failureRate */));
+			rval.add(new AF3MemoryUnitAdapter(currentMemoryUnit));
 		}
-
 		return rval;
 	}
 
@@ -436,25 +372,16 @@ public class AF3SystemModelAdapter extends
 	 */
 	// TODO(#3262): Reintegrate failure rates.
 	private Collection<IExecutionUnitAdapter<ExecutionUnit>> createDeploymentTargets(
-			Collection<ExecutionUnit> targetExecutionUnits/**
-															 * ,
-															 * Map<IPlatformArchitectureElement,
-															 * Double> resourceFailureProbabilies
-															 */
-	) throws Exception {
+			Collection<ExecutionUnit> targetExecutionUnits) throws Exception {
 		if(targetExecutionUnits.isEmpty()) {
 			throw new Exception(
 					"No deployment targets have been specified in the target platform architecture(s). Please check whether the correct platform architecture was selected and whether the desired Execution Units were selected as deployment targets (Platform Model --> Annotation View --> Deployment Target)");
 		}
-
 		Collection<IExecutionUnitAdapter<ExecutionUnit>> rval =
 				new ArrayList<IExecutionUnitAdapter<ExecutionUnit>>();
-
 		for(ExecutionUnit execUnit : targetExecutionUnits) {
-			// Double failureProb = resourceFailureProbabilies.get(execUnit);
-			rval.add(new AF3ExecutionUnitAdapter(execUnit, 0.8/* failureProb */));
+			rval.add(new AF3ExecutionUnitAdapter(execUnit));
 		}
-
 		return rval;
 	}
 
@@ -472,10 +399,7 @@ public class AF3SystemModelAdapter extends
 
 		for(GatewayUnit gatewayUnit : EcoreUtils.getChildrenWithType(platformArchitecture,
 				GatewayUnit.class)) {
-			Double failureRate = 0.8;// resourceFailureRates.get(gatewayUnit);
-			Double power = 1.0;// resourcePowerConsumption.get(gatewayUnit);
-
-			rval.add(new AF3GatewayAdapter(gatewayUnit, failureRate, power));
+			rval.add(new AF3GatewayAdapter(gatewayUnit));
 		}
 
 		return rval;
@@ -494,12 +418,8 @@ public class AF3SystemModelAdapter extends
 
 		for(TransmissionUnit transmissionUnit : EcoreUtils.getChildrenWithType(platformArchitecture,
 				TransmissionUnit.class)) {
-			Double failureRate = 0.8;// resourceFailureRates.get(transmissionUnit);
-			Double power = 1.0;// resourcePowerConsumption.get(transmissionUnit);
-
-			rval.add(new AF3TransmissionUnitAdapter(transmissionUnit, failureRate, power));
+			rval.add(new AF3TransmissionUnitAdapter(transmissionUnit));
 		}
-
 		return rval;
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3TaskAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3TaskAdapter.java
index 6bb4ded97c607b99a20321ef28552060d894775c..450e544b717e78796b840296f688f1c182c208c1 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3TaskAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3TaskAdapter.java
@@ -15,8 +15,9 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.sysmodel.arch.af3;
 
-import static org.fortiss.tooling.base.utils.AnnotationUtils.getAnnotation;
+import static org.fortiss.af3.exploration.alg.util.AF3Utils.getAnnotationChecked;
 
+import java.math.BigDecimal;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -26,9 +27,11 @@ import org.eclipse.emf.common.util.Enumerator;
 import org.fortiss.af3.component.model.Component;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.InternalComponentParameters;
+import org.fortiss.af3.exploration.alg.exception.InvalidModelException;
+import org.fortiss.af3.exploration.moea.model.annotation.ReplicationBounds;
 import org.fortiss.af3.safety.model.annotation.SafetyIntegrityLevel;
 import org.fortiss.af3.task.model.Task;
+import org.fortiss.af3.timing.model.annotation.Period;
 
 /**
  * Adapter between the AF3 deployable {@link Component} (=tasks) and the DSE.
@@ -65,75 +68,56 @@ public class AF3TaskAdapter extends AF3RequestAdapter<Task> implements ITaskAdap
 	private ITaskAdapter<Component> replacedComponent;
 
 	/**
-	 * Creates an {@link ITaskAdapter} for an {@link Component}.
+	 * Creates an {@link ITaskAdapter} for a {@link Task}.
 	 * 
-	 * @throws Exception
+	 * @throws InvalidModelException
+	 *             if a required annotation cannot be found.
 	 */
-	public AF3TaskAdapter(Task deployableComponent,
-			Map<Task, InternalComponentParameters> internalParameters) throws Exception {
-		super(deployableComponent);
-
-		// TODO: possible NPE
-		if(internalParameters.get(deployableComponent) != null) {
-			this.wcetMap = internalParameters.get(deployableComponent).getWcetMap();
-			this.energyMap = internalParameters.get(deployableComponent).getEnergyConsumptionMap();
+	public AF3TaskAdapter(Task af3Task) throws InvalidModelException {
+		super(af3Task);
+
+		// TODO(#3262): Use the Allocation Table to retrieve WCET and EnergyConsumption values.
+		// wcetMap = internalParameters.get(deployableComponent).getWcetMap();
+		// energyMap = internalParameters.get(deployableComponent).getEnergyConsumptionMap();
+		BigDecimal af3Period = getAnnotationChecked(af3Task, Period.class).getValue();
+		if(af3Period == null || af3Period.doubleValue() <= 0.0) {
+			throw new InvalidModelException(af3Task,
+					"A non-specified period value and negative periods are not allowed.");
 		}
-
-		// Default value.
-		period = 0.0;
-
-		sil = getAnnotation(deployableComponent, SafetyIntegrityLevel.class);
+		period = af3Period.doubleValue();
+		sil = getAnnotationChecked(af3Task, SafetyIntegrityLevel.class);
+		ReplicationBounds replicationSpec = getAnnotationChecked(af3Task, ReplicationBounds.class);
+		minReplication = replicationSpec.getMinReplication();
+		maxReplication = replicationSpec.getMaxReplication();
 
 		replacementComponents = new HashSet<ITaskAdapter<Component>>();
 	}
 
-	/**
-	 * Creates an {@link ITaskAdapter} for an {@link Component} with the given
-	 * period and replication bounds.
-	 * 
-	 * @throws Exception
-	 */
-	public AF3TaskAdapter(Task task, Map<Task, InternalComponentParameters> internalParameters,
-			Integer minReplication, Integer maxReplication, Double period) throws Exception {
-		this(task, internalParameters);
-
-		this.minReplication = minReplication;
-		this.maxReplication = maxReplication;
-		this.period = period;
-	}
-
-	/**
-	 * Creates an {@link ITaskAdapter} for an {@link Component} with the given
-	 * period.
-	 * 
-	 * @throws Exception
-	 */
-	public AF3TaskAdapter(Task task, Map<Task, InternalComponentParameters> internalParameters,
-			Integer minReplication, Integer maxReplication, Double period,
-			Collection<ITaskAdapter<Component>> componentReplacementAdapters) throws Exception {
-		this(task, internalParameters, minReplication, maxReplication, period);
-		this.period = period;
-
+	// TODO(#3264): Remove this method, component adapters are used.
+	public AF3TaskAdapter(Task task,
+			Collection<ITaskAdapter<Component>> componentReplacementAdapters)
+			throws InvalidModelException {
+		this(task);
 		replacementComponents = componentReplacementAdapters;
 	}
 
 	/**
-	 * Creates an "concrete" {@link ITaskAdapter} for an {@link Component} with the
-	 * given period.
+	 * Creates an "concrete" {@link ITaskAdapter} for a {@link Task} with the given period.
+	 * 
+	 * @throws InvalidModelException
+	 *             if a required annotation cannot be found.
 	 */
-	public AF3TaskAdapter(Task task, Map<Task, InternalComponentParameters> internalParameters,
-			ITaskAdapter<Task> replacedComponent) throws Exception {
-		this(task, internalParameters, replacedComponent.getMinReplication(),
-				replacedComponent.getMaxReplication(), replacedComponent.getPeriod());
-
+	public AF3TaskAdapter(Task task, ITaskAdapter<Task> replacedComponent)
+			throws InvalidModelException {
+		this(task);
 		// this.replacedComponent = replacedComponent;
 	}
 
 	/** {@inheritDoc} */
 	@Override
 	public Double getWcet(IExecutionUnitAdapter<?> executionUnit) {
-		// TODO: HACK More flexible approach is needed: We distinguish between phys. exec Units and
-		// Partitions.
+		// TODO (#3262): HACK More flexible approach is needed: We distinguish between phys. exec
+		// Units and Partitions.
 		return 10.0;
 		// return wcetMap.get(executionUnit);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3TransmissionUnitAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3TransmissionUnitAdapter.java
index 15672d946519a061aa086ab041aa31d142dc1f56..41e176391fbb7577fc63b790d3f508d8eeffc445 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3TransmissionUnitAdapter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3TransmissionUnitAdapter.java
@@ -15,13 +15,15 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.sysmodel.arch.af3;
 
-import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickFirstInstanceOf;
+import static org.fortiss.af3.exploration.alg.util.AF3Utils.getAnnotationChecked;
 
 import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISignalAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITransmissionUnitAdapter;
+import org.fortiss.af3.exploration.alg.exception.InvalidModelException;
+import org.fortiss.af3.platform.hierarchic.model.annotation.TransmissionUnitPower;
 import org.fortiss.af3.platform.model.TransmissionUnit;
 import org.fortiss.af3.timing.model.annotation.TransmissionUnitBandwidth;
 
@@ -54,28 +56,19 @@ public class AF3TransmissionUnitAdapter extends AF3ResourceAdapter<TransmissionU
 	 * 
 	 * @param transmissionUnit
 	 *            present in the target platform and for which to generate an adapter.
-	 * @param failureProb
-	 *            failure probability of the {@code transmissionUnit}.
-	 * @param power
-	 *            Energy required to transfer a single bit.
-	 * 
-	 * @throws Exception
-	 *             if the bandwidth property is invalid: Non-existent or zero.
+	 * @throws InvalidModelException
+	 *             if a required annotation cannot be found or if it has an invalid value.
 	 */
-	public AF3TransmissionUnitAdapter(TransmissionUnit transmissionUnit, Double failureProb,
-			Double power) throws Exception {
-		super(transmissionUnit, failureProb);
-		this.transmissionUnitPower = power;
-
-		// Extract annotations
-		transmissionUnitBandwidth = pickFirstInstanceOf(TransmissionUnitBandwidth.class,
-				transmissionUnit.getSpecifications());
-		if(transmissionUnitBandwidth == null) {
-			throw new Exception("Transmission unit " + transmissionUnit +
-					" does not have a bandwidth annotation.");
-		} else if(transmissionUnitBandwidth.getBandwidth_MBitS() == 0.0) {
-			throw new Exception("The transmission unit " + transmissionUnit +
-					" has a bandwidth of 0 MB/s. This is not a valid attribute.");
+	public AF3TransmissionUnitAdapter(TransmissionUnit transmissionUnit)
+			throws InvalidModelException {
+		super(transmissionUnit);
+		transmissionUnitPower = getAnnotationChecked(transmissionUnit, TransmissionUnitPower.class)
+				.getPowerInWatt();
+		transmissionUnitBandwidth =
+				getAnnotationChecked(transmissionUnit, TransmissionUnitBandwidth.class);
+		if(transmissionUnitBandwidth.getBandwidth_MBitS() == 0.0) {
+			throw new InvalidModelException(transmissionUnit,
+					"A bandwidth of 0 MB/s is not a valid attribute.");
 		}
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings
index be0192144a5f5d9458f26ef3677c7f0636421eda..a63fe482ea2914e873b98f77d8061fb3383a67dc 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings
@@ -1,5 +1,5 @@
-AcyclicTaskGraph.java c448c1ca9f53ebb2aae627c9ea0ee603912f377f RED
-ChannelAdapterWeightedEdge.java ef160bea5d74f09617388767313657dd76283f61 RED
-DefaultTaskGraph.java c4c33dfbf26a364761ad4e15b5884305bd910f0e RED
-TaskGraph.java 4368f1710b40760d4653e61f693bb1aeabe5cafb RED
-TaskGraphInstantiator.java 63c5159b692665cca407bd254982d0976be5a4ff RED
+AcyclicTaskGraph.java c8fa01f3ad30f0cc5980838636355a2e041b5cbb RED
+DefaultTaskGraph.java 783c347f7fd5a5bcd3bc3a643e9284bd3e27e9a3 RED
+SignalAdapterWeightedEdge.java 6b7dbae1c2e7a658b33c3c7a584cee13b2269891 RED
+TaskGraph.java 90289a46be5c6ad658a06f4ff17d6da648fc97e8 RED
+TaskGraphInstantiator.java bfda013ddc6f4a9d2b063dfa7187827be1cdac73 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/AcyclicTaskGraph.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/AcyclicTaskGraph.java
index da6df476375778265a4b45d032c7e085e8493beb..51100f233b5f74b041e90567792cc6749323bb82 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/AcyclicTaskGraph.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/AcyclicTaskGraph.java
@@ -68,18 +68,18 @@ public class AcyclicTaskGraph extends DefaultTaskGraph<AcyclicTaskGraph> {
 	/**
 	 * Creates an acyclic {@link TaskGraph} from a given general {@link TaskGraph} based on a
 	 * calculation of the minimum spanning tree of the transitions between tasks, i.e.
-	 * {@link ChannelAdapterWeightedEdge}s.
+	 * {@link SignalAdapterWeightedEdge}s.
 	 */
 	private void createMinSpanAcycTaskGraph(TaskGraph taskGraph) {
-		DefaultListenableGraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge> tg =
+		DefaultListenableGraph<ITaskAdapter<?>, SignalAdapterWeightedEdge> tg =
 				taskGraph.getGraph();
 		Graphs.addAllVertices(graph, tg.vertexSet());
 
 		if(taskGraph.getTasks().size() == 1) {
 			return;
 		}
-		MinimumSpanningTree<ITaskAdapter<?>, ChannelAdapterWeightedEdge> minSpanTree =
-				new PrimMinimumSpanningTree<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(
+		MinimumSpanningTree<ITaskAdapter<?>, SignalAdapterWeightedEdge> minSpanTree =
+				new PrimMinimumSpanningTree<ITaskAdapter<?>, SignalAdapterWeightedEdge>(
 						taskGraph.getGraph());
 		minSpanTree.getMinimumSpanningTreeEdgeSet().stream()
 				.forEach(e -> graph.addEdge(tg.getEdgeSource(e), tg.getEdgeTarget(e), e));
@@ -97,8 +97,8 @@ public class AcyclicTaskGraph extends DefaultTaskGraph<AcyclicTaskGraph> {
 			throw new AssertionError();
 		}
 		clonedTaskGraph.graph =
-				new ListenableDirectedWeightedGraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(
-						ChannelAdapterWeightedEdge.class);
+				new ListenableDirectedWeightedGraph<ITaskAdapter<?>, SignalAdapterWeightedEdge>(
+						SignalAdapterWeightedEdge.class);
 		Graphs.addGraph(clonedTaskGraph.graph, graph);
 		clonedTaskGraph.taskFaultDetectorsMap =
 				new HashMap<ITaskAdapter<?>, SortedSet<FaultDetector>>(taskFaultDetectorsMap);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/DefaultTaskGraph.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/DefaultTaskGraph.java
index 970d344596a0b49d4ea0f56d791cffec9a6df713..682aebc44f8446d91c3c2a397785fd8601b9bad6 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/DefaultTaskGraph.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/DefaultTaskGraph.java
@@ -60,10 +60,10 @@ import com.google.common.collect.Multimap;
 public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGraph, Cloneable {
 	/** Underlying graph implementation */
 	// TODO: Add a weight w.r.t. transmission time, when deployed
-	protected DefaultListenableGraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge> graph;
+	protected DefaultListenableGraph<ITaskAdapter<?>, SignalAdapterWeightedEdge> graph;
 
 	/** The actual Graph holding the data. It does not provide any listener interface. */
-	protected DirectedWeightedMultigraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge> delegateGraph;
+	protected DirectedWeightedMultigraph<ITaskAdapter<?>, SignalAdapterWeightedEdge> delegateGraph;
 
 	// TODO: Currently, all tasks in a {@link TaskGraph} must have the same period
 	/** The period time of this {@link DefaultTaskGraph}. */
@@ -87,8 +87,8 @@ public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGrap
 
 	/** Creates an empty {@link DefaultTaskGraph}. */
 	public DefaultTaskGraph() {
-		delegateGraph = new DirectedWeightedMultigraph<>(ChannelAdapterWeightedEdge.class);
-		graph = new DefaultListenableGraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(
+		delegateGraph = new DirectedWeightedMultigraph<>(SignalAdapterWeightedEdge.class);
+		graph = new DefaultListenableGraph<ITaskAdapter<?>, SignalAdapterWeightedEdge>(
 				delegateGraph);
 
 		taskFaultDetectorsMap = new HashMap<ITaskAdapter<?>, SortedSet<FaultDetector>>();
@@ -125,8 +125,8 @@ public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGrap
 	/** {@inheritDoc} */
 	@Override
 	public void removeTask(ITaskAdapter<?> task) {
-		Collection<ChannelAdapterWeightedEdge> outgoingEdges = graph.outgoingEdgesOf(task);
-		Collection<ChannelAdapterWeightedEdge> incomingEdges = graph.incomingEdgesOf(task);
+		Collection<SignalAdapterWeightedEdge> outgoingEdges = graph.outgoingEdgesOf(task);
+		Collection<SignalAdapterWeightedEdge> incomingEdges = graph.incomingEdgesOf(task);
 
 		graph.removeVertex(task);
 		// The outgoing edges must be removed *after* the "abstract" node, since a
@@ -140,10 +140,10 @@ public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGrap
 
 	/** {@inheritDoc} */
 	@Override
-	public boolean addSignal(ISignalAdapter<?> signalAdapter) {
+	public boolean addSignal(ISignalAdapter<?, ?> signalAdapter) {
 		for(ITaskAdapter<?> recvTask : signalAdapter.getTargets()) {
 			if(!graph.addEdge(signalAdapter.getSource(), recvTask,
-					new ChannelAdapterWeightedEdge(signalAdapter))) {
+					new SignalAdapterWeightedEdge(signalAdapter))) {
 				return false;
 			}
 		}
@@ -152,8 +152,8 @@ public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGrap
 
 	/** {@inheritDoc} */
 	@Override
-	public boolean addAllSignals(Collection<ISignalAdapter<?>> signalAdapters) {
-		for(ISignalAdapter<?> signal : signalAdapters) {
+	public boolean addAllSignals(Collection<ISignalAdapter<?, ?>> signalAdapters) {
+		for(ISignalAdapter<?, ?> signal : signalAdapters) {
 			if(!addSignal(signal)) {
 				return false;
 			}
@@ -170,14 +170,14 @@ public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGrap
 	// TODO: Get rid of this method!
 	/** {@inheritDoc} */
 	@Override
-	public DefaultListenableGraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge> getGraph() {
+	public DefaultListenableGraph<ITaskAdapter<?>, SignalAdapterWeightedEdge> getGraph() {
 		return graph;
 	}
 
 	// TODO: Get rid of this method!
 	/** {@inheritDoc} */
 	@Override
-	public DirectedWeightedMultigraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge>
+	public DirectedWeightedMultigraph<ITaskAdapter<?>, SignalAdapterWeightedEdge>
 			getDelegateGraph() {
 		return delegateGraph;
 	}
@@ -228,8 +228,8 @@ public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGrap
 	/** {@inheritDoc} */
 	@Override
 	public void display() {
-		JGraphTVisualizer<ITaskAdapter<?>, ChannelAdapterWeightedEdge> taskViz =
-				new JGraphTVisualizer<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(this.getGraph());
+		JGraphTVisualizer<ITaskAdapter<?>, SignalAdapterWeightedEdge> taskViz =
+				new JGraphTVisualizer<ITaskAdapter<?>, SignalAdapterWeightedEdge>(this.getGraph());
 		taskViz.displayGraph("Task graph");
 	}
 
@@ -239,11 +239,11 @@ public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGrap
 		String rval = "";
 
 		Iterator<ITaskAdapter<?>> iter =
-				new DepthFirstIterator<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(graph);
+				new DepthFirstIterator<ITaskAdapter<?>, SignalAdapterWeightedEdge>(graph);
 		while(iter.hasNext()) {
 			ITaskAdapter<?> deployableComponent = iter.next();
 			rval = rval.concat("Task " + deployableComponent.getName() + ": ");
-			for(ChannelAdapterWeightedEdge edge : graph.outgoingEdgesOf(deployableComponent)) {
+			for(SignalAdapterWeightedEdge edge : graph.outgoingEdgesOf(deployableComponent)) {
 				rval = rval.concat("->" + graph.getEdgeTarget(edge).getName());
 			}
 			rval = rval.concat("\n");
@@ -263,8 +263,8 @@ public class DefaultTaskGraph<T extends DefaultTaskGraph<?>> implements TaskGrap
 			throw new AssertionError();
 		}
 		clonedTaskGraph.graph =
-				new ListenableDirectedWeightedGraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(
-						ChannelAdapterWeightedEdge.class);
+				new ListenableDirectedWeightedGraph<ITaskAdapter<?>, SignalAdapterWeightedEdge>(
+						SignalAdapterWeightedEdge.class);
 		Graphs.addGraph(clonedTaskGraph.graph, graph);
 		clonedTaskGraph.taskFaultDetectorsMap =
 				new HashMap<ITaskAdapter<?>, SortedSet<FaultDetector>>(taskFaultDetectorsMap);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/ChannelAdapterWeightedEdge.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/SignalAdapterWeightedEdge.java
similarity index 60%
rename from org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/ChannelAdapterWeightedEdge.java
rename to org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/SignalAdapterWeightedEdge.java
index 051799be7e3da8e954fe535e9c832c7323ea1d30..b40989eecb8e94357476bfc5c7e9ef7e59013c9e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/ChannelAdapterWeightedEdge.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/SignalAdapterWeightedEdge.java
@@ -16,7 +16,6 @@
 package org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph;
 
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISignalAdapter;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITransmissionUnitAdapter;
 import org.jgrapht.graph.DefaultWeightedEdge;
 
 /**
@@ -24,40 +23,23 @@ import org.jgrapht.graph.DefaultWeightedEdge;
  * 
  * @author diewald
  */
-public class ChannelAdapterWeightedEdge extends DefaultWeightedEdge {
+public class SignalAdapterWeightedEdge extends DefaultWeightedEdge {
 	/** {@link ISignalAdapter} represented by this edge. */
-	ISignalAdapter<?> channel;
+	ISignalAdapter<?, ?> signal;
 
-	/** {@link ITransmissionUnitAdapter} to which this {@link ISignalAdapter} is mapped. */
-	ITransmissionUnitAdapter<?> transmissionUnit;
-
-	/** Constructs a new {@link ChannelAdapterWeightedEdge} for a given {@link ISignalAdapter}. */
-	public ChannelAdapterWeightedEdge(ISignalAdapter<?> channel) {
-		this.channel = channel;
-	}
-
-	// TODO: Remove the linking of channels with transmission units. This approach is no longer
-	// valid for multi-hop communication.
-	/**
-	 * Sets the {@link ITransmissionUnitAdapter} to which the {@link ISignalAdapter} represented by
-	 * this {@link ChannelAdapterWeightedEdge} is mapped.
-	 */
-	public void setTransmissionUnit(ITransmissionUnitAdapter<?> transmissionUnit) {
-		this.transmissionUnit = transmissionUnit;
+	/** Constructs a new {@link SignalAdapterWeightedEdge} for a given {@link ISignalAdapter}. */
+	public SignalAdapterWeightedEdge(ISignalAdapter<?, ?> signal) {
+		this.signal = signal;
 	}
 
 	/** Returns the {@link ISignalAdapter} associated with this edge. */
-	public ISignalAdapter<?> getChannelAdapter() {
-		return channel;
+	public ISignalAdapter<?, ?> getSignalAdapter() {
+		return signal;
 	}
 
 	/** {@inheritDoc} */
 	@Override
 	protected double getWeight() {
-		if(transmissionUnit != null) {
-			return channel.getTransmissionTime(transmissionUnit);
-		}
-
-		return 0;
+		return signal.getSignalSize();
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/TaskGraph.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/TaskGraph.java
index b8e507cd2a33edd6388ccfb76aec9fe57ea4b477..27fdf1acbbc10d47db9a4a7f20eaa7525a599aa9 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/TaskGraph.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/TaskGraph.java
@@ -35,14 +35,14 @@ import org.jgrapht.graph.DirectedWeightedMultigraph;
 public interface TaskGraph {
 	// TODO: Get rid of this method!
 	/** Returns the underlying {@link DefaultListenableGraph}. */
-	DefaultListenableGraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge> getGraph();
+	DefaultListenableGraph<ITaskAdapter<?>, SignalAdapterWeightedEdge> getGraph();
 
 	// TODO: Get rid of this method!
 	/**
 	 * Returns the underlying {@link DirectedWeightedMultigraph} that holds the data of the
 	 * corresponding {@link DefaultListenableGraph}.
 	 */
-	DirectedWeightedMultigraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge> getDelegateGraph();
+	DirectedWeightedMultigraph<ITaskAdapter<?>, SignalAdapterWeightedEdge> getDelegateGraph();
 
 	/**
 	 * Updates the period of this {@link TaskGraph}: Determine the common period of the tasks
@@ -95,10 +95,10 @@ public interface TaskGraph {
 	boolean addAllTask(Collection<ITaskAdapter<?>> tasks);
 
 	/** Adds a signal to the task graph that defines a data exchange between two tasks. */
-	boolean addSignal(ISignalAdapter<?> signalAdapter);
+	boolean addSignal(ISignalAdapter<?, ?> signalAdapter);
 
 	/** Adds signals to the task graph that are used to exchange data between tasks. */
-	boolean addAllSignals(Collection<ISignalAdapter<?>> signalAdapters);
+	boolean addAllSignals(Collection<ISignalAdapter<?, ?>> signalAdapters);
 
 	/** Removes the given {@code task} and its data dependencies from the {@link TaskGraph}. */
 	void removeTask(ITaskAdapter<?> task);
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/TaskGraphInstantiator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/TaskGraphInstantiator.java
index cfe3dd239a2073db119302ad782852d0eac67650..1f8a218f8c4ad885ca7d7d9560932f0f6a063a7b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/TaskGraphInstantiator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/TaskGraphInstantiator.java
@@ -118,20 +118,20 @@ public class TaskGraphInstantiator<T extends TaskGraph> {
 	 */
 	public void insertInstanceComponent(T instanceTaskGraph, ITaskAdapter<?> abstractNode,
 			ITaskAdapter<?> instanceNode) {
-		DefaultListenableGraph<ITaskAdapter<?>, ChannelAdapterWeightedEdge> graph =
+		DefaultListenableGraph<ITaskAdapter<?>, SignalAdapterWeightedEdge> graph =
 				instanceTaskGraph.getGraph();
 		instanceTaskGraph.addTask(instanceNode, abstractNode);
 
-		Collection<ChannelAdapterWeightedEdge> incomingEdges = graph.incomingEdgesOf(abstractNode);
-		for(ChannelAdapterWeightedEdge incoming : incomingEdges) {
+		Collection<SignalAdapterWeightedEdge> incomingEdges = graph.incomingEdgesOf(abstractNode);
+		for(SignalAdapterWeightedEdge incoming : incomingEdges) {
 			graph.addEdge(graph.getEdgeSource(incoming), instanceNode,
-					new ChannelAdapterWeightedEdge(incoming.getChannelAdapter()));
+					new SignalAdapterWeightedEdge(incoming.getSignalAdapter()));
 		}
 
-		Collection<ChannelAdapterWeightedEdge> outgoingEdges = graph.outgoingEdgesOf(abstractNode);
-		for(ChannelAdapterWeightedEdge outgoing : outgoingEdges) {
+		Collection<SignalAdapterWeightedEdge> outgoingEdges = graph.outgoingEdgesOf(abstractNode);
+		for(SignalAdapterWeightedEdge outgoing : outgoingEdges) {
 			graph.addEdge(instanceNode, graph.getEdgeTarget(outgoing),
-					new ChannelAdapterWeightedEdge(outgoing.getChannelAdapter()));
+					new SignalAdapterWeightedEdge(outgoing.getSignalAdapter()));
 		}
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings
index e27cfea54f62575b054929e86f0f5859b76380cd..d953d608eb2958a80849fe79efab50983e8da27f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings
@@ -1,2 +1,2 @@
-Message.java c76010ee09dbf91335ddbba7dd062c961c94a23b RED
-MessageGenerator.java 0432d3d1641372d9f505901c9db7b4e74c38208d RED
+Message.java e6aeffa00605318214ba100758b988b500acfe8c RED
+MessageGenerator.java ad42c711bd25bb413cbcab3073c62e13ce3c9c07 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/Message.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/Message.java
index d304ff9b301daa5ff56b2d620b9ebef350ca6412..d4b5432ef03c3630ad1cbb8bd12b867a851f1559 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/Message.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/Message.java
@@ -64,7 +64,7 @@ public class Message implements Comparable<Message> {
 	private DirectedGraph<IResourceAdapter<?>, DefaultEdge> route;
 
 	/** {@link ISignalAdapter} which is the logical counterpart of this {@link Message} */
-	private ISignalAdapter<?> messageAdapter;
+	private ISignalAdapter<?, ?> signalAdapter;
 
 	/** {@link TimeSlot} in which sender of message is scheduled */
 	private TimeSlot senderTimeSlot;
@@ -82,13 +82,11 @@ public class Message implements Comparable<Message> {
 	 * Constructs a new {@link Message} between a sender and a receiver (identified by their
 	 * respective {@link IMappingEntry}s in the {@link IMappingEncoding}).
 	 */
-	public Message(ISignalAdapter<?> channelAdapter, InstantiatedTaskMappingEntry deployedSender,
+	public Message(ISignalAdapter<?, ?> signalAdapter, InstantiatedTaskMappingEntry deployedSender,
 			Collection<? extends InstantiatedTaskMappingEntry> receiverEntries) {
-		this.messageAdapter = channelAdapter;
+		this.signalAdapter = signalAdapter;
 		this.sender = deployedSender;
-		if(sender != null && sender.getTarget() != null) {
-			sizeInBytes = messageAdapter.getSignalSize();
-		}
+		sizeInBytes = signalAdapter.getSignalSize();
 
 		this.receiverResources = new HashSet<IResourceAdapter<?>>();
 		this.receiverMappingEntries = new HashSet<InstantiatedTaskMappingEntry>();
@@ -103,7 +101,7 @@ public class Message implements Comparable<Message> {
 	 * Constructs a new {@link Message} between a sender and a receiver (identified by their
 	 * respective {@link TimeSlot}s in the {@link StrictTTSchedule}).
 	 */
-	public Message(ISignalAdapter<?> channelAdapter, TimeSlot senderTimeSlot,
+	public Message(ISignalAdapter<?, ?> channelAdapter, TimeSlot senderTimeSlot,
 			HashSet<TimeSlot> receiverTimeSlots) {
 		this(channelAdapter, senderTimeSlot, receiverTimeSlots, channelAdapter.getSignalSize());
 	}
@@ -112,9 +110,9 @@ public class Message implements Comparable<Message> {
 	 * Constructs a new {@link Message} between a sender and a receiver (identified by their
 	 * respective {@link TimeSlot}s in the {@link StrictTTSchedule}).
 	 */
-	public Message(ISignalAdapter<?> channelAdapter, TimeSlot senderTimeSlot,
+	public Message(ISignalAdapter<?, ?> channelAdapter, TimeSlot senderTimeSlot,
 			HashSet<TimeSlot> receiverTimeSlots, long messageSizeInBytes) {
-		this.messageAdapter = channelAdapter;
+		this.signalAdapter = channelAdapter;
 		this.senderTimeSlot = senderTimeSlot;
 		this.receiverTimeSlots = receiverTimeSlots;
 
@@ -160,8 +158,8 @@ public class Message implements Comparable<Message> {
 	}
 
 	/** Returns the {@link ISignalAdapter} corresponding to this messages */
-	public ISignalAdapter<?> getSignalAdapter() {
-		return messageAdapter;
+	public ISignalAdapter<?, ?> getSignalAdapter() {
+		return signalAdapter;
 	}
 
 	/**
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/MessageGenerator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/MessageGenerator.java
index 5deb3528aff162d7a7eb41c8f4413039d224315b..874c43be3859625fd9232c0965cd165c0d2c18e5 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/MessageGenerator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/MessageGenerator.java
@@ -15,7 +15,6 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.sysmodel.comm;
 
-import static org.fortiss.af3.exploration.alg.util.ExplorationAlgUtils.castToRawColl;
 import static org.fortiss.tooling.common.util.LambdaUtils.filterSet;
 
 import java.util.Collection;
@@ -27,9 +26,9 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.Ta
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISignalAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.mapping.IMappingEntry;
 
@@ -43,10 +42,10 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.mapping.IMappingEntry;
 public class MessageGenerator<S extends TaskMappingEntry<ITaskAdapter<?>, Partition>, T extends TaskMappingEncoding<ITaskAdapter<?>, S>> {
 
 	/** Reference to the systemModel. */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Constructor. */
-	public MessageGenerator(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MessageGenerator(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -65,15 +64,16 @@ public class MessageGenerator<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 				senderComponent = senderComponent.getReplacedComponent();
 			}
 
-			Collection<ISignalAdapter<?>> emittedMessages =
-					castToRawColl(systemModelAdapter.getEmmittedMessages(senderComponent));
+			@SuppressWarnings("unchecked") Collection<ISignalAdapter<?, ?>> emittedMessages =
+					(Collection<ISignalAdapter<?, ?>>)(Collection<?>)systemModelAdapter
+							.getEmmittedMessages(senderComponent);
 
 			Collection<InternalIsolatedCommunicationSet> allIsoCommConstr =
 					encoding.getConstraintsOf(InternalIsolatedCommunicationSet.class);
 			Collection<InternalIsolatedCommunicationSet> otherIsoCommConstr =
 					getOtherIsolationCommConstraints(encoding, entry);
 
-			for(ISignalAdapter<?> currentMessageAdapter : emittedMessages) {
+			for(ISignalAdapter<?, ?> currentMessageAdapter : emittedMessages) {
 				// Create a Collection of dependent MappingEntries, for which messages are generated
 				// (if required).
 				// TODO: Get rid of the AbstractTaskMappingEntry(s) and use S only. Note that guava
@@ -96,7 +96,8 @@ public class MessageGenerator<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	 * Creates a {@link Collection} which contains all {@link IMappingEntry}s that are causally
 	 * depend on the given sender {@link ITaskAdapter}.
 	 */
-	private Collection<S> getSuccessorMappingEntries(T encoding, ISignalAdapter<?> emittedMessage) {
+	private Collection<S> getSuccessorMappingEntries(T encoding,
+			ISignalAdapter<?, ?> emittedMessage) {
 		Collection<S> mappingEntriesOfSuccesors = new HashSet<S>();
 		Collection<ITaskAdapter<?>> realSuccessorComponents = new HashSet<>();
 
@@ -112,8 +113,8 @@ public class MessageGenerator<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 		}
 
 		for(ITaskAdapter<?> successorComponent : realSuccessorComponents) {
-			Collection<ITaskAdapter<?>> encComps = filterSet(
-					encoding.getRequesters(), c -> c.getObject() == successorComponent.getObject());
+			Collection<ITaskAdapter<?>> encComps = filterSet(encoding.getRequesters(),
+					c -> c.getObject() == successorComponent.getObject());
 			for(ITaskAdapter<?> encComp : encComps) {
 				mappingEntriesOfSuccesors.addAll(encoding.getMappingEntriesOf(encComp));
 			}
@@ -127,7 +128,7 @@ public class MessageGenerator<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	 * {@link IExecutionUnitAdapter}.
 	 */
 	@SuppressWarnings("unchecked")
-	private Message generateMessageForSenderEntry(ISignalAdapter<?> senderChannel,
+	private Message generateMessageForSenderEntry(ISignalAdapter<?, ?> senderChannel,
 			InstantiatedTaskMappingEntry senderMappingEntry,
 			Collection<S> mappingEntriesOfSuccesors,
 			Collection<InternalIsolatedCommunicationSet> allConstraints,
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings
index ac2e908b501c508489411c6370142b943c34642a..a4c072e4f1fac02bcb8def04f66739896ca63b4d 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings
@@ -1,3 +1,3 @@
 IMessageRouter.java 502b0083ba82de6a70813c4c7ca9606ebb2ba65f RED
-MessageRouter.java f3d02c7b380380b6020eb63240e8dd4537208819 RED
-ShortestPathRouter.java 757864be955c0b8fae4ce490cfc843e29ea06729 RED
+MessageRouter.java 8321c78da99168793bcfb8a4e00798e81c9867d2 RED
+ShortestPathRouter.java 9f42506455648f6ee2171f1fcf29ab0deb4389b1 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/MessageRouter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/MessageRouter.java
index d1a348ad2041b1aa8c284f34fff3554bf1ae8f10..3e86aba3905afbaa7f8a6b9987fcc3a7fedde817 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/MessageRouter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/MessageRouter.java
@@ -36,7 +36,7 @@ import org.jgrapht.graph.DefaultEdge;
 public class MessageRouter implements IMessageRouter {
 
 	/** Representation of input system model */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** The actual message router that implements a routing strategy. */
 	private IMessageRouter delegate;
@@ -45,7 +45,7 @@ public class MessageRouter implements IMessageRouter {
 	private Map<Message, DirectedGraph<IResourceAdapter<?>, DefaultEdge>> messagesRoutes;
 
 	/** Constructs a scheduler for a given input model. */
-	public MessageRouter(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public MessageRouter(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 		messagesRoutes =
 				new ConcurrentHashMap<Message, DirectedGraph<IResourceAdapter<?>, DefaultEdge>>();
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/ShortestPathRouter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/ShortestPathRouter.java
index 7fdcdf31a5500b2d9fda7dd143c8402491618e19..9644036c80346641643efb8c53021927d58aa3b8 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/ShortestPathRouter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/ShortestPathRouter.java
@@ -48,7 +48,7 @@ public class ShortestPathRouter extends MessageRouter {
 	private Map<IResourceAdapter<?>, BellmanFordShortestPath<IResourceAdapter<?>, DefaultEdge>> shortestPathForSender;
 
 	/** Constructs a simple shortest path router for a given exploration run */
-	public ShortestPathRouter(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public ShortestPathRouter(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		super(systemModelAdapter);
 
 		// TODO: Replace with more efficient Dijkstra, which needs an modification to contain the
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/.ratings
index ee66f500471522ee330ad80b85d82fa3dd77e18e..182ddfeaa22fd813fd6a3d2bc37493a7d44ef450 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/.ratings
@@ -1,2 +1,2 @@
 ScheduleRuntimeException.java d682adaaaff3d366cc6b55dd9c8e9c30bbc51152 RED
-SchedulerBase.java 91fa4c435adc47f068e1d4c28ba26d831117605d RED
+SchedulerBase.java 7114bbf9feacb82978caeac83980ab1b8241d282 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/SchedulerBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/SchedulerBase.java
index 8de79db5b9299291cad4494fbdc2b3b7be09ecd6..46397550909f1b20d7f0f4b245020b50f2f98a7e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/SchedulerBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/SchedulerBase.java
@@ -36,7 +36,7 @@ public class SchedulerBase {
 	protected final static int DOUBLE_PRECISION = 10;
 
 	/** Representation of input system model */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/** Contains the References to the {@link ExplorationTarget}s related to timing. */
 	protected Collection<DeadlineConstraint> deadlines;
@@ -48,23 +48,24 @@ public class SchedulerBase {
 	protected Map<DeadlineConstraint, ITaskAdapter<?>> deadlineTargetComponent;
 
 	/** Constructs a scheduler for a given input model. */
-	public SchedulerBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public SchedulerBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationSpecification expSpec) {
 		this.systemModelAdapter = systemModelAdapter;
 		this.deadlines =
 				expSpec.getTargets().stream().filter(t -> (t instanceof DeadlineConstraint))
 						.map(DeadlineConstraint.class::cast).collect(Collectors.toList());
 
-		componentDeadlineSourceMap =
-				new HashMap<ITaskAdapter<?>, DeadlineConstraint>();
+		componentDeadlineSourceMap = new HashMap<ITaskAdapter<?>, DeadlineConstraint>();
 		deadlineTargetComponent = new HashMap<DeadlineConstraint, ITaskAdapter<?>>();
 
 		createComponentDeadlineMap();
 	}
 
 	/**
-	 * Creates two maps that <li>relate a {@link ITaskAdapter} which is defined as
-	 * the "source" of a deadline to its {@link DeadlineConstraint} and <li>a map that relates
+	 * Creates two maps that
+	 * <li>relate a {@link ITaskAdapter} which is defined as
+	 * the "source" of a deadline to its {@link DeadlineConstraint} and
+	 * <li>a map that relates
 	 * {@link DeadlineConstraint}s with its "target" {@link ITaskAdapter}s.
 	 */
 	private void createComponentDeadlineMap() {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings
index 0514a7046526cae8f4270e4a13cf914eac14e32b..aae4aefeb8a771fac77bf633d977ffffe3a7817f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings
@@ -1 +1 @@
-TDMABusScheduler.java 815ef85024a6d99387a2a3d6d108e02fe31a601a RED
+TDMABusScheduler.java bb1c12e4869678eab21f3e52ba6b5f1ef65023f2 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/TDMABusScheduler.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/TDMABusScheduler.java
index 4384a1b65f933df1ce2084f9e8302d6c37898b44..cbec0226c897308daac5b47feb91637b358dcd5b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/TDMABusScheduler.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/TDMABusScheduler.java
@@ -38,10 +38,10 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.StrictTTSchedu
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.StrictTTSchedule.ResourceSchedule;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.TimeSlot;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ICommunicationResourceAdapter;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IGatewayUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITransmissionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.AcyclicTaskGraph;
@@ -73,7 +73,7 @@ public class TDMABusScheduler<S extends InstantiatedTaskMappingEntry, T extends
 	private IMessageRouter messageRouter;
 
 	/** Constructs a {@link TDMABusScheduler} for a given input model. */
-	public TDMABusScheduler(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public TDMABusScheduler(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationSpecification expSpec) {
 		super(systemModelAdapter, expSpec);
 		this.messageRouter = new ShortestPathRouter(systemModelAdapter);
@@ -96,8 +96,7 @@ public class TDMABusScheduler<S extends InstantiatedTaskMappingEntry, T extends
 				// Message is not schedulable (e.g. an RC message) --> Skip scheduling this message.
 				continue;
 			}
-			ITaskAdapter<?> senderComponent =
-					senderSlot.getDeployedRequester().getSource();
+			ITaskAdapter<?> senderComponent = senderSlot.getDeployedRequester().getSource();
 			message.addMessageSenderTimeSlot(senderSlot);
 			emitableMessagesPerSlot.put(senderSlot, message);
 			for(InstantiatedTaskMappingEntry receiverEntry : message.getReceiverMappingEntries()) {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings
index dd0d79534f91439185dbc9fadf2d1be1235dae5b..fb9132f690b9928147650dee7f9dc26b5791c44a 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings
@@ -1,3 +1,3 @@
-EDFSchedulerBase.java 1efa9a6b03345476ee6187431e88b90b8abf19f8 RED
-FailSilentEDFScheduler.java 288d361bd44dc5fc6c88c7e0c9cf224da976a665 RED
-FaultDetectionVotingEDFScheduler.java 4cb56434b52ca84bf574e668ee4c67760495fa7e RED
+EDFSchedulerBase.java eb253ffeff2b7bd71467dc4459c7f4051c3c0c0a RED
+FailSilentEDFScheduler.java a2b809f6d8162be4483900a83c60b1c9a9ad0341 RED
+FaultDetectionVotingEDFScheduler.java ba3a487c9c995d4e1a49a6e646532f893bb5ab92 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/EDFSchedulerBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/EDFSchedulerBase.java
index 4b69319a0c52ceb22749567672cf3c059e4d2024..040c582075e87a9750c9c6921cdeed979e49e16e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/EDFSchedulerBase.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/EDFSchedulerBase.java
@@ -42,7 +42,7 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.AcyclicTaskGraph;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.ChannelAdapterWeightedEdge;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.SignalAdapterWeightedEdge;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.ScheduleRuntimeException;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.SchedulerBase;
@@ -251,7 +251,7 @@ public abstract class EDFSchedulerBase<S extends InstantiatedTaskMappingEntry, T
 	}
 
 	/** Constructs a simple EDF scheduler for a given exploration run */
-	public EDFSchedulerBase(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public EDFSchedulerBase(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationSpecification expSpec) {
 		super(systemModelAdapter, expSpec);
 	}
@@ -261,7 +261,7 @@ public abstract class EDFSchedulerBase<S extends InstantiatedTaskMappingEntry, T
 	 * queue contains those {@link SchedulingObject}s which remain to be scheduled.
 	 */
 	private synchronized SortedSet<SchedulingObject> createReleaseQueue(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			InstantiatedAcyclicTaskGraphEncoding<S, ?> acycItgEnc) {
 		SchedulingObjectComparator EDFTopologicalComparator =
 				new SchedulingObjectComparator(acycItgEnc);
@@ -272,8 +272,8 @@ public abstract class EDFSchedulerBase<S extends InstantiatedTaskMappingEntry, T
 			SortedSet<SchedulingObject> localReleaseQueue =
 					new TreeSet<SchedulingObject>(EDFTopologicalComparator);
 			int index = 0;
-			TopologicalOrderIterator<ITaskAdapter<?>, ChannelAdapterWeightedEdge> iter =
-					new TopologicalOrderIterator<ITaskAdapter<?>, ChannelAdapterWeightedEdge>(
+			TopologicalOrderIterator<ITaskAdapter<?>, SignalAdapterWeightedEdge> iter =
+					new TopologicalOrderIterator<ITaskAdapter<?>, SignalAdapterWeightedEdge>(
 							taskGraph.getDelegateGraph());
 			while(iter.hasNext()) {
 				ITaskAdapter<?> deployableComponent = iter.next();
@@ -288,7 +288,7 @@ public abstract class EDFSchedulerBase<S extends InstantiatedTaskMappingEntry, T
 					// set the topological index
 					sobject.index = index++;
 					// add the predecessor list
-					for(ChannelAdapterWeightedEdge edge : taskGraph.getGraph()
+					for(SignalAdapterWeightedEdge edge : taskGraph.getGraph()
 							.incomingEdgesOf(deployableComponent)) {
 						ITaskAdapter<?> sourceComponent = taskGraph.getGraph().getEdgeSource(edge);
 						// look into the previous allocated scheduling objects
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/FailSilentEDFScheduler.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/FailSilentEDFScheduler.java
index 73c52484fe9696eeffa100f31133a8ec07cbda9c..64f7d4ab82d341d7bb0a57fc3b7797544f698838 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/FailSilentEDFScheduler.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/FailSilentEDFScheduler.java
@@ -26,8 +26,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.in
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.FailSilentTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.StrictTTSchedule;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.TimeSlot;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.model.ExplorationSpecification;
 
@@ -40,7 +40,7 @@ public class FailSilentEDFScheduler
 		extends EDFSchedulerBase<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding> {
 
 	/** Constructs a simple EDF scheduler for a given exploration run */
-	public FailSilentEDFScheduler(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public FailSilentEDFScheduler(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationSpecification expSpec) {
 		super(systemModelAdapter, expSpec);
 	}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/FaultDetectionVotingEDFScheduler.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/FaultDetectionVotingEDFScheduler.java
index 1e838544d46cbde9c3fc781f2ebbda0c27564759..059f98c7320fff175958d6a7db0a283e58e18ee5 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/FaultDetectionVotingEDFScheduler.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/FaultDetectionVotingEDFScheduler.java
@@ -25,11 +25,11 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.in
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.FaultDetectionVotingTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.StrictTTSchedule;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.TimeSlot;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.AcyclicTaskGraph;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.ChannelAdapterWeightedEdge;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.SignalAdapterWeightedEdge;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.faultmodel.FaultDetector;
 import org.fortiss.af3.exploration.model.ExplorationSpecification;
 
@@ -42,7 +42,8 @@ public class FaultDetectionVotingEDFScheduler extends
 		EDFSchedulerBase<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding> {
 
 	/** Constructs a simple EDF scheduler for a given exploration run */
-	public FaultDetectionVotingEDFScheduler(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+	public FaultDetectionVotingEDFScheduler(
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			ExplorationSpecification expSpec) {
 		super(systemModelAdapter, expSpec);
 	}
@@ -67,7 +68,7 @@ public class FaultDetectionVotingEDFScheduler extends
 		Apfloat voterDelay = new Apfloat(0, DOUBLE_PRECISION);
 
 		AcyclicTaskGraph taskGraph = acycItgEnc.getTaskGraphOf(receiver);
-		for(ChannelAdapterWeightedEdge edge : taskGraph.getGraph().incomingEdgesOf(receiver)) {
+		for(SignalAdapterWeightedEdge edge : taskGraph.getGraph().incomingEdgesOf(receiver)) {
 			ITaskAdapter<?> sender = taskGraph.getGraph().getEdgeSource(edge);
 
 			// See if the sender has been replicated
@@ -106,8 +107,7 @@ public class FaultDetectionVotingEDFScheduler extends
 	protected Apfloat getExecutionTime(
 			TaskMappingEncoding<?, ? extends TaskMappingEntry<?, ?>> encoding,
 			InstantiatedAcyclicTaskGraphEncoding<FaultDetectionVotingTaskMappingEntry, ?> acycItgEnc,
-			ITaskAdapter<?> deployableComponent,
-			FaultDetectionVotingTaskMappingEntry entry) {
+			ITaskAdapter<?> deployableComponent, FaultDetectionVotingTaskMappingEntry entry) {
 
 		// Base execution time
 		Apfloat executionTime =
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/exception/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/exception/.ratings
index 1a43c56a42d2d29ad096836b8ad2f44a015c81af..1f3e129b400f6ecefe6fa493af5cf6826b77b092 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/exception/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/exception/.ratings
@@ -1,6 +1,7 @@
 ConstraintGenerationException.java 19f797ab00ccc39baada10cb09f8b90ab0601e9f RED
 ExplorationException.java b0fa9bc9f35234d02f5fb3bd8df210041ba733e3 RED
 ExplorationServiceException.java b51423a0cb273141f8e2c6f1758be99cca05ee30 RED
+InvalidModelException.java 52051b92f446aad76e1de425d9f550160b053525 RED
 InvalidPlatformModelException.java 15d709d1fc33ca99494632cdcde5959e29d4d985 RED
 InvalidTimingModelException.java 42f0053807eca0492d047cbe6b2e1ecb0fa2dba7 RED
 TransformationModuleException.java 474c084589d5e530b3573dd5af43b594c8d3221e RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/exception/InvalidModelException.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/exception/InvalidModelException.java
new file mode 100644
index 0000000000000000000000000000000000000000..f5ef624ea79418ee5f6bc6acea9126094ec27c49
--- /dev/null
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/exception/InvalidModelException.java
@@ -0,0 +1,64 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.af3.exploration.alg.exception;
+
+import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
+import org.fortiss.tooling.base.model.element.IModelElement;
+import org.fortiss.tooling.kernel.model.INamedElement;
+
+/**
+ * Exception to be thrown whenever an invalid input model has been recognized.
+ * 
+ * @author diewald
+ */
+public class InvalidModelException extends Exception {
+	/** Constructor. */
+	public InvalidModelException(IModelElement element, String msg) {
+		// @CodeFormatterOff
+		super("One of the input models is incorrectly specified for the DSE.\n" +
+				"The incorrectly specified element is " +
+				((element instanceof INamedElement) ? ((INamedElement)element).getName() :
+					element.toString()) +
+				"(" + ((element instanceof INamedElement) ? ((INamedElement)element).getId() : 
+					"<no ID>") +
+				"). Details:\n" + msg);
+		// @CodeFormatterOn
+	}
+
+	/** Constructor that stacks an additional {@link Exception}. */
+	public InvalidModelException(IModelElement element, String msg, Exception e) {
+		// @CodeFormatterOff
+		super("One of the input models is incorrectly specified for the DSE.\n" +
+				"The incorrectly specified element is " +
+				((element instanceof INamedElement) ? ((INamedElement)element).getName() :
+					element.toString()) +
+				"(" + ((element instanceof INamedElement) ? ((INamedElement)element).getId() : 
+					"<no ID>") +
+				"). Details:\n" + msg, e);
+		// @CodeFormatterOn
+	}
+
+	/** Exception for missing annotations in the input models. */
+	public InvalidModelException(IModelElement element,
+			Class<? extends IAnnotatedSpecification> annotationClass) {
+		// @CodeFormatterOff
+		super("One of the input models is incorrectly specified for the DSE.\n" + "The element " +
+				((element instanceof INamedElement) ? ((INamedElement)element).getName() :
+					element.toString()) + 
+				". is missing the annotation " + annotationClass.getSimpleName() + ".");
+		// @CodeFormatterOn
+	}
+}
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/port/plot/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/port/plot/.ratings
index 18f2f89535c4e4deaf65eaabe1f94cb7866c5d7a..f67dac442fa692cd3e057f10a3a0b9fed5f654f6 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/port/plot/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/port/plot/.ratings
@@ -4,4 +4,4 @@ ScheduleLabelGenerator.java 595273570eef7ef53ba5a9efd4ab25133aded3a8 RED
 SchedulePlotter.java 71570960426800c1e2589dd05e538e9abb69f126 RED
 ScheduleToolTipGenerator.java 492b5f3469dc2ae7e57af39059c09bd0b64773ae RED
 TaskSeriesCollectionFromSchedule.java a945f60435ee3bfa908db211a4924963a6dcdfb2 RED
-XYPlotter.java 67d288da8431677636f08dbd2c19cbb6a40aeabe RED
+XYPlotter.java fa10b612914c940cb6c42c3c072d00319aaf82ae RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/port/plot/XYPlotter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/port/plot/XYPlotter.java
index 9a939c23913ae2d16f92793d6bb7a49844900189..729ffc791f960af0a448405888306a659bf4c766 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/port/plot/XYPlotter.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/port/plot/XYPlotter.java
@@ -167,7 +167,7 @@ public class XYPlotter extends JFrame implements ChartMouseListener, ActionListe
 	private ExplorationSolutionSet explorationResult;
 
 	/** The {@link SystemModelAdapter} that references the explored system. */
-	private SystemModelAdapter<?, ?, ?, ?, ?, ?> exploredSystemModel;
+	private SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> exploredSystemModel;
 
 	/**
 	 * maps the names of the objectives to the GUI elements used to display the exact solution
@@ -206,9 +206,9 @@ public class XYPlotter extends JFrame implements ChartMouseListener, ActionListe
 		this.expSpec = expSpec;
 		this.explorationResult = explorationResult;
 		if(explorationResult
-				.getInputModelAdapter() instanceof SystemModelAdapter<?, ?, ?, ?, ?, ?>) {
-			this.exploredSystemModel =
-					(SystemModelAdapter<?, ?, ?, ?, ?, ?>)explorationResult.getInputModelAdapter();
+				.getInputModelAdapter() instanceof SystemModelAdapter<?, ?, ?, ?, ?, ?, ?>) {
+			this.exploredSystemModel = (SystemModelAdapter<?, ?, ?, ?, ?, ?, ?>)explorationResult
+					.getInputModelAdapter();
 		}
 		// TODO: throw an Exception if the SystemModelAdapter is not there.
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/.ratings
index ef9fa2a389e96a21875fb0692addeaeafe1990a3..3cf4406c30a1e50ff7ed61f38db99c9e0423212b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/.ratings
@@ -1,12 +1,12 @@
-ExplorationEncodingMap.java 57debf861ea9178de42467693ffe6eb4c62e809b RED
+ExplorationEncodingMap.java 0c8eedf00ba34b96a24b5ec0bcfbe50dbcc7ea35 RED
 ExplorationService.java f5067724b280208d9a7f59f417a068cbc7a20416 RED
-IExplorationConstraintTransformationService.java e422a566df4cff350c9d014c0d55430e8cc5f425 RED
-IExplorationContraintTransformationModule.java 5137f3d8a2bcb798b4ca976bd879f639f4db4ba5 RED
+IExplorationConstraintTransformationService.java 6c3c34b527d526674e6474b42131b6948bdb8937 RED
+IExplorationContraintTransformationModule.java a7ab4345519341a13ec2de1879c7efbd9cb0dbb2 RED
 IExplorationEncoding.java 510843700127afb540eda56934dbac3726b63529 RED
 IExplorationEvaluatationService.java 0b4af374a83386f3ac0e7fa8ba47b571da6fe58a RED
 IExplorationModule.java 8990c654e649f043fa9813b8bf9113ac7bd42d27 RED
-IExplorationRepairService.java 6e19e7213f7d0e1f141c776c07a150160e93c9d0 RED
+IExplorationRepairService.java 173f7631650eec36de1b001ced15547bda4df82a RED
 IExplorationService.java 891b8c4ce01e40ab31bf69231a63fd61c57ac98e RED
-IExplorationTargetEvaluator.java 8a485f62e6fedf39ccd5ef212ed02493d6e6f2b0 RED
+IExplorationTargetEvaluator.java 9b39b44f64ad8195583b00f8e3852bbc912f75fc RED
 IExplorationTransformationService.java aa63b9453ad395a111016cfd7fa7a30f35f4ea17 RED
 IRepairModule.java c494db967181595e03557cbaef210514b2cfad66 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/ExplorationEncodingMap.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/ExplorationEncodingMap.java
index 9e6c12a6c0bc2ad27fe3fc39afe0bdc9e787f11a..4944442871da1dbe54631fc12e8c70add6585444 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/ExplorationEncodingMap.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/ExplorationEncodingMap.java
@@ -32,11 +32,13 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
  * 
  * @author diewald
  */
-public class ExplorationEncodingMap<T extends IExplorationEncoding> implements
-		Iterable<Entry<Class<? extends T>, T>> {
+public class ExplorationEncodingMap<T extends IExplorationEncoding>
+		implements Iterable<Entry<Class<? extends T>, T>> {
 
-	/** References the {@link SystemModelAdapter} that provides an abstraction of the input models. */
-	protected SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter;
+	/**
+	 * References the {@link SystemModelAdapter} that provides an abstraction of the input models.
+	 */
+	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
 	/**
 	 * Map which correlates the {@link IExplorationEncoding} classes with their corresponding
@@ -45,7 +47,7 @@ public class ExplorationEncodingMap<T extends IExplorationEncoding> implements
 	protected LinkedHashMap<Class<? extends T>, T> encodings = new LinkedHashMap<>();
 
 	/** Constructor. */
-	public ExplorationEncodingMap(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+	public ExplorationEncodingMap(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		this.systemModelAdapter = systemModelAdapter;
 	}
 
@@ -69,7 +71,9 @@ public class ExplorationEncodingMap<T extends IExplorationEncoding> implements
 		return getEncodingInternal(subGenotypeClass);
 	}
 
-	/** Internal helper method to retrieve a sub-{@link IExplorationEncoding} by its type hierarchy. */
+	/**
+	 * Internal helper method to retrieve a sub-{@link IExplorationEncoding} by its type hierarchy.
+	 */
 	protected <E extends IExplorationEncoding> E getEncodingInternal(Class<E> encodingType) {
 		for(Entry<Class<? extends T>, T> composablePheno : encodings.entrySet()) {
 			if(encodingType.isAssignableFrom(composablePheno.getKey())) {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationConstraintTransformationService.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationConstraintTransformationService.java
index 6a1d4e2415523dc54e836c4e286d98ef3876864a..162af6156b3ccc8220ce129143fa9a70d48f122c 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationConstraintTransformationService.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationConstraintTransformationService.java
@@ -31,8 +31,8 @@ import org.fortiss.af3.exploration.model.GenericConstraint;
  * 
  * @author diewald
  */
-public interface IExplorationConstraintTransformationService extends
-		IExplorationService<IExplorationContraintTransformationModule<?>> {
+public interface IExplorationConstraintTransformationService
+		extends IExplorationService<IExplorationContraintTransformationModule<?>> {
 
 	// TODO: Should we use a separate marker for external Constrains?
 	/**
@@ -48,6 +48,6 @@ public interface IExplorationConstraintTransformationService extends
 	 *             if any of the registered transformation fails.
 	 */
 	Collection<ExplorationConstraint<?>> getTransformedConstraints(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Collection<GenericConstraint<?>> genericConstraints) throws ExplorationException;
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationContraintTransformationModule.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationContraintTransformationModule.java
index 0d1a9a6c4117dc6e351c8fcddd747bdc08984ccf..e0a511d95a1e291da330fa3a31470ac28caffccd 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationContraintTransformationModule.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationContraintTransformationModule.java
@@ -29,8 +29,8 @@ import org.fortiss.tooling.kernel.service.base.IEObjectAware;
  * 
  * @author diewald
  */
-public interface IExplorationContraintTransformationModule<T extends GenericConstraint<?>> extends
-		IEObjectAware<T>, IExplorationModule {
+public interface IExplorationContraintTransformationModule<T extends GenericConstraint<?>>
+		extends IEObjectAware<T>, IExplorationModule {
 
 	/**
 	 * Transforms constraints encoded in the given {@link GenericConstraint} to
@@ -46,6 +46,6 @@ public interface IExplorationContraintTransformationModule<T extends GenericCons
 	 *             If the transformation fails for any reason.
 	 */
 	Collection<ExplorationConstraint<?>> transformConstraint(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			GenericConstraint<?> currentConstraint) throws ExplorationException;
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationRepairService.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationRepairService.java
index 5314e902b78e0039414d94c9d3dc2693e0483c14..482ea809b050b323aa0ada89d5461ec0922daf87 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationRepairService.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationRepairService.java
@@ -42,5 +42,5 @@ public interface IExplorationRepairService extends IExplorationService<IRepairMo
 	 *             if any applicable {@link IRepairModule} could not be instantiated.
 	 */
 	<T extends Genotype> List<IRepairModule<T>> getRepairFunctionsOf(T genotype,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws ExplorationException;
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) throws ExplorationException;
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationTargetEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationTargetEvaluator.java
index f482bcf3031b305afb7941da98f9112b6cf11e42..8fbebfdd30a4cb23758fc78600bdc8548a5452b9 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationTargetEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/IExplorationTargetEvaluator.java
@@ -71,6 +71,6 @@ public interface IExplorationTargetEvaluator<P, RT, S extends ExplorationTarget<
 	 *             if the input validation fails.
 	 */
 	IExplorationTargetEvaluator<P, RT, S> createEvaluator(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter, S explorationTarget)
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter, S explorationTarget)
 			throws InstantiationException, Exception;
 }
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
index f48c7933a1cc83786e07721ce6c13a7a3282e9d3..a5a1d84ba5f8fe060f05bb42571abe8768de948b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
@@ -1,4 +1,4 @@
-ExplorationConstraintTransformationService.java 159d28f90748cb7fdcdec41756ebe1865995bb0d RED
-ExplorationEvaluationService.java 2e6370d00305a743dd1adfbfd56f47fd14fae1ad RED
-ExplorationRepairService.java 3729550ecef1815f6dbf95b46ce046424b713048 RED
+ExplorationConstraintTransformationService.java 865f1aba5538370e5855cc46cbe854b0340549e6 RED
+ExplorationEvaluationService.java 259ace09d86990428fb2ff9cfbff552cb4a69be8 RED
+ExplorationRepairService.java d8e467d2c83d17ee034ee4cba8c336660ec18b96 RED
 ExplorationTransformationService.java 89f24b8f70a4d942478a059193e11930b13c36f2 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationConstraintTransformationService.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationConstraintTransformationService.java
index 631464e5dfe55a2b8dba05ab856e5404f95145b6..9dcc641e300b3ea73a16f57c3ec9c8736ac6949b 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationConstraintTransformationService.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationConstraintTransformationService.java
@@ -31,9 +31,9 @@ import org.fortiss.tooling.kernel.service.base.EObjectAwareServiceBase;
  * 
  * @author diewald
  */
-public class ExplorationConstraintTransformationService extends
-		EObjectAwareServiceBase<IExplorationContraintTransformationModule<?>> implements
-		IExplorationConstraintTransformationService {
+public class ExplorationConstraintTransformationService
+		extends EObjectAwareServiceBase<IExplorationContraintTransformationModule<?>>
+		implements IExplorationConstraintTransformationService {
 
 	/** The evaluator provider extension point ID. */
 	private static final String EXTENSION_POINT_NAME =
@@ -82,14 +82,14 @@ public class ExplorationConstraintTransformationService extends
 	 */
 	@Override
 	public Collection<ExplorationConstraint<?>> getTransformedConstraints(
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 			Collection<GenericConstraint<?>> genericConstraints) throws ExplorationException {
 		Collection<ExplorationConstraint<?>> transformedConstraints = new ArrayList<>();
 		for(GenericConstraint<?> currentConstraint : genericConstraints) {
-			for(IExplorationContraintTransformationModule<?> module : getRegisteredHandlers(currentConstraint
-					.getClass())) {
-				transformedConstraints.addAll(module.transformConstraint(systemModelAdapter,
-						currentConstraint));
+			for(IExplorationContraintTransformationModule<?> module : getRegisteredHandlers(
+					currentConstraint.getClass())) {
+				transformedConstraints
+						.addAll(module.transformConstraint(systemModelAdapter, currentConstraint));
 			}
 		}
 
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
index b597079d819410d7a087a59b690be181964beb6f..dd4e38463ae9e6e093b899868756d4430ba20803 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
@@ -47,8 +47,8 @@ import com.google.common.collect.Multimap;
  * 
  * @author diewald
  */
-public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<?, ?, ?>> extends
-		EObjectAwareServiceBase<T> implements IExplorationEvaluatationService<T> {
+public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<?, ?, ?>>
+		extends EObjectAwareServiceBase<T> implements IExplorationEvaluatationService<T> {
 
 	/** The evaluator provider extension point ID. */
 	private static final String EXTENSION_POINT_NAME = "org.fortiss.af3.exploration.alg.evaluator";
@@ -135,8 +135,8 @@ public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<
 	/** {@inheritDoc} */
 	@SuppressWarnings("unchecked")
 	@Override
-	public Collection<Class<?>> getRequiredTransformedModels(
-			Set<IExplorationTargetEvaluator<?, ?, ?>> evaluators) {
+	public Collection<Class<?>>
+			getRequiredTransformedModels(Set<IExplorationTargetEvaluator<?, ?, ?>> evaluators) {
 		Set<Class<?>> retVal = new HashSet<>();
 		evaluators.forEach(e -> retVal.addAll(requiredTransformedModels
 				.get((Class<IExplorationTargetEvaluator<?, ?, ?>>)e.getClass())));
@@ -182,8 +182,8 @@ public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<
 	private void checkInputConsistency(Collection<Class<?>> requiredNonPhenoInputs)
 			throws ExplorationServiceException {
 		for(Class<?> curInputType : requiredNonPhenoInputs) {
-			if(!getService(IExplorationTransformationService.class).canTransformOutputType(
-					curInputType)) {
+			if(!getService(IExplorationTransformationService.class)
+					.canTransformOutputType(curInputType)) {
 				throw new ExplorationServiceException(
 						(Class<? extends IExplorationService<?>>)IExplorationEvaluatationService.class,
 						"The required input type " + curInputType.getSimpleName() +
@@ -210,7 +210,7 @@ public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<
 	 *             if the construction of the evaluator fails due to some unknown reason.
 	 */
 	public <P, RT, ET extends ExplorationTarget<RT>> EvaluatorWrapper<P, RT, ET>
-			createEvalWrapperFor(SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter,
+			createEvalWrapperFor(SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter,
 					ET explorationTarget) throws InstantiationException, Exception {
 		@SuppressWarnings("unchecked") Collection<IExplorationTargetEvaluator<P, RT, ET>> evaluatorHandlers =
 				(Collection<IExplorationTargetEvaluator<P, RT, ET>>)getInstance()
@@ -230,7 +230,8 @@ public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<
 
 			@SuppressWarnings("unchecked") Class<P> primaryInputType =
 					(Class<P>)evaluatorHandler.getPrimaryInputType();
-			assert (Phenotype.class.isAssignableFrom(primaryInputType)) : "The primary input type is not a genotype. Only Genotypes are currently supported.";
+			assert (Phenotype.class.isAssignableFrom(
+					primaryInputType)) : "The primary input type is not a genotype. Only Genotypes are currently supported.";
 
 			int priority = 9999;
 			if(explorationTarget instanceof MOExplorationObjective<?>) {
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationRepairService.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationRepairService.java
index b9e6ccb2f67b260dde537741de2885ce29bce3c7..ea56523c19b47ed22864633bd5cc5a99193e276e 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationRepairService.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationRepairService.java
@@ -36,8 +36,8 @@ import org.opt4j.core.Genotype;
  * 
  * @author diewald
  */
-public class ExplorationRepairService extends ObjectAwareServiceBase<IRepairModule<?>> implements
-		IExplorationRepairService {
+public class ExplorationRepairService extends ObjectAwareServiceBase<IRepairModule<?>>
+		implements IExplorationRepairService {
 
 	/** The evaluator provider extension point ID. */
 	private static final String EXTENSION_POINT_NAME =
@@ -101,7 +101,8 @@ public class ExplorationRepairService extends ObjectAwareServiceBase<IRepairModu
 	@SuppressWarnings("unchecked")
 	@Override
 	public <T extends Genotype> List<IRepairModule<T>> getRepairFunctionsOf(T genotype,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) throws ExplorationException {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
+			throws ExplorationException {
 		List<IRepairModule<T>> repairModuleInstances = new ArrayList<>();
 		Collection<IRepairModule<?>> registeredHandlers =
 				castToRawColl(getRegisteredHandlers(genotype.getClass()));
@@ -110,8 +111,8 @@ public class ExplorationRepairService extends ObjectAwareServiceBase<IRepairModu
 			IRepairModule<T> moduleInstance;
 			try {
 				Constructor<IRepairModule<T>> extConstructor =
-						(Constructor<IRepairModule<T>>)curModuleTemplate.getClass().getConstructor(
-								SystemModelAdapter.class);
+						(Constructor<IRepairModule<T>>)curModuleTemplate.getClass()
+								.getConstructor(SystemModelAdapter.class);
 				moduleInstance = extConstructor.newInstance(systemModelAdapter);
 			} catch(Exception e) {
 				throw new ExplorationException(
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/util/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/util/.ratings
index c1f40fb6530d9bd353e85a2937229eec1f797ed0..2854b1f8d9be04ce6c3da5b143852e2ca6c8ade3 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/util/.ratings
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/util/.ratings
@@ -1,4 +1,4 @@
-AF3Utils.java 3d20c4fe4fdddb4598ffb4965e12a4c833d16b2d RED
+AF3Utils.java 0449890944a45bf8cc1c7ce9a578228ba9b824f8 RED
 DesignSpaceExplorationModelElementFactory.java 9dc330973f132c4b936e4dc7ee8407614faf2ff6 RED
 ExplorationAlgDebugUtils.java 06116a61e99717a59b7b01e4e2865bf044a8a0e2 RED
 ExplorationAlgUtils.java 2cf411c8d8404d7319d7bc836dd74b5927375711 RED
diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/util/AF3Utils.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/util/AF3Utils.java
index 7845c4166d801ff4323a25ae7f2fa62689b68422..9525197c8029a8d6da2051877594ef8611bb294f 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/util/AF3Utils.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/util/AF3Utils.java
@@ -59,6 +59,7 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.mapping.IMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.mapping.IMappingEntry;
+import org.fortiss.af3.exploration.alg.exception.InvalidModelException;
 import org.fortiss.af3.exploration.alg.exception.InvalidPlatformModelException;
 import org.fortiss.af3.exploration.alg.exception.InvalidTimingModelException;
 import org.fortiss.af3.exploration.alg.guava.TypedBiMap;
@@ -70,10 +71,12 @@ import org.fortiss.af3.platform.model.PlatformArchitecture;
 import org.fortiss.af3.platform.model.PlatformConnectorUnit;
 import org.fortiss.af3.platform.model.annotation.ResourceLink;
 import org.fortiss.af3.safety.model.SafetyArchitecture;
+import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
 import org.fortiss.tooling.base.model.element.IConnection;
 import org.fortiss.tooling.base.model.element.IConnector;
 import org.fortiss.tooling.base.model.element.IHierarchicElement;
 import org.fortiss.tooling.base.model.element.IModelElement;
+import org.fortiss.tooling.base.utils.AnnotationUtils;
 import org.fortiss.tooling.kernel.model.IIdLabeled;
 import org.jgrapht.DirectedGraph;
 import org.jgrapht.graph.DefaultEdge;
@@ -286,7 +289,7 @@ public class AF3Utils {
 	 */
 	// TODO: update doc.
 	public static ConnectionType getConnectionTypeDirection(IConnector sourceConnector,
-			IConnector targetConnector, SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
+			IConnector targetConnector, SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
 			throws InvalidPlatformModelException {
 		// By the method signature, we know the instance type is a IConnector class.
 		@SuppressWarnings("unchecked") ConnectionType connectionTypeSource =
@@ -319,6 +322,28 @@ public class AF3Utils {
 		return BIDIRECTIONAL;
 	}
 
+	/**
+	 * Returns the given {@link IAnnotatedSpecification} type of the given {@link IModelElement} and
+	 * throws an exception if the annotation cannot be found.
+	 * 
+	 * @param element
+	 *            {@link IModelElement} to fetch the {@link IAnnotatedSpecification} from.
+	 * @param annotationClass
+	 *            {@link IAnnotatedSpecification}-Type.
+	 * @return The {@link IAnnotatedSpecification} of the given {@link IModelElement}.
+	 * @throws InvalidModelException
+	 *             if no {@link IAnnotatedSpecification} of the given type exists for the given
+	 *             {@link IModelElement}.
+	 */
+	public static <T extends IAnnotatedSpecification> T getAnnotationChecked(IModelElement element,
+			Class<T> annotationClass) throws InvalidModelException {
+		T annotation = AnnotationUtils.getAnnotation(element, annotationClass);
+		if(annotation == null) {
+			throw new InvalidModelException(element, annotationClass);
+		}
+		return annotation;
+	}
+
 	/**
 	 * Returns the type of communication the given port can handle: incoming, outgoing, or
 	 * bidirectional traffic.
@@ -330,7 +355,7 @@ public class AF3Utils {
 	 * @return The port type (default = bidirectional).
 	 */
 	public static ConnectionType getPortDirection(IPlatformPort sourceConnector,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter) {
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter) {
 		// By the method signature, we know the instance type is a IConnector class.
 		@SuppressWarnings("unchecked") ConnectionType connectionTypeSource =
 				systemModelAdapter.getConnectionType(
@@ -634,7 +659,7 @@ public class AF3Utils {
 	 *             if the deployable element cannot be identified.
 	 */
 	public static <T extends EObject> boolean isAnyParentComponentDeployable(EObject startElement,
-			SystemModelAdapter<?, ?, ?, ?, ?, ?> systemModelAdapter)
+			SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter)
 			throws InvalidTimingModelException {
 		EList<Component> parentElements = getParentsWithType(startElement, Component.class);