Клуб разработчиков программных систем

Темы | Статьи | Рейтинги |

Форум

[Все сообщения]

Тема : Форум
Имя : Диана Город : Новосибирск 24/03/2005 14:26
Сообщение:
Уважаемый Сергей, пожалуйста, объясните, почему в Rational Rose 2003 при рисовании отношения Aggregation стрелка изображается в направлении, противоположном желаемому? Я имею в виду, например, следующее: если во время рисования ведешь мышкой слева направо, то, когда доведешь до цели и отпустишь кнопку мыши, стрелка изображается в противоположную сторону - справа налево.
Где тут логика?
Причем остальные стрелки рисуются нормально, в нужном направлении.

У меня иногда складывается впечатление, что создатели Rational Rose решили поиздеваться над пользователями.
По-моему, это то же самое, как если бы текстовый редактор давал написать слово, а после этого менял все буквы местами и вместо «компьютер», например, получалось бы «ретюьмок». Или какой-нибудь весельчак поменял местами красный и холодный краны на чужом душе и радовался бы от мысли, что людям теперь стало неудобно этим краном пользоваться.

Пожалуйста, ответьте, а то эта мысль об издевательствах до того раздражает, что просто не могу себя заставить пользоваться Rational Rose :).
Буду вам очень благодарна.

С огромный уважением,
ваша читательница (Диана)

Ответы:


Тема : Форум
Имя : Сергей Трофимов 24/03/2005 21:47
Сообщение:
>объясните, почему в Rational Rose 2003 при рисовании отношения Aggregation стрелка изображается в направлении, противоположном желаемому?

Отношение агрегации предполагает, что то понятие куда ведем отношение является частью того понятия откуда ведем отношение. Ромбик, который на конце связи означающей агрегацию, указывает на главный класс. Логично начать с более общих понятий и идти к частным, так если мы хотим показать, что в автомобиль входит двигатель, то добавим класс "Автомобиль", затем класс "Двигатель" и от автомобиля ведем связь к двигателю и получаем ромбик рядом с автомобилем. Что и требовалось сделать.

Тема : Форум
Имя : Диана Город : Новосибирск 25/03/2005 13:02
Сообщение:
Сергей, спасибо за ответ. Я тоже считаю, что логично начать с более общих понятий и идти к частным. Но мне казалось, что это правило в графике UML не соблюдается. Скорее, соблюдается противоположное правило – стрелочки обычно ведут от частного к общему. Например, в случае генерализации – стрелочка ведет от более специфичного класса к более общему. В случае агрегации, кстати, тоже. Это была самая первая трудность, с которой я столкнулась, начав изучать UML – стрелочки ведут не туда, куда движется человеческая логика – от общего к частному – а наоборот! (Кстати, вы не знаете, почему? Может у них в Америке с детства приучают к такому направлению стрелочек?)
Но с UML ладно, я привыкла. А вот агрегация в Rational Rose - это уже чересчур :))).
Приведу пример – так будет нагляднее.
В нашей культуре принято писать слева направо, сверху вниз и в диаграммах идти от общего к частному. Поэтому когда я рисую генерализацию и агрегацию я совершаю похожие действия. А именно:
Когда я хочу показать отношение генерализации, я сначала слева или сверху рисую общее (класс-родитель), затем правее или ниже специфичное (класс наследник), а затем веду стрелочку от наследника к родителю справа-налево, снизу-вверх и она так и изображается в Rational Rose – справа налево, снизу-вверх.
Когда я хочу показать отношение «целое-часть», я поступаю похожим образом – слева или сверху рисую общее (целое), затем правее или ниже часть, а затем веду стрелочку от части к целому – тоже справа-налево, сверху вниз. А Rational Rose изображает ее наоборот :).
Где же унификация? Почему, совершая похожие действия в одной и той же программе, я получаю противоположные результаты?
Если бы такое сотворил кто-нибудь из моих знакомых программистов или дизайнеров, я бы сказала «Ну и usability у тебя», и мы бы вместе посмеялись. Например, один мой знакомый дизайнер однажды нарисовал логотип сайта не в левом верхнем углу, как во всем Интернете, а в правом. Ему показалось, что так красивее :)))). В результате посетит

Тема : Форум
Имя : Диана Город : Новосибирск 25/03/2005 15:11
Сообщение:
Ой, мое сообщение оказалось слишком длинным и не влезло целиком! Добавляю обрезанный кусок вторым сообщением:

В результате посетители сайта, естественно, не могли этот логотип найти.
В общем, такие вещи простительны для новичков. Но когда подобное отсутствие унификации присутствует в крутейшей программе, которая, к тому же, используется для создания моделей UML – УНИФИЦИРОВАННОГО языка моделирования...
Хочется верить, что это просто случайный баг. Но можно предположить и другое – в команду разработчиков Rational Rose затесался молодой хулиган из тех, что пишут вирусы, и намеренно подшутил над пользователями. А тестеры не заметили.

Сергей, вы не согласны со мной? Когда вы рисуете генерализацию, вы ведь тоже наверняка идете от общего к частному, слева направо, сверху вниз. Т.е. совершаете действия, похожие на рисование агрегации. Или нет?


Комментарии к статьям закрыты.

© Trofimov Sergey   http://www.caseclub.ru при цитировании ссылка обязательна.