Final 2014
diff --git a/Final exams/Final 2014/Problem4.jucm b/Final exams/Final 2014/Problem4.jucm
new file mode 100644
index 0000000..c53acf2
--- /dev/null
+++ b/Final exams/Final 2014/Problem4.jucm
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<urn:URNspec xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ucm.map="http:///ucm/map.ecore" xmlns:urn="http:///urn.ecore" name="URNspec" author="Jimmy" created="November 26, 2017 12:37:20 PM EST" modified="December 10, 2017 6:26:23 PM EST" specVersion="19" urnVersion="1.27" nextGlobalID="4463">
+  <ucmspec>
+    <scenarioGroups name="ScenarioGroup5" id="5">
+      <scenarios name="ScenarioDef6" id="6"/>
+    </scenarioGroups>
+  </ucmspec>
+  <grlspec>
+    <groups name="StrategiesGroup3" id="3" strategies="4"/>
+    <strategies name="EvaluationStrategy4" id="4" author="Jimmy" group="3"/>
+    <impactModel/>
+    <indicatorGroup name="Time" id="7" isRedesignCategory="true"/>
+    <indicatorGroup name="Cost" id="8" isRedesignCategory="true"/>
+    <indicatorGroup name="Quality" id="9" isRedesignCategory="true"/>
+    <indicatorGroup name="Flexibility" id="10" isRedesignCategory="true"/>
+    <featureModel/>
+  </grlspec>
+  <urndef>
+    <responsibilities name="saveGame(Game, Slot)&lt;&lt;out>>" id="224"/>
+    <responsibilities name="informValidateRoom&lt;&lt;in>>" id="231"/>
+    <responsibilities name="share&lt;&lt;out>>" id="935"/>
+    <responsibilities name="informWin&lt;&lt;in>>" id="950"/>
+    <responsibilities name="promptLosingScreen&lt;&lt;out>>" id="1232"/>
+    <responsibilities name="informGameLost&lt;&lt;in>>" id="1233"/>
+    <responsibilities name="cardToDiscardPile&lt;&lt;out>>" id="1237"/>
+    <responsibilities name="informNewCubeNumber&lt;&lt;in>>" id="1230"/>
+    <responsibilities name="Responsibility1308" id="1308"/>
+    <responsibilities name="informNewResearchStationNumber&lt;&lt;in>>" id="1453"/>
+    <responsibilities name="informNewResearchStation&lt;&lt;in>>" id="1455"/>
+    <responsibilities name="informNewCityCube&lt;&lt;in>>" id="1459"/>
+    <responsibilities name="Responsibility1522" id="1522"/>
+    <responsibilities name="build&lt;&lt;out>>" id="2626" description="" expression=""/>
+    <responsibilities name="informNewPlayerHand&lt;&lt;in>>" id="2647" description="" expression=""/>
+    <responsibilities name="Responsibility3392" id="3392"/>
+    <responsibilities name="&lt;&lt;in>> Recharge" id="4042" respRefs="4043"/>
+    <responsibilities name="&lt;&lt;out>> rechargeOptions" id="4046" respRefs="4047"/>
+    <responsibilities name="&lt;&lt;in>> choice" id="4048" respRefs="4049"/>
+    <responsibilities name="&lt;&lt;out>> displayPrice" id="4050" respRefs="4051"/>
+    <responsibilities name="&lt;&lt;out>>informPriceToPaymentSys" id="4081" respRefs="4082"/>
+    <responsibilities name="&lt;&lt;out>>uploadTickets" id="4089" respRefs="4090"/>
+    <responsibilities name="&lt;&lt;out>>printReceipt" id="4095" respRefs="4096"/>
+    <responsibilities name="&lt;&lt;out>>askForCollections" id="4107" respRefs="4108"/>
+    <responsibilities name="&lt;&lt;in>> collected" id="4115" respRefs="4116"/>
+    <responsibilities name="&lt;&lt;in>>Cancel" id="4138" respRefs="4139"/>
+    <responsibilities name="&lt;&lt;out>>beep" id="4252" respRefs="4280"/>
+    <responsibilities name="&lt;&lt;in>> unsuccessful" id="4333" respRefs="4334"/>
+    <responsibilities name="&lt;&lt;out>>transactionFailed" id="4343" respRefs="4344"/>
+    <responsibilities name="&lt;&lt;out>> Beep" id="4454" respRefs="4455"/>
+    <specDiagrams xsi:type="ucm.map:UCMmap" name="UCMmap2" id="2">
+      <nodes xsi:type="ucm.map:StartPoint" name="StartRecharge" id="4035" x="127" y="165" succ="//@urndef/@specDiagrams.0/@connections.0">
+        <label/>
+        <precondition deltaX="40" deltaY="-17" label="" expression="true"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:EndPoint" name="EndOfRecharge" id="4037" x="1414" y="138" pred="//@urndef/@specDiagrams.0/@connections.37">
+        <label/>
+        <postcondition deltaX="-40" deltaY="-20" label="" expression="true"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4043" id="4043" x="227" y="165" succ="//@urndef/@specDiagrams.0/@connections.1" pred="//@urndef/@specDiagrams.0/@connections.0" respDef="4042">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4047" id="4047" x="294" y="166" succ="//@urndef/@specDiagrams.0/@connections.2" pred="//@urndef/@specDiagrams.0/@connections.1" respDef="4046">
+        <label deltaX="12" deltaY="-58"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4049" id="4049" x="424" y="158" succ="//@urndef/@specDiagrams.0/@connections.3" pred="//@urndef/@specDiagrams.0/@connections.32" respDef="4048">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4051" id="4051" x="622" y="134" succ="//@urndef/@specDiagrams.0/@connections.4" pred="//@urndef/@specDiagrams.0/@connections.5" respDef="4050">
+        <label deltaX="-18" deltaY="14"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:AndFork" name="AndFork4057" id="4057" x="528" y="144" succ="//@urndef/@specDiagrams.0/@connections.5 //@urndef/@specDiagrams.0/@connections.6" pred="//@urndef/@specDiagrams.0/@connections.20"/>
+      <nodes xsi:type="ucm.map:AndJoin" name="AndJoin4075" id="4075" x="754" y="156" succ="//@urndef/@specDiagrams.0/@connections.7" pred="//@urndef/@specDiagrams.0/@connections.4 //@urndef/@specDiagrams.0/@connections.8"/>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4082" id="4082" x="625" y="173" succ="//@urndef/@specDiagrams.0/@connections.8" pred="//@urndef/@specDiagrams.0/@connections.6" respDef="4081">
+        <label deltaX="3" deltaY="-51"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4090" id="4090" x="900" y="159" succ="//@urndef/@specDiagrams.0/@connections.9" pred="//@urndef/@specDiagrams.0/@connections.28" respDef="4089">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4096" id="4096" x="993" y="158" succ="//@urndef/@specDiagrams.0/@connections.10" pred="//@urndef/@specDiagrams.0/@connections.9" respDef="4095">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4108" id="4108" x="1089" y="159" succ="//@urndef/@specDiagrams.0/@connections.11" pred="//@urndef/@specDiagrams.0/@connections.10" respDef="4107">
+        <label deltaX="2" deltaY="-54"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4116" id="4116" x="1244" y="174" succ="//@urndef/@specDiagrams.0/@connections.12" pred="//@urndef/@specDiagrams.0/@connections.34" respDef="4115">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:AndFork" name="AndFork4134" id="4134" x="348" y="167" succ="//@urndef/@specDiagrams.0/@connections.13 //@urndef/@specDiagrams.0/@connections.14 //@urndef/@specDiagrams.0/@connections.18" pred="//@urndef/@specDiagrams.0/@connections.2"/>
+      <nodes xsi:type="ucm.map:EndPoint" name="EndInSuccess" id="4136" x="430" y="51" pred="//@urndef/@specDiagrams.0/@connections.16">
+        <label/>
+        <postcondition deltaX="-40" deltaY="-20" label="" expression="true"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4139" id="4139" x="304" y="73" succ="//@urndef/@specDiagrams.0/@connections.15" pred="//@urndef/@specDiagrams.0/@connections.14" respDef="4138">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:FailurePoint" name="abort" id="4147" x="370" y="59" succ="//@urndef/@specDiagrams.0/@connections.16" pred="//@urndef/@specDiagrams.0/@connections.15">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:EndPoint" name="EndinSuccess" id="4150" x="1253" y="550" pred="//@urndef/@specDiagrams.0/@connections.17">
+        <label/>
+        <postcondition deltaX="-40" deltaY="-20" label="" expression="true"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:StartPoint" name="abort" id="4149" x="1053" y="550" succ="//@urndef/@specDiagrams.0/@connections.17" failureKind="Abort">
+        <label/>
+        <precondition deltaX="40" deltaY="-17" label="" expression="true"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:Timer" name="Timer" id="4161" x="581" y="310" succ="//@urndef/@specDiagrams.0/@connections.19" pred="//@urndef/@specDiagrams.0/@connections.27 //@urndef/@specDiagrams.0/@connections.23">
+        <label deltaX="-32" deltaY="-21"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:AndFork" name="AndFork4170" id="4170" x="477" y="157" succ="//@urndef/@specDiagrams.0/@connections.20 //@urndef/@specDiagrams.0/@connections.21" pred="//@urndef/@specDiagrams.0/@connections.3"/>
+      <nodes xsi:type="ucm.map:EndPoint" name="" id="4172" x="581" y="310" succ="//@urndef/@specDiagrams.0/@connections.22" pred="//@urndef/@specDiagrams.0/@connections.24">
+        <label/>
+        <postcondition deltaX="-40" deltaY="-20" label="" expression="true"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:Connect" name="Connect4180" id="4180" x="581" y="310" succ="//@urndef/@specDiagrams.0/@connections.23" pred="//@urndef/@specDiagrams.0/@connections.22"/>
+      <nodes xsi:type="ucm.map:DirectionArrow" name="DirectionArrow4181" id="4181" x="543" y="191" succ="//@urndef/@specDiagrams.0/@connections.24" pred="//@urndef/@specDiagrams.0/@connections.21"/>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4280" id="4280" x="473" y="382" succ="//@urndef/@specDiagrams.0/@connections.25" pred="//@urndef/@specDiagrams.0/@connections.19" respDef="4252">
+        <label deltaX="5" deltaY="-41"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:DirectionArrow" name="DirectionArrow4258" id="4258" x="429" y="312" succ="//@urndef/@specDiagrams.0/@connections.26" pred="//@urndef/@specDiagrams.0/@connections.25"/>
+      <nodes xsi:type="ucm.map:OrJoin" name="OrJoin4243" id="4243" x="510" y="267" succ="//@urndef/@specDiagrams.0/@connections.27" pred="//@urndef/@specDiagrams.0/@connections.18 //@urndef/@specDiagrams.0/@connections.26"/>
+      <nodes xsi:type="ucm.map:OrFork" name="OrFork4311" id="4311" x="814" y="153" succ="//@urndef/@specDiagrams.0/@connections.28 //@urndef/@specDiagrams.0/@connections.29" pred="//@urndef/@specDiagrams.0/@connections.7"/>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4334" id="4334" x="766" y="74" succ="//@urndef/@specDiagrams.0/@connections.30" pred="//@urndef/@specDiagrams.0/@connections.29" respDef="4333">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4344" id="4344" x="665" y="45" succ="//@urndef/@specDiagrams.0/@connections.31" pred="//@urndef/@specDiagrams.0/@connections.30" respDef="4343">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:OrJoin" name="OrJoin4387" id="4387" x="384" y="161" succ="//@urndef/@specDiagrams.0/@connections.32" pred="//@urndef/@specDiagrams.0/@connections.13 //@urndef/@specDiagrams.0/@connections.33"/>
+      <nodes xsi:type="ucm.map:DirectionArrow" name="DirectionArrow4398" id="4398" x="433" y="98" succ="//@urndef/@specDiagrams.0/@connections.33" pred="//@urndef/@specDiagrams.0/@connections.31"/>
+      <nodes xsi:type="ucm.map:AndFork" name="AndFork4407" id="4407" x="1167" y="165" succ="//@urndef/@specDiagrams.0/@connections.34 //@urndef/@specDiagrams.0/@connections.35" pred="//@urndef/@specDiagrams.0/@connections.11"/>
+      <nodes xsi:type="ucm.map:Timer" name="Timer" id="4413" x="1220" y="271" succ="//@urndef/@specDiagrams.0/@connections.36" pred="//@urndef/@specDiagrams.0/@connections.42 //@urndef/@specDiagrams.0/@connections.40">
+        <label/>
+      </nodes>
+      <nodes xsi:type="ucm.map:AndFork" name="AndFork4426" id="4426" x="1301" y="180" succ="//@urndef/@specDiagrams.0/@connections.37 //@urndef/@specDiagrams.0/@connections.38" pred="//@urndef/@specDiagrams.0/@connections.12"/>
+      <nodes xsi:type="ucm.map:EndPoint" name="" id="4428" x="1220" y="271" succ="//@urndef/@specDiagrams.0/@connections.39" pred="//@urndef/@specDiagrams.0/@connections.41">
+        <label/>
+        <postcondition deltaX="-40" deltaY="-20" label="" expression="true"/>
+      </nodes>
+      <nodes xsi:type="ucm.map:Connect" name="Connect4430" id="4430" x="1220" y="271" succ="//@urndef/@specDiagrams.0/@connections.40" pred="//@urndef/@specDiagrams.0/@connections.39"/>
+      <nodes xsi:type="ucm.map:DirectionArrow" name="DirectionArrow4432" id="4432" x="1345" y="241" succ="//@urndef/@specDiagrams.0/@connections.41" pred="//@urndef/@specDiagrams.0/@connections.38"/>
+      <nodes xsi:type="ucm.map:OrJoin" name="OrJoin4449" id="4449" x="1191" y="223" succ="//@urndef/@specDiagrams.0/@connections.42" pred="//@urndef/@specDiagrams.0/@connections.35 //@urndef/@specDiagrams.0/@connections.43"/>
+      <nodes xsi:type="ucm.map:RespRef" name="RespRef4455" id="4455" x="1147" y="323" succ="//@urndef/@specDiagrams.0/@connections.43" pred="//@urndef/@specDiagrams.0/@connections.36" respDef="4454">
+        <label/>
+      </nodes>
+      <connections xsi:type="ucm.map:NodeConnection" source="4035" target="4043"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4043" target="4047"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4047" target="4134"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4049" target="4170"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4051" target="4075"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4057" target="4051"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4057" target="4082"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4075" target="4311"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4082" target="4075"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4090" target="4096"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4096" target="4108"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4108" target="4407"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4116" target="4426"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4134" target="4387"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4134" target="4139"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4139" target="4147"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4147" target="4136">
+        <condition label="" expression="true"/>
+      </connections>
+      <connections xsi:type="ucm.map:NodeConnection" source="4149" target="4150"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4134" target="4243"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4161" target="4280">
+        <condition label="" expression="true"/>
+      </connections>
+      <connections xsi:type="ucm.map:NodeConnection" source="4170" target="4057"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4170" target="4181"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4172" target="4180"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4180" target="4161"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4181" target="4172"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4280" target="4258"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4258" target="4243"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4243" target="4161"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4311" target="4090">
+        <condition label="Successful" expression="true"/>
+      </connections>
+      <connections xsi:type="ucm.map:NodeConnection" source="4311" target="4334">
+        <condition label="Unsuccessful" expression="true"/>
+      </connections>
+      <connections xsi:type="ucm.map:NodeConnection" source="4334" target="4344"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4344" target="4398"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4387" target="4049"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4398" target="4387"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4407" target="4116"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4407" target="4449"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4413" target="4455">
+        <condition label="" expression="true"/>
+      </connections>
+      <connections xsi:type="ucm.map:NodeConnection" source="4426" target="4037"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4426" target="4432"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4428" target="4430"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4430" target="4413"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4432" target="4428"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4449" target="4413"/>
+      <connections xsi:type="ucm.map:NodeConnection" source="4455" target="4449"/>
+    </specDiagrams>
+  </urndef>
+  <metadata name="_Use0to100EvaluationRange" value="false"/>
+</urn:URNspec>