| @startuml |
| |
| skinparam class { |
| BorderColor black |
| FontColor #50237f |
| BackgroundColor #f5f5f5 |
| ArrowColor black |
| } |
| hide class circle |
| |
| skinparam stereotype { |
| CBackgroundColor white |
| EBackgroundColor white |
| } |
| |
| skinparam legend { |
| BorderColor white |
| BackgroundColor white |
| } |
| |
| class Device { |
| id: String |
| mode[0..1]: String |
| state[0..1]: DeviceState |
| } |
| |
| class Measurement { |
| code[0..1]: String |
| context[0..1]: ContextList |
| result[0..1]: Result |
| series: Series |
| ts: Date |
| } |
| |
| class Context { |
| limits[0..1]: Limits |
| namespace[0..1]: String |
| type[0..1]: String |
| unit[0..1]: String |
| } |
| |
| class Limits { |
| lowerError[0..1]: Float | [Float] |
| lowerWarn[0..1]: Float | [Float] |
| target[0..1]: Float | [Float] |
| upperError[0..1]: Float | [Float] |
| upperWarn[0..1]: Float | [Float] |
| } |
| |
| class Series { |
| time: [Integer] |
| <values>[1..*]: [Float] |
| } |
| |
| class Part { |
| code[0..1]: String |
| id[0..1]: String |
| type[0..1]: PartType |
| typeId[0..1]: String |
| result[0..1]: Result |
| } |
| |
| enum DeviceState { |
| OK |
| INFO |
| WARN |
| ERROR |
| UNKNOWN |
| } |
| |
| enum Result { |
| OK |
| NOK |
| UNKNOWN |
| } |
| |
| enum PartType { |
| SINGLE |
| BATCH |
| } |
| |
| Measurement "1" *-- "0..1" Context : ContextList |
| Context "1" -- "0..*" Limits |
| |
| |
| sprite $aggregation jar:archimate/aggregation |
| sprite $composition jar:archimate/composition |
| sprite $specialisation jar:archimate/specialisation |
| sprite $association jar:archimate/association |
| sprite $object jar:archimate/object |
| |
| legend right |
| <img:legend.svg> |
| endlegend |
| |
| @enduml |