Я играл с UML
Мой основной опыт - сисадмин, а не программист.
Чтобы лучше понять модели классов, я пытался отобразить файл xmdomain.cfg гипервизора xen в UML (справочную страницу можно найти по адресу http://linux.die.net/man/5/xmdomain.cfg)
Так что после проработки я получаю базовое начало, как это (заметьте, это только атрибуты, а не действия)
xenDomU:[
- kernelImage
- initialRamdisk
- allocatedMemory
- rootDevice
- nicAmount
- domuName
]
Следующая ситуация была настоящей болью в заднице
«диск» и «vif» могут встречаться несколько раз в файле конфигурации domu. («диск» может встречаться от 1 до бесконечного времени и «vif» от 0 до бесконечного времени) по сути, они сами являются классами
disk:[
- backendDevice
- frontendDevice
- deviceAccessMode
]
virtualNetworkInterface:[
- networkBridgeDevice
- interfaceIP
- macAddress
- interfaceName
]
Кроме того, «параметры завершения работы домена» на самом деле представляют собой 3 значения, но на самом деле их лучше всего суммировать как один атрибут, но тогда вы получите ту же ситуацию, что и выше.
shutdownOptions{
- onShutdown
- onReboot
- onCrash
}
Итак, после этого вы получите что-то, что действительно не похоже на действительный UML для меня.
xenDomU:[
kernelImage
initialRamdisk
allocatedMemory
rootDevice
nicAmount
disk:[
backendDevice
frontendDevice
deviceAccessMode
]
domuName
virtualNetworkInterface:[
networkBridgeDevice
interfaceIP
macAddress
interfaceName
]
shutdownOptions{
onShutdown
onReboot
onCrash
}
]
Я уверен, что есть «лучшие» способы сделать это, но это то, что кажется мне наиболее естественным.
Может ли кто-нибудь, пожалуйста, просветить меня и показать правильный способ сделать это.