Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UML.doc
Скачиваний:
6
Добавлен:
16.11.2019
Размер:
8.2 Mб
Скачать

2.5.1.10.11. Элемент связи

Элементом связи (link element), известным также как класс Ассоциаций (Association class), называется место, где хранятся относящиеся к ассоциации атрибуты. Допустим, что у нас есть два класса: Student и Course, и необходимо добавить на диаграмму атрибут Grade (Год обучения).

В этом случае возникает вопрос: в какой класс добавить атрибут? Если мы поместим его в класс Stu­dent, то придется вводить атрибут для каждого посещаемого студентом курса, что значительно увели­чит этот класс. Если же мы поместим его в класс Course, то придется задавать атрибут для каждого посещающего этот курс студента.

Для решения подобной проблемы можно создать класс Ассоциаций. В него следует поместить ат­рибут Grade, относящийся в большей степени к связи между курсом и студентом, чем к какому-то клас­су конкретно. Нотация UML для класса Ассоциаций представлена на рис. 28.

Рис. 28. Элементы связи (классы Ассоциаций)

2.5.2. Диаграммы Состояний

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

Сложные классы имеют много различных состояний. В нашем примере заказ может находиться в состояниях: оформлен, выполнен, отменён. В каждом из состояний заказ ведет себя по-разному.

Для анализа динамики поведения класса необходимо рассмотреть его атрибуты. Экземпляр класса может вести себя по-разному в зависимости от их значений. Полезно исследовать также связи между классами. Рассмотрите все связи, множественность кото­рых может принимать нулевое значение. Нули указывают, что данная связь не является обязатель­ной. Ведет ли себя экземпляр класса по-разному при наличии и отсутствии связи? Если да, то он имеет несколько состояний.

В среде Rose на основании диаграмм Состояний не генерируется никакого исходного кода. Они нужны для того, чтобы документировать динамику поведения класса, благодаря чему аналитики и разработчики получат о нем четкое представление. Реализацией заложенной в эти диаграммы логики будут заниматься разработчики. Как и в случае других диаграмм UML, диаграммы Состояний дают команде возможность обсудить и документировать логику перед началом процесса кодирования.

Рис. 29. Диаграмма состояний для класса Заказ.

2.5.2.1. Создание диаграмм Состояний

В среде Rose можно создать одну диаграмму Состояний для класса. На ней отображаются все опреде­ленные для этого класса состояния и переходы. В браузере диаграмма Состояний располагается ниже класса.

2.5.2.1.1. Добавление состояний

Состоянием (state) называется одно из возможных условий, в которых может существовать объект. Как уже говорилось, для выявления состояний объекта необходимо исследовать две области модели: зна­чения атрибутов объекта и связи с другими объектами. Рассмотрите различные значения, принимае­мые атрибутами. Определите также состояние объекта в зависимости от того, существует некоторая связь или нет.

Находясь в конкретном состоянии, объект может выполнять определенные действия. Например, он может генерировать отчет, осуществлять некоторые вычисления или посылать событие другому объ­екту. В Rose информация такого типа добавляется к модели посредством окна спецификации состоя­ния.

С состоянием можно связывать данные пяти типов: деятельность, входное действие, выходное действие, событие и история состояния.

Деятельностью (activity) называется поведение, реализуемое объектом, когда он находится в данном со­стоянии. Например, когда поручение находится в состоянии "Инициализация", пользователь вносит данные. Деятельность — это прерываемое поведение. Оно может выполняться до своего завершения, если объект находится в данном состоянии, или может быть прервано переходом объек­та в другое состояние. Если деятельностей много, то их можно выделить в отдельную диаграмму. Деятельность изображают внутри самого состояния, ей должны предшество­вать слово do (делать) и "/". Например: do/ заполнить все поля.

Входным действием (entry action) называется поведение, которое выполняется, когда объект переходит в данное состояние. Например, при переходе поручения в состояние "Инициализация" выпол­няется действие "Сгенерировать новый номер поручения", независимо от того, откуда объект переходит в это со­стояние. Таким образом, данное действие осуществляется не после того, как объект перешел в состояние, а скорее как часть этого перехода. В отличие от деятельности, входное действие рассмат­ривается как непрерываемое.

Входное действие также показывают внутри состояния, ему предшествуют слово entry (вход) и "/". Например: entry/ Сгенерировать новый номер поручения.

Выходное действие (exit action) подобно входному. Однако оно осуществляется как составная часть про­цесса выхода из данного состояния. Как и входное, выходное действие является непрерываемым. Например: exit/ Сохранить информацию в БД

Поведение объекта во время деятельности, входных и выходных действий может включать в себя отправку события другому объекту. В этом случае описанию деятельности, входного или вы­ходного действия предшествует знак "^". Соответствующая строка на диаграмме выглядит как:

Do/ ^Цель.Событие(Аргументы),

где Цель — это объект, получающий событие, Событие — посылаемое сообщение, а Аргументы явля­ются параметрами посылаемого сообщения. В Rose все эти детали можно добавить к посылаемому со­бытию.

Деятельность может также выполняться в результате получения объектом некоторого события.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]