---
title: "Component 4 Class"
description: "A UML class diagram showing class relationships and structure"
category: "templates/software"
type: "class"
source_file: "templates/software/component_4_decoded.xml"
tags: ["development", "software", "template", "architecture", "drawio"]
---

# Component 4 Class

A UML class diagram showing class relationships and structure

## XML Source

```xml
<?xml version="1.0" ?>
<mxGraphModel dx="1408" dy="544" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
  <root>
    <mxCell id="0"/>
    <mxCell id="1" parent="0"/>
    <mxCell id="6464ba9a7640eea3-31" style="elbow=vertical;html=1;labelBackgroundColor=none;endArrow=open;endFill=0;fontFamily=Verdana;fontSize=12;dashed=1;" parent="1" source="6464ba9a7640eea3-1" target="6464ba9a7640eea3-20" edge="1">
      <mxGeometry relative="1" as="geometry">
        <mxPoint x="300" y="200" as="targetPoint"/>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-32" style="edgeStyle=none;html=1;entryX=0.5;entryY=1;entryPerimeter=0;dashed=1;labelBackgroundColor=none;endArrow=open;endFill=0;fontFamily=Verdana;fontSize=12;" parent="1" source="6464ba9a7640eea3-1" target="6464ba9a7640eea3-22" edge="1">
      <mxGeometry relative="1" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-33" style="edgeStyle=none;html=1;entryX=0.5;entryY=1;entryPerimeter=0;dashed=1;labelBackgroundColor=none;endArrow=open;endFill=0;fontFamily=Verdana;fontSize=12;" parent="1" source="6464ba9a7640eea3-1" target="6464ba9a7640eea3-25" edge="1">
      <mxGeometry relative="1" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-34" style="edgeStyle=none;html=1;entryX=0.5;entryY=1;entryPerimeter=0;dashed=1;labelBackgroundColor=none;endArrow=open;endFill=0;fontFamily=Verdana;fontSize=12;" parent="1" source="6464ba9a7640eea3-1" target="6464ba9a7640eea3-23" edge="1">
      <mxGeometry relative="1" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-1" value="Module" style="shape=component;align=left;spacingLeft=36;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;fontSize=12;fontColor=#000000;html=1;" parent="1" vertex="1">
      <mxGeometry x="110" y="220" width="120" height="60" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-35" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryPerimeter=0;dashed=1;labelBackgroundColor=none;endArrow=open;endFill=0;fontFamily=Verdana;fontSize=12;" parent="1" source="6464ba9a7640eea3-2" target="6464ba9a7640eea3-24" edge="1">
      <mxGeometry relative="1" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-2" value="Module" style="shape=component;align=left;spacingLeft=36;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;fontSize=12;fontColor=#000000;html=1;" parent="1" vertex="1">
      <mxGeometry x="110" y="435" width="120" height="60" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-36" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.5;entryY=0;entryPerimeter=0;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;rounded=0;" parent="1" source="6464ba9a7640eea3-3" target="6464ba9a7640eea3-29" edge="1">
      <mxGeometry relative="1" as="geometry">
        <Array as="points">
          <mxPoint x="630" y="170"/>
          <mxPoint x="630" y="400"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;entryX=0.5;entryY=0;entryPerimeter=0;" parent="1" source="6464ba9a7640eea3-3" target="6464ba9a7640eea3-28" edge="1">
      <mxGeometry relative="1" as="geometry">
        <mxPoint x="660" y="230" as="targetPoint"/>
        <Array as="points">
          <mxPoint x="590" y="200"/>
          <mxPoint x="590" y="245"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-3" value="&amp;laquo;Annotation&amp;raquo;&lt;br/&gt;&lt;b&gt;Component&lt;/b&gt;" style="html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;" parent="1" vertex="1">
      <mxGeometry x="350" y="135" width="180" height="90" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-4" value="" style="shape=component;jettyWidth=8;jettyHeight=4;" parent="6464ba9a7640eea3-3" vertex="1">
      <mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
        <mxPoint x="-27" y="7" as="offset"/>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;" parent="1" source="6464ba9a7640eea3-5" edge="1">
      <mxGeometry relative="1" as="geometry">
        <mxPoint x="670" y="400" as="targetPoint"/>
        <Array as="points">
          <mxPoint x="630" y="300"/>
          <mxPoint x="630" y="400"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;entryX=0.5;entryY=0;entryPerimeter=0;" parent="1" source="6464ba9a7640eea3-5" target="6464ba9a7640eea3-28" edge="1">
      <mxGeometry relative="1" as="geometry">
        <mxPoint x="650" y="270" as="targetPoint"/>
        <Array as="points">
          <mxPoint x="590" y="315"/>
          <mxPoint x="590" y="245"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-5" value="&amp;laquo;Annotation&amp;raquo;&lt;br/&gt;&lt;b&gt;Component&lt;/b&gt;" style="html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;" parent="1" vertex="1">
      <mxGeometry x="350" y="270" width="180" height="90" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-6" value="" style="shape=component;jettyWidth=8;jettyHeight=4;" parent="6464ba9a7640eea3-5" vertex="1">
      <mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
        <mxPoint x="-27" y="7" as="offset"/>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;" parent="1" source="6464ba9a7640eea3-7" edge="1">
      <mxGeometry relative="1" as="geometry">
        <mxPoint x="670" y="400" as="targetPoint"/>
        <Array as="points">
          <mxPoint x="630" y="430"/>
          <mxPoint x="630" y="400"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;entryPerimeter=0;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;" parent="1" source="6464ba9a7640eea3-7" target="6464ba9a7640eea3-28" edge="1">
      <mxGeometry relative="1" as="geometry">
        <Array as="points">
          <mxPoint x="590" y="445"/>
          <mxPoint x="590" y="245"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-7" value="&amp;laquo;Annotation&amp;raquo;&lt;br/&gt;&lt;b&gt;Component&lt;/b&gt;" style="html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;" parent="1" vertex="1">
      <mxGeometry x="350" y="400" width="180" height="90" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-8" value="" style="shape=component;jettyWidth=8;jettyHeight=4;" parent="6464ba9a7640eea3-7" vertex="1">
      <mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
        <mxPoint x="-27" y="7" as="offset"/>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;" parent="1" source="6464ba9a7640eea3-9" edge="1">
      <mxGeometry relative="1" as="geometry">
        <mxPoint x="670" y="400" as="targetPoint"/>
        <Array as="points">
          <mxPoint x="630" y="560"/>
          <mxPoint x="630" y="400"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;entryX=0.5;entryY=0;entryPerimeter=0;" parent="1" source="6464ba9a7640eea3-9" target="6464ba9a7640eea3-28" edge="1">
      <mxGeometry relative="1" as="geometry">
        <mxPoint x="650" y="260" as="targetPoint"/>
        <Array as="points">
          <mxPoint x="590" y="575"/>
          <mxPoint x="590" y="245"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-9" value="&amp;laquo;Annotation&amp;raquo;&lt;br/&gt;&lt;b&gt;Component&lt;/b&gt;" style="html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;" parent="1" vertex="1">
      <mxGeometry x="350" y="530" width="180" height="90" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-10" value="" style="shape=component;jettyWidth=8;jettyHeight=4;" parent="6464ba9a7640eea3-9" vertex="1">
      <mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
        <mxPoint x="-27" y="7" as="offset"/>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-11" value="&lt;p style=&quot;margin:0px;margin-top:6px;text-align:center;&quot;&gt;&lt;b&gt;Component&lt;/b&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p style=&quot;margin:0px;margin-left:8px;&quot;&gt;+ Attribute1: Type&lt;br/&gt;+ Attribute2: Type&lt;/p&gt;" style="align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;" parent="1" vertex="1">
      <mxGeometry x="700" y="180" width="180" height="90" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-12" value="" style="shape=component;jettyWidth=8;jettyHeight=4;" parent="6464ba9a7640eea3-11" vertex="1">
      <mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
        <mxPoint x="-24" y="4" as="offset"/>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;labelBackgroundColor=none;endArrow=none;endFill=0;fontFamily=Verdana;fontSize=12;entryX=-0.022;entryY=0.167;entryPerimeter=0;" parent="1" source="6464ba9a7640eea3-13" target="6464ba9a7640eea3-30" edge="1">
      <mxGeometry relative="1" as="geometry">
        <mxPoint x="910" y="529.9999999999998" as="targetPoint"/>
        <Array as="points">
          <mxPoint x="905" y="400"/>
        </Array>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-13" value="&lt;p style=&quot;margin:0px;margin-top:6px;text-align:center;&quot;&gt;&lt;b&gt;Component&lt;/b&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p style=&quot;margin:0px;margin-left:8px;&quot;&gt;+ Attribute1: Type&lt;br/&gt;+ Attribute2: Type&lt;/p&gt;" style="align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;" parent="1" vertex="1">
      <mxGeometry x="700" y="335" width="180" height="90" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-14" value="" style="shape=component;jettyWidth=8;jettyHeight=4;" parent="6464ba9a7640eea3-13" vertex="1">
      <mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
        <mxPoint x="-24" y="4" as="offset"/>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-17" value="&lt;p style=&quot;margin:0px;margin-top:6px;text-align:center;&quot;&gt;&lt;b&gt;Component&lt;/b&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p style=&quot;margin:0px;margin-left:8px;&quot;&gt;+ Attribute1: Type&lt;br/&gt;+ Attribute2: Type&lt;/p&gt;" style="align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;" parent="1" vertex="1">
      <mxGeometry x="700" y="480" width="180" height="90" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-18" value="" style="shape=component;jettyWidth=8;jettyHeight=4;" parent="6464ba9a7640eea3-17" vertex="1">
      <mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
        <mxPoint x="-24" y="4" as="offset"/>
      </mxGeometry>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-19" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="320" y="155" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-20" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="320" y="195" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-21" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="320" y="290" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-22" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="320" y="330" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-23" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="320" y="420" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-24" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="320" y="460" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-25" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="320" y="550" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-26" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="320" y="590" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-27" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="670" y="200" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-28" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="670" y="240" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-29" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=1;" parent="1" vertex="1">
      <mxGeometry x="670" y="395" width="30" height="10" as="geometry"/>
    </mxCell>
    <mxCell id="6464ba9a7640eea3-30" value="" style="shape=lollipop;direction=south;html=1;rounded=0;shadow=0;comic=0;strokeWidth=1;fillColor=#ffffff;fontFamily=Verdana;align=center;flipH=0;" parent="1" vertex="1">
      <mxGeometry x="880" y="540" width="30" height="10" as="geometry"/>
    </mxCell>
  </root>
</mxGraphModel>

```