コンポーネント図 (Component Diagram)

システムを構成するモジュールと、その依存関係を示す図である。UDS診断システムを例に作成した。

コンポーネント図 (Component Diagram)

Draw.io XML原文

<mxfile host="65bd71144e">
    <diagram name="UDS Diagnostic Structure" id="uds-static">
        <mxGraphModel dx="1081" dy="577" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="800" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="10" value="&lt;b&gt;UDS_Manager.c&lt;/b&gt;&lt;hr&gt;&lt;b&gt;Variables:&lt;/b&gt;&lt;br&gt;- currentSession&lt;br&gt;- securityLevel&lt;br&gt;- activeProtocol&lt;hr&gt;&lt;b&gt;Functions:&lt;/b&gt;&lt;br&gt;+ UDS_Init()&lt;br&gt;+ UDS_MainFunction()&lt;br&gt;+ UDS_ProcessRequest()&lt;br&gt;+ UDS_SendResponse()" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="480" y="100" width="240" height="200" as="geometry"/>
                </mxCell>
                <mxCell id="10_header" value="UDS_Manager.c" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontStyle=1;fontColor=default;fontFamily=Helvetica;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="480" y="100" width="240" height="25" as="geometry"/>
                </mxCell>
                <mxCell id="20" value="&lt;b&gt;UDS_Session.c&lt;/b&gt;&lt;hr&gt;&lt;b&gt;Variables:&lt;/b&gt;&lt;br&gt;- sessionType&lt;br&gt;- s3Timer&lt;hr&gt;&lt;b&gt;Functions:&lt;/b&gt;&lt;br&gt;+ SessionControl_0x10()&lt;br&gt;+ CheckSessionLevel()&lt;br&gt;+ ResetToDefault()" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="120" y="360" width="200" height="160" as="geometry"/>
                </mxCell>
                <mxCell id="20_header" value="UDS_Session.c" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontStyle=1;fontColor=default;fontFamily=Helvetica;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="120" y="360" width="200" height="25" as="geometry"/>
                </mxCell>
                <mxCell id="30" value="&lt;b&gt;UDS_Security.c&lt;/b&gt;&lt;hr&gt;&lt;b&gt;Variables:&lt;/b&gt;&lt;br&gt;- securityLevel&lt;br&gt;- seedKey&lt;br&gt;- attemptCounter&lt;hr&gt;&lt;b&gt;Functions:&lt;/b&gt;&lt;br&gt;+ SecurityAccess_0x27()&lt;br&gt;+ GenerateSeed()&lt;br&gt;+ CompareKey()" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="360" y="360" width="200" height="170" as="geometry"/>
                </mxCell>
                <mxCell id="30_header" value="UDS_Security.c" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontStyle=1;fontColor=default;fontFamily=Helvetica;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="360" y="360" width="200" height="25" as="geometry"/>
                </mxCell>
                <mxCell id="40" value="&lt;b&gt;UDS_DataService.c&lt;/b&gt;&lt;hr&gt;&lt;b&gt;Variables:&lt;/b&gt;&lt;br&gt;- didTable[]&lt;br&gt;- dataBuffer[]&lt;hr&gt;&lt;b&gt;Functions:&lt;/b&gt;&lt;br&gt;+ ReadDataById_0x22()&lt;br&gt;+ WriteDataById_0x2E()&lt;br&gt;+ GetDataLength()" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="600" y="360" width="200" height="160" as="geometry"/>
                </mxCell>
                <mxCell id="40_header" value="UDS_DataService.c" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontStyle=1;fontColor=default;fontFamily=Helvetica;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="600" y="360" width="200" height="25" as="geometry"/>
                </mxCell>
                <mxCell id="50" value="&lt;b&gt;UDS_DTC.c&lt;/b&gt;&lt;hr&gt;&lt;b&gt;Variables:&lt;/b&gt;&lt;br&gt;- dtcList[]&lt;br&gt;- dtcStatus&lt;hr&gt;&lt;b&gt;Functions:&lt;/b&gt;&lt;br&gt;+ ReadDTCInfo_0x19()&lt;br&gt;+ ClearDTC_0x14()&lt;br&gt;+ GetDTCStatus()" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="840" y="360" width="200" height="160" as="geometry"/>
                </mxCell>
                <mxCell id="50_header" value="UDS_DTC.c" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontStyle=1;fontColor=default;fontFamily=Helvetica;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="840" y="360" width="200" height="25" as="geometry"/>
                </mxCell>
                <mxCell id="60" value="&lt;b&gt;UDS_Routine.c&lt;/b&gt;&lt;hr&gt;&lt;b&gt;Variables:&lt;/b&gt;&lt;br&gt;- routineTable[]&lt;br&gt;- routineStatus&lt;hr&gt;&lt;b&gt;Functions:&lt;/b&gt;&lt;br&gt;+ RoutineControl_0x31()&lt;br&gt;+ StartRoutine()&lt;br&gt;+ StopRoutine()&lt;br&gt;+ GetResult()" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="120" y="570" width="200" height="180" as="geometry"/>
                </mxCell>
                <mxCell id="60_header" value="UDS_Routine.c" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontStyle=1;fontColor=default;fontFamily=Helvetica;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="120" y="570" width="200" height="25" as="geometry"/>
                </mxCell>
                <mxCell id="70" value="&lt;b&gt;UDS_Reset.c&lt;/b&gt;&lt;hr&gt;&lt;b&gt;Variables:&lt;/b&gt;&lt;br&gt;- resetType&lt;hr&gt;&lt;b&gt;Functions:&lt;/b&gt;&lt;br&gt;+ EcuReset_0x11()&lt;br&gt;+ HardReset()&lt;br&gt;+ SoftReset()" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="360" y="570" width="200" height="150" as="geometry"/>
                </mxCell>
                <mxCell id="70_header" value="UDS_Reset.c" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontStyle=1;fontColor=default;fontFamily=Helvetica;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="360" y="570" width="200" height="25" as="geometry"/>
                </mxCell>
                <mxCell id="80" value="&lt;b&gt;UDS_Communication.c&lt;/b&gt;&lt;hr&gt;&lt;b&gt;Variables:&lt;/b&gt;&lt;br&gt;- commMode&lt;hr&gt;&lt;b&gt;Functions:&lt;/b&gt;&lt;br&gt;+ CommControl_0x28()&lt;br&gt;+ TesterPresent_0x3E()&lt;br&gt;+ ControlDTCSetting_0x85()" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontFamily=Helvetica;fontColor=default;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="600" y="570" width="200" height="150" as="geometry"/>
                </mxCell>
                <mxCell id="80_header" value="UDS_Communication.c" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=top;fillColor=#FFFFFF;strokeColor=#000000;fontSize=11;fontStyle=1;fontColor=default;fontFamily=Helvetica;gradientColor=light-dark(#FFCC99,#FFE6CC);gradientDirection=east;" parent="1" vertex="1">
                    <mxGeometry x="600" y="570" width="200" height="25" as="geometry"/>
                </mxCell>
                <mxCell id="100" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="10" target="20" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="540" y="310"/>
                            <mxPoint x="220" y="310"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="101" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="10" target="30" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="102" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="10" target="40" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="630" y="300"/>
                            <mxPoint x="630" y="330"/>
                            <mxPoint x="700" y="330"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="103" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="10" target="50" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="660" y="310"/>
                            <mxPoint x="940" y="310"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="104" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="20" target="60" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="105" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="30" target="70" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="106" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="40" target="80" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>

コメント

コメントを読み込んでいます。