Форум Сообщества Аналитиков
Общий раздел => Теория моделирования и нотации => UML SysML и пр. => Тема начата: Vadim от 24 Ноября 2010, 18:31:49
-
Есть класс "СуперКласс", соединенный ассоциацией без имен полюсов с классом "Класс". Есть класс "ПодКласс", подкласс "СуперКласса", соединенный ассоциацией без имен полюсов с классом "Класс". Кратнось полюсов второй ассоциации вкладывается в кратность соответствующих полюсов первой ассоциации (например 1..1 вкладывается в 0..*). Что получается: 1) диаграмма (модель) неверна: у класса "ПодКласс" 2 ассоциации с совпадающими именами полюсов на дальнем конце; 2) диаграмма (модель) верна: вторая ассоциация уточняет первую?
-
По правилу подстановки Лисков. Подкласс - это тот же Суперкласс, который наследует все свойства Суперкласса, в том числе и ассоциации с другими классами, т.е. Классом. Вторая ассоциация Подкласса к Классу по сути переопределяет исходную. Правильно ли это? Не знаю
-
Посмотрите тут обобщение ассоциации (http://ooad.asf.ru/standarts/UML/spr/Association_generalization.aspx). Правда хотелось бы практический пример посмотреть, а не абстракцию
-
Да реальный пример попроще будет проанализировать.
Vadim Вы имели ввиду что-то наподобие как на рисунке ?
-
Vadim Вы имели ввиду что-то наподобие как на рисунке ?
Имхо он имел в виду нечто вроде
-
Точно!!!
-
Подкласс - это тот же Суперкласс, который наследует все свойства Суперкласса, в том числе и ассоциации с другими классами, т.е. Классом. Вторая ассоциация Подкласса к Классу по сути переопределяет исходную. Правильно ли это? Не знаю
Когда у подкласса есть атрибут с тем же именем, что у суперкласса я встречал примеры у классиков/авторов UML, где это означало переопределение атрибута, причем без {redefines ...}.
Посмотрите тут обобщение ассоциации.
Посмотрел, уже раз 10-й (пример кочует по сайтам и книгам) и не жалею - появилось соображение, спасибо. А вот и соображение: на рис. 30 обобщение ассоциации ПРОИЗВОДНО (конечно при условии, что полюс ассоциации с тем же именем переопределяет наследуемый полюс ассоциации). И еще: если кратность одного из полюсов, например model, 1..1, то и SetGeneralization для Symbol ПРОИЗВОДНО (при условии, что оба SetGeneralization являются disjoint и complete).
-
при условии, что оба SetGeneralization являются disjoint и complete
при условии, что у обоих SetGeneralization совпадают completeness, disjointness и powerType.