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
...
}>
]
}