Форум Сообщества Аналитиков
		Общий раздел => Теория моделирования и нотации => 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)
 Все, неже приведен возможный экземпляр этого класса. Добавление новых атрибутов к объекту отображается, при необходимости, на динамических диаграммах.
 
 Такая диаграмма не должна быть противоречимой, все делал по стандарту