diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/BPMNTestgenerationApplication.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/BPMNTestgenerationApplication.java
index 5ebf377cc13182725c8794438be6dd4c8a569964..24ad441a0825354a705f576a5dfe7782bcd4355c 100644
--- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/BPMNTestgenerationApplication.java
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/BPMNTestgenerationApplication.java
@@ -4,14 +4,10 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.support.SpringBootServletInitializer;
 
-import de.fhmuenster.masterthesis.Testgenerator.migration.MigrationService;
-
 @SpringBootApplication
 public class BPMNTestgenerationApplication extends SpringBootServletInitializer {
 
 	public static void main(String[] args) {
 		SpringApplication.run(BPMNTestgenerationApplication.class, args);
-		
-		//MigrationService service = new MigrationService();
 	}
 }
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/ActionType.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/ActionType.java
new file mode 100644
index 0000000000000000000000000000000000000000..e33ac0a9b4aa78b25dacd662f6b8aa2e17c1c7fe
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/ActionType.java
@@ -0,0 +1,5 @@
+package de.fhmuenster.masterthesis.Testgenerator.migration;
+
+public enum ActionType {
+	ACTIVITY_ADD_MANUAL_TASK, ACTIVITY_ADD_USER_TASK, ACTIVITY_ADD_SCRIPT_TASK, ACTIVITY_ADD_SERVICE_TASK
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..29bcbd5f65bfe6950ff2287f415b342ead9b4f40
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java
@@ -0,0 +1,98 @@
+package de.fhmuenster.masterthesis.Testgenerator.migration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import de.fhmuenster.masterthesis.Testgenerator.rest.dto.BPMNFlowDTO;
+import de.fhmuenster.masterthesis.Testgenerator.rest.dto.FlowChangeWrapperDTO;
+import de.fhmuenster.masterthesis.Testgenerator.rest.dto.FlowElementDTO;
+import de.fhmuenster.masterthesis.Testgenerator.rest.dto.MigrationResultDTO;
+import de.fhmuenster.masterthesis.Testgenerator.yaml.MigrationResult;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+
+public class FlowChangeWrapper {
+	
+	private Flow flow;
+	private ActionType actionType;
+	private FlowElement flowElement;
+	private MigrationResult migrationResult;
+	
+	public FlowChangeWrapper() {
+		
+	}
+
+	public Flow getFlow() {
+		return flow;
+	}
+
+	public void setFlow(Flow flow) {
+		this.flow = flow;
+	}
+
+	public ActionType getActionType() {
+		return actionType;
+	}
+
+	public void setActionType(ActionType actionType) {
+		this.actionType = actionType;
+	}
+
+	public FlowElement getFlowElement() {
+		return flowElement;
+	}
+
+	public void setFlowElementReference(FlowElement flowElement) {
+		this.flowElement = flowElement;
+	}
+
+	public FlowChangeWrapper(Flow flow, ActionType actionType, FlowElement flowElement, MigrationResult migrationResult) {
+		this.flow = flow;
+		this.actionType = actionType;
+		this.flowElement = flowElement;
+		this.migrationResult = migrationResult;
+	}
+
+	public MigrationResult getMigrationResult() {
+		return migrationResult;
+	}
+
+	public void setMigrationResult(MigrationResult migrationResult) {
+		this.migrationResult = migrationResult;
+	}
+	
+	public FlowChangeWrapperDTO convertToDTO() {
+		FlowChangeWrapperDTO dto = new FlowChangeWrapperDTO();
+		
+		BPMNFlowDTO bpmnFlowDTO = new BPMNFlowDTO();
+		bpmnFlowDTO.setName(this.getFlow().getName());
+		bpmnFlowDTO.setTestCount(0);
+		
+		List<FlowElementDTO> flowElementDTOs = new ArrayList<>();
+		for(FlowElementReference f : this.getFlow().getInclElements()) {
+			FlowElementDTO fDTO = new FlowElementDTO();
+			fDTO.setId(f.getRef().getName());
+			
+			flowElementDTOs.add(fDTO);
+		}
+		
+		bpmnFlowDTO.setFlowElements(flowElementDTOs);
+		
+		dto.setFlow(bpmnFlowDTO);
+		dto.setActionType(this.actionType.name());
+		
+		FlowElementDTO flowElementDTO = new FlowElementDTO();
+		flowElementDTO.setId(this.getFlowElement().getName());
+		dto.setFlowElement(flowElementDTO);
+		
+		MigrationResultDTO migrationResultDTO = new MigrationResultDTO();
+		migrationResultDTO.setPriority(this.getMigrationResult().getPriority());
+		migrationResultDTO.setStatus(this.getMigrationResult().getStatus().name());
+		
+		dto.setMigrationResult(migrationResultDTO);
+		
+		return dto;
+	}
+	
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationResultWrapper.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationResultWrapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..57f25c563f3db3db337bf24e5bdd1212446922cd
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationResultWrapper.java
@@ -0,0 +1,81 @@
+package de.fhmuenster.masterthesis.Testgenerator.migration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import de.fhmuenster.masterthesis.Testgenerator.rest.dto.FlowChangeWrapperDTO;
+import de.fhmuenster.masterthesis.Testgenerator.rest.dto.MigrationResultWrapperDTO;
+
+public class MigrationResultWrapper {
+	
+	private List<FlowChangeWrapper> greenResults;
+	private List<FlowChangeWrapper> yellowResults;
+	private List<FlowChangeWrapper> redResults;
+	
+	public MigrationResultWrapper() {
+		this.greenResults = new ArrayList<>();
+		this.yellowResults = new ArrayList<>();
+		this.redResults = new ArrayList<>();
+	}
+	
+	public List<FlowChangeWrapper> getGreenResults() {
+		return greenResults;
+	}
+	
+	public void setGreenResults(List<FlowChangeWrapper> greenResults) {
+		this.greenResults = greenResults;
+	}
+	
+	public List<FlowChangeWrapper> getYellowResults() {
+		return yellowResults;
+	}
+	
+	public void setYellowResults(List<FlowChangeWrapper> yellowResults) {
+		this.yellowResults = yellowResults;
+	}
+	
+	public List<FlowChangeWrapper> getRedResults() {
+		return redResults;
+	}
+	
+	public void setRedResults(List<FlowChangeWrapper> redResults) {
+		this.redResults = redResults;
+	}
+	
+	public void addToGreenResult(FlowChangeWrapper wrapper) {
+		this.greenResults.add(wrapper);
+	}
+	
+	public void addToYellowResult(FlowChangeWrapper wrapper) {
+		this.yellowResults.add(wrapper);
+	}
+	
+	public void addToRedResult(FlowChangeWrapper wrapper) {
+		this.redResults.add(wrapper);
+	}
+	
+	public MigrationResultWrapperDTO convertToDTO() {
+		MigrationResultWrapperDTO dto = new MigrationResultWrapperDTO();
+		List<FlowChangeWrapperDTO> greenDTO = new ArrayList<>();
+		List<FlowChangeWrapperDTO> yellowDTO = new ArrayList<>();
+		List<FlowChangeWrapperDTO> redDTO = new ArrayList<>();
+		
+		for(FlowChangeWrapper f : this.getGreenResults()) {
+			greenDTO.add(f.convertToDTO());
+		}
+		
+		for(FlowChangeWrapper f : this.getYellowResults()) {
+			yellowDTO.add(f.convertToDTO());
+		}
+		
+		for(FlowChangeWrapper f : this.getRedResults()) {
+			redDTO.add(f.convertToDTO());
+		}
+		
+		dto.setGreenResults(greenDTO);
+		dto.setYellowResults(yellowDTO);
+		dto.setRedResults(redDTO);
+		
+		return dto;
+	}
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationService.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationService.java
index bf99ba75fdf61c4bd58f3e1b5ef1aa3539bd2e85..70a08eb15dfb97e85900d48314f111b932019775 100644
--- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationService.java
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationService.java
@@ -1,14 +1,156 @@
 package de.fhmuenster.masterthesis.Testgenerator.migration;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.springframework.stereotype.Service;
+
+import de.fhmuenster.masterthesis.Testgenerator.rest.dto.MigrationResultWrapperDTO;
 import de.fhmuenster.masterthesis.Testgenerator.yaml.MigrationYaml;
 import de.fhmuenster.masterthesis.Testgenerator.yaml.YamlReader;
+import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement;
+import de.fhmuenster.masterthesis.utils.TestgeneratorDSLUtils;
+import org.camunda.bpm.model.bpmn.instance.SequenceFlow;
+import org.camunda.bpm.model.bpmn.instance.ServiceTask;
+import org.camunda.bpm.model.bpmn.instance.ManualTask;
 
+@Service
 public class MigrationService {
+	
+	private MigrationYaml yaml;
+	
 	public MigrationService() {
+	}
+	
+	@PostConstruct
+	public void initYaml() {
+		
+	}
+	
+	public MigrationResultWrapper detectChanges(TestgeneratorDSLSerializer oldDSL, TestgeneratorDSLSerializer newDSL) {
+		//Annahme: Flows sind identisch
+		
+		MigrationResultWrapper migrationResultWrapper = new MigrationResultWrapper();
+		List<FlowChangeWrapper> result = new ArrayList<>();
+		
+		//oldDSL.getVariables().get(0).
+		
+		// 1. Schritt: Prüfen, ob in einem Flow neue Elemente hinzugekommen sind
+		List<FlowChangeWrapper> activityAddActionResults = detectActivityAddActions(oldDSL.getFlows(), newDSL.getFlows());
+		transferResultsToCorrespondingCategory(migrationResultWrapper, activityAddActionResults);
+
+		System.out.println("Ergebnis addAction");
+		for(FlowChangeWrapper fcw : activityAddActionResults) {
+			System.out.println("+++ Neu: " + fcw.getFlowElement().getName() + " [" + fcw.getActionType() + "] in Flow " + fcw.getFlow().getName()
+					+ " mit Status: " + fcw.getMigrationResult().getPriority());
+		}
+		
+		return migrationResultWrapper;
+	}
+	
+	private List<FlowChangeWrapper> detectActivityAddActions(List<Flow> oldFlows, List<Flow> newFlows) {
+		List<FlowChangeWrapper> result = new ArrayList<>();
+		//Flows miteinander vergleichen
+		for(int i=0; i < oldFlows.size(); i++) {
+			result.addAll(compareFlowsForAddAction(oldFlows.get(i), newFlows.get(i)));
+		}
+		
+		return result;
+	}
+	
+	private List<FlowChangeWrapper> compareFlowsForAddAction(Flow oldFlow, Flow newFlow) {
+		List<FlowElementReference> addedFlowElements = new ArrayList<>();
+		List<FlowElementReference> oldElements = TestgeneratorDSLUtils.getInclElements(oldFlow);
+		List<FlowElementReference> newElements = TestgeneratorDSLUtils.getInclElements(newFlow);
+		
+		List<FlowChangeWrapper> result = new ArrayList<>();
+		
+		for(FlowElementReference fer : newElements) {
+			if (fer.getRef() instanceof SequenceFlowElement) continue;
+			
+			if(!checkIfElementExistsInFlowElements(fer, oldElements)) {
+				addedFlowElements.add(fer);
+			}
+		}
+		
+		if(addedFlowElements.size() == 0) return result;
+		
 		//Yaml laden
 		YamlReader yamlReader = new YamlReader();
 		MigrationYaml yaml = yamlReader.loadMigrationYaml();
 		
-		System.out.println(yaml.getGateway().getAdd().getXor().getStatus());
+		for(FlowElementReference e : addedFlowElements) {
+			if(e.getRef() instanceof ManualTaskFlowElement) {
+				result.add(new FlowChangeWrapper(newFlow, ActionType.ACTIVITY_ADD_MANUAL_TASK,
+						e.getRef(), yaml.getActivity().getAdd().getManualTask()));
+			}
+			if(e.getRef() instanceof UserTaskFlowElement) {
+				result.add(new FlowChangeWrapper(newFlow, ActionType.ACTIVITY_ADD_USER_TASK,
+						e.getRef(), yaml.getActivity().getAdd().getManualTask()));
+			}
+			if(e.getRef() instanceof BusinessRuleTaskFlowElement) {
+				BusinessRuleTaskFlowElement element = (BusinessRuleTaskFlowElement) e.getRef();
+				//element.get
+				//element.get
+				result.add(new FlowChangeWrapper(newFlow, ActionType.ACTIVITY_ADD_USER_TASK,
+						e.getRef(), yaml.getActivity().getAdd().getManualTask()));
+			}
+		}
+		
+		return result;
+		
+	}
+	
+	private boolean checkIfElementExistsInFlowElements(FlowElementReference fer, List<FlowElementReference> elements) {
+		String id = fer.getRef().getName();
+		
+		for(FlowElementReference e : elements) {
+			if(e.getRef().getName().equals(id)) {
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	private void transferResultsToCorrespondingCategory(MigrationResultWrapper wrapper, List<FlowChangeWrapper> changes) {
+		if(changes.isEmpty()) return;
+		
+		for(FlowChangeWrapper change : changes) {
+			switch(change.getMigrationResult().getStatus()) {
+			case GREEN:
+				wrapper.addToGreenResult(change);
+				break;
+			case YELLOW:
+				wrapper.addToYellowResult(change);
+				break;
+			case RED:
+				wrapper.addToRedResult(change);
+				break;
+			default:
+				wrapper.addToGreenResult(change);
+				break;
+			}
+		}
+	}
+	
+	public MigrationResultWrapperDTO convertMigrationResultWrapper(MigrationResultWrapper wrapper) {
+		MigrationResultWrapperDTO dto = new MigrationResultWrapperDTO();
+		dto = wrapper.convertToDTO();
+		
+		return dto;
 	}
 }
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/FlowChangeWrapperDTO.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/FlowChangeWrapperDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..47a2b8016a347b43584007469da6ac1490183810
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/FlowChangeWrapperDTO.java
@@ -0,0 +1,53 @@
+package de.fhmuenster.masterthesis.Testgenerator.rest.dto;
+
+public class FlowChangeWrapperDTO {
+
+	private BPMNFlowDTO flow;
+	private String actionType;
+	private FlowElementDTO flowElement;
+	private MigrationResultDTO migrationResult;
+	
+	public FlowChangeWrapperDTO() {
+		
+	}
+
+	public FlowChangeWrapperDTO(BPMNFlowDTO flow, String actionType, FlowElementDTO flowElement,
+			MigrationResultDTO migrationResult) {
+		this.flow = flow;
+		this.actionType = actionType;
+		this.flowElement = flowElement;
+		this.migrationResult = migrationResult;
+	}
+
+	public BPMNFlowDTO getFlow() {
+		return flow;
+	}
+
+	public void setFlow(BPMNFlowDTO flow) {
+		this.flow = flow;
+	}
+
+	public String getActionType() {
+		return actionType;
+	}
+
+	public void setActionType(String actionType) {
+		this.actionType = actionType;
+	}
+
+	public FlowElementDTO getFlowElement() {
+		return flowElement;
+	}
+
+	public void setFlowElement(FlowElementDTO flowElement) {
+		this.flowElement = flowElement;
+	}
+
+	public MigrationResultDTO getMigrationResult() {
+		return migrationResult;
+	}
+
+	public void setMigrationResult(MigrationResultDTO migrationResult) {
+		this.migrationResult = migrationResult;
+	}
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/MigrationResultDTO.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/MigrationResultDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..32c472bae5c97079f3f994bcb22d5dc83e45baea
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/MigrationResultDTO.java
@@ -0,0 +1,36 @@
+package de.fhmuenster.masterthesis.Testgenerator.rest.dto;
+
+public class MigrationResultDTO {
+	private String status;
+	private int priority;
+	
+	public MigrationResultDTO() {
+		
+	}
+
+	public MigrationResultDTO(String status, int priority) {
+		super();
+		this.status = status;
+		this.priority = priority;
+	}
+
+
+
+	public String getStatus() {
+		return status;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
+	public int getPriority() {
+		return priority;
+	}
+
+	public void setPriority(int priority) {
+		this.priority = priority;
+	}
+	
+	
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/MigrationResultWrapperDTO.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/MigrationResultWrapperDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..d2b4ca9e6552280ebf55b55ac25bd7dba6512d0f
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/MigrationResultWrapperDTO.java
@@ -0,0 +1,46 @@
+package de.fhmuenster.masterthesis.Testgenerator.rest.dto;
+
+import java.util.List;
+
+public class MigrationResultWrapperDTO {
+	
+	private List<FlowChangeWrapperDTO> greenResults;
+	private List<FlowChangeWrapperDTO> yellowResults;
+	private List<FlowChangeWrapperDTO> redResults;
+	
+	public MigrationResultWrapperDTO() {
+		
+	}
+	
+	public MigrationResultWrapperDTO(List<FlowChangeWrapperDTO> greenResults, List<FlowChangeWrapperDTO> yellowResults,
+			List<FlowChangeWrapperDTO> redResults) {
+		super();
+		this.greenResults = greenResults;
+		this.yellowResults = yellowResults;
+		this.redResults = redResults;
+	}
+
+	public List<FlowChangeWrapperDTO> getGreenResults() {
+		return greenResults;
+	}
+
+	public void setGreenResults(List<FlowChangeWrapperDTO> greenResults) {
+		this.greenResults = greenResults;
+	}
+
+	public List<FlowChangeWrapperDTO> getYellowResults() {
+		return yellowResults;
+	}
+
+	public void setYellowResults(List<FlowChangeWrapperDTO> yellowResults) {
+		this.yellowResults = yellowResults;
+	}
+
+	public List<FlowChangeWrapperDTO> getRedResults() {
+		return redResults;
+	}
+
+	public void setRedResults(List<FlowChangeWrapperDTO> redResults) {
+		this.redResults = redResults;
+	}
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java
index 0ff46e55fc848defcb127519fecbf53a43ff8d01..815260e3ae9ccee8f95b8ab2ec7968dd385bb32d 100644
--- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java
@@ -15,8 +15,13 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 
+import de.fhmuenster.masterthesis.Testgenerator.migration.MigrationResultWrapper;
+import de.fhmuenster.masterthesis.Testgenerator.migration.MigrationService;
+import de.fhmuenster.masterthesis.Testgenerator.rest.dto.MigrationResultWrapperDTO;
 import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.Project;
 import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.ProjectService;
+import de.fhmuenster.masterthesis.Testgenerator.utils.ProjectDirectoryUtils;
+import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer;
 
 @RestController
 public class ChangeController {
@@ -24,6 +29,9 @@ public class ChangeController {
 	@Autowired
 	private ProjectService projectService;
 	
+	@Autowired
+	private MigrationService migrationService;
+	
 	@RequestMapping(path = "/project/{projectId}/match", method = RequestMethod.GET)
 	public String test() {
 		boolean success = true;
@@ -54,4 +62,34 @@ public class ChangeController {
 		
 		return "false";
 	}
+	
+	@RequestMapping(path = "/project/{projectId}/migration/changes", method = RequestMethod.GET)
+	public MigrationResultWrapperDTO detectChanges(@PathVariable(required = true) Long projectId) {
+		//Annahme: Flows stimmen überein
+		
+		Project project = projectService.getProjectForId(projectId);
+		
+		MigrationResultWrapperDTO migrationResultWrapperDTO = new MigrationResultWrapperDTO();
+		//Alte und neue DSL einlesen
+		Path testFilePath = ProjectDirectoryUtils.getTestspecificationPath(project.getProjectDirectories());
+		Path newDSLFile = Paths.get(testFilePath.toString());
+		Path oldDSLFile = Paths.get(project.getProjectDirectories().resolveTestPath(), "Testcollection-old.bpmn-testgen");
+		try {
+			TestgeneratorDSLSerializer oldDSL = new TestgeneratorDSLSerializer(oldDSLFile.toString());
+			TestgeneratorDSLSerializer newDSL = new TestgeneratorDSLSerializer(newDSLFile.toString());
+			
+			MigrationResultWrapper migrationResultWrapper = migrationService.detectChanges(oldDSL, newDSL);
+			
+			migrationResultWrapperDTO = migrationService.convertMigrationResultWrapper(migrationResultWrapper);
+			
+			return migrationResultWrapperDTO;
+			
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		return migrationResultWrapperDTO;
+		
+	}
 }
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/Configuration.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/Configuration.java
new file mode 100644
index 0000000000000000000000000000000000000000..d7ee5dccb270e551ce8ca05c6b1fa5edf0d684b8
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/Configuration.java
@@ -0,0 +1,35 @@
+package de.fhmuenster.masterthesis.Testgenerator.yaml;
+
+public class Configuration {
+	private int green;
+	private int yellow;
+	private int red;
+	
+	public Configuration() {
+		
+	}
+
+	public int getGreen() {
+		return green;
+	}
+
+	public void setGreen(int green) {
+		this.green = green;
+	}
+
+	public int getYellow() {
+		return yellow;
+	}
+
+	public void setYellow(int yellow) {
+		this.yellow = yellow;
+	}
+
+	public int getRed() {
+		return red;
+	}
+
+	public void setRed(int red) {
+		this.red = red;
+	}
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/MigrationResult.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/MigrationResult.java
index 18ce0a36f649d5ea607ed3f4891eee7aebd34806..bff5f3231bd68cf9437e43d72d8a160c79cb0d9e 100644
--- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/MigrationResult.java
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/MigrationResult.java
@@ -3,7 +3,7 @@ package de.fhmuenster.masterthesis.Testgenerator.yaml;
 public class MigrationResult {
 	
 	private MigrationResultStatus status;
-	private int priority;
+	private Integer priority;
 	
 	public MigrationResult() {
 		
@@ -17,11 +17,11 @@ public class MigrationResult {
 		this.status = status;
 	}
 
-	public int getPriority() {
+	public Integer getPriority() {
 		return priority;
 	}
 
-	public void setPriority(int priority) {
+	public void setPriority(Integer priority) {
 		this.priority = priority;
 	}
 }
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/MigrationYaml.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/MigrationYaml.java
index 5fba1770f66ff9de0fdee8a199d7d6c72d041e20..55eded941e1a8774257e031df42f528b86c7c086 100644
--- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/MigrationYaml.java
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/yaml/MigrationYaml.java
@@ -1,6 +1,7 @@
 package de.fhmuenster.masterthesis.Testgenerator.yaml;
 
 public class MigrationYaml {
+	private Configuration configuration;
 	private Gateway gateway;
 	private Activity activity;
 	
@@ -23,6 +24,15 @@ public class MigrationYaml {
 	public void setActivity(Activity activity) {
 		this.activity = activity;
 	}
+
+	public Configuration getConfiguration() {
+		return configuration;
+	}
+
+	public void setConfiguration(Configuration configuration) {
+		this.configuration = configuration;
+	}
+	
 	
 	
 }
diff --git a/Testgenerator/src/main/resources/application.properties b/Testgenerator/src/main/resources/application.properties
index 59dee823fb4526817c23b33c82a43e5911377485..f7d1dac8f318dd197818d957016bb699648d3ac4 100644
--- a/Testgenerator/src/main/resources/application.properties
+++ b/Testgenerator/src/main/resources/application.properties
@@ -1,3 +1,3 @@
 logging.level.root=INFO
 
-testgenerator.projects=C:\\Users\\tillb\\Desktop\\fe_projekt\\projects.json
+testgenerator.projects=C:\\CodePro\\projects.json
diff --git a/Testgenerator/src/main/resources/migration.yaml b/Testgenerator/src/main/resources/migration.yaml
index 7953ceb2984507162530610493eae059d756b457..7ba751b4e12d2aa0471ee96431fa103d36cb6979 100644
--- a/Testgenerator/src/main/resources/migration.yaml
+++ b/Testgenerator/src/main/resources/migration.yaml
@@ -1,3 +1,8 @@
+# globale Konfiguration für Status, kann dann spezieller überschrieben werden
+configuration:
+  green: 100
+  yellow: 200
+  red: 500
 gateway:
   add:
     xor:
@@ -22,128 +27,3 @@ activity:
       priority: 0
     manualTask:
       status: GREEN
-      priority: 0
-    businessRuleTask:
-      withOutput:
-        status: RED
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0            
-    serviceTask:
-      withOutput:
-        status: RED
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0
-    scriptTask:
-      withOutput:
-        status: RED
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0                
-  delete:
-    userTask:
-      status: YELLOW
-      priority: 0
-    manualTask:
-      status: GREEN
-      priority: 0
-    businessRuleTask:
-      withOutput:
-        status: YELLOW
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0            
-    serviceTask:
-      withOutput:
-        status: YELLOW
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0
-    scriptTask:
-      withOutput:
-        status: YELLOW
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0
-  changeConstraints:
-    betweenMinAndMax:
-      status: GREEN
-      priority: 0
-    notBetweenMinAndMax:
-      status: RED
-      priority: 0
-  addProcessVariable:
-    withOutput:
-      status: RED
-      priority: 0
-    withoutOutput:
-      status: GREEN
-      priority: 0
-  deleteProcessVariable:
-    withOutput:
-      status: YELLOW
-      priority: 0
-    withoutOutput:
-      status: GREEN
-      priority: 0
-  changeTaskType:
-    toUserask:
-      status: RED
-      priority: 0
-    toManualTask:
-      status: GREEN
-      priority: 0
-    toBusinessRuleTask:
-      withOutput:
-        status: RED
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0
-    toServiceTask:
-      withOutput:
-        status: RED
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0
-    toScriptTask:
-      withOutput:
-        status: RED
-        priority: 0
-      withoutOutput:
-        status: GREEN
-        priority: 0
-event:
-  rename:
-    status: GREEN
-    priority: 0
-  newVariable:
-    status: RED
-    priority: 0
-  add:
-    status: RED
-    priority: 0
-  delete:
-    status: RED
-    priority: 0
-  changeConstraints:
-    betweenMinAndMax:
-      status: GREEN
-      priority: 0
-    notBetweenMinAndMax:
-      status: RED
-      priority: 0
-  changeOutgoing:
-    status: RED
-    priority: 0
-  changeIncoming:
-    status: RED
-    priority: 0
\ No newline at end of file
diff --git a/testgenerator-web/testgenerator-web/src/app/app-routing.module.ts b/testgenerator-web/testgenerator-web/src/app/app-routing.module.ts
index 1fa6b2eb63f5367dee8ac87262d28853e90776a3..6b34003b7744d128ac86e531a2080cdb15c98352 100644
--- a/testgenerator-web/testgenerator-web/src/app/app-routing.module.ts
+++ b/testgenerator-web/testgenerator-web/src/app/app-routing.module.ts
@@ -35,8 +35,8 @@ const routes: Routes = [
       { path: 'project/:projectId/mocks/external/:mockId', component: NewExternalMockComponent },
       { path: 'project/:projectId/mocks/manual', component: NewManualMockComponent },
       { path: 'project/:projectId/mocks/manual/:mockId', component: NewManualMockComponent },
+      { path: 'project/:projectId/update/migration', component: MigrationOverviewComponent },
       { path: 'project/:projectId/update', component: UpdateProjectComponent }, // new Update Component
-      { path: 'project/:projectId/migration-overview', component: MigrationOverviewComponent },
       { path: 'impressum', component: ImprintComponent },
       { path: 'notfound', component: NotfoundComponent },
       { path: '**', redirectTo: 'notfound'} //has to be the last entry
diff --git a/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.html b/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.html
index d7cf7a1e1e69dc15597752430a0c7215840ae7a2..a305ea7172579e9cc2e3ed4b7775c965d79fe4f7 100644
--- a/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.html
+++ b/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.html
@@ -23,6 +23,9 @@
                 <button mdbBtn type="submit" (click)="compareProjects()" class="testgen-btn-rounded testgen-primary" rounded="true"
                 i18n="compare bpmn">Compare BPMN-Diagrams</button>
             </div>
+            <div class="col-md-6">
+                <a class="testgen-cardmenu testgen-card-basic" [routerLink]="['migration']">Migration starten</a>
+            </div>
             <div class="col-md-6">
                 <button mdbBtn type="submit" (click)="parseFiles()" class="testgen-btn-rounded testgen-primary" rounded="true"
                 i18n="compare bpmn">@Henning parseFiles Testing-Button</button>
diff --git a/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.ts b/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.ts
index 07b98037cae9c1f541ca3e7ab95d522c9fd57f73..63e0c9081ddf8494a31eb08d310c736ea84265ed 100644
--- a/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.ts
+++ b/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.ts
@@ -91,6 +91,9 @@ export class UpdateProjectComponent implements OnInit {
     }
     console.log(this.actualProject)
     this.getMatchingFlowsMessage();
+
+    const url = `${environment.apiBaseUrl}project/${this.actualProject}/migration/changes`;
+    console.log(this.http.get(url, {responseType: 'json'}).toPromise());
   }
 
   identifyMatchingFlows(projectId: number): Promise<string> {
diff --git a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.html b/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.html
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a64581b3786f8fc58811a20cca603f982e2a1428 100644
--- a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.html
+++ b/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.html
@@ -0,0 +1,39 @@
+<div class="container">
+    <div class="row row mt-5">
+        <div class="col">
+            <h2 class="testgen-headline-message" i18n="new-project header">Migration - Ãœbersicht</h2>
+            <span>Die folgenden Änderungen wurden erkannt und durchgeführt.</span>
+            <div *ngIf="result">
+              <div class="alert alert-success" role="alert">
+                <h5>Automatische Ãœbernahme</h5>
+                <span *ngFor="let greenResult of result.greenResults">
+                  ActionType: {{greenResult.actionType}} {{greenResult.flowElement.id}} in <b>{{greenResult.flow.name}}</b>
+  
+                
+                </span>
+                <div *ngIf="result.greenResults.length == 0">keine Daten</div>
+              </div>
+              <div class="alert alert-warning" role="alert">
+                <h5>Automatische Ãœbernahme, aber Analyse durch Prozessanalysten vorteilhaft</h5>
+                <span *ngFor="let yellowResult of result.yellowResults">
+                  ActionType: {{yellowResult.actionType}} {{yellowResult.flowElement.id}} in <b>{{yellowResult.flow.name}}</b>
+  
+                
+                </span>
+                <div *ngIf="result.yellowResults.length == 0">keine Daten</div>
+              </div>
+              <div class="alert alert-danger" role="alert">
+                <h5>Automatische Übernahme nicht möglich, der Prozessanalyst muss eingreifen</h5>
+                <span *ngFor="let redResult of result.redResults">
+                  ActionType: {{redResult.actionType}} {{redResult.flowElement.id}} in <b>{{redResult.flow.name}}</b>
+  
+                
+                </span>
+                <div *ngIf="result.redResults.length == 0">keine Daten</div>
+              </div>
+          </div>
+        </div>
+    </div>
+</div>
+
+<app-loading *ngIf="isLoading"></app-loading>
\ No newline at end of file
diff --git a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.ts b/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.ts
index 9d807a5e20612cda3947080914c9c4e73dfce2ef..a0aec047820e5814dc080a2c54b190734535c44a 100644
--- a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.ts
+++ b/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.ts
@@ -1,4 +1,7 @@
 import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { MigrationResultWrapper } from '../models/migration-result-wrapper';
+import { MigrationService } from '../services/migration-service';
 
 @Component({
   selector: 'app-migration-overview',
@@ -7,9 +10,27 @@ import { Component, OnInit } from '@angular/core';
 })
 export class MigrationOverviewComponent implements OnInit {
 
-  constructor() { }
+  projectId: number;
+  result: MigrationResultWrapper;
+  isLoading: boolean;
+
+  constructor(private migrationService: MigrationService, private route: ActivatedRoute) {
+    this.route.params.subscribe(params =>
+      this.projectId = params['projectId']
+    )
+  }
 
   ngOnInit(): void {
+    this.startMigration();
+    
+  }
+
+  async startMigration() {
+    this.isLoading = true;
+    this.result = await this.migrationService.getMigrationResultWrapper(this.projectId);
+    this.isLoading = false;
+    console.log(this.result);
+
   }
 
 }
diff --git a/testgenerator-web/testgenerator-web/src/app/models/flow-change-wrapper.ts b/testgenerator-web/testgenerator-web/src/app/models/flow-change-wrapper.ts
new file mode 100644
index 0000000000000000000000000000000000000000..127e272925532190fa04077c63a498f289b50cc5
--- /dev/null
+++ b/testgenerator-web/testgenerator-web/src/app/models/flow-change-wrapper.ts
@@ -0,0 +1,11 @@
+import { BPMNFlow } from "./bpmn-flow";
+import { BPMNFlowElement } from "./bpmn-flow-element";
+import { MigrationResult } from "./migration-result";
+import { MigrationResultWrapper } from "./migration-result-wrapper";
+
+export interface FlowChangeWrapper {
+    flow: BPMNFlow;
+    actionType: string;
+    flowElement: BPMNFlowElement;
+    migrationResult: MigrationResult;
+}
\ No newline at end of file
diff --git a/testgenerator-web/testgenerator-web/src/app/models/migration-result-wrapper.ts b/testgenerator-web/testgenerator-web/src/app/models/migration-result-wrapper.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7b7a980302929a54bdf8444a67b9033253209e2e
--- /dev/null
+++ b/testgenerator-web/testgenerator-web/src/app/models/migration-result-wrapper.ts
@@ -0,0 +1,7 @@
+import { FlowChangeWrapper } from "./flow-change-wrapper";
+
+export interface MigrationResultWrapper {
+    greenResults: Array<FlowChangeWrapper>;
+    yellowResults: Array<FlowChangeWrapper>;
+    redResults: Array<FlowChangeWrapper>;
+}
\ No newline at end of file
diff --git a/testgenerator-web/testgenerator-web/src/app/models/migration-result.ts b/testgenerator-web/testgenerator-web/src/app/models/migration-result.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f19a9981cc36511bbaec585c2b487e7bc4a94904
--- /dev/null
+++ b/testgenerator-web/testgenerator-web/src/app/models/migration-result.ts
@@ -0,0 +1,4 @@
+export interface MigrationResult {
+    status: string;
+    priority: number;
+}
\ No newline at end of file
diff --git a/testgenerator-web/testgenerator-web/src/app/services/migration-service.ts b/testgenerator-web/testgenerator-web/src/app/services/migration-service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..73a85a44646ae11d7facf09da9d6b8e1fa61aab1
--- /dev/null
+++ b/testgenerator-web/testgenerator-web/src/app/services/migration-service.ts
@@ -0,0 +1,18 @@
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { environment } from 'src/environments/environment';
+import { BPMNFlowSet } from '../models/bpmn-flow-set';
+import { MigrationResultWrapper } from '../models/migration-result-wrapper';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class MigrationService {
+
+  constructor(public http: HttpClient) { }
+
+  public async getMigrationResultWrapper(projectId: number): Promise<MigrationResultWrapper> {
+    const url = `${environment.apiBaseUrl}project/${projectId}/migration/changes`;
+    return <MigrationResultWrapper>await this.http.get(url).toPromise();
+  }
+}