2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 72
Текст из файла (страница 72)
В этом смысле артефакты UMLмогут быть графическим интерфейсом инструментов управленияконфигурацией и контроля версий.Для большинства систем файлы исходного кода создаютсяс учетом решений, принятых вами относительно того, как долженбыть сегментирован исходный код для нужд среды разработки. Этифайлы используются для хранения деталей реализации классов,интерфейсов, коопераций и других логических элементов – промежуточной фазы процесса создания физических бинарных артефактов, которые производятся из таких элементов инструментальными средствами разработки.
Большей частью подобные инструментыопределяют стиль организации (часто – один или два файла на класс),но все же для разработчика полезно визуализировать связи междуэтими файлами. Решения относительно того, как организовать исходные файлы в пакеты и как управлять их версиями, принимаютсяна основе выбранных способов управления изменениями.Чтобы смоделировать исходный код, необходимо: С учетом ограничений, накладываемых средствами разработки, смоделировать файлы, используемые для хранениядеталей реализации логических элементов, наряду с их зависимостями компиляции.
Если важно, чтобы модели были согласованы с инструментами разработки и управления конфигурацией, для каждогофайла, подверженного управлению конфигурацией, включить помеченные значения – такие как информация о версии, авторе и помещении файла в репозиторий / извлечениииз репозитория. По возможности позволять инструментам разработки управлять связями между этими файлами и использовать UMLтолько для того, чтобы визуализировать и документироватьтакие связи.377{version = 5.3}{version = 5.3.7}{version = 4.6}{version = 4.1}{version = 4.1}Рис. 26.6. Моделирование исходного кодаПакетыобсуждаютсяв главе 12.Связь трассировкикак разновидностьзависимостирассматриваетсяв главах 5и 10.По мере развития ваших моделей вы обнаружите, что многиефайлы исходного кода, концептуально и семантически связанные,имеют тенденцию собираться в группы.
Как правило, инструменты разработки будут размещать их в разных директориях. В UMLдля моделирования подобных кластеров исходного кода можно использовать пакеты.Кроме того, в UML есть возможность визуализировать отношения между классом и его файлом исходного кода, а также, в своюочередь, связь файла исходного кода с исполняемой программой илибиблиотекой посредством трассировки (trace relationship). Однаконеобходимость в такой детализации при моделировании возникаетредко.Советы и подсказкиРаботая с артефактами в UML, важно помнить о том, что выосуществляете моделирование в физическом измерении. Хорошоструктурированный артефакт обладает следующими характеристиками:378Артефакты непосредственно реализует набор классов, работающих совместно для обслуживания определенной семантики интерфейсов, – экономно и элегантно; слабо связан с другими артефактами.Глава 27.
РазмещениеВ этой главе:Узлы и соединенияМоделирование процессоров и устройствМоделирование распределения артефактовРазработка системУзлы, равно как и артефакты, существуют в материальном миреи являются важными строительными блоками при моделированиифизических аспектов системы. Узел – это физический элемент, который существует во время выполнения и представляет вычислительный ресурс, обычно обладающий как минимум некоторым объемомпамяти, а зачастую также и процессором.Узлы используются для моделирования топологии аппаратныхсредств, на которых работает система.
Как правило, узел – это процессор или устройство, на котором могут быть размещены артефакты.Хорошо спроектированные узлы точно соответствуют словарюаппаратного обеспечения области решения.ВведениеМоделирование непрограммныхсущностейобсуждается в главе 4,пять видовсистемнойархитектуры описаныв главе 2.Артефакты, которые вы разрабатываете или повторно используете в программной системе, должны быть размещены на какойFтоаппаратуре, иначе они не смогут выполняться. Собственно, программная система и состоит из этих двух частей: программногои аппаратного обеспечения.При проектировании архитектуры программной системы приходится рассматривать как логические, так и физические аспекты.К логическим элементам относятся такие сущности, как классы,интерфейсы, кооперации, взаимодействия и автоматы, а к физическим – артефакты (представляющие физическую упаковку логических сущностей) и узлы (представляющие аппаратуру, на которойразмещаются и выполняются артефакты).Размещение380Стереотипыобсуждаются в главе 6.Базовые понятия381Графическое изображение узла в UML показано на рис.
27.1.Это каноническое обозначение позволяет визуализировать узел,не конкретизируя стоящей за ним аппаратуры. С помощью стереотипов – одного из механизмов расширения UML – можно адаптировать эту нотацию для представления конкретных процессорови устройств.Deploysквалифицированные именаРис. 27.1. УзлыРис. 27.2.
Узлы с простыми и квалифицированными именамиНа заметку. Язык UML предназначен главным образом длямоделирования программных систем, хотя в сочетании с языками моделирования аппаратных средств типа VHDL он можетоказаться весьма полезным и при моделировании аппаратных систем. Кроме того, UML обладает достаточной выразительной мощностью для моделирования топологии автономных (standQalone), встроенных (embedded), клиентQсерверных(clientQserver) и распределенных (distributed) систем.На заметку. Имя узла может состоять из любых букв латинского алфавита, цифр и некоторых знаков препинания (за исключением таких, как двоеточие, которое применяется для отделения имени узла от имени включающего пакета).
Имя можетзанимать несколько строк (количество символов не ограничено). На практике для именования узлов используют одноили несколько существительных, взятых из словаря реализации.Базовые понятияУзел (Node) – это физический элемент, который существует вовремя выполнения и представляет вычислительный ресурс, обычнообладающий как минимум некоторым объемом памяти, а зачастуюи процессором. Изображается в виде куба.ИменаИмя узладолжно бытьуникальнымвнутри включающего егопакета, этообсуждаетсяв главе 12.У каждого узла должно быть имя, отличающее его от прочих узлов. Имя представляет собой текстовую строку. Взятое само по себе,оно называется простым именем. К квалифицированному имени спереди добавлено имя пакета, в котором находится данный узел.Обычно при изображении узла указывают только его имя, каквидно из рис.
27.2. Но, как и в случае с классами, вы можете снабжать узлы помеченными значениями или дополнительными разделами, чтобы акцентировать детали.Узлы и артефактыАртефактыобсуждаются в главе 26.Во многих отношениях узлы подобны артефактам. Те и другиенаделены именами, могут участвовать в связях зависимости, обобщения и ассоциации, бывают вложенными, могут иметь экземпляры и вступать во взаимодействия. Однако между ними есть и существенные различия: артефакты принимают участие в работе системы, а узлы –это сущности, на которых работают артефакты; артефакты представляют физическую упаковку логическихэлементов, узлы представляют физическое размещение артефактов.Первое из этих отличий самое важное. Суть его проста: узлыисполняют артефакты, артефакты работают на узлах.Размещение382Зависимостиобсуждаются в главе 5и 10.Второе различие предполагает наличие некоторой связи междуклассами, артефактами и узлами.
В самом деле, артефакт – это материализация множества логических элементов, таких как классыи кооперации, а узел – место, на котором размещены артефакты.Класс может быть реализован одним или несколькими артефактами, а артефакт, в свою очередь, размещен в одном или несколькихузлах. Как показано на рис. 27.3, связь между узлом и артефактами,которые на нем размещены, может быть явно изображена с помощью вложенности. Как правило, вам не придется визуализироватьтакие связи. Лучше обозначать их как часть спецификации узла,используя, например, таблицу.узлы«artifact»pos.exeартефакты«artifact»contacts.exeSaleБазовые понятия383Организация узловУзлы можно группировать в пакеты точно так же, как классыи артефакты.Можно также организовывать узлы, специфицируя связи зависимости, обобщения и ассоциации (включая агрегации) междуСвязи обсуж- ними.Пакетыобсуждаютсяв главе 12.даютсяв главе 5 и 10.СоединенияСамый распространенный вид связи между узлами – это ассоциация.