digraph UML_Class_diagram { graph [ label="UML Class diagram demo" labelloc="t" fontname="Helvetica,Arial,sans-serif" ] node [ fontname="Helvetica,Arial,sans-serif" shape=record style=filled fillcolor=gray95 ] edge [fontname="Helvetica,Arial,sans-serif"] edge [arrowhead=vee style=dashed] Client -> Interface1 [label=dependency] Client -> Interface2 edge [dir=back arrowtail=empty style=""] Interface1 -> Class1 [xlabel=inheritance] Interface2 -> Class1 [dir=none] Interface2 [label="" xlabel="Simple\ninterface" shape=circle] Interface1[label = <{«interface» I/O | + property
...
|+ method
...
}>] Class1[label = <{I/O class | + property
...
|+ method
...
}>] edge [dir=back arrowtail=empty style=dashed] Class1 -> System_1 [label=implementation] System_1 [ shape=plain label=<
System
+ property
- Subsystem 1
- Subsystem 2
- Subsystem 3
...
+ method
...
> ] edge [dir=back arrowtail=diamond] System_1:ss1 -> Subsystem_1 [xlabel="composition"] Subsystem_1 [ shape=plain label=<
Subsystem 1
+ property
- resource
...
+ method
...
> ] Subsystem_2 [ shape=plain label=<
Subsystem 2
+ property
- resource
...
+ method
...
> ] Subsystem_3 [ shape=plain label=<
Subsystem 3
+ property
- resource
...
+ method
...
> ] System_1:ss2 -> Subsystem_2; System_1:ss3 -> Subsystem_3; edge [xdir=back arrowtail=odiamond] Subsystem_1:r1 -> "Shared resource" [label=aggregation] Subsystem_2:r1 -> "Shared resource" Subsystem_3:r1 -> "Shared resource" "Shared resource" [ label = <{ Shared resource | + property
...
| + method
...
}> ] }