Практикум для выполнения лабораторных работ состоит из семнадцати лабораторных работ по дисциплинам Спецификация, архитектура и проектирование программных систем
Скачать 2.9 Mb.
|
Ход работы Для создания диаграммы деятельности воспользуйтесь контекстным меню представления системы в навигаторе мо- дели. Основными элементами диаграммы являются состояния действия и переходы. Как и в диаграмме состояний выделяют несколько видов состояний действия (рис. 15.1). Простое состояние деятельности (ActionState) — содер- жит название выполняемого действия. Ссылочное состояние деятельности (SubactivityState) — изображает состояние, детальное описание которого вынесено в отдельную диаграмму. Начальное состояние всегда присутствуют на диаграмме деятельности. Конечное состояние может отсутствовать, если описывается бесконечный алгоритм. Узел принятия решения используется для изображения условных переходов (рис. 15.2). Узел синхронизации используется для изображения не- скольких потоков управления (рис. 15.3). 139 Рис. 15.1. Панель инструментов диаграммы деятельности Рис. 15.2. Пример узла принятия решения 140 Рис. 15.3. Пример ветвления на диаграмме деятельности Поток объектов показывает связь между состояниями обрабатываемых объектов и этапов алгоритма. Состояния принятия и отправки сигналов позволяют показать асинхрон- ные взаимодействия. Дорожки позволяют показать, каким объектом выпол- няются те или иные шаги алгоритма (рис. 15.4). Рис. 15.4. Пример диаграммы деятельности с дорожками Индивидуальные задания Разработать диаграмму деятельности в соответствии с индивидуальным вариантом. Подготовить отчет о выполне- нии лабораторной работы. В отчёт должны входить: – одна или несколько диаграмм деятельности по инди- видуальной теме; – 5– 10 состояний; – текстовое описание выбранного решения. Контрольные вопросы 1. Перечислите основные диаграммы UML. 2. Что такое StarUML? 3. Для чего применяются диаграммы деятельности? 4. Перечислите основные компоненты диаграммы дея- тельности. 5. В чем заключаются отличия статических и динамиче- ских UML диаграмм? Отдел связи с клиентами Склад Отдел продаж Принять заказ на товар Получить оплату Подготовить товар к отправке Отправить товар клиенту Отпустить товар Подобрать товар Заказ [Получен] Заказ [Подготовлен] Заказ [Оформлен] Заказ [Выполнен] 142 Лабораторная работа 16. UML. Компонентная диаграмма Цель работы Получить навыки построения диаграммы компонентов для описания поведения разрабатываемой системы. Теоретические сведения Диаграмма компонентов, в отличие от ранее рассмот- ренных, описывает особенности физического представления системы. Она позволяет определить архитектуру разрабаты- ваемой системы. При этом в роли программных компонентов может выступать исходный, бинарный и исполняемый код. Во многих средах разработки модуль или компонент со- ответствует файлу. Рассматриваемая диаграмма является одним из двух типов так называемых диаграмм реализации. Вторым служит диаграмма размещения. Компонент(component) — физически существующая часть системы, которая обеспечивает реализацию классов и отношений. В языке UML выделяют три вида компонентов: a) развертывания, которые обеспечивают непосред- ственное выполнение системой своих функций. Ими могут быть библиотеки с расширением dll, Web-страницы на языке разметки гипертекста с расширением html и файлы справки с расширением hlp; b) рабочие продукты, как правило, это файлы с исходны- ми текстами программ, например, с расширениями h или срр для языка C++; c) исполнения, представляющие собой исполняемые мо- дули — файлы с расширением ехе. Другим способом спецификации различных видов ком- понентов является явное указание его стереотипа (рис. 16.1). В языке UML для компонентов определены следующие стерео- типы: − библиотека (library) — определяет разновидность ком- понента — в форме библиотеки; 143 − таблица (table) — разновидность — в форме таблицы базы данных; − файл (file) — разновидность в виде файлов с исходными текстами программ; − документ (document) — разновидность в форме доку- мента; − исполнимый (executable) —компонент, который может исполняться в узле. Рис. 16.1. Различные виды компонентов Следующим графическим элементом диаграммы компо- нентов являются интерфейсы. В общем случае интерфейс изображается окружностью, которая соединяется с компонен- том отрезком линии без стрелок, кроме того, интерфейс на диаграмме компонентов может быть изображен в виде прямо- угольника класса со стереотипом < Рис. 16.2. Графическое изображение интерфейсов на диаграмме компонентов Различают два способа связи интерфейса и компонента. Если компонент реализует некоторый интерфейс, то такой интерфейс называют экспортируемым или поддерживаемым. Если же компонент использует некоторый интерфейс, который реализуется другим компонентом, то такой интерфейс для первого компонента называется импортируемым. Особенность импортируемого интерфейса состоит в том, что на диаграмме компонентов это отношение изображается с помощью зависи- мости. Индивидуальные задания Разработать диаграмму компонентов в соответствии с индивидуальным вариантом, лично оговоренным с преподава- телем. Контрольные вопросы 1. Перечислите основные диаграммы UML. 2. Для чего применяются диаграммы компонентов? 3. Перечислите основные элементы диаграммы компо- нентов. 4. Что такое компонент? 5. Какие виды компонентов существуют? 6. Что такое интерфейс? 7. Как изображается интерфейс на диаграмме компо- нентов? 145 Лабораторная работа 17. UML. Диаграмма размещения Цель работы Применить диаграмму размещения для описания пове- дения разрабатываемой системы. Ознакомиться с инструмен- тами, позволяющими строить диаграммы размещения. Теоретические сведения Диаграммы размещения — это один из двух видов диа- грамм, используемых при моделировании физических аспек- тов объектно-ориентированной системы. Такая диаграмма представляет конфигурацию узлов, где производится обработ- ка информации, и показывает, какие артефакты размещены на каждом узле. Диаграммы размещения используются для моделирова- ния статического представления системы с точки зрения раз- мещения. В основном под этим понимается моделирование топологии аппаратных средств, на которых работает система. По существу, диаграммы размещения — это просто диаграммы классов, сосредоточенные на системных узлах. Диаграммы размещения важны не только для визуализа- ции, специфицирования и документирования встроенных, клиент-серверных и распределенных систем, но и для управ- ления исполняемыми системами с использованием прямого и обратного проектирования. При создании программной системы вы как разработчик программного обеспечения обращаете внимание в первую очередь на архитектуру и размещение своих программ в вы- числительной среде. Но в качестве системного инженера вы заинтересованы главным образом в аппаратных и программ- ных средствах системы и в том, как достичь оптимального их сочетания. Иными словами, разработчики программного обес- печения имеют дело с неосязаемыми артефактами вроде моде- ли и кода, а разработчики систем — еще и с аппаратурой, вполне осязаемой. Хотя основное назначение языка UML — визуализация, специфицирование, конструирование и документирование 146 программных артефактов, он применим также и для работы с аппаратными артефактами. Из этого не следует, что UML универсальный язык описания аппаратных средств наподобие VHDL. Однако он все же способен моделировать многие аппа- ратные аспекты системы, чего разработчику программного обеспечения достаточно для описания платформы, на которой система будет работать, а системному инженеру — для сопря- жения программных и аппаратных средств. В UML представление о структуре программной системы дают диаграммы классов и компонентов. Для специфицирования поведения программ применя- ются диаграммы последовательности, коммуникации, состоя- ния и деятельности. А на стыке программной и аппаратурной сфер находятся диаграммы размещения, позволяющие гово- рить о топологии процессоров и устройств, на которых выпол- няется система. В UML диаграммы размещения используются для визуа- лизации статических аспектов физических узлов и их взаимо- связей, а также для описания их деталей, которые имеют отношения к конструированию систем (рис. 17.1). На диаграмме размещения (deployment diagram) пока- зана конфигурация обрабатывающих узлов и артефактов, размещенных в этих узлах. Диаграмма размещения представ- лена в виде графа с ребрами и вершинами. Диаграмма размещения обладает общими свойствами, присущими всем диаграммам, — именем и графическим со- держанием, которое отражает одну из проекций модели. От других диаграмм отличается своим специфическим напол- нением. Диаграммы размещения обычно включают в себя узлы, а также связи зависимости и ассоциации; подобно всем прочим диаграммам, могут содержать примечания и ограничения. На диаграммах размещения бывают представлены артефакты, каждый из которых должен располагаться на каком-нибудь узле, а кроме того, пакеты или подсистемы, — и те и другие используются для группирования элементов модели в круп- ные блоки. 147 Рис. 17.1. Диаграмма размещения Иногда бывает полезно поместить в диаграмму объектов еще и экземпляры, особенно если вы хотите визуализировать один экземпляр из семейства топологии аппаратных средств. Во многих отношениях диаграмма размещения является разновидностью диаграмм классов, фокусирующей внимание прежде всего на системных узлах. Диаграммы размещения используются для моделирова- ния статического вида системы с точки зрения размещения. Это представление в первую очередь обращено на распределе- ние, поставку и установку частей, из которых состоит физиче- ская система. Есть несколько типов систем, для которых диаграммы размещения не нужны. Если вы разрабатываете программу, исполняемую на одной машине и обращающуюся только к стандартным устройствам на этой же машине, управление которыми полностью возложено на операционную систему (возьмем для примера клавиатуру, дисплей и модем персо- нального компьютера), то диаграммы размещения можно 148 игнорировать. Но если разрабатываемая программа обращает- ся к устройствам, которыми операционная система обычно не управляет, или эта программа физически размещена на разных процессорах, то диаграмма размещения поможет выявить отношения между программными и аппаратными средствами. При моделировании статического представления систе- мы с точки зрения размещения диаграммы размещения ис- пользуются, как правило, в трех случаях: 1. Для моделирования встроенных систем. Встроенной (embedded) системой называется аппаратный комплекс, взаи- модействующий с физическим миром, в котором велика роль программного обеспечения. Встроенные системы управляют двигателями, привода- ми и дисплеями, а сами управляются внешними воздействия- ми, например датчиками температуры и перемещения. Диаграмму размещения можно использовать для моделирова- ния устройств и процессоров, из которых состоит встроенная система. 2. Моделирование клиент-серверных систем. Клиент- серверная (client/server) система — это типичный пример архитектуры, где основное внимание уделяется четкому рас- пределению обязанностей между интерфейсом пользователя, существующим на клиенте, и хранимыми данными системы, существующими на сервере. Клиент-серверные системы находятся на одном конце спектра распределенных систем и требуют от вас принятия решений о том, как связать клиенты и серверы сетью, а также о том, как физически распределены программные артефакты между узлами. Диаграммы размещения позволяют моделиро- вать топологию такой системы. 3. Моделирование полностью распределенных систем. На другом конце спектра распределенных систем находятся те из них, которые распределены широко или даже глобально ( fully distributed) и охватывают серверы различных уровней. Часто на таких системах устанавливаются разные версии про- граммных компонентов, часть которых даже мигрирует с од- ного узла на другой. Проектирование подобной системы требует решений, которые допускают непрерывное изменение системной топо- 149 логии. Диаграммы размещения можно использовать для визу- ализации текущей топологии и распределения артефактов системы, чтобы можно было осмысленно говорить о влиянии на нее различных изменений. Ход работы Рассмотрим типичные приемы моделирования полно- стью распределенной системы в UML. Визуализация, специфицирование и документирование топологии полностью распределенных систем представляют собой ценное подспорье для администратора, который должен вести учет вычислительных средств системы. Для этого можно применять диаграммы размещения UML. Документируя полностью распределенную систему, вы можете раскрыть детали сетевых устройств, представляя их в виде узлов со стереотипами. Для моделирования полностью распределенной системы вам потребуется: 1. Идентифицировать устройства и процессоры, как и в случае с более простой клиент-серверной системой. 2. Если необходимо сделать выводы о производительности сетевой инфраструктуры или о влиянии на сеть изменений, — не забыть промоделировать коммуникационные устройства со степенью детализации, достаточной для такого рода оценок. 3. Обратить особое внимание на логическое группирова- ние узлов; для этого можно воспользоваться пакетами. 4. Смоделировать устройства и процессоры с помощью диаграмм размещения. Всюду, где есть возможность, пользо- ваться инструментальными средствами, которые извлекают сведения о топологии системы путем обследования сети. 5. Если необходимо сфокусировать внимание на динами- ке системы, — включить диаграммы вариантов использования для специфицирования поведения, представляющего интерес, и раскрыть варианты использования с помощью диаграмм взаимодействия. При моделировании полностью распределенной системы саму сеть часто также изображают в виде узла. Например, можно представить Internet в виде узла со стереотипом. 150 Таким же образом позволяется оформить локальную (LAN) или глобальную (WAN) сеть. В любом случае вы можете воспользоваться атрибутами и операциями узла для описания свойств сети. На рис. 17.2 показана топология полностью распределен- ной системы. Рис. 17.2 Моделирование полностью распределенной системы Эта конкретная диаграмма размещения является также диаграммой объектов, поскольку содержит только экземпля- ры. Вы видите три консоли (анонимные экземпляры узла console со стереотипом), которые связаны с Internet (очевид- но, узлом-одиночкой). С другой стороны, есть три экземпляра региональных серверов (Regional server), которые служат клиентской ча- стью для национальных серверов (Country server), из которых показан только один. Как следует из примечания, национальные серверы со- единены друг с другом, но такие связи на диаграмме не отра- жены. На этой диаграмме вся сеть Internet представлена узлом со стереотипом. Рассмотрим моделирование клиент-серверной системы. 151 Диаграммы размещения UML можно использовать для визуализации, специфицирования и документирования реше- ний относительно топологии клиент-серверной системы и распределения программных артефактов между клиентом и сервером. Обычно требуется создать одну диаграмму размещения для системы в целом и ряд дополнительных диаграмм, детали- зирующих отдельные ее сегменты. Для моделирования клиент-серверной системы вам по- надобится: 1. Идентифицировать узлы, представляющие процессоры клиента и сервера. 2. Выделить те устройства, которые, так или иначе, вли- яют на поведение системы. Например, вы, скорее всего, захоти- те смоделировать устройство считывания кредитных карт и устройство отображения, отличные от стандартных монито- ров, поскольку их расположение в топологии аппаратных средств системы имеет большое значение с точки зрения си- стемной архитектуры. 3. С помощью стереотипов разработать визуальные обо- значения для процессоров и устройств. 4. Смоделировать топологию узлов на диаграмме разме- щения. Также специфицировать связи между артефактами представления системы с точки зрения реализации и узлами представления системы с точки зрения размещения. На рис. 17.3 показана топология системы, следующей классической клиент-серверной архитектуре. Мы видим, что граница между клиентом и сервером про- ведена явно путем использования пакетов client и server. Пакет client содержит два узла: console (консоль) и kiosk (киоск), имеющих свои стереотипы и потому визуально легко отличимых. Пакет server содержит два вида узлов: caching server (кэширующий сервер) и server (сервер), для каждого из кото- рых дополнительно описаны артефакты, размещаемые в узле. Заметьте, что как для caching server, так и для server указаны множественности, специфицирующие, сколько экземпляров ожидается в конкретной конфигурации. К примеру, из диа- граммы видно, что кэширующих серверов должно быть не меньше двух. Рис. 17.3. Моделирование клиент-серверной системы Индивидуальные задания Разработать диаграмму размещений в соответствии с индивидуальным вариантом. Индивидуальный вариант огова- ривается с преподавателем. Контрольные вопросы 1. Перечислите основные диаграммы UML. 2. Для чего применяются диаграммы размещения? 3. Перечислите основные компоненты диаграммы раз- мещения. 4. В каких случаях используются диаграммы размещения при моделировании статического представления системы? |