SWADP/Opdracht_4/opdracht4.drawio
Shaquille Soekhlal 7723e68186 Opdracht 4 code en design
Co-authored-by: Aryan Lala (19097727) <A.E.Lala@student.hhs.nl>
2023-06-11 16:15:15 +02:00

407 lines
37 KiB
Plaintext

<mxfile host="65bd71144e">
<diagram id="KfANXQmF8nHkjfM11mp0" name="Page-1">
<mxGraphModel dx="1614" dy="1006" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" style="" parent="0"/>
<mxCell id="65" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=#d1d1d2;strokeColor=#006EAF;fontSize=16;fillColor=#1ba1e2;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry x="350" y="750" width="950" height="430" as="geometry"/>
</mxCell>
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#D882C7;strokeColor=#FF66B3;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry y="100" width="360" height="1080" as="geometry"/>
</mxCell>
<mxCell id="3" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;Infrastructure Layer&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="120" y="100" width="160" height="30" as="geometry"/>
</mxCell>
<mxCell id="30" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=#d1d1d2;strokeColor=#B37524;fontSize=16;fillColor=#FF944D;fontColor=#ffffff;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="360" y="100" width="940" height="210" as="geometry"/>
</mxCell>
<mxCell id="31" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;Interface Layer&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="375" y="100" width="130" height="30" as="geometry"/>
</mxCell>
<mxCell id="35" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=#d1d1d2;strokeColor=#2D7600;fontSize=16;fillColor=#60a917;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry x="360" y="310" width="940" height="440" as="geometry"/>
</mxCell>
<mxCell id="36" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;Domain Implementatie Layer&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="360" y="320" width="230" height="30" as="geometry"/>
</mxCell>
<mxCell id="66" value="&lt;span style=&quot;font-size: 16px;&quot;&gt;Domain&amp;nbsp;Layer&lt;br&gt;&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="350" y="750" width="120" height="30" as="geometry"/>
</mxCell>
<mxCell id="144" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;overflow=hidden;" parent="1" vertex="1">
<mxGeometry x="60" y="1530" width="147" height="73" as="geometry">
<mxRectangle width="147" height="73" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="125" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="390" y="368" width="890" height="332" as="geometry"/>
</mxCell>
<mxCell id="115" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="90" y="140" width="230" height="390" as="geometry"/>
</mxCell>
<mxCell id="126" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="550" y="141" width="230" height="140" as="geometry"/>
</mxCell>
<mxCell id="124" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="890" y="135" width="230" height="140" as="geometry"/>
</mxCell>
<mxCell id="280" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="370" y="780" width="920" height="330" as="geometry"/>
</mxCell>
<mxCell id="281" value="M" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="860" y="1050" width="30" height="30" as="geometry"/>
</mxCell>
<mxCell id="282" value="2" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="820" y="1050" width="30" height="30" as="geometry"/>
</mxCell>
<mxCell id="145" value="Classes" parent="0"/>
<mxCell id="200" value="DieselMotor" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="561" y="539" width="160" height="126" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="201" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="200" vertex="1">
<mxGeometry y="26" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="202" value="+ tsensor() : Tsensor&lt;br&gt;+ start() : void&lt;br&gt;+ stop() : void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="200" vertex="1">
<mxGeometry y="66" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="203" value="Machine &lt;implementatie&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=20;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="411" y="379" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="204" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="203" vertex="1">
<mxGeometry y="20" width="160" height="10" as="geometry"/>
</mxCell>
<mxCell id="205" value="+ motor1() : Motor&lt;br&gt;+ motor2() : Motor&lt;br&gt;+ run() : void&lt;br&gt;+ halt() : void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="203" vertex="1">
<mxGeometry y="30" width="160" height="70" as="geometry"/>
</mxCell>
<mxCell id="206" value="ElectrischeMotor" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="831" y="539" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="207" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="206" vertex="1">
<mxGeometry y="26" width="160" height="14" as="geometry"/>
</mxCell>
<mxCell id="208" value="+ tsensor() : Tsensor&lt;br&gt;+ start() : void&lt;br&gt;+ stop() : void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="206" vertex="1">
<mxGeometry y="40" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="209" value="Tsensor &lt;implementatie&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="1111" y="460" width="160" height="96" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="278" value="-temperatuur: int" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="209" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry"/>
</mxCell>
<mxCell id="211" value="+read(): void&lt;br&gt;+temperatuur(): Integer" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="209" vertex="1">
<mxGeometry y="56" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="212" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="145" source="264" target="209" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1010.9999999999995" y="254" as="sourcePoint"/>
<mxPoint x="311" y="599" as="targetPoint"/>
<Array as="points">
<mxPoint x="1191" y="400"/>
<mxPoint x="1011" y="360"/>
<mxPoint x="1191" y="410"/>
<mxPoint x="1180" y="410"/>
<mxPoint x="1191" y="430"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="213" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.006;exitY=0.317;exitDx=0;exitDy=0;exitPerimeter=0;" parent="145" source="211" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1021" y="264" as="sourcePoint"/>
<mxPoint x="281" y="415" as="targetPoint"/>
<Array as="points">
<mxPoint x="351" y="415"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="214" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#f5f5f5;strokeColor=#FFFFFF;exitX=0.563;exitY=1.036;exitDx=0;exitDy=0;exitPerimeter=0;" parent="145" source="211" target="226" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1200" y="560" as="sourcePoint"/>
<mxPoint x="1190.9999999999995" y="789" as="targetPoint"/>
<Array as="points"/>
</mxGeometry>
</mxCell>
<mxCell id="215" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;fillColor=#e51400;strokeColor=#FFFFFF;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="145" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="900.9999999999995" y="639" as="sourcePoint"/>
<mxPoint x="891.0000000000005" y="802.5" as="targetPoint"/>
<Array as="points"/>
</mxGeometry>
</mxCell>
<mxCell id="216" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#e51400;strokeColor=#FFFFFF;" parent="145" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="641" y="665" as="sourcePoint"/>
<mxPoint x="611" y="786" as="targetPoint"/>
<Array as="points"/>
</mxGeometry>
</mxCell>
<mxCell id="217" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.471;exitY=1.022;exitDx=0;exitDy=0;exitPerimeter=0;fillColor=#e51400;strokeColor=#B20000;" parent="145" source="205" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="491.0799999999999" y="479" as="sourcePoint"/>
<mxPoint x="461" y="929" as="targetPoint"/>
<Array as="points"/>
</mxGeometry>
</mxCell>
<mxCell id="220" value="Machine &lt;interface&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="380" y="930" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="221" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="220" vertex="1">
<mxGeometry y="26" width="160" height="4" as="geometry"/>
</mxCell>
<mxCell id="222" value="+ motor1() : Motor&lt;br&gt;+ motor2() : Motor&lt;br&gt;+ run() : void&lt;br&gt;+ halt() : void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="220" vertex="1">
<mxGeometry y="30" width="160" height="70" as="geometry"/>
</mxCell>
<mxCell id="223" value="Motor &lt;interface&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="780" y="950" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="224" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="223" vertex="1">
<mxGeometry y="26" width="160" height="14" as="geometry"/>
</mxCell>
<mxCell id="225" value="+ tsensor() : Tsensor&lt;br&gt;+ start() : void&lt;br&gt;+ stop() : void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="223" vertex="1">
<mxGeometry y="40" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="226" value="TSensor &lt;interface&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="1115" y="970" width="160" height="80" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="227" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="226" vertex="1">
<mxGeometry y="26" width="160" height="14" as="geometry"/>
</mxCell>
<mxCell id="228" value="+read(): void&lt;br&gt;+temperatuur(): Integer" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="226" vertex="1">
<mxGeometry y="40" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="229" value="Mone &lt;interface&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="530" y="787" width="160" height="83" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="230" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="229" vertex="1">
<mxGeometry y="26" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="231" value="Mtwo &lt;interface&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="810" y="803.5" width="160" height="83" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="232" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="231" vertex="1">
<mxGeometry y="26" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="233" value="" style="endArrow=none;html=1;fontSize=16;exitX=1.014;exitY=0.364;exitDx=0;exitDy=0;exitPerimeter=0;" parent="145" source="225" target="226" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="970" y="830" as="sourcePoint"/>
<mxPoint x="1110" y="830" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="235" value="&lt;font style=&quot;font-size: 12px;&quot;&gt;S&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="145" vertex="1">
<mxGeometry x="1080" y="980" width="30" height="30" as="geometry"/>
</mxCell>
<mxCell id="236" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;" parent="145" vertex="1">
<mxGeometry x="1080" y="1010" width="30" height="30" as="geometry"/>
</mxCell>
<mxCell id="238" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="145" target="223" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="890" y="890" as="sourcePoint"/>
<mxPoint x="890" y="900" as="targetPoint"/>
<Array as="points">
<mxPoint x="960" y="920"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="239" value="" style="endArrow=none;html=1;fontSize=12;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="145" source="229" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="830" y="1060" as="sourcePoint"/>
<mxPoint x="880" y="920" as="targetPoint"/>
<Array as="points">
<mxPoint x="610" y="920"/>
<mxPoint x="840" y="920"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="240" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;labelBackgroundColor=none;startFill=0;endArrow=open;endFill=0;endSize=10;fontFamily=Verdana;fontSize=10;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="145" target="223" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="780" y="950"/>
</Array>
<mxPoint x="540" y="949.5" as="sourcePoint"/>
<mxPoint x="650" y="949.4999999999999" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="243" value="" style="endArrow=none;html=1;fontSize=12;exitX=0.184;exitY=1.005;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.461;entryY=1.003;entryDx=0;entryDy=0;entryPerimeter=0;" parent="145" target="225" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400.44000000000005" y="1029.35" as="sourcePoint"/>
<mxPoint x="961" y="886" as="targetPoint"/>
<Array as="points">
<mxPoint x="401" y="1090"/>
<mxPoint x="854" y="1090"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="244" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.471;exitY=1.022;exitDx=0;exitDy=0;exitPerimeter=0;fillColor=#e51400;strokeColor=default;" parent="145" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="486.3599999999999" y="480.53999999999996" as="sourcePoint"/>
<mxPoint x="461" y="929" as="targetPoint"/>
<Array as="points"/>
</mxGeometry>
</mxCell>
<mxCell id="249" value="Observer &lt;interface&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="120" y="150" width="160" height="86" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="250" value="# getSubject() : Subject" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="249" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry"/>
</mxCell>
<mxCell id="251" value="+ update() : void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="249" vertex="1">
<mxGeometry y="56" width="160" height="30" as="geometry"/>
</mxCell>
<mxCell id="252" value="Subject" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;" parent="145" vertex="1">
<mxGeometry x="120" y="340" width="160" height="160" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="253" value="&lt;span style=&quot;color: rgb(240, 240, 240); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important; background-color: rgb(216, 130, 199);&quot;&gt;- L : list&amp;lt;Observer*&amp;gt;&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;fontSize=10;fontFamily=Verdana;fontColor=default;" parent="252" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry"/>
</mxCell>
<mxCell id="254" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="252" vertex="1">
<mxGeometry y="56" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="255" value="# notify() : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="252" vertex="1">
<mxGeometry y="64" width="160" height="24" as="geometry"/>
</mxCell>
<mxCell id="256" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="252" vertex="1">
<mxGeometry y="88" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="257" value="&lt;span style=&quot;color: rgb(240, 240, 240); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important; background-color: rgb(216, 130, 199);&quot;&gt;+ remove (Observer*) : void&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;fontSize=10;fontFamily=Verdana;fontColor=default;" parent="252" vertex="1">
<mxGeometry y="96" width="160" height="32" as="geometry"/>
</mxCell>
<mxCell id="258" value="&lt;font face=&quot;Helvetica&quot;&gt;&lt;span style=&quot;font-size: 12px;&quot;&gt;+ insert (Observer*) : void&lt;/span&gt;&lt;/font&gt;" style="text;whiteSpace=wrap;html=1;fontSize=10;fontFamily=Verdana;fontColor=default;" parent="252" vertex="1">
<mxGeometry y="128" width="160" height="30" as="geometry"/>
</mxCell>
<mxCell id="259" style="edgeStyle=none;html=1;endArrow=open;endFill=0;entryX=0.653;entryY=0.003;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.647;exitY=0.989;exitDx=0;exitDy=0;exitPerimeter=0;" parent="145" source="251" target="252" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="380.00000000000017" y="290" as="targetPoint"/>
<mxPoint x="219" y="260" as="sourcePoint"/>
</mxGeometry>
</mxCell>
<mxCell id="260" style="edgeStyle=none;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;endArrow=open;endFill=0;entryX=0.249;entryY=1.005;entryDx=0;entryDy=0;entryPerimeter=0;" parent="145" source="252" target="251" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="161" y="259" as="targetPoint"/>
<mxPoint x="504.8100000000001" y="470.0100000000002" as="sourcePoint"/>
</mxGeometry>
</mxCell>
<mxCell id="261" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;" parent="145" source="262" target="249" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1030" y="40" as="sourcePoint"/>
<mxPoint x="670" y="70" as="targetPoint"/>
<Array as="points">
<mxPoint x="400" y="130"/>
<mxPoint x="600" y="130"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="262" value="UI" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="930" y="155" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="263" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="262" vertex="1">
<mxGeometry y="26" width="160" height="14" as="geometry"/>
</mxCell>
<mxCell id="264" value="+ update() : void" style="text;whiteSpace=wrap;html=1;" parent="262" vertex="1">
<mxGeometry y="40" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="265" value="Main" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=none;fontColor=#ffffff;strokeColor=#c5c7c9;" parent="145" vertex="1">
<mxGeometry x="580" y="160" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="266" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="265" vertex="1">
<mxGeometry y="26" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="267" value="+ main(): void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" parent="265" vertex="1">
<mxGeometry y="66" width="160" height="30" as="geometry"/>
</mxCell>
<mxCell id="272" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;exitX=1.002;exitY=0.739;exitDx=0;exitDy=0;exitPerimeter=0;" parent="145" source="202" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="651" y="549" as="sourcePoint"/>
<mxPoint x="1135" y="970" as="targetPoint"/>
<Array as="points">
<mxPoint x="1135" y="800"/>
<mxPoint x="1041" y="390"/>
<mxPoint x="1221" y="440"/>
<mxPoint x="1210" y="440"/>
<mxPoint x="1221" y="460"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="274" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="145" target="226" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="990" y="609" as="sourcePoint"/>
<mxPoint x="1121" y="490" as="targetPoint"/>
<Array as="points">
<mxPoint x="1155" y="790"/>
<mxPoint x="1051" y="400"/>
<mxPoint x="1231" y="450"/>
<mxPoint x="1220" y="450"/>
<mxPoint x="1231" y="470"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="275" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;strokeWidth=1;" parent="145" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="410" y="448" as="sourcePoint"/>
<mxPoint x="780" y="1033" as="targetPoint"/>
<Array as="points">
<mxPoint x="330" y="680"/>
<mxPoint x="310" y="900"/>
<mxPoint x="510" y="1080"/>
<mxPoint x="310" y="1120"/>
<mxPoint x="220" y="1120"/>
<mxPoint x="290" y="1070"/>
<mxPoint x="300" y="840"/>
<mxPoint x="510" y="1070"/>
<mxPoint x="340" y="870"/>
<mxPoint x="1051" y="400"/>
<mxPoint x="1231" y="450"/>
<mxPoint x="1220" y="450"/>
<mxPoint x="1231" y="470"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="279" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;strokeWidth=1;exitX=1.007;exitY=0.551;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="145" source="205" target="226">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="750" y="440" as="sourcePoint"/>
<mxPoint x="1120" y="1025" as="targetPoint"/>
<Array as="points">
<mxPoint x="1100" y="730"/>
<mxPoint x="650" y="892"/>
<mxPoint x="850" y="1072"/>
<mxPoint x="650" y="1112"/>
<mxPoint x="560" y="1112"/>
<mxPoint x="630" y="1062"/>
<mxPoint x="640" y="832"/>
<mxPoint x="850" y="1062"/>
<mxPoint x="680" y="862"/>
<mxPoint x="1391" y="392"/>
<mxPoint x="1571" y="442"/>
<mxPoint x="1560" y="442"/>
<mxPoint x="1571" y="462"/>
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>