액티비티 다이어그램 (Activity Diagram)

작업이 시작되어 분기, 처리, 종료되는 흐름을 보여주는 다이어그램이다. UDS 세션 제어를 예시로 작성했다.

액티비티 다이어그램 (Activity Diagram)

Draw.io 원문

<mxfile host="65bd71144e">
    <diagram name="UDS Session Control Activity" id="uds-activity-session">
        <mxGraphModel dx="1081" dy="577" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="700" pageHeight="1400" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="10" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;strokeColor=#000000;" parent="1" vertex="1">
                    <mxGeometry x="330" y="80" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="20" value="Receive 0x10 Request" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="150" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="21" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="10" target="20" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="30" value="Check Message&lt;br&gt;Length" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="230" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="31" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="20" target="30" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="40" value="Length OK?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#66FF66,#99FF99);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="295" y="310" width="110" height="90" as="geometry"/>
                </mxCell>
                <mxCell id="41" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="30" target="40" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="50" value="Return NRC&lt;br&gt;0x13" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="480" y="330" width="120" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="51" value="NO" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;fontSize=10;fontStyle=1;" parent="1" source="40" target="50" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="60" value="Extract Session&lt;br&gt;Type (sub-function)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="430" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="61" value="YES" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;fontSize=10;fontStyle=1;" parent="1" source="40" target="60" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="70" value="Validate Security&lt;br&gt;Access Level" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="510" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="71" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="60" target="70" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="80" value="Security OK?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#66FF66,#99FF99);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="295" y="590" width="110" height="90" as="geometry"/>
                </mxCell>
                <mxCell id="81" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="70" target="80" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="90" value="Return NRC&lt;br&gt;0x33" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="480" y="610" width="120" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="91" value="NO" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=light-dark(#000000, #959595);endArrow=block;endFill=1;fontSize=10;fontStyle=1;" parent="1" source="80" target="90" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="100" value="Check Session&lt;br&gt;Transition Allowed" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="710" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="101" value="YES" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=light-dark(#000000, #959595);endArrow=block;endFill=1;fontSize=10;fontStyle=1;" parent="1" source="80" target="100" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="110" value="Transition Valid?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;gradientColor=light-dark(#66FF66,#99FF99);rounded=0;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="295" y="790" width="110" height="90" as="geometry"/>
                </mxCell>
                <mxCell id="111" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=light-dark(#000000, #959595);endArrow=block;endFill=1;" parent="1" source="100" target="110" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="120" value="Return NRC&lt;br&gt;0x12" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="480" y="810" width="120" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="121" value="NO" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;fontSize=10;fontStyle=1;" parent="1" source="110" target="120" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="130" value="Stop S3Server&lt;br&gt;Timeout Timer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="910" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="131" value="YES" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;fontSize=10;fontStyle=1;" parent="1" source="110" target="130" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="140" value="Cleanup Previous&lt;br&gt;Session Resources" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="990" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="141" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="130" target="140" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="150" value="Activate New&lt;br&gt;Session Mode" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="1070" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="151" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="140" target="150" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="160" value="Initialize Session&lt;br&gt;Configuration" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="1150" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="161" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="150" target="160" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="170" value="Notify ECU&lt;br&gt;Application Layer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="1230" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="171" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="160" target="170" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="180" value="Build Positive&lt;br&gt;Response 0x50" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="1310" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="181" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="170" target="180" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="190" value="Send Response&lt;br&gt;to Tester" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontSize=11;fontStyle=1;strokeWidth=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="270" y="1390" width="160" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="191" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="180" target="190" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="200" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;strokeColor=#000000;" parent="1" vertex="1">
                    <mxGeometry x="330" y="1470" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="201" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#ffffff;strokeColor=#000000;" parent="1" vertex="1">
                    <mxGeometry x="337" y="1477" width="26" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="202" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=2;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="190" target="200" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="210" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="50" target="200" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="640" y="355"/>
                            <mxPoint x="640" y="1490"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="211" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="90" target="200" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="640" y="635"/>
                            <mxPoint x="640" y="1490"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="212" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1;strokeColor=#000000;endArrow=block;endFill=1;" parent="1" source="120" target="200" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="640" y="835"/>
                            <mxPoint x="640" y="1490"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>

Comments

댓글을 불러오고 있습니다.