studydotcom/ComputerScience307/activityDiagram.xml
2025-11-28 12:06:47 -05:00

232 lines
14 KiB
XML

<mxfile host="app.diagrams.net">
<diagram name="Smart Thermostat Activity Diagram">
<mxGraphModel dx="1422" dy="962" grid="1" gridSize="10" guides="1">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Start Node -->
<mxCell id="start" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="390" y="20" width="20" height="20" as="geometry"/>
</mxCell>
<!-- User Input Activity -->
<mxCell id="userInput" value="Home Owner&#xa;Provides Input" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="340" y="70" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Electronic Device Processes Input -->
<mxCell id="processInput" value="Electronic Device/App&#xa;Processes User Input" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="340" y="150" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Send Data to Network -->
<mxCell id="sendToNetwork" value="Send Data to&#xa;Internet Gateway" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="340" y="230" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Network Receives Data -->
<mxCell id="networkReceive" value="Internet Gateway&#xa;Receives Data" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="340" y="310" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Send to SmartThermostat -->
<mxCell id="sendToThermostat" value="Send Data to&#xa;SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="340" y="390" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Fork for Parallel Activities -->
<mxCell id="fork1" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="350" y="470" width="100" height="10" as="geometry"/>
</mxCell>
<!-- Left Branch - Sensor Activities -->
<mxCell id="readSensors" value="Read Temperature&#xa;from Sensors" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="180" y="520" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="sendSensorData" value="Send Sensor Data&#xa;to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="180" y="600" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Right Branch - Database Activities -->
<mxCell id="retrieveData" value="Retrieve Data&#xa;from Database" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="500" y="520" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="storeData" value="Store Sensor Data&#xa;in Database" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="500" y="600" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Join after Parallel Activities -->
<mxCell id="join1" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="350" y="700" width="100" height="10" as="geometry"/>
</mxCell>
<!-- Decision Diamond -->
<mxCell id="decision1" value="Temperature&#xa;Control Needed?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="320" y="750" width="160" height="80" as="geometry"/>
</mxCell>
<!-- Heating Branch -->
<mxCell id="startHeating" value="Switch HVAC to&#xa;Heating Mode" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#ff6666;" vertex="1" parent="1">
<mxGeometry x="120" y="880" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="sendHeatingState" value="Send Heating State&#xa;Data to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#ff6666;" vertex="1" parent="1">
<mxGeometry x="120" y="960" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Cooling Branch -->
<mxCell id="startCooling" value="Switch HVAC to&#xa;Cooling Mode" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ccffff;strokeColor=#0066cc;" vertex="1" parent="1">
<mxGeometry x="560" y="880" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="sendCoolingState" value="Send Cooling State&#xa;Data to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ccffff;strokeColor=#0066cc;" vertex="1" parent="1">
<mxGeometry x="560" y="960" width="120" height="50" as="geometry"/>
</mxCell>
<!-- No Action Branch -->
<mxCell id="maintain" value="Maintain Current&#xa;Temperature" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
<mxGeometry x="340" y="880" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Join after Decision -->
<mxCell id="join2" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="350" y="1050" width="100" height="10" as="geometry"/>
</mxCell>
<!-- Display Current Temperature -->
<mxCell id="displayTemp" value="Display Current&#xa;Temperature to User" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="340" y="1090" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Wait Activity -->
<mxCell id="wait" value="Wait for Next&#xa;Monitoring Cycle" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f0f0;strokeColor=#999999;" vertex="1" parent="1">
<mxGeometry x="340" y="1170" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Loop Back Decision -->
<mxCell id="loopDecision" value="Continue&#xa;Monitoring?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="320" y="1250" width="160" height="80" as="geometry"/>
</mxCell>
<!-- End Node -->
<mxCell id="end" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
<mxGeometry x="390" y="1370" width="20" height="20" as="geometry"/>
</mxCell>
<!-- Transitions -->
<mxCell id="t1" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="start" target="userInput">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t2" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="userInput" target="processInput">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t3" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="processInput" target="sendToNetwork">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t4" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="sendToNetwork" target="networkReceive">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t5" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="networkReceive" target="sendToThermostat">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t6" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="sendToThermostat" target="fork1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t7" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="fork1" target="readSensors">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t8" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="fork1" target="retrieveData">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t9" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="readSensors" target="sendSensorData">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t10" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="retrieveData" target="storeData">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t11" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0;entryY=0.5;" edge="1" parent="1" source="sendSensorData" target="join1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t12" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=1;entryY=0.5;" edge="1" parent="1" source="storeData" target="join1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t13" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="join1" target="decision1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t14" value="Need Heating" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="startHeating">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t15" value="Need Cooling" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="startCooling">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t16" value="No Change" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="maintain">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t17" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="startHeating" target="sendHeatingState">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t18" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="startCooling" target="sendCoolingState">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t19" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0;entryY=0.5;" edge="1" parent="1" source="sendHeatingState" target="join2">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t20" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=1;entryY=0.5;" edge="1" parent="1" source="sendCoolingState" target="join2">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t21" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0.5;" edge="1" parent="1" source="maintain" target="join2">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t22" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="join2" target="displayTemp">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t23" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="displayTemp" target="wait">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t24" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="wait" target="loopDecision">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t25" value="Yes" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1" source="loopDecision" target="readSensors">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="50" y="1290"/>
<mxPoint x="50" y="545"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="t26" value="No" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="loopDecision" target="end">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>