Форум Сообщества Аналитиков
Общий раздел => Теория моделирования и нотации => UML SysML и пр. => Тема начата: azallay от 14 Октября 2009, 10:37:50
-
Мне в проектируемой системе нужно использовать JSON-объекты (используются в JavaScript). Это такие объекты, в которых имена атрибутов и их количество заранее не известны. Их может быть от 0 до *
Каждый атрибут может быть любого типа, в т.ч. JSON-объектом.
Например,
car = {
color : "white",
engine : {
type : "1G",
kolichestvo_cilindrov : 6
},
kolichestvo_sideniy : 4
}
в такой объект в любой момент времени исполнения я могу добавить атрибут с любым именем. Напимер
car["name"] = "Машина"; и объект станет таким:
car = {
color : "white",
engine : {
type : "1G",
kolichestvo_cilindrov : 6
},
kolichestvo_sideniy : 4,
name : "Машина"
}
Как подобный динамический объект описать с помощью UML? Может быть использовать какие-то шаблоны или метаклассы ???
-
ИМХО это можно только стереотипом у класса обозначить, т.е. класс со стереотипом <<JSON>>.
-
Боюсь, это чисто аспекты реализации. Поскольку Вы можете добавлять нужные артибуты в желаемое время, то как можно отобразить в UML не существующий еще атрибут, я не представляю
Указание стереотипа тоже мало, что дает на мой взгляд
-
Вобщем копался в документации и пришел к выводу что можно сделать так (диаграмма во вложении):
Вся фишка в использовании структурного класса.
1) В структурном классе вместо обычного атрибута указываем часть (вложенный прямоугольник),
2) задаем для этой части множественность *, что означает возможность наличия от 0 до бесконечности экземпляров этой части в экземпляре класса
3) задаем множество возможных дескрипторов (типов) для этой части
4) оставляем имя части незаполненным.
8)
Все, неже приведен возможный экземпляр этого класса. Добавление новых атрибутов к объекту отображается, при необходимости, на динамических диаграммах.
Такая диаграмма не должна быть противоречимой, все делал по стандарту