Книга "UML и Rational Rose" жизненно необходима тем, кто хочет научиться разрабатывать по-настоящему эффективные прикладные программы. UML - это унифицированный язык моделирования, a Rational Rose - общепризнанный лидер среди визуальных инструментальных средств моделирования. Но темы этой книги выходят далеко за рамки моделирования: вы узнаете, как с помощью Rose автоматически, на том языке, который вы предпочитаете, превращать UML-диаграммы в программные конструкции.
Если не хватает какой. Задание множественности Множественность . Например, при разработке системы регистрации курсов в университете можно определить классы . Между ними устанавливается связь. Вопросы, на которые должен ответить параметр множественности. В примере регистрации курсов мы решили, что один студент может посещать от нуля до четырех курсов, а один курс могут слушать от . Множественность связи . п число или больше число . В рассматриваемом нами примере студент может посещать от нуля до четырех курсов в семестр. Это означает, что студент может пропустить семестр. Если бы множественность была . Таким образом, множественность реализует такие бизнес. Обычно для форм, экранов и окон множественность равна . Это означает, что формы могут существовать независимо одна от другой, хотя это и не всегда правильно. Для задания множественности связи. Щелкните правой кнопкой мыши на одном конце связи. В открывшемся меню выберите пункт . Повторите шаги с первого по третий для другого конца связи. Откройте окно спецификации связи. Измените множественность в поле . Использование имен связей Связи можно уточнить с помощью имен связей или ролевых имен. Имя связи — это обычно глагол или глагольная фраза, описывающая, зачем нужна связь. Обычно это делают, если причина создания связи неочевидна. Имя показывают около линии соответствующей связи. Например, можно сказать, что компания нанима ет сотрудника, но не наоборот. Направление действия имени устанавливается в окне спецификации. Откройте окно спецификации связи. Введите имя связи в поле имени. Для указания направления имени. Откройте окно спецификации связи. Использование стереотипов Как и другим элементам модели, связям разрешается назначать стереотипы. Они применяются дл классификации связей. Например, вы используете два типа ассоциаций. Для этих типов можно создать стереотипы. Стереотип связи задается на вкладке . Окно спецификации . Откройте окно спецификации связи. Введите стереотип в поле . Использование ролей Ролевые имена применяют в связях ассоциации или агрегации для описания назначения связи. Возвращаясь к примеру с классами . Ролевые имена — это обычно имена существительные или фразы. Как правило, пользуются или ролевым именем, или именем связи, но не обоими сразу. Как и имена связей, ролевые имена необязательны, их указывают, только если цель связи неочевидна. Пример ролей приводится на рис. Роли связи . При генерации кода оно войдет в комментарий. Чтобы увидеть роль на диаграмме, щелкните правой кнопкой мыши на связи и в открывшемся меню выберите пункт . Добавление описания к роли Для задания ролевого имени. Щелкните правой кнопкой мыши на нужном конце ассоциации. В открывшемся меню выберите пункт . Откройте окно спецификации ассоциации. Введите имя роли в поле . Откройте окно спецификации требуемой ассоциации. Введите описание в поле . Задание управления экспортом При генерации кода для классов, связанных ассоциацией, создаются атрибуты. Видимость этих атрибутов определяется значением переключателя . Как и для лк. В двунаправленных ассоциациях управление экспортом можно установить для атрибутов обоих концов связи. В однонаправленных ассоциациях это делается только для одного конца. Управление экспортом можно задать на вкладке . Назначить управление экспортом для роли можно следующим образом. Щелкните правой кнопкой мыши на имени роли. В открывшемся меню выберите пункт . Откройте окно спецификации связи, как показано на рис. Задание управления экспортом . Использование статичных связей Как уже упоминалось, при создании кода для связей ассоциации и агрегации генерируются атрибуты Поле . Статичным называется атрибут, который используется всеми экземплярами класса. Если роль статичная, то создаваемый при генерации кода соответствующий ей атрибут также бу дет статичным. На диаграмме Классов перед статичной ролью ставится знак . Статичная роль . Щелкните правой кнопкой мыши на нужном конце ассоциации. В открывшемся меню выберите пункт . Откройте окно спецификации требуемой ассоциации. л Использование дружественных связей Дружественная . Это свойство можно задать для ассоциаций, агрегаций, зависимостей и обобщений. В исходный код класса. Допустим, что у нас имеется двунаправленная ассоциация, связывающая классы . Тогда при генерации кода на языке С. Н будет добавлена строка . Это означает, что класс . Для создания дружественной связи. Щелкните правой кнопкой мыши на соответствующем конце связи. В открывшемся меню выберите пункт . Откройте окно спецификации требуемой связи. Задание метода включения Параметр . Если два класса связаны отношением агрегации, то в класс. Например, если между классами . Агрегация по значению . Если они имеются в памяти, то взаимодействуют друг с другом посредством агрегации. Агрегация по ссылке отображается в виде пустого ромбика . Агрегация по ссылке Для установки метода включения. Щелкните правой кнопкой мыши на том конце ассоциации, где требуется задать включение . В открывшемся меню выберите пункт . Откройте окно спецификации требуемой связи. Задание включения . Допустим, что между классами . Это можно показать на диаграмме с помощью квалификаторов . Щелкните правой кнопкой мыши на том конце ассоциации, куда требуется добавить квалификатор. В открывшемся меню выберите пункт . Введите имя и тип нового квалификатора. Откройте окно спецификации требуемой ассоциации. Щелкните правой кнопкой мыши в окне . В открывшемся меню выберите пункт . Введите имя и тип нового квалификатора. Откройте окно спецификации требуемой ассоциации. Щелкните правой кнопкой мыши на удаляемом квалификаторе. В открывшемся меню выберите пункт . Работа с элементами связи Элементом связи . Допустим, что у нас есть два класса. В этом случае возникает вопрос. Если же мы поместим его в класс . Для решения подобной проблемы можно создать класс Ассоциаций. В него следует поместить атрибут . Для задания элемента связи.