2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 73
Текст из файла (страница 73)
В данном контексте ассоциация представляет физическоесоединение узлов, например линию Ethernet, последовательныйканал или разделяемую шину (см. рис. 27.4). Ассоциации можно использовать даже для моделирования непрямых соединенийтипа спутниковой линии связи между двумя удаленными процессорами.«»Contract«»Рис. 27.3. Узлы и артефактыРис. 27.4. СоединенияМножество объектов или артефактов, приписанных к узлу какгруппа, называется элементом распределения (distribution unit).На заметку. Узлы подобны классам в том отношении, что дляних можно задать атрибуты и операции. Например, можно указать, что у узла есть атрибуты скоростьПроцессора и память, а такжеоперации включить, выключить, приостановить.Поскольку узлы аналогичны классам, в нашем распоряжениинаходится весь аппарат ассоциаций. Иными словами, можно использовать роли, множественность и ограничения.
Как показанона рис. 27.4, следует применять стереотипы, если необходимо моделировать разные виды соединений – к примеру, чтобы отличитьсоединение 10FT Ethernet от соединения по последовательному каналу RSF232.384РазмещениеТипичные приемы моделирования385Типичные приемы моделирования»«Моделирование процессоров и устройствМеханизмырасширенияUML обсуждаютсяв главе 6.Моделирование процессоров и устройств, образующих топологиюавтономной, встроенной, клиентFсерверной или распределенной системы, – вот самый распространенный пример использования узлов.Поскольку все механизмы расширения UML применимы и к узлам, то для описания новых видов узлов, представляющих конкретные процессоры и устройства, часто используются стереотипы.Процессор (processor) – это узел, способный обрабатывать данные,то есть исполнять артефакт.
Устройство (device) – это узел, не способный обрабатывать данные (по крайней мере, на выбранном уровне абстракции) и в общем случае используемый для представлениячегоFлибо связанного с реальным миром.Для моделирования процессоров и устройств вам понадобится: Идентифицировать вычислительные элементы представления системы с точки зрения размещения и смоделироватькаждый из них как узел. Если эти элементы представляют процессоры и устройстваобщего вида, приписать им соответствующие стандартныестереотипы. Если же это процессоры и устройства, входящиев словарь предметной области, – сопоставить им подходящие стереотипы с пиктограммой.
Как и в случае моделирования классов, рассмотреть атрибуты и операции, применимые к каждому узлу.В качестве примера на рис. 27.5 изображена диаграмма, которуюмы рассматривали выше. Теперь каждому узлу на ней приписан стереотип. Здесь server (сервер) – это узел со стереотипом процессораобщего вида; kiosk (киоск) и console (консоль) – узлы со стереотипами специализированных процессоров, а RAID farm (RAIDFмассив) –узел со стереотипом специализированного устройства.На заметку. Узлы – это, возможно, именно те строительные блоки UML, которым стереотипы приписываются чащевсего.
Когда в ходе проектирования программной системывы моделируете ее с точки зрения размещения, очень важнопредставлять потенциальным читателям визуальную информацию. Моделируя процессор, являющийся компьютеромобщего назначения, присвойте ему пиктограмму компьютера.
Моделируя какоеQлибо устройство, например сотовыйтелефон, факс, модем или видеокамеру, обозначьте и егоподходящей пиктограммой.««»»Рис. 27.5. Процессоры и устройстваМоделирование распределения артефактовСемантикаместоположениярассматриваетсяв главе 24.При моделировании топологии системы бывает полезно визуализировать или специфицировать физическое распределение ее артефактов по процессорам и устройствам, входящим в состав системы.Моделирование распределения артефактов состоит из следующих шагов: Припишите каждый значимый компонент системы к определенному узлу. Рассмотрите возможности дублирования размещения артефактов.
Довольно распространен случай, когда одни и те жеартефакты (например, некоторые исполняемые программыи библиотеки) размещаются одновременно в нескольких узлах. Изобразите распределение артефактов по узлам одним из трехспособов:1. Не делайте размещение видимым, но оставьте его на заднем плане модели, то есть в спецификации каждого узла;2. Соедините каждый узел с артефактами, которые на немразмещены, связью зависимости;3. Перечислите артефакты, размещенные на узле, в дополнительном разделе.ЭкземплярыПоследний из перечисленных способов проиллюстрирован наобсуждают- рис.
27.6, основанном на предыдущих диаграммах. Здесь специфися в главе 13, цированы исполняемые артефакты, размещенные в каждом узле.диаграммыЭта диаграмма несколько отличается от предыдущих – она являетобъектов –ся диаграммой объектов, на которой визуализированы конкретныеэкземпляры каждого узла. В данном случае экземпляры RAID farmв главе 14.Размещение386(RAIDFмассив) и kiosk (киоск) анонимны, а у остальных двух экземпляров есть имена: с для console (консоль) и s для server (сервер). Длякаждого процессора на рисунке отведен дополнительный раздел,показывающий, какие артефакты на нем развернуты. Объект serverтакже изображен со своими атрибутами: processorSpeed (скоростьПроцессора) и memory (память), причем их значения видимы.
Разделразмещения может содержать список имен артефактов в текстовомвиде или вложенные графические символы артефактов.Глава 28. КооперацииDeploysВ этой главе:Deploys«»Deploys«»Рис. 27.6. Моделирование распределения артефактовСоветы и подсказкиХорошо структурированный узел обладает следующими свойствами: представляет четкую абстракцию некоторой сущности из словаря аппаратных средств области решения; декомпозирован лишь до такого уровня, который необходим,чтобы выразить ваши намерения; раскрывает только те атрибуты и операции, которые относятся к моделируемой области; явно показывает набор артефактов, которые на нем расположены; соединен с другими узлами способом, отражающим топологию реальной системы.Изображая узел в UML, руководствуйтесь следующими принципами: определите для своего проекта или организации в целом набор стереотипов с подходящими пиктограммами, которыенесут очевидную для читателя смысловую нагрузку; показывайте только те атрибуты и операции (если таковыесуществуют), которые необходимы для понимания назначения узла в данном контексте.Кооперации, реализации и взаимодействияМоделирование реализации варианта использованияМоделирование реализации операцииМоделирование механизмаМатериализация взаимодействийВ контексте системной архитектуры кооперация позволяет выделить концептуальную часть, которая подчеркивает и статические,и динамические аспекты.
Кооперацией называется сообществоклассов, интерфейсов и других элементов, которые работают совместно, обеспечивая поведение, представляющее собой нечто большее, чем поведение всех тех же частей в сумме.Кооперация помогает специфицировать реализацию вариантовиспользования и операций, а также моделировать архитектурнозначимые механизмы системы.ВведениеПредставьте самое прекрасное здание, которое вы когдаFлибовидели, – скажем, Тадж Махал или Собор Парижской Богоматери.Красота обеих построек не поддается описанию.
Их архитектурав общемFто проста, хотя заложенные в ней идеи отнюдь не лежатна поверхности. В каждой конструкции легко проглядывается симметрия. Если посмотреть внимательнее, можно заметить подробности, прекрасные сами по себе, которые в сочетании друг с другомсоздают впечатление гармонии и функциональности – большей,чем таится в каждой отдельной детали.А теперь вспомните самое нелепое и отвратительное зданиеиз виденных вами – допустим, кафе по соседству с вашим домом.Здесь налицо смешение архитектурных стилей: в общий модернистский дизайн никак не вписывается островерхая крыша, украшения не гармонируют ни с тем, ни с другим, кричащие цветаоскорбляют взгляд. Обычно такие здания – «шедевры» обычных388КооперацииБазовые понятияремесленников, несущие в себе только идею функциональности,без претензий на стиль.Что же отличает эти два вида гражданской архитектуры? ВоFпервых, в величественных зданиях мы видим изящество дизайна, которого явно не хватает забегаловкам.
Например, в конструкции ТаджМахала присутствуют сложные, симметричные и сбалансированныегеометрические элементы. Вообще, в архитектуре не так уж многостилей, которые удачно сочетаются друг с другом, и талантливыйспециалист всегда это учитывает. ВоFвторых, здания, спроектированные со вкусом, имеют общие структуры, которым подчиненывсе отдельные элементы конструкции.
Так, в Соборе ПарижскойБогоматери некоторые стены являются несущими и служа т опоройкуполу собора. А часть из них наряду с другими архитектурнымидеталями используется для отвода воды и нечистот.Пять предИ опять же, говоря о программном обеспечении, мы сможемставленийпровести прямую аналогию с областью строительства. Качестархитекту- венная программная система не только выполняет возложенныеры обсужда- на нее функции, но и демонстрирует гармонию, то есть уравновеются в глашенность проекта, благодаря чему легко поддается модификации.ве 2. Образцы Эта гармоничность и сбалансированность чаще всего объясняетсяи каркасытем, что хорошо структурированные объектноFориентированныерассматсистемы содержат множество повторяющихся структурных элеменриваютсятов9образцов (patterns).
Если посмотреть на любую качественнуюв главе 29.объектноFориентированную систему, то можно обнаружить элементы, взаимодействующие друг с другом для реализации некоторогосовместного поведения, представляющего собой нечто большее,чем поведение суммы всех тех же составляющих. Многие элементыхорошо структурированных систем в разных комбинациях принимают участие в функционировании различных механизмов.Структурное моделирование обсуждаетсяв частях IIи III, моделированиеповедения –в частях IVи V. Взаимодействиярассматриваютсяв главе 16.Образцыи каркасыобсуждаютсяв главе 29.Диаграммыклассов обсуждаютсяв главе 8,диаграммывзаимодействия – в главе 19.На заметку.