tests 2-5 added
diff --git a/moK2014.php b/moK2014.php
index 80a5e2b..b9b793c 100644
--- a/moK2014.php
+++ b/moK2014.php
@@ -40,12 +40,16 @@
into your workspace (<i>File > Import... > General > Existing Projects into Workspace > Next
> Select archive file > Browse (to the zip file) > Select all > Finish</i>).
<br/><br/ -->
-
+ <p>
<h2>Test results</h2>
The following pages summarize the results oof our tests concerning the correctness of both implementations:
<br/><br/>
<ol class="midlist">
- <li>Test case 01: <a href="mok2014/Test01_Substitute_ClientNode/Results.html" target="_blank">Substitute Client Node</a></li>
+ <li>Test Case 01: <a href="mok2014/Test01_Substitute_ClientNode/Results.html" target="_blank">Substitute Client Node</a></li>
+ <li>Test Case 02: <a href="mok2014/Test02_Substitute_ServerNode/Results.html" target="_blank">Substitute Server Node</a></li>
+ <li>Test Case 03: <a href="mok2014/Test03_Substitute_NetworkNode/Results.html" target="_blank">Substitute Network Node</a></li>
+ <li>Test Case 04: <a href="mok2014/Test04_Substitute_UPS/Results.html" target="_blank">Substitute Uninterruptible Power Supply</a></li>
+ <li>Test Case 05: <a href="mok2014/Test05_Substitute_Cooling/Results.html" target="_blank">Substitute Cooling</a></li>
</ol>
</div>
diff --git a/mok2014/Test02_Substitute_ServerNode/Results.html b/mok2014/Test02_Substitute_ServerNode/Results.html
new file mode 100644
index 0000000..26fd952
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/Results.html
@@ -0,0 +1,20 @@
+<html>
+</body>
+<hr>
+<h1>Test02_Substitute_ServerNode</h1>
+<hr>
+<h2>Instance Model</h2><br>
+<img src="model.png"><br><hr>
+<h2>Metrics (custom solution)</h2><br>
+<img src="metrics_custom.png"><br><hr>
+<h2>Metrics (EMF Refactor solution)</h2><br>
+<img src="metrics_refactor.png"><br><hr>
+<h2>Smells (EMF Refactor solution)</h2><br>
+<img src="smells_refactor.png"><br><hr>
+<h2>Optimization Rule (custom solution)</h2><br>
+<img src="ruleset.png"><br><hr>
+<h2>Optimization Log (EMF Refactor solution)</h2><br>
+<img src="log.png"><br>
+<hr>
+<body>
+</html>
\ No newline at end of file
diff --git a/mok2014/Test02_Substitute_ServerNode/Rule02.pam b/mok2014/Test02_Substitute_ServerNode/Rule02.pam
new file mode 100644
index 0000000..1f71799
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/Rule02.pam
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PAM:Room xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:PAM="PAM" Name="Diagram">
+ <contains xsi:type="PAM:ServerNode" Name="System x3500" Max_Watt="247" Max_Capacity="1024" Idle_Watt="57" Act_Watt="142" MFLOPs="489"/>
+ <contains xsi:type="PAM:ServerNode" Name="PowerEdge T630" Max_Watt="100" Max_Capacity="64" Idle_Watt="50" Act_Watt="119" MFLOPs="483"/>
+ <contains xsi:type="PAM:ServerNode" Name="Gateway GT350" Max_Watt="257" Max_Capacity="64" Idle_Watt="78" Act_Watt="180" MFLOPs="240"/>
+</PAM:Room>
diff --git a/mok2014/Test02_Substitute_ServerNode/Rule02.pam_diagram b/mok2014/Test02_Substitute_ServerNode/Rule02.pam_diagram
new file mode 100644
index 0000000..e518427
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/Rule02.pam_diagram
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:PAM="PAM" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_lBEKEMs3EeGXuMaDs-ch7Q" type="PAM" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_lBEKEcs3EeGXuMaDs-ch7Q"/>
+ <element xmi:type="PAM:Room" href="Rule02.pam#/"/>
+</notation:Diagram>
diff --git a/mok2014/Test02_Substitute_ServerNode/log.png b/mok2014/Test02_Substitute_ServerNode/log.png
new file mode 100644
index 0000000..078599a
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/log.png
Binary files differ
diff --git a/mok2014/Test02_Substitute_ServerNode/metrics_custom.png b/mok2014/Test02_Substitute_ServerNode/metrics_custom.png
new file mode 100644
index 0000000..5a8721e
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/metrics_custom.png
Binary files differ
diff --git a/mok2014/Test02_Substitute_ServerNode/metrics_refactor.png b/mok2014/Test02_Substitute_ServerNode/metrics_refactor.png
new file mode 100644
index 0000000..0e8c1f4
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/metrics_refactor.png
Binary files differ
diff --git a/mok2014/Test02_Substitute_ServerNode/model.png b/mok2014/Test02_Substitute_ServerNode/model.png
new file mode 100644
index 0000000..7109a7d
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/model.png
Binary files differ
diff --git a/mok2014/Test02_Substitute_ServerNode/ruleset.henshin b/mok2014/Test02_Substitute_ServerNode/ruleset.henshin
new file mode 100644
index 0000000..a57ddfc
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/ruleset.henshin
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="PAM_Transformation_System">
+ <imports href="PAM#/"/>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_ServerNode_Substitution0" name="SubsituteServerNode2">
+ <lhs xmi:id="Rule_ServerNode_Substitution_LHS0" name="LHS">
+ <nodes xmi:id="Rule_ServerNode_Substitution_LHS_ServerNode0">
+ <type href="PAM#//ServerNode"/>
+ <attributes xmi:id="Rule_ServerNode_Substitution_LHS_ServerNode0_Max_Watt" value="257">
+ <type href="PAM#//Nodes/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_LHS_ServerNode0_Name" value=""Gateway GT350"">
+ <type href="PAM#//Nodes/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_LHS_ServerNode0_MFLOPS" value="240">
+ <type href="PAM#//ServerNode/MFLOPs"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_LHS_ServerNode0_Max_Capacity" value="64">
+ <type href="PAM#//ServerNode/Max_Capacity"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_LHS_ServerNode0_Idle_Watt" value="78">
+ <type href="PAM#//ServerNode/Idle_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_LHS_ServerNode0_Act_Watt" value="180">
+ <type href="PAM#//ServerNode/Act_Watt"/>
+ </attributes>
+ </nodes>
+ </lhs>
+ <rhs xmi:id="Rule_ServerNode_Substitution_RHS0" name="RHS">
+ <nodes xmi:id="Rule_ServerNode_Substitution_RHS_ServerNode0">
+ <type href="PAM#//ServerNode"/>
+ <attributes xmi:id="Rule_ServerNode_Substitution_RHS_ServerNode0_Max_Watt" value="100">
+ <type href="PAM#//Nodes/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_RHS_ServerNode0_Name" value=""PowerEdge T630"">
+ <type href="PAM#//Nodes/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_RHS_ServerNode0_MFLOPS" value="483">
+ <type href="PAM#//ServerNode/MFLOPs"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_RHS_ServerNode0_Max_Capacity" value="64">
+ <type href="PAM#//ServerNode/Max_Capacity"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_RHS_ServerNode0_Idle_Watt" value="50">
+ <type href="PAM#//ServerNode/Idle_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_ServerNode_Substitution_RHS_ServerNode0_Act_Watt" value="119">
+ <type href="PAM#//ServerNode/Act_Watt"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings xmi:id="Rule_ServerNode_Substitution_Mapping_ServerNode0" origin="Rule_ServerNode_Substitution_LHS_ServerNode0" image="Rule_ServerNode_Substitution_RHS_ServerNode0"/>
+ </units>
+</henshin:Module>
diff --git a/mok2014/Test02_Substitute_ServerNode/ruleset.henshin_diagram b/mok2014/Test02_Substitute_ServerNode/ruleset.henshin_diagram
new file mode 100644
index 0000000..cfd37c9
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/ruleset.henshin_diagram
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_QLOIAEI-EeOYf-jR6jTYBQ" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_QNc8oEI-EeOYf-jR6jTYBQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QNdjsEI-EeOYf-jR6jTYBQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QNdjsUI-EeOYf-jR6jTYBQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_QNeKwEI-EeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QNex0UI-EeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QNex0kI-EeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QNex00I-EeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QNex1EI-EeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QNex1UI-EeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_ServerNode_Substitution_LHS_ServerNode0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QNex0EI-EeOYf-jR6jTYBQ" x="67" y="33"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_ServerNode_Substitution0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QNc8oUI-EeOYf-jR6jTYBQ" x="53" y="33" width="510" height="280"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_QLOIAUI-EeOYf-jR6jTYBQ"/>
+ <element xmi:type="henshin:Module" href="ruleset.henshin#PAM_Transformation_System"/>
+</notation:Diagram>
diff --git a/mok2014/Test02_Substitute_ServerNode/ruleset.png b/mok2014/Test02_Substitute_ServerNode/ruleset.png
new file mode 100644
index 0000000..ff0f49a
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/ruleset.png
Binary files differ
diff --git a/mok2014/Test02_Substitute_ServerNode/smells_refactor.png b/mok2014/Test02_Substitute_ServerNode/smells_refactor.png
new file mode 100644
index 0000000..8da3d0d
--- /dev/null
+++ b/mok2014/Test02_Substitute_ServerNode/smells_refactor.png
Binary files differ
diff --git a/mok2014/Test03_Substitute_NetworkNode/Results.html b/mok2014/Test03_Substitute_NetworkNode/Results.html
new file mode 100644
index 0000000..2d9089a
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/Results.html
@@ -0,0 +1,20 @@
+<html>
+</body>
+<hr>
+<h1>Test03_Substitute_NetworkNode</h1>
+<hr>
+<h2>Instance Model</h2><br>
+<img src="model.png"><br><hr>
+<h2>Metrics (custom solution)</h2><br>
+<img src="metrics_custom.png"><br><hr>
+<h2>Metrics (EMF Refactor solution)</h2><br>
+<img src="metrics_refactor.png"><br><hr>
+<h2>Smells (EMF Refactor solution)</h2><br>
+<img src="smells_refactor.png"><br><hr>
+<h2>Optimization Rule (custom solution)</h2><br>
+<img src="ruleset.png"><br><hr>
+<h2>Optimization Log (EMF Refactor solution)</h2><br>
+<img src="log.png"><br>
+<hr>
+<body>
+</html>
\ No newline at end of file
diff --git a/mok2014/Test03_Substitute_NetworkNode/Rule03.pam b/mok2014/Test03_Substitute_NetworkNode/Rule03.pam
new file mode 100644
index 0000000..82f4079
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/Rule03.pam
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PAM:Room xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:PAM="PAM" Name="Diagram">
+ <contains xsi:type="PAM:NetworkNode" Name="Catalyst 3560-8PC" Max_Watt="19" Max_Throughput="32"/>
+ <contains xsi:type="PAM:NetworkNode" Name="Catalyst 3560-12PC" Max_Watt="22" Max_Throughput="32"/>
+ <contains xsi:type="PAM:NetworkNode" Name="Catalyst 3560G-24TS" Max_Watt="24" Max_Throughput="32"/>
+</PAM:Room>
diff --git a/mok2014/Test03_Substitute_NetworkNode/Rule03.pam_diagram b/mok2014/Test03_Substitute_NetworkNode/Rule03.pam_diagram
new file mode 100644
index 0000000..4399971
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/Rule03.pam_diagram
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:PAM="PAM" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_utGDIMs6EeGw0KgbBYgfuQ" type="PAM" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_utGDIcs6EeGw0KgbBYgfuQ"/>
+ <element xmi:type="PAM:Room" href="Rule03.pam#/"/>
+</notation:Diagram>
diff --git a/mok2014/Test03_Substitute_NetworkNode/log.png b/mok2014/Test03_Substitute_NetworkNode/log.png
new file mode 100644
index 0000000..bf321b6
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/log.png
Binary files differ
diff --git a/mok2014/Test03_Substitute_NetworkNode/metrics_custom.png b/mok2014/Test03_Substitute_NetworkNode/metrics_custom.png
new file mode 100644
index 0000000..91de5da
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/metrics_custom.png
Binary files differ
diff --git a/mok2014/Test03_Substitute_NetworkNode/metrics_refactor.png b/mok2014/Test03_Substitute_NetworkNode/metrics_refactor.png
new file mode 100644
index 0000000..09a8eb0
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/metrics_refactor.png
Binary files differ
diff --git a/mok2014/Test03_Substitute_NetworkNode/model.png b/mok2014/Test03_Substitute_NetworkNode/model.png
new file mode 100644
index 0000000..688338a
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/model.png
Binary files differ
diff --git a/mok2014/Test03_Substitute_NetworkNode/ruleset.henshin b/mok2014/Test03_Substitute_NetworkNode/ruleset.henshin
new file mode 100644
index 0000000..c2afc3f
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/ruleset.henshin
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="PAM_Transformation_System">
+ <imports href="PAM#/"/>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_NetworkNode_Substitution0" name="SubsituteNetworkNode1">
+ <lhs xmi:id="Rule_NetworkNode_Substitution_LHS0" name="LHS">
+ <nodes xmi:id="Rule_NetworkNode_Substitution_LHS_NetworkNode0">
+ <type href="PAM#//NetworkNode"/>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_LHS_NetworkNode0_Name" value=""Catalyst 3560-12PC"">
+ <type href="PAM#//Nodes/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_LHS_NetworkNode0_Max_Watt" value="22">
+ <type href="PAM#//Nodes/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_LHS_NetworkNode0_Max_Throughput" value="32">
+ <type href="PAM#//NetworkNode/Max_Throughput"/>
+ </attributes>
+ </nodes>
+ </lhs>
+ <rhs xmi:id="Rule_NetworkNode_Substitution_RHS0" name="RHS">
+ <nodes xmi:id="Rule_NetworkNode_Substitution_RHS_NetworkNode0">
+ <type href="PAM#//NetworkNode"/>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_RHS_NetworkNode0_Name" value=""Catalyst 3560-8PC"">
+ <type href="PAM#//Nodes/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_RHS_NetworkNode0_Max_Watt" value="19">
+ <type href="PAM#//Nodes/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_RHS_NetworkNode0_Max_Throughput" value="32">
+ <type href="PAM#//NetworkNode/Max_Throughput"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings xmi:id="Rule_NetworkNode_Substitution_Mapping_NetworkNode0" origin="Rule_NetworkNode_Substitution_LHS_NetworkNode0" image="Rule_NetworkNode_Substitution_RHS_NetworkNode0"/>
+ </units>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_NetworkNode_Substitution1" name="SubsituteNetworkNode2">
+ <lhs xmi:id="Rule_NetworkNode_Substitution_LHS1" name="LHS">
+ <nodes xmi:id="Rule_NetworkNode_Substitution_LHS_NetworkNode1">
+ <type href="PAM#//NetworkNode"/>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_LHS_NetworkNode1_Name" value=""Catalyst 3560G-24TS"">
+ <type href="PAM#//Nodes/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_LHS_NetworkNode1_Max_Watt" value="24">
+ <type href="PAM#//Nodes/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_LHS_NetworkNode1_Max_Throughput" value="32">
+ <type href="PAM#//NetworkNode/Max_Throughput"/>
+ </attributes>
+ </nodes>
+ </lhs>
+ <rhs xmi:id="Rule_NetworkNode_Substitution_RHS1" name="RHS">
+ <nodes xmi:id="Rule_NetworkNode_Substitution_RHS_NetworkNode1">
+ <type href="PAM#//NetworkNode"/>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_RHS_NetworkNode1_Name" value=""Catalyst 3560-8PC"">
+ <type href="PAM#//Nodes/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_RHS_NetworkNode1_Max_Watt" value="19">
+ <type href="PAM#//Nodes/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_NetworkNode_Substitution_RHS_NetworkNode1_Max_Throughput" value="32">
+ <type href="PAM#//NetworkNode/Max_Throughput"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings xmi:id="Rule_NetworkNode_Substitution_Mapping_NetworkNode1" origin="Rule_NetworkNode_Substitution_LHS_NetworkNode1" image="Rule_NetworkNode_Substitution_RHS_NetworkNode1"/>
+ </units>
+</henshin:Module>
diff --git a/mok2014/Test03_Substitute_NetworkNode/ruleset.henshin_diagram b/mok2014/Test03_Substitute_NetworkNode/ruleset.henshin_diagram
new file mode 100644
index 0000000..406027d
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/ruleset.henshin_diagram
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_UPlN8EJBEeOYf-jR6jTYBQ" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_USAP0EJBEeOYf-jR6jTYBQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_USAP0kJBEeOYf-jR6jTYBQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_USAP00JBEeOYf-jR6jTYBQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_USCFAEJBEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_USCFAkJBEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_USCFA0JBEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_USCFBEJBEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_USCFBUJBEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_USCFBkJBEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_NetworkNode_Substitution_LHS_NetworkNode0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_USCFAUJBEeOYf-jR6jTYBQ" x="13" y="10"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_NetworkNode_Substitution0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_USAP0UJBEeOYf-jR6jTYBQ" width="393" height="178"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USA24EJBEeOYf-jR6jTYBQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_USA24kJBEeOYf-jR6jTYBQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_USA240JBEeOYf-jR6jTYBQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_USILoEJBEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_USIysEJBEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_USIysUJBEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_USIyskJBEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_USIys0JBEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_USIytEJBEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_NetworkNode_Substitution_LHS_NetworkNode1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_USILoUJBEeOYf-jR6jTYBQ" x="16" y="12"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_NetworkNode_Substitution1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_USA24UJBEeOYf-jR6jTYBQ" x="413" width="408" height="178"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UPlN8UJBEeOYf-jR6jTYBQ"/>
+ <element xmi:type="henshin:Module" href="ruleset.henshin#PAM_Transformation_System"/>
+</notation:Diagram>
diff --git a/mok2014/Test03_Substitute_NetworkNode/ruleset.png b/mok2014/Test03_Substitute_NetworkNode/ruleset.png
new file mode 100644
index 0000000..033b55c
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/ruleset.png
Binary files differ
diff --git a/mok2014/Test03_Substitute_NetworkNode/smells_refactor.png b/mok2014/Test03_Substitute_NetworkNode/smells_refactor.png
new file mode 100644
index 0000000..dbf9634
--- /dev/null
+++ b/mok2014/Test03_Substitute_NetworkNode/smells_refactor.png
Binary files differ
diff --git a/mok2014/Test04_Substitute_UPS/Results.html b/mok2014/Test04_Substitute_UPS/Results.html
new file mode 100644
index 0000000..63272fa
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/Results.html
@@ -0,0 +1,20 @@
+<html>
+</body>
+<hr>
+<h1>Test04_Substitute_UPS</h1>
+<hr>
+<h2>Instance Model</h2><br>
+<img src="model.png"><br><hr>
+<h2>Metrics (custom solution)</h2><br>
+<img src="metrics_custom.png"><br><hr>
+<h2>Metrics (EMF Refactor solution)</h2><br>
+<img src="metrics_refactor.png"><br><hr>
+<h2>Smells (EMF Refactor solution)</h2><br>
+<img src="smells_refactor.png"><br><hr>
+<h2>Optimization Rule (custom solution)</h2><br>
+<img src="ruleset.png"><br><hr>
+<h2>Optimization Log (EMF Refactor solution)</h2><br>
+<img src="log.png"><br>
+<hr>
+<body>
+</html>
\ No newline at end of file
diff --git a/mok2014/Test04_Substitute_UPS/Rule04.pam b/mok2014/Test04_Substitute_UPS/Rule04.pam
new file mode 100644
index 0000000..19d8628
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/Rule04.pam
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PAM:Room xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:PAM="PAM" Name="Diagram">
+ <applies Name="USV Eaton 5110" Out_Watt="600" Efficiency="95.0"/>
+ <applies Name="Smart-UPS 1000VA" Out_Watt="700" Efficiency="98.2"/>
+ <applies Name="Smart-UPS 1500VA" Out_Watt="1000" Efficiency="98.3"/>
+</PAM:Room>
diff --git a/mok2014/Test04_Substitute_UPS/Rule04.pam_diagram b/mok2014/Test04_Substitute_UPS/Rule04.pam_diagram
new file mode 100644
index 0000000..4a4a1e8
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/Rule04.pam_diagram
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:PAM="PAM" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_gLfooMs_EeGw0KgbBYgfuQ" type="PAM" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_gLfoocs_EeGw0KgbBYgfuQ"/>
+ <element xmi:type="PAM:Room" href="Rule04.pam#/"/>
+</notation:Diagram>
diff --git a/mok2014/Test04_Substitute_UPS/log.png b/mok2014/Test04_Substitute_UPS/log.png
new file mode 100644
index 0000000..a3de178
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/log.png
Binary files differ
diff --git a/mok2014/Test04_Substitute_UPS/metrics_custom.png b/mok2014/Test04_Substitute_UPS/metrics_custom.png
new file mode 100644
index 0000000..2c171c0
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/metrics_custom.png
Binary files differ
diff --git a/mok2014/Test04_Substitute_UPS/metrics_refactor.png b/mok2014/Test04_Substitute_UPS/metrics_refactor.png
new file mode 100644
index 0000000..06cbd7c
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/metrics_refactor.png
Binary files differ
diff --git a/mok2014/Test04_Substitute_UPS/model.png b/mok2014/Test04_Substitute_UPS/model.png
new file mode 100644
index 0000000..f115be0
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/model.png
Binary files differ
diff --git a/mok2014/Test04_Substitute_UPS/ruleset.henshin b/mok2014/Test04_Substitute_UPS/ruleset.henshin
new file mode 100644
index 0000000..bccee19
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/ruleset.henshin
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="PAM_Transformation_System">
+ <imports href="PAM#/"/>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_UninterruptiblePowerSupply_Substitution0" name="SubsituteUPS0">
+ <lhs xmi:id="Rule_UninterruptiblePowerSupply_Substitution_LHS0" name="LHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Substitution_LHS_UninterruptiblePowerSupply0">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Substitution_LHS_UninterruptiblePowerSupply0_Name" value=""USV Eaton 5110"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Substitution_LHS_UninterruptiblePowerSupply0_Out_Watt" value="600">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Substitution_LHS_UninterruptiblePowerSupply0_Efficiency" value="95.0">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ </lhs>
+ <rhs xmi:id="Rule_UninterruptiblePowerSupply_Substitution_RHS0" name="RHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Substitution_RHS_UninterruptiblePowerSupply0">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Substitution_RHS_UninterruptiblePowerSupply0_Name" value=""Smart-UPS 1000VA"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Substitution_RHS_UninterruptiblePowerSupply0_Out_Watt" value="700">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Substitution_RHS_UninterruptiblePowerSupply0_Efficiency" value="98.2">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings xmi:id="Rule_UninterruptiblePowerSupply_Substitution_Mapping_UninterruptiblePowerSupply0" origin="Rule_UninterruptiblePowerSupply_Substitution_LHS_UninterruptiblePowerSupply0" image="Rule_UninterruptiblePowerSupply_Substitution_RHS_UninterruptiblePowerSupply0"/>
+ </units>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_UninterruptiblePowerSupply_Downscale0" name="DownscaleUPS2">
+ <lhs xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS0" name="LHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply0" incoming="Rule_UninterruptiblePowerSupply_Downscale_LHS_applies0">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply0_Name" value=""USV Eaton 5110"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply0_Out_Watt" value="600">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply0_Efficiency" value="95.0">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_Room0" outgoing="Rule_UninterruptiblePowerSupply_Downscale_LHS_applies0">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_Room0_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_applies0" source="Rule_UninterruptiblePowerSupply_Downscale_LHS_Room0" target="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply0">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </lhs>
+ <rhs xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS0" name="RHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply0" incoming="Rule_UninterruptiblePowerSupply_Downscale_RHS_applies0">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply0_Name" value=""Smart-UPS 1000VA"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply0_Out_Watt" value="700">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply0_Efficiency" value="98.2">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_Room0" outgoing="Rule_UninterruptiblePowerSupply_Downscale_RHS_applies0">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_Room0_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_applies0" source="Rule_UninterruptiblePowerSupply_Downscale_RHS_Room0" target="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply0">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </rhs>
+ <mappings xmi:id="Rule_UninterruptiblePowerSupply_Downscale_Mapping_UninterruptiblePowerSupply0" origin="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply0" image="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply0"/>
+ <mappings xmi:id="Rule_UninterruptiblePowerSupply_Downscale_Mapping0" origin="Rule_UninterruptiblePowerSupply_Downscale_LHS_Room0" image="Rule_UninterruptiblePowerSupply_Downscale_RHS_Room0"/>
+ </units>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_UninterruptiblePowerSupply_Downscale1" name="DownscaleUPS2">
+ <lhs xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS1" name="LHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply1" incoming="Rule_UninterruptiblePowerSupply_Downscale_LHS_applies1">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply1_Name" value=""Smart-UPS 1500VA"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply1_Out_Watt" value="1000">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply1_Efficiency" value="98.3">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_Room1" outgoing="Rule_UninterruptiblePowerSupply_Downscale_LHS_applies1">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_Room1_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_UninterruptiblePowerSupply_Downscale_LHS_applies1" source="Rule_UninterruptiblePowerSupply_Downscale_LHS_Room1" target="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply1">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </lhs>
+ <rhs xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS1" name="RHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply1" incoming="Rule_UninterruptiblePowerSupply_Downscale_RHS_applies1">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply1_Name" value=""Smart-UPS 1000VA"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply1_Out_Watt" value="700">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply1_Efficiency" value="98.2">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_Room1" outgoing="Rule_UninterruptiblePowerSupply_Downscale_RHS_applies1">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_Room1_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_UninterruptiblePowerSupply_Downscale_RHS_applies1" source="Rule_UninterruptiblePowerSupply_Downscale_RHS_Room1" target="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply1">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </rhs>
+ <mappings xmi:id="Rule_UninterruptiblePowerSupply_Downscale_Mapping_UninterruptiblePowerSupply1" origin="Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply1" image="Rule_UninterruptiblePowerSupply_Downscale_RHS_UninterruptiblePowerSupply1"/>
+ <mappings xmi:id="Rule_UninterruptiblePowerSupply_Downscale_Mapping1" origin="Rule_UninterruptiblePowerSupply_Downscale_LHS_Room1" image="Rule_UninterruptiblePowerSupply_Downscale_RHS_Room1"/>
+ </units>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_UninterruptiblePowerSupply_Delete0" name="DeleteUPS0">
+ <lhs xmi:id="Rule_UninterruptiblePowerSupply_Delete_LHS0" name="LHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Delete_LHS_UninterruptiblePowerSupply0" incoming="Rule_UninterruptiblePowerSupply_Delete_LHS_applies0">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Delete_LHS_UninterruptiblePowerSupply0_Name" value=""USV Eaton 5110"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Delete_LHS_UninterruptiblePowerSupply0_Out_Watt" value="600">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Delete_LHS_UninterruptiblePowerSupply0_Efficiency" value="95.0">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Delete_LHS_Room0" outgoing="Rule_UninterruptiblePowerSupply_Delete_LHS_applies0">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Delete_LHS_Room0_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_UninterruptiblePowerSupply_Delete_LHS_applies0" source="Rule_UninterruptiblePowerSupply_Delete_LHS_Room0" target="Rule_UninterruptiblePowerSupply_Delete_LHS_UninterruptiblePowerSupply0">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </lhs>
+ <rhs xmi:id="Rule_UninterruptiblePowerSupply_Delete_RHS0" name="RHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Delete_RHS_Room0">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Delete_RHS_Room0_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings xmi:id="Rule_UninterruptiblePowerSupply_Delete_Mapping0" origin="Rule_UninterruptiblePowerSupply_Delete_LHS_Room0" image="Rule_UninterruptiblePowerSupply_Delete_RHS_Room0"/>
+ </units>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_UninterruptiblePowerSupply_Split0" name="UPSSplit0">
+ <lhs xmi:id="Rule_UninterruptiblePowerSupply_Split_LHS0" name="LHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Split_LHS_Room0" outgoing="Rule_UninterruptiblePowerSupply_Split_LHS_Room0_applies">
+ <type href="PAM#//Room"/>
+ </nodes>
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Split_LHS_UninterruptiblePowerSupply0" incoming="Rule_UninterruptiblePowerSupply_Split_LHS_Room0_applies">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_LHS_UninterruptiblePowerSupply0_Name" value=""USV Eaton 5110"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_LHS_UninterruptiblePowerSupply0_Out_Watt" value="600">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_LHS_UninterruptiblePowerSupply0_Efficiency" value="95.0">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_UninterruptiblePowerSupply_Split_LHS_Room0_applies" source="Rule_UninterruptiblePowerSupply_Split_LHS_Room0" target="Rule_UninterruptiblePowerSupply_Split_LHS_UninterruptiblePowerSupply0">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </lhs>
+ <rhs xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS0" name="RHS">
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_Room0" outgoing="Rule_UninterruptiblePowerSupply_Split_RHS_Room0_applies1 Rule_UninterruptiblePowerSupply_Split_RHS_Room0_applies2">
+ <type href="PAM#//Room"/>
+ </nodes>
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_1UninterruptiblePowerSupply0" incoming="Rule_UninterruptiblePowerSupply_Split_RHS_Room0_applies1">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_1UninterruptiblePowerSupply0_Name" value=""Smart-UPS 1000VA"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_1UninterruptiblePowerSupply0_Out_Watt" value="700">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_1UninterruptiblePowerSupply0_Efficiency" value="98.2">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_2UninterruptiblePowerSupply0" incoming="Rule_UninterruptiblePowerSupply_Split_RHS_Room0_applies2">
+ <type href="PAM#//UninterruptiblePowerSupply"/>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_2UninterruptiblePowerSupply0_Name" value=""Smart-UPS 1000VA"">
+ <type href="PAM#//UninterruptiblePowerSupply/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_2UninterruptiblePowerSupply0_Out_Watt" value="700">
+ <type href="PAM#//UninterruptiblePowerSupply/Out_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_2UninterruptiblePowerSupply0_Efficiency" value="98.2">
+ <type href="PAM#//UninterruptiblePowerSupply/Efficiency"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_Room0_applies1" source="Rule_UninterruptiblePowerSupply_Split_RHS_Room0" target="Rule_UninterruptiblePowerSupply_Split_RHS_1UninterruptiblePowerSupply0">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ <edges xmi:id="Rule_UninterruptiblePowerSupply_Split_RHS_Room0_applies2" source="Rule_UninterruptiblePowerSupply_Split_RHS_Room0" target="Rule_UninterruptiblePowerSupply_Split_RHS_2UninterruptiblePowerSupply0">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </rhs>
+ <mappings xmi:id="Rule_UninterruptiblePowerSupply_Split_Mapping_UninterruptiblePowerSupply0" origin="Rule_UninterruptiblePowerSupply_Split_LHS_Room0" image="Rule_UninterruptiblePowerSupply_Split_RHS_Room0"/>
+ </units>
+</henshin:Module>
diff --git a/mok2014/Test04_Substitute_UPS/ruleset.henshin_diagram b/mok2014/Test04_Substitute_UPS/ruleset.henshin_diagram
new file mode 100644
index 0000000..96736e5
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/ruleset.henshin_diagram
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="__8ULIEFmEeOQ-sMT9ZzXiw" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_AA9akEFnEeOQ-sMT9ZzXiw" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AA-BoEFnEeOQ-sMT9ZzXiw" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AA-BoUFnEeOQ-sMT9ZzXiw" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_ABatkEFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ABatkkFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ABbUoEFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ABciwEFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ABciwUFnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ABciwkFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Substitution_LHS_UninterruptiblePowerSupply0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ABatkUFnEeOQ-sMT9ZzXiw" x="8" y="15"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Substitution0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AA9akUFnEeOQ-sMT9ZzXiw" x="699" y="1" width="383" height="165"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AA-osEFnEeOQ-sMT9ZzXiw" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AA_PwEFnEeOQ-sMT9ZzXiw" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AA_PwUFnEeOQ-sMT9ZzXiw" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_AB4AkEFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AB4noEFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AB4noUFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AB4nokFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AB4no0FnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AB4npEFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AB4AkUFnEeOQ-sMT9ZzXiw" x="5" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AB4npUFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AB5OsEFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AB5OsUFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AB5OskFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AB5Os0FnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AB5OtEFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Downscale_LHS_Room0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AB4npkFnEeOQ-sMT9ZzXiw" x="446" y="34"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Downscale0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AA-osUFnEeOQ-sMT9ZzXiw" y="182" width="609" height="169"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AA_20EFnEeOQ-sMT9ZzXiw" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AA_20kFnEeOQ-sMT9ZzXiw" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AA_200FnEeOQ-sMT9ZzXiw" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_ACRpMEFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACSQQEFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACSQQUFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACSQQkFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ACSQQ0FnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ACSQREFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Downscale_LHS_UninterruptiblePowerSupply1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ACRpMUFnEeOQ-sMT9ZzXiw" x="9" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ACSQRUFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACS3UEFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACS3UUFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACS3UkFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ACS3U0FnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ACS3VEFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Downscale_LHS_Room1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ACSQRkFnEeOQ-sMT9ZzXiw" x="497" y="32"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Downscale1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AA_20UFnEeOQ-sMT9ZzXiw" y="1" width="668" height="165"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AA_21EFnEeOQ-sMT9ZzXiw" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ABAd4EFnEeOQ-sMT9ZzXiw" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ABAd4UFnEeOQ-sMT9ZzXiw" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_ACnncEFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACoOgEFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACoOgUFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACoOgkFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ACoOg0FnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ACoOhEFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Delete_LHS_UninterruptiblePowerSupply0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ACnncUFnEeOQ-sMT9ZzXiw" x="10" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ACoOhUFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACo1kEFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACo1kUFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACo1kkFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ACo1k0FnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ACo1lEFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Delete_LHS_Room0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ACoOhkFnEeOQ-sMT9ZzXiw" x="290" y="27"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Delete0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AA_21UFnEeOQ-sMT9ZzXiw" x="629" y="182" width="453" height="169"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ABAd4kFnEeOQ-sMT9ZzXiw" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ABAd5EFnEeOQ-sMT9ZzXiw" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ABAd5UFnEeOQ-sMT9ZzXiw" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_AC-MwEFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC-MwkFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC-z0EFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC-z0UFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AC-z0kFnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AC-z00FnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Split_LHS_Room0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AC-MwUFnEeOQ-sMT9ZzXiw" x="250" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AC-z1EFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC-z1kFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC-z10FnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC-z2EFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AC_a4EFnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AC_a4UFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Split_LHS_UninterruptiblePowerSupply0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AC-z1UFnEeOQ-sMT9ZzXiw" x="17" y="108"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AC_a4kFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC_a5EFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC_a5UFnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AC_a5kFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AC_a50FnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AC_a6EFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Split_RHS_1UninterruptiblePowerSupply0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AC_a40FnEeOQ-sMT9ZzXiw" x="348" y="108"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ADAB8EFnEeOQ-sMT9ZzXiw" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ADAB8kFnEeOQ-sMT9ZzXiw" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ADAB80FnEeOQ-sMT9ZzXiw" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ADAB9EFnEeOQ-sMT9ZzXiw" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ADAB9UFnEeOQ-sMT9ZzXiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ADAB9kFnEeOQ-sMT9ZzXiw"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Split_RHS_2UninterruptiblePowerSupply0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADAB8UFnEeOQ-sMT9ZzXiw" x="630" y="108"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Split0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ABAd40FnEeOQ-sMT9ZzXiw" y="372" width="869" height="256"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__8ULIUFmEeOQ-sMT9ZzXiw"/>
+ <element xmi:type="henshin:Module" href="ruleset.henshin#PAM_Transformation_System"/>
+ <edges xmi:type="notation:Connector" xmi:id="_AEjhIEFnEeOQ-sMT9ZzXiw" type="4001" source="_AB4npUFnEeOQ-sMT9ZzXiw" target="_AB4AkEFnEeOQ-sMT9ZzXiw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AEjhI0FnEeOQ-sMT9ZzXiw" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AEkIMEFnEeOQ-sMT9ZzXiw" x="1" y="21"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AEkIMUFnEeOQ-sMT9ZzXiw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AEkIMkFnEeOQ-sMT9ZzXiw" x="1" y="-22"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AEjhIUFnEeOQ-sMT9ZzXiw" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Downscale_LHS_applies0"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AEjhIkFnEeOQ-sMT9ZzXiw" points="[75, 8, -16, -2]$[-84, -9, -175, -19]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AFWLUEFnEeOQ-sMT9ZzXiw" type="4001" source="_ACSQRUFnEeOQ-sMT9ZzXiw" target="_ACRpMEFnEeOQ-sMT9ZzXiw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFWLU0FnEeOQ-sMT9ZzXiw" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFWLVEFnEeOQ-sMT9ZzXiw" x="-3" y="14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFWyYEFnEeOQ-sMT9ZzXiw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFWyYUFnEeOQ-sMT9ZzXiw" x="-1" y="-22"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AFWLUUFnEeOQ-sMT9ZzXiw" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Downscale_LHS_applies1"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AFWLUkFnEeOQ-sMT9ZzXiw" points="[75, 7, -26, -3]$[-84, -8, -185, -18]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AFZ1sEFnEeOQ-sMT9ZzXiw" type="4001" source="_ACoOhUFnEeOQ-sMT9ZzXiw" target="_ACnncEFnEeOQ-sMT9ZzXiw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFacwEFnEeOQ-sMT9ZzXiw" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFacwUFnEeOQ-sMT9ZzXiw" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFacwkFnEeOQ-sMT9ZzXiw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFacw0FnEeOQ-sMT9ZzXiw" x="-1" y="-16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AFZ1sUFnEeOQ-sMT9ZzXiw" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Delete_LHS_applies0"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AFZ1skFnEeOQ-sMT9ZzXiw" points="[43, 32, 29, 22]$[-56, -41, -70, -51]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AFdgEEFnEeOQ-sMT9ZzXiw" type="4001" source="_AC-MwEFnEeOQ-sMT9ZzXiw" target="_AC-z1EFnEeOQ-sMT9ZzXiw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFeHIEFnEeOQ-sMT9ZzXiw" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFeHIUFnEeOQ-sMT9ZzXiw" x="69" y="-28"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFeHIkFnEeOQ-sMT9ZzXiw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFeHI0FnEeOQ-sMT9ZzXiw" x="-5" y="-35"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AFdgEUFnEeOQ-sMT9ZzXiw" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Split_LHS_Room0_applies"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AFdgEkFnEeOQ-sMT9ZzXiw" points="[-38, 0, 135, -123]$[-179, 0, -6, -123]$[-179, 72, -6, -51]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AFhKcEFnEeOQ-sMT9ZzXiw" type="4001" source="_AC-MwEFnEeOQ-sMT9ZzXiw" target="_AC_a4kFnEeOQ-sMT9ZzXiw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFhxgEFnEeOQ-sMT9ZzXiw" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFhxgUFnEeOQ-sMT9ZzXiw" x="-2" y="33"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFhxgkFnEeOQ-sMT9ZzXiw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFhxg0FnEeOQ-sMT9ZzXiw" x="65" y="33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AFhKcUFnEeOQ-sMT9ZzXiw" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Split_RHS_Room0_applies1"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AFhKckFnEeOQ-sMT9ZzXiw" points="[38, 9, -130, -114]$[168, 9, 0, -114]$[168, 72, 0, -51]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AFk00EFnEeOQ-sMT9ZzXiw" type="4001" source="_AC-MwEFnEeOQ-sMT9ZzXiw" target="_ADAB8EFnEeOQ-sMT9ZzXiw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFlb4EFnEeOQ-sMT9ZzXiw" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFlb4UFnEeOQ-sMT9ZzXiw" x="128" y="49"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFlb4kFnEeOQ-sMT9ZzXiw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFlb40FnEeOQ-sMT9ZzXiw" x="206" y="49"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AFk00UFnEeOQ-sMT9ZzXiw" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_UninterruptiblePowerSupply_Split_RHS_Room0_applies2"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AFk00kFnEeOQ-sMT9ZzXiw" points="[6, -6, -412, -137]$[426, -6, 8, -137]$[426, 80, 8, -51]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_si_wkEFnEeOQ-sMT9ZzXiw" id="(0.9210526315789473,0.34615384615384615)"/>
+ </edges>
+</notation:Diagram>
diff --git a/mok2014/Test04_Substitute_UPS/ruleset.png b/mok2014/Test04_Substitute_UPS/ruleset.png
new file mode 100644
index 0000000..534455f
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/ruleset.png
Binary files differ
diff --git a/mok2014/Test04_Substitute_UPS/smells_refactor.png b/mok2014/Test04_Substitute_UPS/smells_refactor.png
new file mode 100644
index 0000000..c991704
--- /dev/null
+++ b/mok2014/Test04_Substitute_UPS/smells_refactor.png
Binary files differ
diff --git a/mok2014/Test05_Substitute_Cooling/Results.html b/mok2014/Test05_Substitute_Cooling/Results.html
new file mode 100644
index 0000000..54ba986
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/Results.html
@@ -0,0 +1,20 @@
+<html>
+</body>
+<hr>
+<h1>Test05_Substitute_Cooling</h1>
+<hr>
+<h2>Instance Model</h2><br>
+<img src="model.png"><br><hr>
+<h2>Metrics (custom solution)</h2><br>
+<img src="metrics_custom.png"><br><hr>
+<h2>Metrics (EMF Refactor solution)</h2><br>
+<img src="metrics_refactor.png"><br><hr>
+<h2>Smells (EMF Refactor solution)</h2><br>
+<img src="smells_refactor.png"><br><hr>
+<h2>Optimization Rule (custom solution)</h2><br>
+<img src="ruleset.png"><br><hr>
+<h2>Optimization Log (EMF Refactor solution)</h2><br>
+<img src="log.png"><br>
+<hr>
+<body>
+</html>
\ No newline at end of file
diff --git a/mok2014/Test05_Substitute_Cooling/Rule05.pam b/mok2014/Test05_Substitute_Cooling/Rule05.pam
new file mode 100644
index 0000000..ac012f3
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/Rule05.pam
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PAM:Room xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:PAM="PAM" Name="Diagram">
+ <includes Max_Watt="1170" Name="InRoom SC Protable" Cooling_Capacity="2900"/>
+ <includes Max_Watt="1560" Name="InRoom SC Portable" Cooling_Capacity="3500"/>
+ <includes Max_Watt="1640" Name="InRoom SC Portable" Cooling_Capacity="3000"/>
+</PAM:Room>
diff --git a/mok2014/Test05_Substitute_Cooling/Rule05.pam_diagram b/mok2014/Test05_Substitute_Cooling/Rule05.pam_diagram
new file mode 100644
index 0000000..37fe41f
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/Rule05.pam_diagram
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:PAM="PAM" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_VwOHIMtAEeGw0KgbBYgfuQ" type="PAM" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_VwOHIctAEeGw0KgbBYgfuQ"/>
+ <element xmi:type="PAM:Room" href="Rule05.pam#/"/>
+</notation:Diagram>
diff --git a/mok2014/Test05_Substitute_Cooling/log.png b/mok2014/Test05_Substitute_Cooling/log.png
new file mode 100644
index 0000000..a0a3daa
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/log.png
Binary files differ
diff --git a/mok2014/Test05_Substitute_Cooling/metrics_custom.png b/mok2014/Test05_Substitute_Cooling/metrics_custom.png
new file mode 100644
index 0000000..7860e5e
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/metrics_custom.png
Binary files differ
diff --git a/mok2014/Test05_Substitute_Cooling/metrics_refactor.png b/mok2014/Test05_Substitute_Cooling/metrics_refactor.png
new file mode 100644
index 0000000..f9b03f6
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/metrics_refactor.png
Binary files differ
diff --git a/mok2014/Test05_Substitute_Cooling/model.png b/mok2014/Test05_Substitute_Cooling/model.png
new file mode 100644
index 0000000..0f66e88
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/model.png
Binary files differ
diff --git a/mok2014/Test05_Substitute_Cooling/ruleset.henshin b/mok2014/Test05_Substitute_Cooling/ruleset.henshin
new file mode 100644
index 0000000..e3c2cb5
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/ruleset.henshin
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="PAM_Transformation_System">
+ <imports href="PAM#/"/>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_Cooling_Substitution0" name="SubsituteCooling2">
+ <lhs xmi:id="Rule_Cooling_Substitution_LHS0" name="LHS">
+ <nodes xmi:id="Rule_Cooling_Substitution_LHS_Cooling0">
+ <type href="PAM#//Cooling"/>
+ <attributes xmi:id="Rule_Cooling_Substitution_LHS_Cooling0_Name" value=""InRoom SC Portable"">
+ <type href="PAM#//Cooling/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Substitution_LHS_Cooling0_Max_Watt" value="1640">
+ <type href="PAM#//Cooling/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Substitution_LHS_Cooling0_Cooling_Capacity" value="3000">
+ <type href="PAM#//Cooling/Cooling_Capacity"/>
+ </attributes>
+ </nodes>
+ </lhs>
+ <rhs xmi:id="Rule_Cooling_Substitution_RHS0" name="RHS">
+ <nodes xmi:id="Rule_Cooling_Substitution_RHS_Cooling0">
+ <type href="PAM#//Cooling"/>
+ <attributes xmi:id="Rule_Cooling_Substitution_RHS_Cooling0_Name" value=""InRoom SC Portable"">
+ <type href="PAM#//Cooling/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Substitution_RHS_Cooling0_Max_Watt" value="1560">
+ <type href="PAM#//Cooling/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Substitution_RHS_Cooling0_Cooling_Capacity" value="3500">
+ <type href="PAM#//Cooling/Cooling_Capacity"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings xmi:id="Rule_Cooling_Substitution_Mapping_Cooling0" origin="Rule_Cooling_Substitution_LHS_Cooling0" image="Rule_Cooling_Substitution_RHS_Cooling0"/>
+ </units>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_Cooling_Downscale0" name="DownscaleCooling0">
+ <lhs xmi:id="Rule_Cooling_Downscale_LHS0" name="LHS">
+ <nodes xmi:id="Rule_Cooling_Downscale_LHS_Cooling0" incoming="Rule_Cooling_Downscale_LHS_applies0">
+ <type href="PAM#//Cooling"/>
+ <attributes xmi:id="Rule_Cooling_Downscale_LHS_Cooling0_Name" value=""InRoom SC Portable"">
+ <type href="PAM#//Cooling/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Downscale_LHS_Cooling0_Max_Watt" value="1560">
+ <type href="PAM#//Cooling/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Downscale_LHS_Cooling0_Cooling_Capacity" value="3500">
+ <type href="PAM#//Cooling/Cooling_Capacity"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_Cooling_Downscale_LHS_Room0" outgoing="Rule_Cooling_Downscale_LHS_applies0">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_Cooling_Downscale_LHS_Room0_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_Cooling_Downscale_LHS_applies0" source="Rule_Cooling_Downscale_LHS_Room0" target="Rule_Cooling_Downscale_LHS_Cooling0">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </lhs>
+ <rhs xmi:id="Rule_Cooling_Downscale_RHS0" name="RHS">
+ <nodes xmi:id="Rule_Cooling_Downscale_RHS_Cooling0" incoming="Rule_Cooling_Downscale_RHS_applies0">
+ <type href="PAM#//Cooling"/>
+ <attributes xmi:id="Rule_Cooling_Downscale_RHS_Cooling0_Name" value=""InRoom SC Protable"">
+ <type href="PAM#//Cooling/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Downscale_RHS_Cooling0_Max_Watt" value="1170">
+ <type href="PAM#//Cooling/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Downscale_RHS_Cooling0_Cooling_Capacity" value="2900">
+ <type href="PAM#//Cooling/Cooling_Capacity"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_Cooling_Downscale_RHS_Room0" outgoing="Rule_Cooling_Downscale_RHS_applies0">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_Cooling_Downscale_RHS_Room0_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_Cooling_Downscale_RHS_applies0" source="Rule_Cooling_Downscale_RHS_Room0" target="Rule_Cooling_Downscale_RHS_Cooling0">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </rhs>
+ <mappings xmi:id="Rule_Cooling_Downscale_Mapping_Cooling0" origin="Rule_Cooling_Downscale_LHS_Cooling0" image="Rule_Cooling_Downscale_RHS_Cooling0"/>
+ <mappings xmi:id="Rule_Cooling_Downscale_Mapping0" origin="Rule_Cooling_Downscale_LHS_Room0" image="Rule_Cooling_Downscale_RHS_Room0"/>
+ </units>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_Cooling_Downscale1" name="DownscaleCooling0">
+ <lhs xmi:id="Rule_Cooling_Downscale_LHS1" name="LHS">
+ <nodes xmi:id="Rule_Cooling_Downscale_LHS_Cooling1" incoming="Rule_Cooling_Downscale_LHS_applies1">
+ <type href="PAM#//Cooling"/>
+ <attributes xmi:id="Rule_Cooling_Downscale_LHS_Cooling1_Name" value=""InRoom SC Portable"">
+ <type href="PAM#//Cooling/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Downscale_LHS_Cooling1_Max_Watt" value="1640">
+ <type href="PAM#//Cooling/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Downscale_LHS_Cooling1_Cooling_Capacity" value="3000">
+ <type href="PAM#//Cooling/Cooling_Capacity"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_Cooling_Downscale_LHS_Room1" outgoing="Rule_Cooling_Downscale_LHS_applies1">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_Cooling_Downscale_LHS_Room1_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_Cooling_Downscale_LHS_applies1" source="Rule_Cooling_Downscale_LHS_Room1" target="Rule_Cooling_Downscale_LHS_Cooling1">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </lhs>
+ <rhs xmi:id="Rule_Cooling_Downscale_RHS1" name="RHS">
+ <nodes xmi:id="Rule_Cooling_Downscale_RHS_Cooling1" incoming="Rule_Cooling_Downscale_RHS_applies1">
+ <type href="PAM#//Cooling"/>
+ <attributes xmi:id="Rule_Cooling_Downscale_RHS_Cooling1_Name" value=""InRoom SC Protable"">
+ <type href="PAM#//Cooling/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Downscale_RHS_Cooling1_Max_Watt" value="1170">
+ <type href="PAM#//Cooling/Max_Watt"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Downscale_RHS_Cooling1_Cooling_Capacity" value="2900">
+ <type href="PAM#//Cooling/Cooling_Capacity"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_Cooling_Downscale_RHS_Room1" outgoing="Rule_Cooling_Downscale_RHS_applies1">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_Cooling_Downscale_RHS_Room1_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_Cooling_Downscale_RHS_applies1" source="Rule_Cooling_Downscale_RHS_Room1" target="Rule_Cooling_Downscale_RHS_Cooling1">
+ <type href="PAM#//Room/applies"/>
+ </edges>
+ </rhs>
+ <mappings xmi:id="Rule_Cooling_Downscale_Mapping_Cooling1" origin="Rule_Cooling_Downscale_LHS_Cooling1" image="Rule_Cooling_Downscale_RHS_Cooling1"/>
+ <mappings xmi:id="Rule_Cooling_Downscale_Mapping1" origin="Rule_Cooling_Downscale_LHS_Room1" image="Rule_Cooling_Downscale_RHS_Room1"/>
+ </units>
+ <units xsi:type="henshin:Rule" xmi:id="Rule_Cooling_Delete0" name="DeleteCooling0">
+ <lhs xmi:id="Rule_Cooling_Delete_LHS0" name="LHS">
+ <nodes xmi:id="Rule_Cooling_Delete_LHS_Cooling0" incoming="Rule_Cooling_Delete_LHS_includes0">
+ <type href="PAM#//Cooling"/>
+ <attributes xmi:id="Rule_Cooling_Delete_LHS_Cooling0_Name" value=""InRoom SC Portable"">
+ <type href="PAM#//Cooling/Name"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Delete_LHS_Cooling0_Cooling_Capacity" value="3000">
+ <type href="PAM#//Cooling/Cooling_Capacity"/>
+ </attributes>
+ <attributes xmi:id="Rule_Cooling_Delete_LHS_Cooling0_Max_Watt" value="1640">
+ <type href="PAM#//Cooling/Max_Watt"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="Rule_Cooling_Delete_LHS_Room0" outgoing="Rule_Cooling_Delete_LHS_includes0">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_Cooling_Delete_LHS_Room0_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="Rule_Cooling_Delete_LHS_includes0" source="Rule_Cooling_Delete_LHS_Room0" target="Rule_Cooling_Delete_LHS_Cooling0">
+ <type href="PAM#//Room/includes"/>
+ </edges>
+ </lhs>
+ <rhs xmi:id="Rule_Cooling_Delete_RHS0" name="RHS">
+ <nodes xmi:id="Rule_Cooling_Delete_RHS_Room0">
+ <type href="PAM#//Room"/>
+ <attributes xmi:id="Rule_Cooling_Delete_RHS_Room0_Name" value=""Diagram"">
+ <type href="PAM#//Room/Name"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings xmi:id="Rule_Cooling_Delete_Mapping0" origin="Rule_Cooling_Delete_LHS_Room0" image="Rule_Cooling_Delete_RHS_Room0"/>
+ </units>
+</henshin:Module>
diff --git a/mok2014/Test05_Substitute_Cooling/ruleset.henshin_diagram b/mok2014/Test05_Substitute_Cooling/ruleset.henshin_diagram
new file mode 100644
index 0000000..0c79143
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/ruleset.henshin_diagram
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_vJ-H4EItEeOYf-jR6jTYBQ" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_vOkUAEItEeOYf-jR6jTYBQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOk7EEItEeOYf-jR6jTYBQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOk7EUItEeOYf-jR6jTYBQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_vO_x0EItEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vO_x0kItEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPAY4EItEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPBnAEItEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vPBnAUItEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vPBnAkItEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_Cooling_Substitution_LHS_Cooling0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vO_x0UItEeOYf-jR6jTYBQ" x="16" y="7"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_Cooling_Substitution0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOkUAUItEeOYf-jR6jTYBQ" width="276" height="162"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vOmJMEItEeOYf-jR6jTYBQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOmJMkItEeOYf-jR6jTYBQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOmJM0ItEeOYf-jR6jTYBQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_vPjLcEItEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPjLckItEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPjygEItEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPjygUItEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vPjygkItEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vPjyg0ItEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_Cooling_Downscale_LHS_Cooling0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vPjLcUItEeOYf-jR6jTYBQ" x="29" y="9"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vPkZkEItEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPkZkkItEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPkZk0ItEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPkZlEItEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vPkZlUItEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vPkZlkItEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_Cooling_Downscale_LHS_Room0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vPkZkUItEeOYf-jR6jTYBQ" x="567" y="29"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_Cooling_Downscale0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOmJMUItEeOYf-jR6jTYBQ" y="177" width="794" height="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vOmwQEItEeOYf-jR6jTYBQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOmwQkItEeOYf-jR6jTYBQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOmwQ0ItEeOYf-jR6jTYBQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_vQC6sEItEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQC6skItEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQC6s0ItEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQC6tEItEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vQC6tUItEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vQC6tkItEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_Cooling_Downscale_LHS_Cooling1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vQC6sUItEeOYf-jR6jTYBQ" x="24" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vQC6t0ItEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQDhwEItEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQDhwUItEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQDhwkItEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vQDhw0ItEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vQDhxEItEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_Cooling_Downscale_LHS_Room1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vQC6uEItEeOYf-jR6jTYBQ" x="591" y="38"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_Cooling_Downscale1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOmwQUItEeOYf-jR6jTYBQ" y="356" width="794" height="169"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vOmwREItEeOYf-jR6jTYBQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOnXUEItEeOYf-jR6jTYBQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOnXUUItEeOYf-jR6jTYBQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_vQYR4EItEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQYR4kItEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQYR40ItEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQYR5EItEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vQYR5UItEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vQYR5kItEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_Cooling_Delete_LHS_Cooling0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vQYR4UItEeOYf-jR6jTYBQ" x="14" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vQY48EItEeOYf-jR6jTYBQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQY48kItEeOYf-jR6jTYBQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQY480ItEeOYf-jR6jTYBQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vQY49EItEeOYf-jR6jTYBQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vQY49UItEeOYf-jR6jTYBQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vQY49kItEeOYf-jR6jTYBQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="ruleset.henshin#Rule_Cooling_Delete_LHS_Room0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vQY48UItEeOYf-jR6jTYBQ" x="326" y="34"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="ruleset.henshin#Rule_Cooling_Delete0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOmwRUItEeOYf-jR6jTYBQ" x="296" width="498" height="162"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_vJ-H4UItEeOYf-jR6jTYBQ"/>
+ <element xmi:type="henshin:Module" href="ruleset.henshin#PAM_Transformation_System"/>
+ <edges xmi:type="notation:Connector" xmi:id="_vRWiQEItEeOYf-jR6jTYBQ" type="4001" source="_vPkZkEItEeOYf-jR6jTYBQ" target="_vPjLcEItEeOYf-jR6jTYBQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vRWiQ0ItEeOYf-jR6jTYBQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vRWiREItEeOYf-jR6jTYBQ" y="21"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vRXJUEItEeOYf-jR6jTYBQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vRXJUUItEeOYf-jR6jTYBQ" x="-3" y="-22"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vRWiQUItEeOYf-jR6jTYBQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_Cooling_Downscale_LHS_applies0"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vRWiQkItEeOYf-jR6jTYBQ" points="[75, 7, -33, -3]$[-84, -8, -192, -18]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vR5U0EItEeOYf-jR6jTYBQ" type="4001" source="_vQC6t0ItEeOYf-jR6jTYBQ" target="_vQC6sEItEeOYf-jR6jTYBQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vR5U00ItEeOYf-jR6jTYBQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vR5U1EItEeOYf-jR6jTYBQ" x="5" y="21"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vR5U1UItEeOYf-jR6jTYBQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vR5U1kItEeOYf-jR6jTYBQ" x="-4" y="-22"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vR5U0UItEeOYf-jR6jTYBQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_Cooling_Downscale_LHS_applies1"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vR5U0kItEeOYf-jR6jTYBQ" points="[75, 7, -33, -3]$[-84, -8, -192, -18]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vSBQoEItEeOYf-jR6jTYBQ" type="4001" source="_vQY48EItEeOYf-jR6jTYBQ" target="_vQYR4EItEeOYf-jR6jTYBQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vSBQo0ItEeOYf-jR6jTYBQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vSBQpEItEeOYf-jR6jTYBQ" y="21"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vSBQpUItEeOYf-jR6jTYBQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vSBQpkItEeOYf-jR6jTYBQ" x="-1" y="-17"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vSBQoUItEeOYf-jR6jTYBQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="ruleset.henshin#Rule_Cooling_Delete_LHS_includes0"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vSBQokItEeOYf-jR6jTYBQ" points="[75, 27, 47, 17]$[-84, -31, -112, -41]"/>
+ </edges>
+</notation:Diagram>
diff --git a/mok2014/Test05_Substitute_Cooling/ruleset.png b/mok2014/Test05_Substitute_Cooling/ruleset.png
new file mode 100644
index 0000000..3003f8b
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/ruleset.png
Binary files differ
diff --git a/mok2014/Test05_Substitute_Cooling/smells_refactor.png b/mok2014/Test05_Substitute_Cooling/smells_refactor.png
new file mode 100644
index 0000000..cfaa0f6
--- /dev/null
+++ b/mok2014/Test05_Substitute_Cooling/smells_refactor.png
Binary files differ