2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 49
Текст из файла (страница 49)
Создавая тесты на их основе и применяя их регулярно, вы можете постоянно проверять работоспособность реализации. Но вариантыиспользования не только участвуют в разработке регрессионныхтестов: всякий раз, добавляя новый вариант использования элемента, вы тем самым вынуждаете пересматривать реализацию, чтобыВарианты использования250гарантировать достаточную гибкость элемента и его устойчивостьк изменениям. Если окажется, что это не так, придется вносить соответствующие изменения в архитектуру.Чтобы смоделировать п оведение элемента, необходимо: Идентифицировать действующие лица, взаимодействующиес элементом.
Кандидаты на включение в эту группу – те, ктонуждается в определенном поведении элемента для выполнения своих собственных задач, либо те, кто прямо или косвенно задействован в функционировании элемента. Организовать действующие лица, определив общие и болееспециализированные роли.
Рассмотреть основные пути взаимодействия каждого действующего лица с элементом, а также сами взаимодействия,которые изменяют состояние элемента или его окружениялибо обеспечивают реакцию на некое событие. Рассмотреть исключительные пути взаимодействия каждого действующего лица с элементом. Организовать поведение, выявленное на этапах 3 и 4, в видевариантов использования, применяя связи включения и расширения, чтобы выделить общее поведение и отделить исключительное.Например, система розничной торговли должна взаимодействовать с заказчиками, которые размещают заказы и отслеживают ихисполнение. Сама система, в свою очередь, отгружает заказанныетовары и выставляет счета клиентам к оплате. Как видно из рис. 17.6,«include»«include»«include»Точки расширения«extend»(materials ready)Рис. 17.6.
Моделирование поведения элементаСоветы и подсказкиПакетыобсуждаютсяв главе 12.251поведение такой системы можно смоделировать, объявив нескольковариантов использования: Place order (Разместить заказ), Track order(Отследить заказ), Ship order (Отгрузить заказ) и Bill customer (Выставить счет). Можно выделить общее поведение Validate customer(Проверить клиента) и варианты типа Ship partial order (Отгрузитьчастично выполненный заказ).
Для каждого из этих вариантов использования следует предусмотреть спецификацию поведения, выраженную текстом, автоматом или взаимодействием.По мере развития модели вы увидите целесообразность объединения вариантов использования в концептуально и семантическиблизкие группы. Такие группы в UML можно моделировать в видепакетов.Советы и подсказкиПри моделировании вариантов использования в UML каждыйиз них должен представлять некоторое отдельное и идентифицируемое поведение системы или ее части. Хорошо структурированныйвариант использования обладает следующими свойствами: именует простое, идентифицируемое и атомарное (в той степени, в какой это целесообразно) поведение системы или еечасти; выделяет общее поведение, извлекая его из других вариантов использования; выделяет вариации, помещая некоторое поведение в другиеварианты использования, расширяющие его; описывает поток событий так, чтобы сделать его понятнымпостороннему читателю; описывается минимальным набором сценариев, специфицирующих его основную семантику и семантику вариаций.Когда вы изображаете вариант использования в UML: показывайте только те варианты использования, которыеважны для понимания поведения системы или ее части в данном контексте; показывайте только действующие лица, связанные с этимивариантами использования.ВведениеГлава 18.
Диаграммы вариантовиспользованияВ этой главе:Диаграммыдеятельности обсуждаютсяв главе 20,диаграммысостояний –в главе 25,диаграммыпоследовательностии коммуникации –в главе 19.Моделирование контекста системыМоделирование требований к системеПрямое и обратное проектированиеДиаграммы вариантов использования – это один из видов диаграммUML, предназначенных для моделирования динамических аспектовсистем. (Остальные четыре вида с аналогичным назначением – этодиаграммы деятельности, состояний, последовательности и коммуникации). Диаграммы вариантов использования – основной виддиаграмм при моделировании поведения системы, подсистемы иликласса. Каждая из них показывает набор вариантов использованияи действующих лиц в их взаимодействии.Диаграммы вариантов использования применяются для моделирования представления системы с точки зрения вариантов использования.
Большей частью это подразумевает моделирование контекста системы, подсистемы или класса либо моделирование требованийк этим элементам.Диаграммы вариантов использования важны для визуализации, специфицирования и документирования поведения элемента.Они обеспечивают доступность и понятность систем, подсистеми классов за счет внешнего представления того, как эти элементымогут быть использованы в контексте. Кроме того, такие диаграммыважны для тестирования работающих систем посредством прямого проектирования и для обеспечения их понимания посредствомобратного проектирования.253Однако устройство не имеет никакого описания, а вы даже не догадываетесь о том, как его использовать. Можно в случайном порядкенажимать кнопки и смотреть, что произойдет, но так вы потратитеуйму времени на метод проб и ошибок, а вот достигнете ли результата – нельзя сказать наверняка.То же самое с программными системами.
Если вы пользователь,приступающий к работе с новым приложением, вам нужны четкиеинструкции. Если приложение следует стандартным соглашениям,принятым в операционной системе, к которой вы привыкли, вамбудет немного проще освоить интерфейс, и все же только на основании этого вы вряд ли поймете более тонкие и сложные нюансыповедения программы. Аналогичная ситуация: если вы разработчик, вам могут передать приложение, которое делал ваш коллега, и попросить в нем разобраться. Выполнить эту задачу, пока выне сформируете концептуальную модель его применения, будетпрактически невозможно.В UML диаграммы вариантов использования применяются длятого, чтобы визуализировать поведение системы, подсистемы иликласса с тем, чтобы пользователь мог понять, как применять этотэлемент, а разработчик – как реализовать его. Диаграмма вариантовиспользования, показанная на рис.
18.1, помогает смоделироватьповедение того самого «загадочного» устройства с кнопками и дисплеем, в котором большинство людей без труда узнает сотовый телефон.граница субъектасубъектсвязь расширениядействующее лицовариант использованияВведениеПредположим, вам вручили техническое устройство, котороевы прежде в глаза не видели. С одной стороны небольшого корпуса расположены какиеFто кнопки и жидкокристаллическая панель.Рис. 18.1.
Диаграмма вариантов использованияДиаграммы вариантов использования254Типичные приемы моделированияБазовые понятияДиаграмма вариантов использования – это диаграмма, котораяпоказывает набор вариантов использования и действующих лиц,а также их связи.Общие свойстваОбщиесвойствадиаграммобсуждаются в главе 7.Диаграмма вариантов использования, как и любая другая, обладает именем и графическим наполнением, представляющим собойпроекцию модели.
От всех других видов диаграмм отличается конкретным содержанием.Требованияобсуждаются в главах4 и 6.СодержаниеВариантыиспользования и действующиелица обсуждаютсяв главе 17,связи – в главах 5 и 10,пакеты –в главе 12,экземпляры –в главе 13.Обычно диаграммы вариантов использования содержат субъект, варианты использования, действующие лица, а также связи зависимости, обобщения и ассоциации.
Как и все другие диаграммы,могут содержать примечания и ограничения.Кроме того, диаграммы вариантов использования в ряде случаев включают пакеты, служащие для объединения элементов моделив большие группы. Иногда вам потребуется поместить на диаграмму экземпляры вариантов использования, особенно если вы хотитевизуализировать конкретную систему.Представлениявариантовиспользования обсуждаютсяв главе 2.Моделирование контекста системыСубъект изображается в виде прямоугольника, содержащегонабор эллипсов (вариантов использования). Имя субъекта указановнутри прямоугольника.
Действующие лица представлены в видефигурок рядом с прямоугольником. Имена действующих лиц располагаются под фигурками. Последние соединяются линиями с эллипсами вариантов использования, с которыми они взаимодействуют. Связи между вариантами использования, такие как расширениеи включение, рисуются внутри прямоугольника.Диаграммы вариантов использования нужны для того, чтобымоделировать представление субъекта (например, системы) с точкизрения вариантов использования.
Обычно оно моделирует внешнееповедение субъекта, то есть видимые извне услуги, которые субъектпредоставляет в контексте его окружения.Моделируя представление субъекта с точки зрения вариантов использования, вы обычно применяете диаграммы вариантовиспользования одним из двух способов:1. Для моделирования контекста субъекта, которое подразумевает очерчивание границ вокруг всей системы и определениедействующих лиц, которые находятся вне нее и с ней взаимодействуют.
Здесь диаграммы вариантов использованиятребуются для спецификации действующих лиц и значенияих ролей.2. Для моделирования требований к субъекту, которое подразумевает спецификацию того, что он должен делать (с точки зрения внешней по отношению к субъекту), независимоот того, как он должен это делать. Здесь диаграммы вариантов использования применяются для специфицированиятребуемого поведения субъекта. В метафорическом смыследиаграмма позволяет вам представить субъекта как «черный ящик»: вы можете видеть, что происходит вне его и какон реагирует на внешние воздействия, но не видите, какон работает внутри.Типичные приемы моделированияНотацияСтандартное использование255Системыобсуждаютсяв главе 32.Какую бы систему мы ни обсуждали, легко заметить, что некоторые элементы находятся внутри нее, а некоторые – снаружи.Например, в системе проверки кредитных карт вы обнаружитетакие сущности, как счета, транзакции и агенты предотвращениямошенничеств, а за ее пределами – такие сущности, как владельцы кредитных карт и системы розничной торговли, предусматривающие оплату по картам.
Те элементы, которые «живут» внутрисистемы, отвечают за поведение, которое от нее ожидается. Все,что находится вне системы и взаимодействует с ней, составляетее контекст (context). Контекст определяет среду, в которой живет система.В UML вы можете моделировать контекст системы с помощьюдиаграммы вариантов использования, изображающей действующие лица, окружающие систему.
Решение о том, что именно включить в диаграмму в качестве действующих лиц, важно постольку,поскольку вы таким образом специфицируете класс сущностей,взаимодействующих с системой. Решение о том, что не включатьв качестве действующих лиц, в равной степени (если не более) важно, ибо оно ограничивает окружающую среду системы с тем, чтобывключить лишь действующие лица, действительно необходимыедля ее жизни.256Диаграммы вариантов использованияЧтобы смоделировать контекст системы, необходимо: Идентифицировать границы системы, приняв решение о том,какое поведение является ее частью, а какое осуществляютвнешние сущности.