Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uml Book (Rus).doc
Скачиваний:
15
Добавлен:
11.08.2019
Размер:
58.74 Mб
Скачать

Другие возможности

Прецеденты являются классификаторами и могут иметь атрибуты и операции (см. главу 4), которые изображаются так же, как для классов. Атрибуты можно считать объектами внутри прецедента, которые требуются для описания его внеш­него поведения, а операции - действиями системы, необходимыми для описания потока событий. Эти объекты и операции разрешается включать в диаграммы вза­имодействия, чтобы специфицировать поведение прецедента.

Как и ко всем остальным классификаторам, к прецедентам можно присоеди­нять автоматы (см. главу 21). Позволительно расценивать их как еще один способ описания поведения прецедента.

Типичные приемы моделирования Поведение элемента

Чаще всего с помощью прецедентов моделируют поведение элемента: системы в целом, подсистемы (см. главу 31) или класса (см. главы 4 и 9). При этом важно сконцентрироваться исключительно на том, что должен делать элемент, а не на том, как он это будет делать.

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

разобраться в том, как с ним обращаться. В противном случае им пришлось бы на собственном опыте постигать, как следует использовать тот или иной элемент. В-третьих, прецеденты являются основой для тестирования каждого элемента на всем протяжении его разработки. Постоянно сравнивая функционирование каж­дого элемента с прецедентами, вы будете контролировать корректность его реали­зации. При этом вы не только получаете источник регрессионных тестов, но буде­те вынуждены при появлении нового прецедента данного элемента пересмотреть реализацию, чтобы убедиться в том, что элемент в достаточной степени изменяем. Если это не так, следует пересмотреть архитектуру.

Моделирование поведения элемента осуществляется следующим образом:

1. Идентифицируйте актеры, взаимодействующие с данным элементом. К чис­лу актеров-кандидатов относятся группы, которые требуют определенного по­ведения для выполнения своих задач либо необходимы, прямо или косвенно, для выполнения функций элемента.

2. Организуйте актеры, выделив общие и специализированные роли.

3. Для каждого актера рассмотрите основные пути его взаимодействия с элемен­том. Рассмотрите также взаимодействия, изменяющие состояние элемента или его окружения либо предполагающие реакцию на некоторое событие.

4. Рассмотрите альтернативные (исключительные) способы взаимодействия актеров с элементом.

5. Организуйте выявленное поведение в виде прецедентов, применяя отноше­ния включения и расширения для выделения общего и исключительного по­ведения.

Например, система розничной торговли должна взаимодействовать с клиента­ми, которые размещают заказы и хотят отслеживать их продвижение. Система будет отгружать выполненные заказы и выставлять счета клиентам. Как видно из рис. 16.6, моделировать поведение такой системы можно, объявляя его в виде пре­цедентов (Разместить заказ, Следить за выполнением заказа, Отгрузить заказ и Выставить счет). Можно выделить общее поведение (Проверить кли­ента) и вариации (Отгрузить частично выполненный заказ). Для каждого из этих прецедентов следует включить спецификацию поведения с помощью текста, автомата или взаимодействий.

По мере развития модели вы обнаружите тенденцию к объединению прецеден­тов в концептуально и семантически близкие группы. В UML для моделировании таких групп применяются пакеты (см. главу 12).

Советы

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

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

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

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

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

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

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

  • показывайте только такие прецеденты, которые важны для понимания пове­дения системы или ее части в данном контексте;

  • показывайте только те актеры, которые связаны с этими прецедентами.

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