Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к экзамену 2012.docx
Скачиваний:
4
Добавлен:
20.09.2019
Размер:
583.63 Кб
Скачать
  1. Диаграмма вариантов использования uml.

Ответ: В контексте моделей языка UML именно функциональные требования должны служить исходной информацией для построения диаграммы вариантов использования.

Так как язык UML является системой обозначения, соответствующая нотация создана и для ВИ.

Как показано на рис. 3.6, исполнителей изображают в виде человеческих фигурок. Можно определить общие типы исполнителей (например, “Доктор”) и затем специализировать их (например, создав разновидность “Дантист”, “Кардиолог”) с помощью отношений обобщения (generalization).

Можно использовать механизмы расширения UML для приписывания исполнителю стереотипа, чтобы создать другую пиктограмму, адекватную поставленным целям.

Рис. 3.6. Исполнители

Любой ВИ должен иметь имя, отличающее его от других ВИ. Оно должно быть уникально внутри пакета. Имя ВИ представляет собой текстовую строку. Взятое само по себе, оно называется простым именем. К составному имени спереди добавлено имя пакета, в котором он находится.

Примечание: имя ВИ может состоять из любого числа букв, цифр и некоторых знаков препинания (за исключением таких, как двоеточие, которые применяются для отделения имени прецедента от имени объемлющего пакета). Имя может занимать несколько строк. На практике для именования прецедентов используют короткие глагольные фразы в активной форме, обозначающие некоторое поведение и взятые из словаря моделируемой системы (рис. 3.7).

Рис. 3.7. Простые и составные имена

Для организации ВИ их группируют в пакеты, так же как и классы. Пример ВИ “Проверить пользователя”, рассмотренного в разделе 3.3, представлен на рис. 3.8.

Рис. 3.8. Диаграмма ВИ

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

Отношение обобщения между ВИ аналогично отношениям обобщения между классами. Это означает, что ВИ-потомок наследует поведение и семантику своего родителя, может замещать его или дополнять его поведение, а кроме того, может быть подставлен всюду, где появляется его родитель (как родитель, так и потомок могут иметь конкретные экземпляры). Например, в банковской системе возможно наличие ВИ “Проверить Клиента”, который отвечает за проверку личности клиента. Он может иметь двух специализированных потомков (“Проверить PIN-код” и “Сканирование сетчатки глаза”). Оба потомка ведут себя так же, как прецедент “Проверить клиента”, и могут использоваться везде, где используется их родитель, но при этом каждый из них добавляет и свое собственное поведение (первый проверяет текстовый код, а второй - рисунок сетчатки глаза).

Как показано на рис. 3.9, обобщения между ВИ изображаются точно так же, как и обобщения между классами – в виде линии с не закрашенным треугольником на конце соединения.

Рис. 3.9. Обобщение прецедентов

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

Благодаря наличию отношений включения удается избежать многократного описания одного и того же потока событий, поскольку общее поведение можно описать в виде самостоятельного ВИ, включаемого в базовые. Отношение включения является примером делегирования, при котором ряд обязанностей системы описывается в одном месте (во включаемом ВИ), а остальные ВИ, когда необходимо, включают эти обязанности в свой набор.

Отношения включения изображаются в виде зависимостей со стереотипом include. Чтобы специфицировать место в потоке событий, где базовый ВИ включает поведение другого, вы просто пишете слово include, за которым следует имя включаемого ВИ.

Отношение расширения подразумевает, что базовый ВИ неявно содержит поведение другого ВИ в точке, которая косвенно задается расширяющим ВИ. Базовый ВИ может быть автономным, но при определенных обстоятельствах его поведение расширяется за счет другого. Базовый ВИ допустимо расширить только в некоторых точках, называемых точками расширения. Можно считать, что расширяющий ВИ передает свое поведение базовому.

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

Отношение расширения изображают в виде зависимости со стереотипом extend. Точки расширения базового сценария перечисляются в дополнительном разделе.

Моделируя ВИ в UML, помните, что каждый из них должен представлять некоторое четко идентифицируемое поведение системы или ее части. Хорошо структурированный ВИ обладает следующими свойствами:

–  именует простое, идентифицируемое и в некоторой степени атомарное поведение системы или ее части;

–  выделяет общее поведение, извлекая его из всех ВИ, которые его включают;

–  выделяет вариации, помещая некоторое поведение в другие ВИ, которые его расширяют;

–  описывает поток событий в степени, достаточной для понимания посторонним читателем;

–  описывается с помощью минимального набора сценариев, специфицирующих его нормальную и дополнительную семантику.

Изображая прецеденты в UML, пользуйтесь следующими правилами:

–  показывайте только такие ВИ, которые важны для понимания поведения системы или ее части в данном контексте;

–  показывайте только тех исполнителей, которые связаны с этими ВИ.