Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 37
Текст из файла (страница 37)
Вариант использования заключить сделку на сетевой бирже включает лицо Клиент и лицо Фондовая биржа. Система биржевого маклера должна взаимодействовать с обоими действующими лицами, чтобы заключить сделку. Вариант использования подразумевает обмен последовательностью сообщений между системой и действующими лицами. Например, в варианте использования купить напиток Клиент сначала вставляет монету, а торговый автомат отображает текущий аванс.
Эта процедура может быть повторена несколько раз. Затем клиент нажимает кнопку выбора товара, а автомат выдает заказанный товар и сдачу, если таковая имеется. ° Кутппь напиток. Торговый автомат выдает напиток после того, как клиент выбирает нужный вариант и платит за него. ° Провести плановый ремонт. Ремонтник выполняет плановое техобслужи- вание автомата, необходимое для обеспечения его безотказной работы. ° Провести техническое обслуживание.
Ремонтник выполняет незаплани- рованное обслуживание автомата при выходе его из строя. ° Загрузить продукты. Обслуживающий персонал загружает продукты в тор- говый автомат для пополнения запасов продаваемых напитков. Рис. 7.1. Варианты использования торгового автомата Некоторые варианты использования характеризуются фиксированной последовательностью сообщений.
Однако чаше последовательность сообщений может варьироваться в определенных пределах. Например, клиент может кинуть в автомат некоторое количество монет (вариант использования купить напиток). В зависимости от количества и номинала монет, а также от выбранного товара автомат может либо вернуть сдачу, либо нет.
Вариации последовательностей можно показать, продемонстрировав несколько примеров различающихся между собой последовательностей поведения. Обычно сначала определяется основная последовательность, а затем — необязательные последовательности, повторения и другие вариации. Частью варианта использования являются и сбойные ситуации. Например, если клиент выбирает напиток, который уже кончился, торговый автомат отображает соответствующее сообщение. Кроме того, клиент может отменить транзакцию покупки.
Например, он может нажать кнопку возврата монет в любой 164 Глава 7 ° Моделирование взаимодействий момент до того, как его выбор будет принят. В этом случае автомат возвращает монеты клиента, и последовательность поведения для варианта использования завершается. С точки зрения пользователя некоторые виды поведения могут считаться ошибками. Однако проектировщик должен учитывать все возможные последовательности. С точки зрения системы ошибки пользователя или ресурсов являются разновидностями поведения, которые устойчивая система должна быть способна обработать.
Вариант использования объединяет все поведение, имеющее отношение к элементу функциональности системы: нормальное поведение, вариации нормального поведения, исключительные ситуации, сбойные ситуации и отмены запросов. На рис. 7.2 представлено подробное описание варианта использования Покупка напитка. Объединение нормального и аномального поведения в одном варианте использования помогает убедиться, что все последовательности взаимодействия рассматриваются вместе. Вариант использования: Покупка напитка. Краткое описание: Торговый автомат выдает напиток после того, как клиент выбирает нужный вариант и платит за него. Действующие лица: Клиент. Исходные условия: Автомат ожидает опускания монеты. Описание: Автомат изначально находится в состоянии ожидания и выводит на дисплей сообщение «Опустите монетым Клиент опускает монеты в щель автомата.
Автомат выводит на дисплей принятую от клинта сумму и включает подсветку кнопок с названиями напитка. Автомат выдает соответствующий напиток и выдает сдачу, если напиток стоит меньше, чем заплатил клиент, Исключения: Отмена: Если клиент нажмет кнопку отмены до того, как произведет выбор напитка, автомат вернет клиенту деньги и перейдет в состояние ожидания. Напиток отсутствует: Если клиент выбирает напиток, который в данный мо- мент отсутствует в автомате, выводится сообщение: «Напиток отсутствуег».
Автомат готов к приему монет и выбору напитка клиентом. Недостаточно денег: Если клиент выбирает напиток, который стоит больше, чем он заплатил, выводится сообщение: «Необходимо доплатить пжпп руб. для покупки этого напитка», где пили — недостающая сумма. Автомат продол- жает принимать монеты и готов к выбору напитка клиентом. Нвтп сдачи: Если клиент вставил достаточное количество монет для покупки напитка, но в автомате нет денег, чтобы корректно выдать сдачу, выводит сооб- щение «Невозможно выдать сдачу». Автомат продолжает принимать монеты и готов к выбору напитка клиентом. Постусловия: Автомат готов к приему монет, Рис. 7.2. Описание варианта использования 7.1. Модели вариантов использования 165 В полной модели варианты использования образуют разбиение функциональности системы. Все варианты должны находиться на сравнимом уровне абстракции.
Например, варианты использования позвонить по телефону и записать сообщение голосовой почты находятся на одинаковых уровнях абстракции, чего нельзя сказать о варианте использования установить громкость внешнего динамика на высокую. Лучше было бы назвать этот вариант установить громкость динамика (выбор уровня громкости будет частью варианта использования) или даже установить параметры телефона (в этом варианте можно установить громкость, отобразить параметры клавиатуры, установить часы и т, д.). 7.1.3. Диаграммы вариантов использования Любая система обладает своим множеством вариантов использования и множеством действующих лиц.
Каждый вариант использования описывает элемент предоставляемой системой функциональности. Множество вариантов использования описывает всю функциональность системы на некотором уровне абстракции. Каждое действующее лицо представляет собой один вид объектов, для которых система может выполнять некоторое поведение. Множество действующих лиц описывает полное множество объектов, которые могут быть обслужены системой. Объекты аккумулируют поведение всех систем, с которыми они взаимодействуют в качестве действующих лиц. Язык ()МЕ предусматривает систему графических обозначений для вариантов использования (рис.
7.3). Варианты использования системы заключаются в прямоугольник, снаружи которого изображаются действующие лица. Название системы может быть указано около одного из краев прямоугольника. Вариант использования обозначается эллипсом, внутри которого указывается его название. Значок «человечек» обозначает действующее лицо.
Его имя ставится рядом со значком или под ним. Действующие лица соединяются с вариантами использования сплошными линиями. ег п!стп вФ Рис. 7.3. Варианты использования для торгового автомата 166 Глава 7 ° Моделирование взаимодействий На нашем рисунке лицо (Яера1г геслтс1ал) участвует в двух вариантах использования, а остальные лица — каждый в своем.
В одном варианте использования могут участвовать несколько действующих лиц (в нашем примере этого нет). 7.1.4. Руководство к вариантам использования Варианты использования идентифицируют функциональность системы и упорядочивают ее с точки зрения пользователей. Традиционные списки требований могут описывать функциональность, не вполне ясную для пользователей, а также пропускать вспомогательную функциональность (например, инициализацию и завершение). Варианты использования описывают только полные транзакции, а потому создают меньше шансов что-нибудь пропустить. Традиционные списки требований все равно могут использоваться для описания глобальных ограничений и другой нелокализованной функциональности, например средней наработки на отказ или общей пропускной способности.
Однако большую часть взаимодействий с пользователями следует описывать именно при помощи вариантов использования. Основное назначение системы почти всегда отражается в вариантах использования, а списки требований задают дополнительные ограничения на реализацию. Вот некоторые рекомендации, касающиеся конструирования моделей вариантов использования. ° Прежде всего следует определить границы системы.
Невозможно идентифицировать варианты использования и действующие лица, если граница системы определена нечетко. ° Убедитесь в сосредоточенности действующих лиц. Каждое лицо должно иметь одну явно выраженную цель. Если объект из реального мира сочетает в себе несколько целей, их следует представлять разными действующими лицами. Например, владелец персонального компьютера может устанавливать программное обеспечение, настраивать базу данных и отправлять электронную почту. Эти функции существенно отличаются друг от друга по влиянию на компьютерную систему и по возможностям ее повреждения.
Они могут быть разделены между тремя действующими лицами: администратором системы, администратором базы данных и обычным пользователем. Помните, что действующее лицо определяется только по отношению к системе, а не как некоторая самостоятельная сущность. ° Каждый вариант использования должен предоставлять пользователям значения. Вариант использования должен описывать полную транзакцию, предоставляющую пользователям некоторые значения и обладающую не слишком узким определением. Например, набрать телефонный номер— не самый подходящий вариант использования для телефонной системы.
Он не является полной транзакцией и не предоставляет пользователю значений. Это всего лишь часть варианта использования позвонить. Последний включает в себя вызов, разговор и завершение вызова. Работая с полными вариантами использования, мы сосредоточиваем внимание на назначении 7.2. Модели последовательности 167 функциональности системы и не принимаем никаких преждевременных решений о реализации. Подробности добавляются позже. Часто требуемая функциональность может быть реализована несколькими способами. ° Связывайте варианты использования с действующими лицами. Каждый вариант использования должен иметь по крайней мере одно действующее лицо.