2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 47
Текст из файла (страница 47)
Например, при моделировании работы банка базовый вариант использования, описывающий обработку займов, подразумевает несколько разновидностей –от оформления крупной закладной до выдачи маленькой деловойссуды. Притом все эти варианты использования имеют нечто общеев особенностях поведения (например, оценку платежеспособностиклиента).Всякий вариант использования должен выполнять некоторыйобъем работы. С точки зрения действующего лица он делает нечтопредставляющее определенную ценность: например, вычисляет результат, создает новый объект или изменяет состояние другого объекта.
В примере с работой банка процесс обработки заявки на ссудуприводит к подписанию расходного документа и материализуетсяв виде некоторой суммы денег, вручаемой клиенту.ПодсистемыВы можете применять варианты использования ко всей системеописывают- или к ее частям, в том числе к подсистемам и даже к индивидуалься в главеным классам и интерфейсам.
В каждом случае варианты использо32, классы – вания не только представляют желаемое поведение этих элементов,в главах 4 и 9, но также могут служить основой сценариев тестирования на разинтерфейличных этапах разработки. Далее, в применении к подсистемам этосы – в глаотличный источник регрессионных тестов, а в применении к систеве 11.ме в целом – комплексных и системных тестов. Варианты использования и действующие лица в UML изображаются, как показанона рис.
17.1. Эта нотация позволяет визуализировать определенныйвариант использования в контексте других и отдельно от его реализации.Базовые понятия241действующее лицовариант использованияРис. 17.1. Действующие лица и варианты использованияБазовые понятияНотациявариантовиспользования подобнанотациикоопераций(см. главу 28).Вариант использования (use case) – это описание множествапоследовательных действий, включая их варианты, выполняемыхсистемой с целью получения значимого результата для действующего лица. Изображается в виде эллипса.СубъектСубъект – это класс, описанный набором вариантов использования. Обычно речь идет о системе или подсистеме.
Вариантыиспользования представляют аспекты поведения класса. Действующие лица же представляют аспекты других классов, взаимодействующих с субъектом. Взятые вместе, варианты использованияописывают полное поведение субъекта.ИменаИмявариантаиспользования должнобытьуникальнымв пределахвключающего егопакета (см.главу 12).Каждый вариант использования должен иметь имя, отличающее его от прочих. Имя варианта использования представляетсобой текстовую строку, которая, взятая сама по себе, называетсяпростым именем.
К квалифицированному имени добавляется префикс – имя пакета, в котором находится вариант использования.Обычно при изображении варианта использования указываетсятолько его имя, как показано на рис. 17.2.квалифицированное имяРис. 17.2. Простое и квалифицированное имена242Варианты использованияНа заметку. В имени варианта использования могут присутствовать любые буквы латинского алфавита и цифры в неограниченном количестве, а также большинство знаков препинания (за исключением таких как двоеточие, которое используетсядля разделения имен варианта использования и включающегоего пакета). Имя может занимать несколько строк. На практике для именования вариантов использования используютсякороткие глагольные конструкции в действительном залоге,обозначающие некоторое поведение из словаря моделируемой системы.Базовые понятия243Стереотипыобсуждаются в главе 6.действующее лицодействующее лицоРис.
17.3. Действующие лицаВарианты использования и действующиелицаОбобщениярассматриваютсяв главах 5и 10.Ассоциацииобсуждаются в главах 5и 10, сообщения – в главе 16.Действующее лицо представляет собой связанное множество ролей, которые исполняют пользователи вариантов использования во время взаимодействия с ними. Обычно действующеелицо представляет ту роль, которую в данной системе играет человек, аппаратное устройство или даже другая система. Например, если вы работаете в банке, то можете играть роль LoanOfficer(Сотрудник кредитного отдела). Если в этом банке открыт вашсчет, то вы выступаете в качестве Customer (Клиент). Таким образом, экземпляр действующего лица представляет собой конкретную личность, определенным образом взаимодействующуюс системой. Хотя вы и используете действующие лица в своихмоделях, они не являются частью системы, так как существуютвне ее.В работающей системе действующие лица не обязаны присутствовать как отдельные сущности.
Один объект может играть рольмножества действующих лиц. Например, один и тот же человек(Person) может быть и сотрудником кредитного отдела (LoanOfficer),и клиентом (Customer).Как показано на рис. 17.3, действующие лица изображаютсяв виде человеческих фигурок. Вы можете вводить общие типы действующих лиц, такие как Customer, и специализировать их (например,создать разновидность CommercialCustomer – коммерческий клиент),определив связи обобщения.На заметку.
Можно использовать механизм расширенияUML, приписав действующему лицу стереотип, чтобы создатьдругую пиктограмму, больше подходящую для достиженияваших целей.Действующие лица можно связывать с вариантами использования только при помощи ассоциаций. Ассоциация между действующим лицом и вариантом использования показывает, что они общаются друг с другом, возможно, посылая или принимая сообщения.Варианты использования и поток событийВариант использования описывает, что делает система (илиподсистема, или класс, или интерфейс), но не указывает, как она этоделает. В процессе моделирования всегда важно разделять внешнееи внутреннее представления.Можно специфицировать поведение варианта использования,описав поток событий в текстовой форме, понятной постороннемучитателю.
В описании должны присутствовать указание на то, каки когда вариант использования начинается и заканчивается, когдаон взаимодействует с действующими лицами, какими объектамиони обмениваются, а также упоминание основного и альтернативного потоков поведения.Например, в контексте системы банкомата можно описать вариант использования ValidateUser (Проверка пользователя): основной поток событий: вариант использования начинается, когда система запрашивает у клиента его персональныйидентификационный номер (PIN). Клиент (Customer) вводит его с клавиатуры.
Завершается ввод нажатием клавиши Enter. Затем система проверяет введенный PIN и, еслион правилен, подтверждает ввод. Этим вариант использования заканчивается; исключительный поток событий: клиент может отменитьтранзакцию в любой момент, нажав клавишу Cancel. Этодействие запускает вариант использования заново. Никакихизменений со счетом клиента не производится;244Варианты использованияБазовые понятия исключительный поток событий: клиент может в любой момент до нажатия клавиши Enter стереть свой PIN и ввестиновый; исключительный поток событий: если клиент вводит неправильный PIN, вариант использования перезапускается.Если это происходит три раза подряд, система отменяет всютранзакцию и не позволяет данному клиенту работать с банкоматом в течение 60 с.На заметку. Поток событий в варианте использования можноописать различными способами, в том числе в виде неформального структурированного текста (как в предыдущем примере),формального структурированного текста (с предQ и постусловиями), в виде конечного автомата (особенно для реактивных систем) либо с помощью псевдокода.Варианты использования и сценарииДиаграммывзаимодействия,включаядиаграммыпоследовательностии коммуникации,рассматриваютсяв главе 19.Обычно в начале работы вы будете описывать поток событийварианта использования в текстовой форме.
Однако по мере уточнения требований к системе вам при изображении потоков понадобятся диаграммы взаимодействий, позволяющие представить ихграфически. Как правило, вы будете применять диаграмму последовательности для описания основного потока варианта использования, а ее вариации – для исключительных потоков.Желательно отделять основной поток от альтернативных, поскольку вариант использования описывает не одну, а множествопоследовательностей, и выразить все детали интересующего васварианта использования в виде одной последовательности невозможно.
Например, в системе управления человеческими ресурсами присутствует вариант использования Hire employee (Нанять работника). Существует множество разновидностей этой основнойбизнесFфункции. Вы можете переманить работника из другой компании (наиболее общий сценарий), перевести сотрудника из одногоподразделения в другое (что часто случается в транснациональныхкомпаниях) или нанять иностранца (особый случай, регулируемыйспециальными правилами). Каждый из этих вариантов описывается своей последовательностью.Hire employee описывает набор последовательностей, каждая из коЭкземплярыобсуждают- торых представляет один поток из всех возможных вариаций. Такаяся в главе 13. последовательность называется сценарием.
Сценарий (scenario) – этоконкретная последовательность действий, иллюстрирующих поведение. Сценарии по отношению к вариантам использования – то же самое, что экземпляры по отношению к классам, поскольку сценарий –это в основном один экземпляр варианта использования.245На заметку. Существует фактор количественного роста от вариантов использования к сценариям. Система относительнонебольшой сложности может включать несколько дюжин вариантов использования, определяющих ее поведение, и каждый вариант использования может включать до несколькихдюжин сценариев.
У каждого варианта использования вы найдете главные сценарии (которые определяют существенныепоследовательности) и второстепенные (определяющие альтернативные последовательности).Варианты использования и кооперацииВариант использования определяет поведение системы (илиподсистемы, класса или интерфейса), которую вы разрабатываете,не указывая того, как это поведение реализовано. Разделение спецификации поведения и его реализации важно, потому что анализсистемы, специфицирующий поведение, должен по возможностибыть независимым от решений реализации, которые специфицируют, как именно оно обеспечивается.
В конечном счете, однако,вы должны реализовать варианты использования путем созданиясообществ классов и других элементов, работающих вместе для реализации поведения, описанного вариантом использования. Такоесообщество элементов, обладающее как статической, так и динамической структурой, моделируется в UML как кооперация.РеализацииНа рис. 17.4 показано, что реализацию варианта использованияобсуждают- можно специфицировать явно через кооперацию. Поскольку болься в главах 9 шую часть времени данный вариант использования реализуетсяи 10.только одной кооперацией, нет необходимости моделировать этусвязь явно.Кооперацииописаныв главе 28.На заметку. Хотя вы можете и не визуализировать такую этусвязь явно, инструментальные средства, вероятно, ее поддерживают.вариант использованияРис. 17.4.