__>>Хочу уточнить — получается для не простых типов — массивов, записей и т.п. в UML
S>Массив можно отобразить мощностью связи.
__>>создаем вспомогательный класс, да?
Имеется в виду, что просто атрибут у класса типа массив (равно как и запись, record в ЯВУ) в UML не создать,
надо создавать класс (ну а на связи уже указывать соответствующую кратность), так?
S>>>Для агрегации в розе рисуют связь в обратном направлении чем для ассоциации, т. е. от дочернего элемента к агрегирующему.
S>>>Затем на вкладке "Role A detail" отмечаешь "Aggregate" и "By value" — вот тебе и композит.
__>>Да, "By value" работает. А если связь рисовать от дочернего класса — ромбик появляется у дочернего,
__>>а не у родительского класса (и в коде же переменная появится в дочернем классе?).
__>>Вроде должно быть наоборот?
S>Ромбик у родительского (агрегирующего) класса. Будь внимателен. Рисуем от дочернего к родителю, и не путаем роль A и B
Так я так и пробую — от дочернего к родительскому, но Роза рисует ромбик у дочернего класса!
А если рисую от родительского — ромбик у него, и в нем же будет переменная, ссылающаяся на дочерний класс.
__>>и здесь, как я думаю, все же именно этот вариант — т.е. "задание" для "проекта" — не просто
__>>параметр в операциях, а класс, с которым он взаимодействует, возможен переход
__>>от задания к проекту и от проекта к заданию и т.п. Выходит здесь — ассоциация?
S>Ну ты же сначала написал "создавать/удалять/находить", я решил что "проект" это фабрика для "заданий", а для таких — связь dependency
Так, теперь я уже запутался.
Допустим, есть список проектов. Пользователь выбирает один из них
(экземпляр класса "проект"), отображается список заданий по нему.
Доступны операции "создать задание", "изменить задание", "удалить задание".
Если выбрать, например, "создать задание", открывается соответствующий экранный интерфейс
для ввода его реквизитов (соответственно создается экземпляр класса "задание"), после завершения
ввода этот экземпляр добавляется в общий список заданий экземпляра "проект".
При удалении из списка — удаляется.
Но я предполагаю, что будут и другие операции, когда надо будет
из задания выходить на проект и из проекта — в конкретное задание.
Т.е. тут как бы и фабрика, и как бы и в какой-то мере "равноправные" классы.
Значит, используем все же не зависимость, а ассоциацию. Я прав?
А по ноликам-единичкам кратности почитаю еще. Что-то стал запутываться.
Хотя в БД прекрасно со связями управляюсь и не испытываю никакого дискомфорта
P.S. Кто знает, как в Розе поменять тип класса с Java на класс по-умолчанию (Analysis)?
Случайно поменял на Java, а как и где — не заметил. Не перерисовывать же заново.
Хотя один класс конечно не проблема перерисовать, а если в нем будет куча атрибутов
и операций — это же не рационально?!