2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 46
Текст из файла (страница 46)
В то времякак классы, интерфейсы, компоненты, узлы и их связи представляют статические аспекты системы, взаимодействия отражают еединамические аспекты.Моделируя взаимодействие, вы, по сути, создаете сценарийдействий, происходящих в наборе объектов. При этом могут применяться такие методы, как использование CRCFкарт, позволяющихисследовать и продумать все, что касается взаимодействий.Для моделирования потока управления необходимо: Установить контекст взаимодействия: система ли это в целом, класс или индивидуальная операция. Определить фазу взаимодействия, прояснив, какие объектыиграют те или иные роли. Установить начальные характеристики объектов, включая значения атрибутов, состояниеи роль.
Дать ролям имена.Рис. 16.6. Поток управления во времениДиаграммыкоммуникации обсуждаютсяв главе 19.Рис. 16.7 демонстрирует пример, семантически эквивалентныйпредыдущему, но в виде диаграммы коммуникации, раскрывающейструктурную организацию объектов. Здесь показан тот же потокуправления, однако в дополнение ко всему прочему визуализированы ссылки между объектами.Взаимодействия236Советы и подсказки237 показывайте только те свойства каждого объекта (значения атрибутов, роли исостояния), которые важны для понимания взаимодействия в его контексте; показывайте лишь те свойства каждого сообщения (параметры, семантикупараллельности, возвращаемые значения), которые важны для пониманиявзаимодействия в его контексте.Рис.
16.7. Организация потока управленияСоветы и подсказкиМоделируя взаимодействия в UML, помните, что каждое из нихпредставляет динамический аспект сообщества объектов. Хорошоструктурированное взаимодействие наделено следующими признаками: достаточно просто и описывает только те объекты, которыеработают вместе для обеспечения поведения, большего чемповедение суммы этих объектов, взятых порознь; имеет четкий контекст и может представлять взаимодействиеобъектов в контексте операции, класса или системы в целом; эффективно обеспечивает нужное поведение с оптимальнымбалансом времени и ресурсов; способно к адаптации: элементы взаимодействия, которыемогут изменяться, должны быть изолированы с тем, чтобыих можно было легко модифицировать; доступно пониманию и однозначно, тем самым исключая какие бы то ни было шероховатости, скрытые эффекты и неясную семантику.Когда вы изображаете взаимодействие в UML, учитывайте следующее: выберите способ отображения взаимодействия: либо по хронологическому порядку сообщений, либо по их расположению в контексте некоей структурной организации объектов.Применять оба способа одновременно нельзя; обратите внимание на то, что события в некоторых субпоследовательностях упорядочены лишь частично.
Точнее говоря,каждая из них упорядочена, но относительное время наступления событий в разных субпоследовательностях не фиксировано;ВведениеГлава 17. Варианты использованияВ этой главе:Варианты использования, действующие лица, включениеи расширениеМоделирование поведения элементаРеализация вариантов использования с помощью кооперацийНи одна грамотно построенная система не существует в изоляции:она взаимодействует с действующими лицами (людьми или системами), которые используют ее для достижения некоторой цели,ожидая от нее определенного поведения. Вариант использованияспецифицирует это ожидаемое поведение субъекта (системы или еечасти), – он описывает последовательности действий, включая ихварианты, которые субъект осуществляет для достижения действующим лицом определенного результата.Варианты использования применяются для выражения требуемого поведения разрабатываемой системы, без описания реализации этого поведения.
Они позволяют разработчикам, конечнымпользователям и экспертам в предметной области достичь взаимопонимания, а кроме того, помогают удостовериться в правильностиархитектурных решений и проверять систему по ходу ее разработки.В процессе создания системы варианты использования реализуются с помощью коопераций, элементы которых работают совместнодля достижения целей каждого из них.Хорошо структурированные варианты использования описывают только существенные аспекты поведения и не являются ни слишком обобщенными, ни чересчур подробными.ВведениеПравильно спроектированный дом – это нечто намного большее, чем ряд стен, подпирающих крышу, которая защищает жильцовот непогоды.
Работая вместе с архитектором над проектом дома, вынаверняка будете учитывать предполагаемое использование вашихпомещений. Если вы любите принимать гостей, нужно продумать239план гостиной, чтобы людям было удобно общаться. Думая о приготовлении пищи для семьи, следует проектировать кухню таким образом, чтобы все шкафы и бытовая техника были размещены удобнымобразом. Даже маршрут транспортировки продуктов из машины накухню в значительной мере повлияет на расположение комнат. Еслиу вас большая семья, надо заранее позаботиться о ванных комнатах.Определение их оптимального количества и размещения позволитизбежать «очередей» по утрам, когда все одновременно собираютсяв школу или на работу.
Если в семье есть подростки, это особенноактуально, поскольку цена эмоциональных стрессов высока.Размышления о том, как вы и ваша семья будете распоряжаться домом, – это пример анализа вариантов использования. Вы рассматриваете разные способы использования дома, которые в итогеобуславливают его архитектуру. Для многих семей варианты использования схожи: во всех домах едят, спят, растят детей и хранят воспоминания. Но в каждом случае выдвигаются и индивидуальныетребования к жилищу. Потребности большой семьи, например, будут отличаться от запросов молодого человека, только что окончившего колледж.
И эти различия окажут решающее влияние на то, какбудет выглядеть готовый дом.Важнейшая особенность разработки вариантов использования(вроде вышеописанного) состоит в том, что вы не специфицируетеконкретный способ их реализации. Например, поведение банкоматаможно описать посредством вариантов взаимодействия с ним пользователей, но вам необязательно при этом знать, что у него внутри.Варианты использования специфицируют внешнее поведение, ничего не говоря о том, как его достичь. Это очень важно, потому чтопозволяет вам как эксперту или конечному пользователю общатьсяс разработчиками, конструирующими систему в соответствии с вашими требованиями, не углубляясь в детали реализации.
Подробности будут рассмотрены позже, а на данном этапе вы можете сосредоточиться на наиболее существенных проблемах.В UML поведение моделируется посредством вариантов использования, специфицируемых независимо от реализации. Вариант использования – это описание множества последовательных действий(включая вариации), которые выполняются некоторым субъектомс целью получения результата, значимого для некоторого действующеголица. Это определение включает в себя несколько важных пунктов.На системном уровне вариант использования описывает наборВзаимодействияпоследовательностей, каждая из которых представляет взаимодействиеобсуждают- сущностей, находящихся вне системы (действующих лиц), с сася в главе 16, мой системой и ее ключевыми абстракциями.
Такие взаимодейсттребования – вия в действительности являются функциями уровня системы,в главе 6.которыми вы пользуетесь для визуализации, специфицирования,240Варианты использованияконструирования и документирования ее ожидаемого поведения наэтапах сбора и анализа требований к системе в целом. Например,один из основных вариантов использования в работе банка – этообработка займов.Вариант использования предполагает взаимодействие действующих лиц и системы или другого субъекта. Действующее лицопредставляет собой логически связанное множество ролей, которые играют пользователи системы во время взаимодействия с ней.Действующими лицами могут быть как люди, так и автоматизированные системы.
Например, при моделировании работы банкапроцесс обработки займов включает в себя, помимо всего прочего,взаимодействие клиента с сотрудником кредитного отдела.Варианты использования могут иметь разновидности. В любойсистеме существуют варианты использования, которые либо являются специализированными версиями других, более общих, либовходят в состав других вариантов использования, либо расширяютих поведение. Вы можете выделить общее, повторно применяемоеповедение из множества вариантов использования, организуя ихв соответствии с этими тремя видами связей.