Язык UML

Краткий справочник, БГУИР, Минск, 2010 г., 32 с.Диаграмма классов Диаграмма объектов Диаграмма вариантов использования Д

338 11 648KB

Russian Pages [32]

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

Язык UML

  • Commentary
  • 1164290
  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Министерство образования Республики Беларусь Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» Кафедра интеллектуальных информационных технологий

Курс «Проектирование программ в интеллектуальных системах» КРАТКИЙ СПРАВОЧНИК ПО ЯЗЫКУ UML

Минск 2010

Составители: Е.А. Лейченок (гр. 521701), С.Е. Кушмар (гр.721702), Т.В. Островская (гр.721702)

2

Содержание Введение ............................................................................................................... 4 Диаграмма классов............................................................................................... 5 Диаграмма объектов............................................................................................. 9 Диаграмма вариантов использования ............................................................... 10 Диаграмма последовательности ........................................................................ 13 Диаграмма деятельности ................................................................................... 17 Диаграмма состояний......................................................................................... 21 Диаграмма компонентов .................................................................................... 23 Диаграмма развертывания ................................................................................. 26 Словарь терминов .............................................................................................. 29

3

Введение UML (сокр. от англ. Unified Modeling Language – унифицированный язык моделирования) – язык для визуализации, специфицирования, конструирования и документирования систем в основном в области программного обеспечения. С помощью UML можно разработать детальный план создаваемой системы, отображающий не только ее концептуальные элементы, такие как системные функции и бизнес-процессы, но и конкретные особенности реализации, в том числе классы, написанные на специальных языках программирования, схемы баз данных и программные компоненты многократного использования. В начале 90-х годов существовало множество методов объектноориентированного моделирования, которые имели схожие идеи, но использовали различные системы обозначений. Это затрудняло взаимодействие между разработчиками. В 1994 году Джеймс Рабмо (Jum Rumbaugh) присоединился к компании Rational Software и вместе с Грейди Бучем (Grady Booch) начал работу над созданием нового языка объектноориентированного моделирования. За основу языка были взяты методы моделирования, разработанные Бучем, а также методология OMT (ObjectModeling Technique), разработанная Рамбо. В 1995 году к компании присоединился Айвар Джекобсон (Ivar Jacobson), который привнес концепцию OOSE (Object-Oriented Software Engineering). В 1996 году консорциум OMG (Object Management Group) объявил конкурс на лучший стандарт обозначений для объектно-ориентированного моделирования. Полученные от различных компаний предложения были объединены в единую систему. Результатом совместной работы стала спецификация UML 1.0, вышедшая в январе 1997 года. В ноябре того же года за ней последовала версия 1.1. В 2005 году была принята версия UML 2.0, в которой семантика языка была значительно уточнена и расширена для поддержки методологии MDD (Model Driven Development). На данный момент (начало 2010 года) текущая версия – UML 2.2. Наиболее актуальную информацию по UML можно найти по адресу http://www.uml.org/.

4

Диаграмма классов Элемент Класс

Изображение

Описание Класс изображается в виде прямоугольника, который может иметь несколько отделов. В первом отделе (см. ) указывается имя класса. Имя стереотипа указывается в кавычках над именем класса. Во втором отделе (см. ) указывается список атрибутов. Синтаксис атрибута: [видимость] имя [кратность] [: тип] [= начальное значение] [{свойста}]

В третьем отделе (см. ) указывается список операций. Синтаксис операции:

[видимость] имя [(список параметров)] [: тип, возвращаемого значения] [{свойста}]

Синтаксис параметра:

[направление] имя : тип [= значение по умолчанию]

Интерфейс

«interface» IURLStreamConnection

+ + +

openConnection() parseURL() setURL()

ISensor

Шаблон

Видимость атрибута или операции обозначается при помощи префикса: символ '+' – public (открытая), '#' – protected (защищенная), '-' – private (закрытая), '~' – package (пакетная). Отсутствие префикса не позволяет делать никаких заключений о видимости. В четвертом отделе указываются обязанности – те требования, которым должен подчиняться класс. Интерфейс используется для описания услуг, предоставляемых классом. Интерфейс графически изображается окружностью или в виде класса со стереотипом "interface". Интерфейс не может содержать атрибутов. Принято к началу имени интерфейса добавлять букву "I". Если интерфейс изображен окружностью, то для обозначения отношения реализации используется сплошная линия, а если в виде класса, то используется стандартная форма отношения реализации. Шаблон предназначен для обозначения такого класса, который имеет один или несколько нефиксированных формальных параметров. Шаблон изображается в виде класса, в верхнем правом углу которого находится дополнительная ячейка, нарисованная пунктиром (см. ). В этой ячейке указываются параметры шаблона.

5

Отношение ассоциации

Человек +сотрудник

*

работает на +работодатель

0..1

Компания

Отношение агрегации

Газонокосилка *

Ассоциация представляет собой отношение между экземплярами классов. Ассоциация изображается линией, соединяющей два класса. Ассоциации может быть присвоено имя, описывающее природу отношения. На каждом конце ассоциации может быть обозначена роль, которую играет класс в данном отношении. Кратность показывает, сколько объектов может участвовать в данном отношении, и указывается на концах ассоциации. Кратность указывается в виде диапазона, например "1" (ровно один), "1..*" (один и более), "3..5" (от трех до пяти включительно), "*" ("много" – ноль и более). Направление ассоциации (навигация) можно выразить явно, дополнив ее стрелкой, указывающей на допустимое направление движения. Агрегация является разновидностью ассоциации и обозначает отношение "часть-целое". Агрегация изображается в виде простой ассоциации с незакрашенным ромбом со стороны целого.

* Колесо Отношение композиции

Компания 1 * Отдел

Отношение обобщения

Замкнутая фигура

Эллипс

Композиция является частным случаем агрегации и подразумевает, что части принадлежат целому: объект-часть может принадлежать только единственному целому, жизненный цикл частей совпадает с жизненным циклом целого. Композиция изображается в виде простой ассоциации с закрашенным ромбом со стороны целого. Обобщение описывает отношение между общей сущностью, которую называют суперклассом или родителем, и более специализированной ее разновидностью, называемой подклассом или потомком. Обобщение обозначается незакрашенной стрелкой, направленной к суперклассу.

6

Отношение зависимости

Весы «use» Продавец

Отношение реализации

«interface» Ввод данных

Входной поток данных

Классассоциация

Файл

*

Пользователь

*

Доступно -

Квалифицированная ассоциация

разрешение доступа

Банк номер счета

1 0..1 Счет

Зависимость описывает отношение использования, определяющее, что изменение в спецификации одной сущности может повлиять на другую сущность, которая ее использует. Зависимость изображается в виде пунктирной стрелки, направленной в сторону той сущности, от которой зависит другая сущность. Для обозначения специальных видов зависимости стрелка может помечаться ключевым словом в кавычках: bind (определяет, что источник инстанцирует целевой шаблон с заданными фактическими параметрами), use (показывает, что семантика исходного элемента зависит от семантики открытой части целевого) и др. Реализация описывает отношение между классификаторами, при котором один из них описывает контракт, а другой гарантирует его выполнение. Реализация изображается в виде пунктирной незакрашенной стрелки, указывающей на классификатор, который определяет контракт. Класс-ассоциация может иметь атрибуты и операции и участвовать в ассоциациях. Экземпляры класса-ассоциации обладают индивидуальностью, связанную с теми объектами, между которыми они проводятся. Класс-ассоциация обозначается в виде класса, соединенного пунктирной линией с единственной ассоциацией. Квалифицированная ассоциация является ассоциацией, у которой имеется специальный атрибут (квалификатор), используемый для того, чтобы отличать друг от друга объекты, находящиеся на конце ассоциации с кратностью много. Квалификатор позволяет выбрать один объект из множества целевых объектов, уменьшая таким образом эффективную кратность до значения "один". Квалификатор обозначается прямоугольником, который пристыковывается к исходному классу и соединяется с ассоциацией.

7

Примеры диаграммы классов class Диаграмма классов Компания

1

1

1..*

1..*

Отдел -

Офис

Местонахождение

имя: Имя

1

адрес: Адрес

* -

* 1

1..* +сотрудник

Штаб-квартира

+начальник

1

Человек Запись кадрового учета

-

имя: Имя табельный номер: int

+ +

получить фотографию() получить контактную информацию()

-

оклад: Оклад личное дело: Личное дело

IЗащищенная информация

class Курочка Ряба

Человек + +

Животное

+хозяин

битьЯйцо() : void плакать() : void

+питомец Дед + +

+муж

битьЯйцо() : void 0..1 плакать() : void

0..1

использует

Курица

Баба

+жена + +

битьЯйцо() : void плакать() : void

+

Имя: = Ряба

+ +

снес ти() : Яйцо утешать() : void

+курица

использует

+

битьЯйцо() : void

+ +

бежать() : void хвос тикомМахнуть() : void

1

несет +яйцо

Инструмент

Мышь

0..*

Яйцо

разбивает + +

разбиться() : void упас ть() : void

Хвост +

битьЯйцо() : void

«enumeration» Сорт «enum» Золотое Прос тое

8

class Пример Авиалиния +

Название авиалинии: String

номер рейса 1 1

цель прибытия

Аэропорт + +

код аэропорта: int название: String

1 вылет 1

Описание рейса

+ * + + + * +

время в пути: int конечная дата: String начальная дата: String * частота: int время прибытия: int

Описание самолета + 1

номер модели: int

1

дата вылета 1 0..1

*

Вылет + +

Реальное время прибытия: int * Реальное время вылета: int

Самолет 1 -

номер регистрации: int

class Класс-ассоциация Бухгалтер

+работник

+работодатель

1..*

Фирма

*

Контракт + +

условия оплаты: char описание работы: char

Диаграмма объектов Элемент Объект

Изображение

Описание Для обозначения объекта используется прямоугольник, в первом отделе которого (см. ) указывается составное имя: имя объекта, двоеточие и имя класса, к которому относится этот объект. Обе части составного имени не являются обязательными. И имя объекта, и имя класса подчеркиваются. Во втором отделе прямоугольника (см. ) могут быть указаны значения атрибутов.

9

Пример диаграммы объектов class Диаграмма объектов с : Компания

d1 : Отдел -

d2 : Отдел

имя = "Sales"

-

имя = "R&D"

d3 : Отдел -

имя = "US Sales" : Контактная информация -

e-mail = "[email protected]"

+менеджер p : Человек -

табельный номер = 4425 имя = "Джо Смит"

Диаграмма вариантов использования Элемент Актер

Изображение

Клиент

Описание Актер представляет собой объект или множество объектов, непосредственно взаимодействующих с системой, но не являющихся ее частью. Актер определяется только по отношению к системе, а не как некоторая самостоятельная сущность. Актерами могут быть люди, устройства и другие системы. Актер изображается в виде человеческой фигурки. Имя актера должно выражать конкретную роль во взаимодействии с рассматриваемой системой.

10

Вариант использования

Отношение включения

Провести техническое обслуживание

Проанализировать риск

Договориться о цене «include» «include»

Определить цену сделки

Отношение расширения

Отгрузить заказ точки расширения: материалы готовы

«extend»

Отгрузить частично выполненный заказ

Каждый вариант использования описывает элемент функциональности, предоставляемой системой. Вариант использования должен описывать полную транзакцию, значимую для актера. Вариант использования обозначается эллипсом, внутри которого указывается его название. В качестве названия используются короткие глагольные фразы, обозначающие некоторое поведение и взятые из словаря моделируемой системы. Варианты использования заключаются в прямоугольник, снаружи которого изображаются актеры. Название системы указывается около одного из краев прямоугольника. Актеры и варианты использования соединяются сплошными линиями. Вариант использования может иметь несколько актеров, актер может участвовать в нескольких вариантах использования. Отношение включение позволяет включить последовательность одного варианта использования в другой вариант использования. С помощью отношения включения ряд обязанностей системы описывается в одном месте (во включаемом варианте использования), а остальные варианты использования, когда необходимо, включают эти обязанности в свой набор. Отношение включения обозначается пунктирной стрелкой, направленной от исходного (включающего) варианта использования к целевому (включаемому) варианту использования. Над стрелкой ставится ключевое слово «include». Отношение расширения добавляет к варианту использования дополнительное поведение: один вариант использования (расширяющий) добавляется к другому варианту использования (базовому). Отношение расширения применяют для моделирования таких частей варианта использования, которые воспринимаются актером как необязательное поведение системы. Базовый вариант использования расширяется только в некоторых точках, называемых точками расширения. Отношение расширения обозначается пунктирной стрелкой, направленной от расширяющего варианта использования к базовому варианту использования. Над стрелкой ставится ключевое слово «extend». Точки расширения указываются в дополнительном разделе варианта использования.

11

Отношение обобщения

Отношение обобщения позволяет описывать вариации базового варианта использовании. Вариант использования, являющийся родителем, описывает общую последовательность поведения. Его потомки конкретизирует поведение родителя, добавляя новые элементы в его последовательность или уточняя существующие. Отношение обобщения обозначается в виде незакрашенной стрелки, направленной от потомка к родителю. Также отношение обобщения может применяться для конкретизации актеров.

Проверить клиента

Сканирование сетчатки

Клиент

Корпоративный клиент

Примеры диаграммы вариантов использования uc Пример Система продажи товаров по каталогу

Согласовать условия оплаты

Заказать товар со склада

Обеспечить покупателя информацией «include»

Продавец «include»

«include»

Покупатель

Оформить заказ на покупку товара

«extend»

Продавец компьютеров

Оформить заказ на покупку компьютера

«extend»

Покупатель компьтеров

Запросить каталог товаров

12

uc Сетевая брокерская система

Клиент

Биржа ценных бумаг

Сетевая брокерская система Защищенный сеанс «include»

«include» «include»

Управление счетом

Заключить сделку

Заключить сделку с облигациями

Заключить сделку с акциями

«extend»

«extend»

Заключить сделку с маржой

«include»

Проверить пароль

Заключить сделку с опционами

«extend» «extend»

Продажа на срок без покрытия

Ограничить цену

Диаграмма последовательности Элемент Линия жизни

Изображение : Объект

Описание Линия жизни отражает существование объекта во времени. Линия жизни обозначается вертикальной пунктирной линией. Время жизни объекта направлено сверху вниз. Временной масштаб не соблюдается. Если объект существует на протяжении всего взаимодействия, то он изображается в верхней части диаграммы и его линия жизни присутствует на всей диаграмме.

13

: Объект

Если объект создается во время взаимодействия, то его линия жизни начинается с момента получения сообщения о создании. Если объект уничтожается во время взаимодействия, то конец линии жизни обозначается символом X и определяется моментом получением сообщения об уничтожении.

Фокус управления

Фокус управления показывает промежуток времени, в течение которого объект выполняет какое-либо действие, непосредственно или с помощью подчиненной процедуры. Фокус управления изображается в виде вытянутого прямоугольника, Верхняя грань которого выравнивается по временной оси с моментом начала действия, нижняя - с моментом его завершения (и может быть помечена сообщением о возврате). Вложенность фокуса управления, вызванную обращением к собственной операции или обратным вызовом со стороны другого объекта, показывается путем расположения другого фокуса управления чуть правее своего родителя.

Сообщения

Используется для вызова процедур, выполнения операций или обозначения отдельных вложенных потоков управления. Начало стрелки соприкасается с фокусом управления того объекта, который инициирует это сообщение. Конец стрелки соприкасается с линией жизни того объекта, который принимает это сообщение и выполняет в ответ определенные действия. При этом принимающий объект может получить фокус управления, становясь в этом случае активным. Передающий объект может потерять фокус управления или остаться активным. Используется для обозначения асинхронного сообщения. Асинхронное сообщение не блокирует вызывающий объект, то есть последний может продолжать выполнение своего собственного процесса. Передача такого сообщения обычно не сопровождается получением фокуса управления объектом-получателем.

14

{задержка 20 сек}

Комбинированные фрагменты

Использование взаимодействия

loop [i < 6]

ref Транзакция

Используется для возврата из вызова процедуры. В процедурных потоках управления эта стрелка может быть опущена, поскольку ее наличие неявно предполагается в конце активизации объекта. В тоже время считается, что каждый вызов процедуры имеет свою пару - возврат вызова. Для непроцедурных потоков управления, включая параллельные и асинхронные сообщения, стрелка возврата должна указываться явным образом. Каждое сообщение помечается именем; также можно указывать аргументы и некоторую управляющую информацию. Если время передачи сообщения достаточно мало по сравнению с процессами выполнения действий объектами, то сообщения изображаются горизонтальными стрелками, иначе сообщения изображаются наклонными стрелками, так чтобы конец стрелки располагался ниже ее начала. Комбинированный фрагмент может включать один или несколько вариантов взаимодействия, которые выполняются при истинности сторожевого условия (указывается в квадратных скобках). Комбинированный фрагмент представляется в виде фрейма, в верхнем левом углу которого указывается тип фрагмента: "loop" (цикл), "alt" (альтернатива, выбор поведения), "opt" (необязательное поведение), "break" (завершение), "par" (параллельное выполнение) и др. Использование взаимодействия представляет собой ссылку на некоторое взаимодействие в контексте другого взаимодействия. Использование взаимодействия представляется в виде фрейма, в верхнем левом углу которого указывается "ref", а в центре – имя взаимодействия.

15

Примеры диаграммы последовательности sd Разговор по телефону : Коммутатор a : Абонент

b : Абонент поднять трубку тоновый набор набор цифры коммутация(a,b)

: Разговор

новый

звонок поднять трубку соединение(a,b) соединение(b)

соединение(a)

sd Пример Публичный сайт

Страница для авторизации

Домашняя страница

Заблокированная учетная запис ь

Служба выдачи паролей

Пользователь сайта авторизоваться перенаправить

ввес ти имя и пароль проверить alt [ес ли пароль верен]

[иначе]

перенаправить

авторизация не удалась

opt [3 неудачные попытк и] перенаправить

16

sd Примеры :Инструмент :Курочка Ряба

:Дед

:Баба

:Мышка Золотое: Яйцо

снести()

битьЯйцо()

loop [пока не разобьется]

битьЯйцо() битьЯйцо() битьЯйцо()

бежать() хвостикомМахнуть() плакать() упасть() плакать()

разбиться() утешать() утешать()

снести()

Простое:Яйцо

Диаграмма деятельности Элемент Действие

Начальное состояние Конечное состояние

Изображение index := lookup(e) + 7;

Описание Действие обозначает выполнение системой некоторой операции. Действие изображается прямоугольником с закругленными краями. Внутри прямоугольника записывается название действия или произвольное выражение. Порядок выполнения действий обозначается стрелками. Действие может представляться вложенной диаграммой деятельности. Начальное состояние обозначает начало выполнения деятельности. На диаграмме может быть только одно начальное состояние. Конечное состояне обозначает окончание деятельности. На диаграмме может присутствовать несколько конечных состояний.

17

Точка ветвления [покупка]

[иначе]

Точка соединения

Точка разделения

Точка слияния

Поток управления Поток информации Дорожки

«flow»

см. пример диаграммы

Точка ветвления описывает различные направления переходов в зависимости от выполнения некоторого условия. В точку ветвления может входить ровно один переход, а выходить – два или более. Для каждого исходящего перехода в квадратных скобках задается сторожевое условие. Эти условия не должны одновременно принимать значение "истина", но должны покрывать все возможные варианты. Допускается использование ключевого слова "иначе". Точка соединения обозначает окончание условного поведения, которое было начато соотвествующим ветвлением. В точку соединения может входить два и более переходов, а выходить – только один. Точка разделения соответствует расщеплению одного потока управления на несколько потоков, выполняющихся параллельно. В точке разделения может существовать ровно один входящий переход и два или более исходящих. Точка разделения изображается в виде жирной вертикальной или горизонтальной линии. В точке слияния параллельные потоки синхронизируются, то есть каждый из них ждет, пока все остальные достигнут этой точки, после чего выполнение продолжается в рамках одного потока. В точку слияния входят два или более перехода, а выходит ровно один. Точка слияния изображается в виде жирной вертикальной или горизонтальной линии. Поток управления изображается в виде сплошной стрелки и определяет порядок выполнения действий. Поток информациии изображается в виде пунктирной стрелки со стереотипом «flow» и обозначает передачу единиц информации. Диаграмма деятельности сплошными линиями (горизонтальными или вертикальными) может быть поделена на дорожки, которые показывают, какие объекты выполняют конкретную деятельность. Название объекта указывается в начале дорожки.

18

Примеры диаграммы деятельности act Дорожки Отдел приема заказов

Отдел обслуживания

Финансовый отдел

Поступление заказа

Заполнить бланк заказа

Выставить счет

Получить оплату

Доставка заказа

Закрыть заказ

19

act Доставка

Поступление заказа

Заполнить бланк заказа

Выставить счет

Доставка

[с рочный заказ]

Срочная доставка

[ина че]

Обычная доставка

Получить оплату

Закрыть заказ

20

Диаграмма состояний Элемент Состояние

Изображение Активен entry / вставить карту exit / извлечь карту

Начальное состояние

Конечное состояние

Переход

put(c) [c==':'] / return true

Описание Состояние представляет собой абстракцию значений значений и связей объекта. Состояние изображается прямоугольником с закругленными краями, внутри которого указывается имя состояния. Имя состояния часто соответствует отглагольной форме или деепричастию или выполнению некоторого условия. Внутри состояние может указываться: текущая деятельность объекта в данном состоянии (после ключевого слова do и символа '/' – do / …), деятельность при входе в состояние (entry / …), деятельность при выходе из состояния (exit / …). Состояние может представляться вложенной диаграммой состояний. Начальное состояние обозначает состояние по умолчанию в исходный момент времени. Начальное состояние указывается на диаграммах, описывающих одноразовые жизненные циклы. На диаграмме может быть только одно начальное состояние. Конечное состояние обозначает состояние, в котором завершается выполнение. Конечное состояние указывается на диаграммах, описывающих одноразовые жизненные циклы. На диаграмме может присутствовать несколько конечных состояний. Переход обозначает мгновенную смену одного состояния другим. Переход изображается стрелкой, направленной от исходного состояния к целевому. В качестве метки перехода может указываться событие, при котором происходит переход. После события в квадратных скобках можно указать необязательное сторожевое условие (логическое выражение, которое должно быть истинным, чтобы переход мог запуститься). Также после символа '/' может быть указано действие при переходе.

21

Примеры диаграммы состояний stm Примеры Initial

лежало

баба била

Не разбито

дед бил

мышка с махнула хвос тиком

Разбито

Final

stm Открывание гаражной двери

Открывание Initial нажатие / мотор вверх

дверь открыта / выключить мотор

Закрыто

нажатие / мотор вверх

Открыто Final

нажатие / мотор вниз

дверь закрыта / выключить мотор Закрывание

stm Шахматы Игра в шахматы Очередь белых

шах и мат пат

ход черных

ход белых

пат

Initial Очередь черных

шах и мат

Победа черных

Ничья

Final

Победа белых

22

Диаграмма компонентов Элемент Компонент

Изображение kernel32.dll

Интерфейс main.exe IApplication

«interface» IDialog coponent.java +

print() : void

IApplication

IApplication

Описание Компонент предназначен для представления физической организации ассоциированных с ним элементов модели. Компонент изображается в виде прямоугольника с вкладками. У каждого компонента должно быть имя, отличающее его от других компонентов. Компонент может иметь текстовый стереотип, помеченные значения и дополнительные разделы. Компонент может иметь собственное графическое представление. Интерфейс используется для описания услуг, предоставляемых компонентом. Интерфейс графически изображается окружностью или в виде класса со стереотипом "interface". Интерфейс не может содержать атрибутов. Принято к началу имени интерфейса добавлять букву "I". Если интерфейс изображен окружностью, то для обозначения отношения реализации используется сплошная линия, а если в виде класса, то используется стандартная форма отношения реализации. Необходимый интерфейс, т.е. интерфейс, который используется компонентом, изображается в виде полуокружности, соединенной с компонентом сплошной линией. Предоставляемый интерфейс, т.е. интерфейс, который реализуется компонентом, изображается в виде окружности, соединенной с компонентом сплошной линией. Соединение необходимого и предоставляемого интерфейса изображается в виде сборки.

IApplication

Компонент Порт

Порты позволяют определять функции, доступные извне компонента. Порт объединяет предоставляемые и необходимые интерфейсы и соединяется с классификатором, который реализует функциональность. Порт изображается в виде прямоугольника на стороне компонента.

23

Отношение зависимости

animator.exe

animator.ini

Отношение зависимости служит для представления только факта наличия такой связи, когда изменение одного элемента модели оказывает влияние или приводит к изменению другого элемента модели. Отношение зависимости изображается пунктирной линией со стрелкой, направленной от клиента (зависимого элемента) к источнику (независимому элементу). Отношение зависимости может связывать различные виды компонентов между собой, а также компонент и интерфейс, используемый данным компонентом.

Примеры диаграммы компонентов cmp animator.exe

IScripts

IApplication

animator.ini

animator.exe

animator.hlp

wrfrme.dll shapes.tbl

cmp Пример2

Служба создания счета

Подтверждение личнос ти

Служба выдачи кредитных карт

Регис трация транзакции

Регистрация

24

cmp Пример1

RequestDB

IServerBL_ReqDB IServerBL_ReqDB

Serv erBusinessLogic

ClientNetw orkSupport

ICNSupport_GUI

INetwork

ISNSupport_BL

INetwork ISNSupport_BL

ClientGUI Serv erNetw orkSupport

IGUI

25

Диаграмма развертывания Элемент Узел

Изображение

Описание Узел представляет собой физически существующий элемент системы, который может обладать вычислительным ресурсом или являться техническим устройством. Графически узел изображается в виде куба. Каждый узел должен иметь имя, отличающее его от прочих узлов. На практике для именования узлов используют одно или несколько коротких существительных, взятых из словаря реализации. Допускается снабжать узел помеченными значениями или дополнительными разделами, чтобы показать детали. Узел может иметь собственное графическое представление. Узлы могут быть участниками отношений зависимости, обобщения и ассоциации, бывают вложенными, могут иметь экземпляры и принимать участие во взаимодействиях.

Сервер

Примеры диаграммы развертывания deployment Диаграмма развертывания

Киоск 10 T-Ethernet Сервер

RAID-массив

Консоль RS-232

26

deployment Примеры

Компьютер пользователя

Веб браузер

Веб сервер

HTTP Apache httpd TCP/IP

SSL

Jav a serv let

Jav a Applet

TCP/IP SSL Сервер с базой данной

MySQL JDBC

27

deployment Пример

Телефонный аппарат

PBX Локальная телефонная с еть *

1

Сервер Клиентский компьютер

IServerBL_ReqDB RequestDB ClientNetw orkSupport * ICNSupport_GUI

INetwork

1 Serv erBusinessLogic IServerBL_ReqDB

ISNSupport_BL INetwork ClientGUI

ISNSupport_BL

Serv erNetw orkSupport IGUI

28

Словарь терминов UML (Unified Modeling Language) – унифицированный язык моделирования, предназначенный для визуализации, специфицирования, конструирования и документирования артефактов программных систем. Автомат (state machine) – поведение, которое специфицирует последовательность состояний, через которые проходит объект на протяжении своего жизненного цикла, реагируя на события, включая описание реакций на эти события. Агрегация (aggregation) – разновидность ассоциации, описывающая отношение "частьцелое". Актер (actor) – непосредственный внешний пользователь системы. Аргумент (argument) – фактическое значение, соответствующее формальному параметру. Артефакт (artifact) – элемент информации, используемый или порождаемый в процессе разработки программного обеспечения. Ассоциация (association) - структурное отношение, описывающее набор связей, в котором каждая из них представляет собой соединение между объектами; семантическое отношение между двумя или более классификаторами, в котором участвуют соединения между их экземплярами. Атрибут (attribute) – поименованное свойство классификатора, описывающее диапазон значений, которые могут принимать экземпляры этого свойства. Вариант использования (use case) – описание множества последовательных событий (включая варианты), выполняемых системой, которые приводят к наблюдаемому актером результату. Видимость (visibility) – указывает, при каких обстоятельствах то или иное имя видимо и может быть использовано. Действие (action) – выполнимое атомарное вычисление, которое приводит к изменению состояния системы или возврату значения. Деятельность (activity) – протяженное во времени неатомарное вычисление внутри автомата. Диаграмма (diagram) – графическое представление множества элементов. Обычно изображается в виде графа с вершинами (сущностями) и ребрами (отношениями). Диаграмма деятельности (activity diagram) – диаграмма, на которой представлены переходы потока управления от одной деятельности к другой. Диаграммы деятельности относятся к динамическому аспекту поведения системы. Это разновидность диаграмм состояний, где все или большая часть состояний являются состояниями деятельности, а все или большая часть переходов срабатывают при завершении деятельности в исходном состоянии. Диаграмма классов (class diagram) – диаграмма, на которой представлено множество классов, интерфейсов, коопераций и отношений между ними; диаграммы классов относятся к статическому виду системы. Иными словами, это диаграмма, на которой показано множество декларативных (статических) элементов. Диаграмма компонентов (component diagram) – диаграмма, на которой изображена организация некоторого множества компонентов и зависимости между ними; относится к статическому виду системы. 29

Диаграмма объектов (object diagram) – диаграмма, на которой представлено множество объектов и отношений между ними в некоторый момент времени. Диаграммы объектов относятся к статическому виду системы с точки зрения проектирования или процессов. Диаграмма последовательности (sequence diagram) – диаграмма взаимодействия, в которой основной акцент сделан на временном упорядочении сообщений. Диаграмма вариантов использования (use case diagram) – диаграмма, на которой представлено множество вариантов использования и актеров, а также отношения между ними. Диаграммы вариантов использования относятся к статическому виду системы. Диаграмма прецедентов – см. Диаграмма вариантов использования. Диаграмма развертывания (deployment diagram) – диаграмма, на которой представлена конфигурация обрабатывающих узлов и размещенные на них компоненты; относится к статическому виду системы. Диаграмма состояний (state diagram) – диаграмма, на которой изображен автомат; диаграммы состояний относятся к динамическому виду системы. Зависимость (dependency) – семантическое отношение между двумя сущностями, при которой изменение одной (независимой) сущности может повлиять на семантику другой (зависимой). Интерфейс (interface) – множество операций, составляющее спецификацию услуг, которые предоставляет класс или компонент. Квалификатор (qualifier) – атрибут ассоциации, значения которого разбивают множество объектов, связанных с некоторым объектом посредством данной ассоциации, на непересекающиеся подмножества. Класс (class) – описание множества объектов, обладающих общими атрибутами, операциями, отношениями и семантикой. Класс-ассоциация (association class) – элемент модели, обладающий свойствами как класса, так и ассоциации. Класс-ассоциацию можно рассматривать либо как ассоциацию, обладающую свойствами класса, либо как класс, обладающий свойствами ассоциации. Классификатор (classifier) – механизм, с помощью которого описываются структурные и поведенческие особенности. К числу классификаторов относятся классы, интерфейсы, типы данных, сигналы, компоненты, узлы, прецеденты и подсистемы. Композиция (composition) – форма агрегации, в которой целое владеет своими частями, имеющими одинаковое время жизни. Компонент (component) – физическая заменяемая часть системы, реализующая спецификацию интерфейсов. Кратность (multiplicity) – спецификация диапазона возможных значений мощности множества. Линия жизни (lifeline) – линия на диаграмме последовательностей, которая описывает существование объекта на протяжении некоторого промежутка времени. Метод (method) – реализация операции класса. Модель (model) – упрощение реальности, создаваемое для лучшего понимания разрабатываемой системы; семантически замкнутая абстракция системы. Обобщение (generalization) – отношение специализации/обобщения, в котором объекты специализированного элемента (потомка) могут быть подставлены вместо объектов обобщенного элемента (родителя, или предка). Объект (object) – конкретная материализация абстракции; сущность с хорошо 30

определенными границами, в которой инкапсулированы состояние и поведение; экземпляр класса. Обязанность (responsibility) – контракт или обязательство, принимаемое на себя типом или классом. Ограничение (constraint) – расширение семантики элемента UML, позволяющее добавлять новые или модифицировать существующие правила. Операция (operation) – функция или процедура, которая может применяться к объектам класса или объектами класса. Параметризованный элемент (parameterized element) – дескриптор элемента с одним или более несвязанными параметрами. Переход (transition) – отношение между двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить некоторые действия и перейти во второе состояние, как только наступит некоторое событие и при этом будут выполнены определенные условия. Подкласс (subclass): в отношении обобщения – специализация другого класса, родителя. Подсостояние (substate) – состояние, являющееся частью другого состояния. Положение – размещение компонента в узле. Потомок – подкласс. Реализация (implementation) – семантическое отношение между классификаторами, в котором одна сторона формулирует условия контракта, а другая обязуется его выполнить. Родитель – суперкласс, или надкласс. Роль (role) – поведение сущности, участвующей в конкретном контексте. Связь (link) – семантическое соединение между объектами. Событие (event) – спецификация существенного факта, имеющего положение в пространстве и во времени. В контексте автоматов событие – это возникновение стимула, который может активизировать переход из одного состояния в другое. Составное состояние (composite state) – состояние, составленное из параллельных или несовместимых подсостояний. Состояние (state) – ситуация в жизненном цикле объекта, во время которой он удовлетворяет некоторому условию, выполняет определенную деятельность или ожидает какого-то события. Стереотип (stereotype) – расширение словаря UML, позволяющее создавать новые виды строительных блоков, производные от существующих, но специфичные для конкретной задачи. Сторожевое условие (guard condition) – условие, которое должно быть выполнено для того, чтобы сработал переход, с которым оно ассоциировано. Суперкласс (superclass): в отношении обобщения – обобщение другого класса, потомка. Узел (node) – физический элемент, существующий во время выполнения системы и представляющий вычислительный ресурс, который обладает, по меньшей мере, памятью, а зачастую также и процессором. Фокус управления (focus of control) – символ на диаграмме последовательностей, показывающий промежуток времени, в течение которого объект выполняет некоторое действие непосредственно или путем вызова подчиненной операции. Шаблон (template) – параметризованный элемент. Экземпляр (instance) – конкретная материализация абстракции. К этой сущности могут 31

быть применены операции; она обладает состоянием, в котором запоминаются результаты операций. Элемент (element) – атомарная составляющая модели.

32