diff --git a/src/main/java/kieker/analysis/domain/systemdependency/Component.java b/src/main/java/kieker/analysis/domain/systemdependency/Component.java
index fc89ed4ed0b59eee2c2c873b6097c2a7bfb5dda2..f69346e526d6ca1e1a2073a2767dbbbcb8128f21 100644
--- a/src/main/java/kieker/analysis/domain/systemdependency/Component.java
+++ b/src/main/java/kieker/analysis/domain/systemdependency/Component.java
@@ -1,12 +1,13 @@
 package kieker.analysis.domain.systemdependency;
 
-import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
 
 public class Component extends SystemEntity {
 
 	private final Container container;
-	private final Collection<Operation> operations = new ArrayList<>();
+	private final Map<String, Operation> operations = new HashMap<>();
 
 	public Component(final String name, final Container container) {
 		super(name, container.getIdentifier() + ',' + name);
@@ -19,11 +20,11 @@ public class Component extends SystemEntity {
 	}
 
 	public Collection<Operation> getOperations() {
-		return operations;
+		return operations.values();
 	}
 
 	protected void addOperation(final Operation operation) {
-		this.operations.add(operation);
+		this.operations.put(operation.getName(), operation);
 	}
 
 }
diff --git a/src/main/java/kieker/analysis/domain/systemdependency/Container.java b/src/main/java/kieker/analysis/domain/systemdependency/Container.java
index 46f5764aa1490c6e8c2878c92d48e08f7cb76412..65f2a62efbac2e62ddb0d0b4cde8c52b99a5c3cd 100644
--- a/src/main/java/kieker/analysis/domain/systemdependency/Container.java
+++ b/src/main/java/kieker/analysis/domain/systemdependency/Container.java
@@ -1,22 +1,23 @@
 package kieker.analysis.domain.systemdependency;
 
-import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
 
 public class Container extends SystemEntity {
 
-	private final Collection<Component> components = new ArrayList<>();
+	private final Map<String, Component> components = new HashMap<>();
 
 	public Container(final String name) {
 		super(name, name);
 	}
 
 	public Collection<Component> getComponents() {
-		return components;
+		return components.values();
 	}
 
 	protected void addComponent(final Component component) {
-		this.components.add(component);
+		this.components.put(component.getName(), component);
 	}
 
 }
diff --git a/src/main/java/kieker/analysis/domain/systemdependency/SoftwareSystem.java b/src/main/java/kieker/analysis/domain/systemdependency/SoftwareSystem.java
index 5fe6c1ef25f99de78b927b08811f608569fdfc95..de8f0552ebc74ca6247eed87556ab9ca658ea97a 100644
--- a/src/main/java/kieker/analysis/domain/systemdependency/SoftwareSystem.java
+++ b/src/main/java/kieker/analysis/domain/systemdependency/SoftwareSystem.java
@@ -2,10 +2,12 @@ package kieker.analysis.domain.systemdependency;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
 
 public class SoftwareSystem {
 
-	private Collection<Container> containers = new ArrayList<>();
+	private final Map<String, Container> containers = new HashMap<>();
 
 	private Collection<Dependency<Container>> containerDependencies = new ArrayList<>();
 	private Collection<Dependency<Component>> componentDependencies = new ArrayList<>();
@@ -14,11 +16,11 @@ public class SoftwareSystem {
 	public SoftwareSystem() {}
 
 	public Collection<Container> getContainers() {
-		return containers;
+		return containers.values();
 	}
 
-	public void setContainers(final Collection<Container> containers) {
-		this.containers = containers;
+	public void addContainer(final Container container) {
+		containers.put(container.getName(), container);
 	}
 
 	public Collection<Dependency<Container>> getContainerDependencies() {