From 4704a424535d929ec2523049432fc32a1d804e56 Mon Sep 17 00:00:00 2001
From: Alexander Diewald <diewald@fortiss.org>
Date: Tue, 6 Feb 2018 14:13:28 +0000
Subject: [PATCH] Exploration.alg: AF3-Adapter cleanup.

* Isolate the property readout (from annotations) in single adapters.
* Reintegrate the ReplicationBound annotation.
* Add an additional parameter to the SystemModelAdapter.
refs 3262
---
 .../trunk/model/moea.ecore                    |    9 +
 .../trunk/model/moea.genmodel                 |    4 +
 .../trunk/plugin.xml                          |    6 +
 .../alg/annotation/valueprovider/.ratings     |    2 +
 .../MaxReplicationBoundValueProvider.java     |   44 +
 .../MinReplicationBoundValueProvider.java     |   44 +
 .../af3/exploration/alg/backend/.ratings      |    2 +-
 .../alg/backend/Opt4JDseBackend.java          |    2 +-
 .../fortiss/af3/exploration/alg/dse/.ratings  |    8 +-
 .../af3/exploration/alg/dse/DSEFactory.java   |   21 +-
 .../af3/exploration/alg/dse/Explorer.java     |   10 +-
 .../dse/ImplicitExplorationTargetFactory.java |    4 +-
 .../alg/dse/TaskMappingFactory.java           |   44 +-
 .../af3/exploration/alg/dse/backend/.ratings  |    2 +-
 .../alg/dse/backend/ExplorerBackendBase.java  |   14 +-
 .../alg/dse/backend/opt4j/.ratings            |    2 +-
 .../backend/opt4j/Opt4JExplorerBackend.java   |    2 +-
 .../alg/dse/backend/opt4j/create/.ratings     |    2 +-
 .../ArchitectureExplorationCreator.java       |    6 +-
 .../opt4j/create/partitionmapping/.ratings    |    2 +-
 .../PartitionMappingCreator.java              |    2 +-
 .../backend/opt4j/create/platform/.ratings    |    2 +-
 .../PlatformCommunicationGraphCreator.java    |    2 +-
 .../opt4j/create/safetyfunctionarch/.ratings  |    2 +-
 .../SafetyFunctionArchCreator.java            |    2 +-
 .../backend/opt4j/create/taskmapping/.ratings |    8 +-
 .../AbstractTaskMappingCreator.java           |    2 +-
 .../FailSilentTaskMappingCreator.java         |    2 +-
 ...aultDetectionVotingTaskMappingCreator.java |    2 +-
 .../taskmapping/TaskMappingCreator.java       |    2 +-
 .../opt4j/encoding/partitionmapping/.ratings  |    2 +-
 .../PartitionMappingEncoding.java             |    2 +-
 .../backend/opt4j/encoding/platform/.ratings  |    2 +-
 .../PlatformCommunicationGraphEncoding.java   |    8 +-
 .../backend/opt4j/encoding/taskgraph/.ratings |   10 +-
 .../taskgraph/AbstractTaskGraphEncoding.java  |    2 +-
 .../InstantiatedAcyclicTaskGraphEncoding.java |    4 +-
 .../InstantiatedTaskGraphEncoding.java        |    5 +-
 .../taskgraph/SafeTaskGraphEncoding.java      |    6 +-
 .../encoding/taskgraph/TaskGraphEncoding.java |   39 +-
 .../opt4j/encoding/taskmapping/.ratings       |    2 +-
 .../taskmapping/TaskMappingEncoding.java      |   10 +-
 .../taskmapping/abstractmapping/.ratings      |    2 +-
 .../AbstractTaskMappingEncoding.java          |   16 +-
 .../taskmapping/instantiatedmapping/.ratings  |    6 +-
 .../FailSilentTaskMappingEncoding.java        |   18 +-
 ...ultDetectionVotingTaskMappingEncoding.java |   12 +-
 .../InstantiatedTaskMappingEncoding.java      |   12 +-
 .../extensions/compositegene/create/.ratings  |    4 +-
 .../create/ComposableCreatorBase.java         |    4 +-
 .../create/CompositeCreatorBase.java          |    8 +-
 .../extensions/compositegene/decode/.ratings  |    2 +-
 .../decode/CompositeDecoderBase.java          |    4 +-
 .../compositegene/evaluate/.ratings           |    2 +-
 .../evaluate/CompositeEvaluatorBase.java      |    4 +-
 .../extensions/compositegene/graph/.ratings   |    2 +-
 .../graph/DecoderDependencyGraph.java         |   13 +-
 .../compositegene/phenotype/.ratings          |    2 +-
 .../phenotype/FlatPhenotypeMap.java           |    2 +-
 .../alg/dse/backend/opt4j/mating/.ratings     |    4 +-
 .../mating/MatingCrossoverMutateRepair.java   |   10 +-
 .../MatingCrossoverMutateRepairModule.java    |    7 +-
 .../backend/opt4j/operator/crossover/.ratings |    8 +-
 .../CrossoverAbstractTaskMappingModule.java   |    4 +-
 .../crossover/CrossoverAllocationBase.java    |   10 +-
 .../CrossoverRandManyAllocation.java          |    4 +-
 .../crossover/CrossoverSingleAllocation.java  |    4 +-
 .../operator/crossover/failSilent/.ratings    |    2 +-
 .../CrossoverAllocationFailSilent.java        |    2 +-
 .../crossover/faultDetectionVoting/.ratings   |    2 +-
 ...ossoverAllocationFaultDetectionVoting.java |    5 +-
 .../backend/opt4j/operator/mutate/.ratings    |    2 +-
 .../opt4j/operator/mutate/MutateBase.java     |    4 +-
 .../operator/mutate/partitionmapping/.ratings |    8 +-
 .../partitionmapping/MutatePartitionBase.java |    2 +-
 .../MutatePartitionDecrement.java             |    2 +-
 .../MutatePartitionIncrement.java             |    2 +-
 .../PartitionMappingModule.java               |    4 +-
 .../opt4j/operator/mutate/safetyarch/.ratings |   10 +-
 .../safetyarch/MutateChannelNumber.java       |    2 +-
 .../MutateConnectedDiagnosisPresent.java      |    2 +-
 .../safetyarch/MutateSafetyArchBase.java      |    6 +-
 ...utateSafetyFunctionArchitectureModule.java |   16 +-
 .../MutateSafetyTriggerSignalNumber.java      |    7 +-
 .../mutate/taskinstantiation/.ratings         |    4 +-
 .../taskinstantiation/MutateTaskInstance.java |    8 +-
 .../MutateTaskInstanceModule.java             |    8 +-
 .../operator/mutate/taskmapping/.ratings      |   12 +-
 .../mutate/taskmapping/MutateAllocation.java  |   14 +-
 .../mutate/taskmapping/MutateRedundancy.java  |    2 +-
 .../MutateRedundancyDecrement.java            |    6 +-
 .../MutateRedundancyIncrement.java            |    6 +-
 .../taskmapping/MutateTaskMappingModule.java  |    4 +-
 .../mutate/taskmapping/MutateTasksBase.java   |    2 +-
 .../alg/dse/backend/opt4j/problem/.ratings    |    8 +-
 .../opt4j/problem/ArchitectureDecoder.java    |    6 +-
 .../ArchitectureExplorationProblemModule.java |    9 +-
 .../opt4j/problem/DseProblemModuleBase.java   |    4 +-
 .../opt4j/problem/StrictTTDecoder.java        |    4 +-
 .../dse/backend/opt4j/problem/comm/.ratings   |    2 +-
 .../opt4j/problem/comm/MessageDecoder.java    |    6 +-
 .../problem/instantiatetaskgraph/.ratings     |    4 +-
 .../InstantiatedTaskMappingDecoder.java       |   43 +-
 ...InstantiatedTaskMappingDecoderAcyclic.java |    4 +-
 .../opt4j/problem/safetyfunction/.ratings     |    6 +-
 .../safetyfunction/SFGraphDecoder.java        |    7 +-
 .../SFMappingConstraintDecoder.java           |    9 +-
 .../safetyfunction/SFMappingDecoder.java      |   13 +-
 .../problem/taskmapping/instantiate/.ratings  |    6 +-
 .../AbstractTaskMappingDecoder.java           |    4 +-
 .../FailSilentAbstractTaskMappingDecoder.java |    2 +-
 ...ctionVotingAbstractTaskMappingDecoder.java |    2 +-
 .../alg/dse/backend/opt4j/repair/.ratings     |    2 +-
 .../opt4j/repair/RepairModuleBase.java        |    4 +-
 .../alg/dse/backend/opt4j/solution/.ratings   |    2 +-
 .../opt4j/solution/StrictTTSchedule.java      |    5 +-
 .../exploration/alg/dse/evaluator/.ratings    |    8 +-
 .../dse/evaluator/ArchitectureEvaluator.java  |   10 +-
 .../ExplorationTargetEvaluatorBase.java       |    5 +-
 .../evaluator/ExpressionEvaluatorBase.java    |    4 +-
 .../dse/evaluator/TaskMappingEvaluator.java   |    4 +-
 .../alg/dse/evaluator/constraint/.ratings     |   14 +-
 ...entMultiAllocationConstraintEvaluator.java |    6 +-
 ...ntMultiDislocationConstraintEvaluator.java |   13 +-
 .../constraint/ConstraintEvaluatorBase.java   |    2 +-
 .../DeadlineConstraintEvaluator.java          |    4 +-
 .../MappingEvaluatorConstraint.java           |    4 +-
 .../constraint/PeriodConstraintEvaluator.java |   12 +-
 ...fetyIntegrityLevelConstraintEvaluator.java |    9 +-
 .../alg/dse/evaluator/objective/.ratings      |   10 +-
 .../objective/EnergyObjectiveEvaluator.java   |   12 +-
 .../FailSilentReliabilityEvaluator.java       |    7 +-
 ...ltDetectionVotingReliabilityEvaluator.java |   15 +-
 .../objective/MappingEvaluatorObjective.java  |    4 +-
 .../objective/ReliabilityEvaluatorBase.java   |   11 +-
 .../af3/exploration/alg/dse/sysmodel/.ratings |    4 +-
 .../sysmodel/FailSilentExecModelFactory.java  |   34 +-
 .../FaultDetectionVotingExecModelFactory.java |   34 +-
 .../alg/dse/sysmodel/arch/.ratings            |    7 +-
 .../arch/DeprecatedSystemModelAdapter.java    | 1166 -----------------
 .../sysmodel/arch/ISafetyFunctionAdapter.java |    2 +-
 .../alg/dse/sysmodel/arch/ISignalAdapter.java |    5 +-
 .../dse/sysmodel/arch/SystemModelAdapter.java |   45 +-
 .../alg/dse/sysmodel/arch/af3/.ratings        |   22 +-
 .../arch/af3/AF3ExecutionUnitAdapter.java     |   15 +-
 .../sysmodel/arch/af3/AF3GatewayAdapter.java  |   35 +-
 .../arch/af3/AF3MemoryUnitAdapter.java        |   21 +-
 .../af3/AF3PlatformArchitectureAdapter.java   |    1 -
 .../sysmodel/arch/af3/AF3RequestAdapter.java  |    5 +-
 .../sysmodel/arch/af3/AF3ResourceAdapter.java |   18 +-
 .../af3/AF3ResourceConnectionAdapter.java     |    1 -
 .../sysmodel/arch/af3/AF3SignalAdapter.java   |   58 +-
 .../arch/af3/AF3SystemModelAdapter.java       |  102 +-
 .../dse/sysmodel/arch/af3/AF3TaskAdapter.java |   90 +-
 .../arch/af3/AF3TransmissionUnitAdapter.java  |   37 +-
 .../alg/dse/sysmodel/arch/taskgraph/.ratings  |   10 +-
 .../arch/taskgraph/AcyclicTaskGraph.java      |   12 +-
 .../arch/taskgraph/DefaultTaskGraph.java      |   36 +-
 ...ge.java => SignalAdapterWeightedEdge.java} |   34 +-
 .../sysmodel/arch/taskgraph/TaskGraph.java    |    8 +-
 .../arch/taskgraph/TaskGraphInstantiator.java |   14 +-
 .../alg/dse/sysmodel/comm/.ratings            |    4 +-
 .../alg/dse/sysmodel/comm/Message.java        |   20 +-
 .../dse/sysmodel/comm/MessageGenerator.java   |   23 +-
 .../alg/dse/sysmodel/mapping/comm/.ratings    |    4 +-
 .../sysmodel/mapping/comm/MessageRouter.java  |    4 +-
 .../mapping/comm/ShortestPathRouter.java      |    2 +-
 .../alg/dse/sysmodel/sched/.ratings           |    2 +-
 .../alg/dse/sysmodel/sched/SchedulerBase.java |   13 +-
 .../alg/dse/sysmodel/sched/comm/.ratings      |    2 +-
 .../sysmodel/sched/comm/TDMABusScheduler.java |    7 +-
 .../alg/dse/sysmodel/sched/proc/.ratings      |    6 +-
 .../sysmodel/sched/proc/EDFSchedulerBase.java |   12 +-
 .../sched/proc/FailSilentEDFScheduler.java    |    4 +-
 .../FaultDetectionVotingEDFScheduler.java     |   12 +-
 .../af3/exploration/alg/exception/.ratings    |    1 +
 .../alg/exception/InvalidModelException.java  |   64 +
 .../af3/exploration/alg/port/plot/.ratings    |    2 +-
 .../exploration/alg/port/plot/XYPlotter.java  |    8 +-
 .../af3/exploration/alg/service/.ratings      |   10 +-
 .../alg/service/ExplorationEncodingMap.java   |   16 +-
 ...rationConstraintTransformationService.java |    6 +-
 ...lorationContraintTransformationModule.java |    6 +-
 .../service/IExplorationRepairService.java    |    2 +-
 .../service/IExplorationTargetEvaluator.java  |    2 +-
 .../exploration/alg/service/internal/.ratings |    6 +-
 ...rationConstraintTransformationService.java |   16 +-
 .../ExplorationEvaluationService.java         |   17 +-
 .../internal/ExplorationRepairService.java    |   11 +-
 .../fortiss/af3/exploration/alg/util/.ratings |    2 +-
 .../af3/exploration/alg/util/AF3Utils.java    |   31 +-
 191 files changed, 968 insertions(+), 2125 deletions(-)
 create mode 100644 org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/MaxReplicationBoundValueProvider.java
 create mode 100644 org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/MinReplicationBoundValueProvider.java
 delete mode 100644 org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/DeprecatedSystemModelAdapter.java
 rename org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/{ChannelAdapterWeightedEdge.java => SignalAdapterWeightedEdge.java} (60%)
 create mode 100644 org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/exception/InvalidModelException.java

diff --git a/org.fortiss.af3.exploration.alg/trunk/model/moea.ecore b/org.fortiss.af3.exploration.alg/trunk/model/moea.ecore
index cea982e5..09a56b93 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 77294a70..713399b3 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 7e8bc43f..4401646f 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 f2c9c9aa..8732d844 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 00000000..965e454e
--- /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 00000000..c6c19394
--- /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 79e02692..7997c2ae 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 eb58def5..31e8c7b3 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 822fb461..14e19ce8 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 8c29476a..54004127 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 44678306..806837be 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 9a8537ac..6e2162ac 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 31c2532d..cdb34c19 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 c17e596b..52edec4a 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 2eebc168..704b078e 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 332d7213..0ceea939 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 f934f458..3073d306 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 996587ed..b88f4248 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 f02e0545..d4bf0d59 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 372551f4..ec4315b5 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 46350306..78491205 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 81bd771c..98d16b02 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 7178369b..9427662c 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 f218e2be..20c6ada4 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 ef4f39b8..eea94600 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 3de3e3fc..049b045e 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 4f5f45b2..f8bcc0e5 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 aff9d212..e26e6811 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 2181f073..c1991126 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 9eaa1507..576da44e 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 34061c36..069573fa 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 9968729f..d298d291 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 c88f38ee..1a362938 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 c28fd928..2aa5bb16 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 0cd302f7..4d759b43 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 829fd8fb..fd50f6bd 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 652b4c5c..67998b5b 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 7f7d6635..cf1f8f17 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 388e7b55..5a2726db 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 a74981b4..3890f90d 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 b2638f3c..a92b55cd 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 97e0f046..63ca9e12 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 f0c82406..be62ba9c 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 cc323f91..bc825e86 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 d7f4cbb2..a815873f 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 7e2a2ef7..61622c70 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 7b17d461..2d7b0bdb 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 8a09e8e5..a616471c 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 cb1014a4..cba6099f 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 68aaa13a..e6437bb4 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 afe74ae6..0a609d7a 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 7e571dab..35d587cc 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 33a42479..fad862eb 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 b69be0d2..9215094d 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 1ecde2ab..53a0844f 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 f66a02fd..14cc86ad 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 bcfe90be..02273be7 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 f5c9cdd3..307eb0fd 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 77c120db..7c5e0ac8 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 4bae8432..803c17bb 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 e43acacf..92403b27 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 4d3d2411..004d221f 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 dab5c473..08cb6b2c 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 e11266b3..fbcc187a 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 a77fd825..42bff2bd 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 062a4310..61b48041 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 af3e39cf..b70541b3 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 03cb89f9..0bf9bbd4 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 f51d5c46..6d0e7f98 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 a9021c4e..fe20f0fa 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 51b7c851..f30d57ad 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 2ad622cf..842f012a 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 12c702ac..977b70a9 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 da3e59a2..943b9bdc 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 ee5d6032..aaff7118 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 a22acd63..d0214e9a 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 e1625d6f..54ea1dff 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 186360b7..9a775f93 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 6534587c..c33bb16e 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 c5a844a2..c0e6ad96 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 ad7b6289..14fa9a39 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 0a3c1007..637de8ce 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 77acb7f4..afe87271 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 fc6d299c..f6ebb9ce 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 3e0fa75b..9f903091 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 b67af2d5..880a43dc 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 aad2b5d0..29586e3b 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 ca376087..5d5b5e77 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 7a7e9419..b63e0a89 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 dbc7fc02..4a6b67df 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 ef9c861d..62001365 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 a046ba64..9fd1c7a9 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 ffa7e5af..278e9df9 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 6b3ae2cf..2173de78 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 bd7cf908..4027b6e6 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 a772d663..cdd3b5ae 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 d0267920..4bd9474e 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 e0f8609a..e8661b3e 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 d6d929cc..59d11e62 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 e317c62d..568e28ea 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 536af4a9..fbace084 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 f556b706..db79dd4c 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 c812e756..8a8aaebd 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 42983f82..5aaaf2f7 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 c2f62bf7..f008274a 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 613219cc..a0d0ba4c 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 bff365d9..1a28d877 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 3cc2fd1a..a4e23b92 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 1755d9c2..784ff100 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 bf042302..15cd38f1 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 c162c849..c01bd795 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 7e0ac023..8b31cecb 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 14c5be02..8f1f27b5 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 e444550c..d7f221ab 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 b91d9f9e..9318b140 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 d87bf12d..156e81c0 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 481e4886..aa2879b2 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 2bc27acc..969118d7 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 a6ad81fd..d50dc78a 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 1c1b944b..29a366b9 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 8596fa79..880a7527 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 ac519bad..8e5cb9b8 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 734815b2..1c3d042e 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 8b31c80f..851d4151 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 772adcac..390219c8 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 e0cb48b1..dfe69382 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 e5f12704..9e704335 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 1a9c9ee9..10830bfc 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 2b797123..fce18765 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 b79d9411..e28f2068 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 f6f2932c..55b55ad2 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 4f72253e..b3167361 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 33400203..f855845c 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 200cc7c7..b970ee5c 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 cad040c4..303e2f73 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 a88db7b2..9ee1c142 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 24efbb94..cb5d5816 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 7153d4be..2e62878a 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 aba3765f..d20afb79 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 e9956883..00000000
--- 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 4013b994..503745b2 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 51ba90cc..a576d906 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 1c878ff4..def49c10 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 9db5d440..b5935237 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 23c37922..e0a7927c 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 7cc21dc9..cbfca3b4 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 ab710b5b..4d896d2e 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 58d805ad..d5a5a7a8 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 f1fd8c6a..c859ff36 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 5ed7ec7a..ca6c78c2 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 4406f4f3..56a9eb31 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 6b0d549b..2cbd39d7 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 a9166087..08d7f655 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 6bb4ded9..450e544b 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 15672d94..41e17639 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 be019214..a63fe482 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 da6df476..51100f23 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 970d3445..682aebc4 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 051799be..b40989ee 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 b8e507cd..27fdf1ac 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 cfe3dd23..1f8a218f 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 e27cfea5..d953d608 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 d304ff9b..d4b5432e 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 5deb3528..874c43be 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 ac2e908b..a4c072e4 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 d1a348ad..3e86aba3 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 7fdcdf31..9644036c 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 ee66f500..182ddfea 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 8de79db5..46397550 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 0514a704..aae4aefe 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 4384a1b6..cbec0226 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 dd0d7953..fb9132f6 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 4b69319a..040c5820 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 73c52484..64f7d4ab 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 1e838544..059f98c7 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 1a43c56a..1f3e129b 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 00000000..f5ef624e
--- /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 18f2f895..f67dac44 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 9a939c23..729ffc79 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 ef9fa2a3..3cf4406c 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 9e6c12a6..49444428 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 6a1d4e24..162af615 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 0d1a9a6c..e0a511d9 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 5314e902..482ea809 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 f482bcf3..8fbebfdd 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 f48c7933..a5a1d84b 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 631464e5..9dcc641e 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 b597079d..dd4e3846 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 b9e6ccb2..ea56523c 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 c1f40fb6..2854b1f8 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 7845c416..9525197c 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);
 
-- 
GitLab