시퀀스 다이어그램 (Sequence Diagram)

참여자 사이에서 메시지가 시간 순서대로 오가는 과정을 보여주는 다이어그램이다. UDS 진단 통신을 예시로 작성했다.

시퀀스 다이어그램 (Sequence Diagram)

Draw.io 원문

<mxfile host="65bd71144e">
    <diagram name="UDS Sequence Diagram" id="uds-sequence">
        <mxGraphModel dx="1081" dy="577" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1400" pageHeight="1000" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="10" value="Tester" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;fillColor=default;strokeColor=#000000;fontSize=11;fontStyle=1;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="80" y="80" width="100" height="880" as="geometry"/>
                </mxCell>
                <mxCell id="11" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;fillColor=default;strokeColor=#6c8ebf;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fontStyle=1;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="125" y="150" width="10" height="800" as="geometry"/>
                </mxCell>
                <mxCell id="20" value="UDS_Manager" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;fillColor=default;strokeColor=#000000;fontSize=11;fontStyle=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="240" y="80" width="100" height="880" as="geometry"/>
                </mxCell>
                <mxCell id="21" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;fillColor=default;strokeColor=#6c8ebf;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fontStyle=1;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="285" y="160" width="10" height="780" as="geometry"/>
                </mxCell>
                <mxCell id="30" value="UDS_Session" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;fillColor=default;strokeColor=#000000;fontSize=11;fontStyle=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="400" y="80" width="100" height="880" as="geometry"/>
                </mxCell>
                <mxCell id="31" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;fillColor=default;strokeColor=#6c8ebf;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fontStyle=1;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="445" y="190" width="10" height="120" as="geometry"/>
                </mxCell>
                <mxCell id="40" value="UDS_Security" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;fillColor=default;strokeColor=#000000;fontSize=11;fontStyle=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="560" y="80" width="100" height="880" as="geometry"/>
                </mxCell>
                <mxCell id="41" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;fillColor=default;strokeColor=#6c8ebf;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fontStyle=1;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="605" y="390" width="10" height="220" as="geometry"/>
                </mxCell>
                <mxCell id="50" value="UDS_DataService" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;fillColor=default;strokeColor=#000000;fontSize=11;fontStyle=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="720" y="80" width="120" height="880" as="geometry"/>
                </mxCell>
                <mxCell id="51" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;fillColor=default;strokeColor=#6c8ebf;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fontStyle=1;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="775" y="680" width="10" height="100" as="geometry"/>
                </mxCell>
                <mxCell id="60" value="UDS_DTC" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;fillColor=default;strokeColor=#000000;fontSize=11;fontStyle=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="900" y="80" width="100" height="880" as="geometry"/>
                </mxCell>
                <mxCell id="61" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;fillColor=default;strokeColor=#6c8ebf;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fontStyle=1;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="945" y="850" width="10" height="100" as="geometry"/>
                </mxCell>
                <mxCell id="100" value="1: SessionControl (0x10 0x03)" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;entryX=0;entryY=0;entryDx=0;entryDy=5;" parent="1" target="21" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="135" y="165" as="sourcePoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="101" value="2: ProcessRequest()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;entryX=0;entryY=0;entryDx=0;entryDy=5;" parent="1" target="31" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="295" y="195" as="sourcePoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="102" value="3: SessionControl_0x10()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="455" y="220" as="sourcePoint"/>
                        <mxPoint x="455" y="250" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="485" y="220"/>
                            <mxPoint x="485" y="250"/>
                        </Array>
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="103" value="4: ChangeSession(0x03)" style="html=1;verticalAlign=bottom;endArrow=open;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;dashed=1;endFill=0;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="445" y="280" as="sourcePoint"/>
                        <mxPoint x="295" y="280" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="104" value="5: Response (0x50)" style="html=1;verticalAlign=bottom;endArrow=open;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;dashed=1;endFill=0;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="285" y="305" as="sourcePoint"/>
                        <mxPoint x="135" y="305" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="200" value="6: SecurityAccess (0x27 0x01)" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="135" y="360" as="sourcePoint"/>
                        <mxPoint x="285" y="360" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="201" value="7: ProcessRequest()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;entryX=0;entryY=0;entryDx=0;entryDy=5;" parent="1" target="41" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="295" y="395" as="sourcePoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="202" value="8: GenerateSeed()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="615" y="420" as="sourcePoint"/>
                        <mxPoint x="615" y="450" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="645" y="420"/>
                            <mxPoint x="645" y="450"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="203" value="9: Seed Value" style="html=1;verticalAlign=bottom;endArrow=open;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;dashed=1;endFill=0;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="605" y="475" as="sourcePoint"/>
                        <mxPoint x="135" y="475" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="204" value="10: SecurityAccess (0x27 0x02 + Key)" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="135" y="515" as="sourcePoint"/>
                        <mxPoint x="605" y="515" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="205" value="11: CompareKey()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="615" y="540" as="sourcePoint"/>
                        <mxPoint x="615" y="570" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="645" y="540"/>
                            <mxPoint x="645" y="570"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="206" value="12: Unlocked" style="html=1;verticalAlign=bottom;endArrow=open;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;dashed=1;endFill=0;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="605" y="595" as="sourcePoint"/>
                        <mxPoint x="135" y="595" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="300" value="13: ReadDataById (0x22 + DID)" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="135" y="650" as="sourcePoint"/>
                        <mxPoint x="285" y="650" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="301" value="14: ProcessRequest()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;entryX=0;entryY=0;entryDx=0;entryDy=5;" parent="1" target="51" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="295" y="685" as="sourcePoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="302" value="15: ReadDataById_0x22()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="785" y="710" as="sourcePoint"/>
                        <mxPoint x="785" y="740" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="815" y="710"/>
                            <mxPoint x="815" y="740"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="303" value="16: Data Value" style="html=1;verticalAlign=bottom;endArrow=open;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;dashed=1;endFill=0;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="775" y="765" as="sourcePoint"/>
                        <mxPoint x="135" y="765" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="400" value="17: ReadDTCInfo (0x19 0x02)" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="135" y="820" as="sourcePoint"/>
                        <mxPoint x="285" y="820" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="401" value="18: ProcessRequest()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;entryX=0;entryY=0;entryDx=0;entryDy=5;" parent="1" target="61" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="295" y="855" as="sourcePoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="402" value="19: ReadDTCInfo_0x19()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="955" y="880" as="sourcePoint"/>
                        <mxPoint x="955" y="910" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="985" y="880"/>
                            <mxPoint x="985" y="910"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="403" value="20: DTC List" style="html=1;verticalAlign=bottom;endArrow=open;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=10;dashed=1;endFill=0;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="945" y="935" as="sourcePoint"/>
                        <mxPoint x="135" y="935" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>

Comments

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