SWADP/Opdracht_4/opdracht4.drawio

367 lines
35 KiB
Plaintext
Raw Normal View History

2023-05-31 23:08:15 +00:00
<mxfile host="65bd71144e">
<diagram id="KfANXQmF8nHkjfM11mp0" name="Page-1">
2023-06-08 11:45:31 +00:00
<mxGraphModel dx="1552" dy="1160" 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">
2023-05-31 23:08:15 +00:00
<root>
<mxCell id="0"/>
2023-06-08 11:45:31 +00:00
<mxCell id="1" style="" parent="0"/>
<mxCell id="65" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=#d1d1d2;strokeColor=#001DBC;fontSize=16;fillColor=#0050ef;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry x="350" y="750" width="950" height="510" as="geometry"/>
</mxCell>
2023-05-31 23:08:15 +00:00
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d80073;strokeColor=#A50040;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry y="100" width="360" height="1160" as="geometry"/>
2023-05-31 23:08:15 +00:00
</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>
2023-06-08 11:45:31 +00:00
<mxCell id="30" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=#d1d1d2;strokeColor=#B20000;fontSize=16;fillColor=#FF0000;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry x="360" y="100" width="940" height="210" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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="62" value="" style="endArrow=none;html=1;fontSize=12;exitX=1;exitY=0;exitDx=0;exitDy=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="930" as="sourcePoint"/>
<mxPoint x="540" y="870" as="targetPoint"/>
<Array as="points"/>
2023-05-31 23:08:15 +00:00
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<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"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="127" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="370" y="780" width="920" height="440" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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="145" value="Classes" parent="0"/>
<mxCell id="200" value="Mone &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;" vertex="1" parent="145">
<mxGeometry x="561" y="539" width="160" height="126" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
2023-05-31 23:08:15 +00:00
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="201" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="200">
<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;" vertex="1" parent="200">
<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;" vertex="1" parent="145">
<mxGeometry x="411" y="379" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
2023-05-31 23:08:15 +00:00
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="204" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="203">
<mxGeometry y="20" width="160" height="10" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="203">
<mxGeometry y="30" width="160" height="70" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="206" value="Mtwo &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;" vertex="1" parent="145">
<mxGeometry x="831" y="539" width="160" height="100" as="geometry">
2023-05-31 23:08:15 +00:00
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="207" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="206">
<mxGeometry y="26" width="160" height="14" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="206">
<mxGeometry y="40" width="160" height="60" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="1111" y="549" width="160" height="80" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="210" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="209">
<mxGeometry y="26" width="160" height="14" 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;" vertex="1" parent="209">
<mxGeometry y="40" width="160" height="40" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="212" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="145" target="209">
<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="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.004;exitY=0.298;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="145" source="205">
<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;exitX=0.563;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;fillColor=#e51400;strokeColor=#B20000;" edge="1" parent="145" source="211">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1221" y="699" 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=#B20000;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="145">
<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=#B20000;" edge="1" parent="145">
<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;" edge="1" parent="145" source="205">
<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;" vertex="1" parent="145">
<mxGeometry x="380" y="930" width="160" height="100" as="geometry">
2023-05-31 23:08:15 +00:00
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="221" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="220">
<mxGeometry y="26" width="160" height="4" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="220">
<mxGeometry y="30" width="160" height="70" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="780" y="950" width="160" height="100" as="geometry">
2023-05-31 23:08:15 +00:00
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="224" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="223">
<mxGeometry y="26" width="160" height="14" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="223">
<mxGeometry y="40" width="160" height="60" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="1110" y="790" width="160" height="80" as="geometry">
2023-05-31 23:08:15 +00:00
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="227" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="226">
<mxGeometry y="26" width="160" height="14" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="226">
<mxGeometry y="40" width="160" height="40" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="530" y="787" width="160" height="83" as="geometry">
2023-05-31 23:08:15 +00:00
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="230" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="229">
2023-05-31 23:08:15 +00:00
<mxGeometry y="26" width="160" height="40" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="810" y="803.5" width="160" height="83" as="geometry">
2023-05-31 23:08:15 +00:00
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="232" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="231">
2023-05-31 23:08:15 +00:00
<mxGeometry y="26" width="160" height="40" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="233" value="" style="endArrow=none;html=1;fontSize=16;" edge="1" parent="145">
2023-05-31 23:08:15 +00:00
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="970" y="830" as="sourcePoint"/>
<mxPoint x="1110" y="830" as="targetPoint"/>
2023-05-31 23:08:15 +00:00
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="234" value="&lt;font style=&quot;font-size: 12px;&quot;&gt;M&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="145">
<mxGeometry x="970" y="800" width="30" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="1080" y="801" width="30" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="236" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;" vertex="1" parent="145">
<mxGeometry x="1080" y="830" width="30" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="237" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;" vertex="1" parent="145">
<mxGeometry x="970" y="830" width="30" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" edge="1" parent="145" target="223">
2023-05-31 23:08:15 +00:00
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="890" y="890" as="sourcePoint"/>
<mxPoint x="890" y="900" as="targetPoint"/>
2023-05-31 23:08:15 +00:00
<Array as="points">
<mxPoint x="960" y="920"/>
2023-05-31 23:08:15 +00:00
</Array>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="239" value="" style="endArrow=none;html=1;fontSize=12;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="145" source="229">
2023-05-31 23:08:15 +00:00
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="830" y="1060" as="sourcePoint"/>
<mxPoint x="880" y="920" as="targetPoint"/>
2023-05-31 23:08:15 +00:00
<Array as="points">
<mxPoint x="610" y="920"/>
<mxPoint x="840" y="920"/>
2023-05-31 23:08:15 +00:00
</Array>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" edge="1" parent="145" target="223">
2023-05-31 23:08:15 +00:00
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="780" y="950"/>
2023-05-31 23:08:15 +00:00
</Array>
2023-06-08 11:45:31 +00:00
<mxPoint x="540" y="949.5" as="sourcePoint"/>
<mxPoint x="650" y="949.4999999999999" as="targetPoint"/>
2023-05-31 23:08:15 +00:00
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="241" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="145">
<mxGeometry x="380" y="1030" width="30" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="242" value="&amp;nbsp;M" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="145">
<mxGeometry x="400" y="1030" width="40" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="243" value="" style="endArrow=none;html=1;fontSize=12;exitX=0.184;exitY=1.005;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="145">
<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="1156"/>
<mxPoint x="961" y="1156"/>
</Array>
2023-05-31 23:08:15 +00:00
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<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=#B20000;" edge="1" parent="145">
<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>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="245" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="145">
<mxGeometry x="532" y="900" width="30" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="246" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="145">
<mxGeometry x="532" y="870" width="30" height="30" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="247" value="Mone" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="145">
<mxGeometry x="500" y="870" width="50" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="248" value="M" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="145">
<mxGeometry x="510" y="900" width="30" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="120" y="150" width="160" height="86" as="geometry">
2023-05-31 23:08:15 +00:00
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="250" value="# getSubject() : Subject" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="249">
<mxGeometry y="26" width="160" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="251" value="+ update() : void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="249">
<mxGeometry y="56" width="160" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="120" y="340" width="160" height="160" as="geometry">
2023-05-31 23:08:15 +00:00
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<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, 0, 115);&quot;&gt;- L : list&amp;lt;Observer*&amp;gt;&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;fontSize=10;fontFamily=Verdana;fontColor=default;" vertex="1" parent="252">
<mxGeometry y="26" width="160" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="252">
<mxGeometry y="56" width="160" height="8" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="252">
<mxGeometry y="64" width="160" height="24" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="252">
<mxGeometry y="88" width="160" height="8" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<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, 0, 115);&quot;&gt;+ remove (Observer*) : void&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;fontSize=10;fontFamily=Verdana;fontColor=default;" vertex="1" parent="252">
<mxGeometry y="96" width="160" height="32" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="252">
<mxGeometry y="128" width="160" height="30" as="geometry"/>
2023-05-31 23:08:15 +00:00
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" edge="1" parent="145" source="251" target="252">
<mxGeometry relative="1" as="geometry">
<mxPoint x="380.00000000000017" y="290" as="targetPoint"/>
<mxPoint x="219" y="260" as="sourcePoint"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" edge="1" parent="145" source="252" target="251">
<mxGeometry relative="1" as="geometry">
<mxPoint x="161" y="259" as="targetPoint"/>
<mxPoint x="504.8100000000001" y="470.0100000000002" as="sourcePoint"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="261" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="145" target="249">
<mxGeometry width="50" height="50" relative="1" as="geometry">
2023-06-08 11:45:31 +00:00
<mxPoint x="1010" y="155" as="sourcePoint"/>
<mxPoint x="670" y="70" as="targetPoint"/>
<Array as="points">
2023-06-08 11:45:31 +00:00
<mxPoint x="400" y="130"/>
<mxPoint x="600" y="130"/>
</Array>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="930" y="155" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="263" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="262">
<mxGeometry y="26" width="160" height="14" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="264" value="+ update() : void" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="262">
<mxGeometry y="40" width="160" height="60" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<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;" vertex="1" parent="145">
<mxGeometry x="580" y="160" width="160" height="100" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="266" value="" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="265">
<mxGeometry y="26" width="160" height="40" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="267" value="+ main(): void" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#c5c7c9;fillColor=none;" vertex="1" parent="265">
<mxGeometry y="66" width="160" height="30" as="geometry"/>
</mxCell>
2023-06-08 11:45:31 +00:00
<mxCell id="268" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="145" target="264">
<mxGeometry width="50" height="50" relative="1" as="geometry">
2023-06-08 11:45:31 +00:00
<mxPoint x="740" y="210" as="sourcePoint"/>
<mxPoint x="790" y="160" as="targetPoint"/>
</mxGeometry>
2023-05-31 23:08:15 +00:00
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>