к UML 2.0   к Банкам данных Интернет   к технологиям программирования к 4GL - визуальным средам

Язык UML Руководство пользователя

ЧАСТЬ VII - Подведем итоги

Приложение В. Стандартные элементы UML


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

Стереотип (Stereotype) расширяет словарь UML, то есть позволяет создавать из существующих строительных блоков новые, специфичные для конкретной решаемой задачи. Помеченное значение (Tagged value) расширяет свойства строительного блока UML, то есть дает возможность включать новую информацию в спецификацию элемента. Ограничение (Constraint) расширяет семантику строительного блока UML, позволяя добавлять новые или модифицировать существующие правила.

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

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

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

В настоящем разделе описываются все стандартные элементы подобного рода.

Стереотипы

Следующие стереотипы определены в качестве стандартных элементов UML. В приведенной таблице для каждого стереотипа указываются имя, символ UML, к которому применим стереотип, и назначение.


Примечание: Некоторые из элементов, представленных в таблице, являются, строго говоря, не стереотипами, а стандартными ключевыми словами. Различие между ними довольно тонкое. В метамодели UML некоторые элементы, например trace, имеют очевидную семантику, то есть являются явной частью метамодели, а не настоящими стереотипами. С точки зрения разработчика, однако, они все равно изображаются в нотации стереотипов. Такие элементы определены как стандартные ключевые слова, чтобы можно было зарезервировать их использование в согласии с метамоделъю UML. В таблице ключевые слова выделены курсивом.

Обычно стереотипный элемент изображается следующим образом: имя стереотипа размещается над именем элемента и заключается в двойные кавычки, например "trace". Co стереотипом может быть ассоциирована пиктограмма, используемая как альтернативная форма визуализации данного элемента. Хотя в самом UML такие пиктограммы ни для одного стереотипа не заданы, в таблице все же приводятся некоторые общепринятые изображения.

Стереотип/ ключевое слово Символ, к которому он применим Назначение
actor Класс (class) Определяет связанное множество ролей, которые играет пользователь прецедента при взаимодействии с ним
access Зависимость (dependency) Сообщает, что открытое содержание целевого пакета доступно в пространстве имен исходного пакета
association Концевая точка связи (link end) Указывает, что соответствующий объект видим ассоциацией
become Сообщение (message) Целевой объект совпадает с исходным, но в более поздний момент времени. При этом, возможно, у него будут другие значения, состояния или роли
bind Зависимость (dependency) Исходный класс инстанцирует целевой шаблон с данными фактическими параметрами
call Зависимость (dependency) Исходная операция вызывает целевую
copy Сообщение (message) Целевой объект - это точная, но независимая копия исходного
create Событие (event), сообщение (message) Целевой объект создан в результате события или сообщения
derive Зависимость (dependency) Исходный объект может быть вычислен по целевому
destroy Событие (event), сообщение (message) Целевой объект уничтожен в результате события или сообщения
document Компонент (component) Компонент представляет документ
enumeration Класс (class) Определяет перечислимый тип, включая его возможные значения как набор идентификаторов
exception Класс (class) Определяет событие, которое может быть возбуждено или перехвачено операцией
executable Компонент (component) Описывает компонент, который может быть выполнен в узле
extend Зависимость (dependency) Целевой вариант использования расширяет поведение исходного в данной точке расширения
facade Пакет (package) Пакет, который является лишь представлением другого пакета
file Компонент (component) Компонент, который представляет документ, содержащий исходный код или данные
framework Пакет (package) Пакет, состоящий в основном из образцов (паттернов)
friend Зависимость (dependency) Исходный класс имеет специальные права видимости в целевом
global Концевая точка связи (link end) Соответствующий объект видим, поскольку принадлежит объемлющей области действия
import Зависимость (dependency) Открытое содержание целевого пакета становится частью плоского пространства имен исходного пакета, как если бы оно было объявлено непосредственно в нем
implementation Обобщение (generalization) Потомок наследует реализацию родителя, но не открывает и не поддерживает его интерфейсов, вследствие чего не может быть подставлен вместо родителя
implementationClass Класс (class) Реализация класса на некотором языке программирования
include Зависимость (dependency) Исходный прецедент явно включает поведение другого прецедента в точке, определяемой исходным
instanceOf Зависимость (dependency) Исходный объект является экземпляром целевого классификатора
instantiate Зависимость (dependency) Операции над исходным классом создают экземпляры целевого класса
interface Класс (class) Описывает множество операций, определяющих, что может делать класс или компонент
invariant Ограничение (constraint) Ограничение, которое всегда должно выполняться для ассоциированного элемента
library Компонент (component) Статическая или динамическая объектная библиотека
local Концевая точка связи (link end) Соответствующий объект видим, так как находится в локальной области действия
metaclass Классификатор (classifier) Классификатор, все объекты которого являются классами
model Пакет (package) Описывает семантически замкнутую абстракцию системы
parameter Концевая точка связи (link end) Соответствующий объект видим, так как является параметром
postcondition Ограничение (constraint) Ограничение, которое должно выполняться после выполнения операции
powertype Класс (class) Классификатор, все объекты которого являются потомками данного родителя
Зависимость (dependency) Говорит, что целевой классификатор связан с исходным отношением powertype
precondition Ограничение (constraint) Ограничение, которое должно выполняться перед выполнением операции
process Класс (class) Классификатор, экземпляр которого представляет ресурсоемкий поток управления
refine Зависимость (dependency) Говорит, что исходный объект является более детальной абстракцией, чем целевой
requirement Комментарий (comment) Описывает желаемое свойство или поведение системы
responsibility Комментарий (comment) Описывает контракт или обязательство класса
send Зависимость (dependency) Исходная операция посылает целевое событие
signal Класс (class) Асинхронный стимул, который передается одним экземпляром другому
stereotype Класс (class) Классификатор - это стереотип, который может быть применен к другим элементам
stub Пакет (package) Пакет выступает в роли заместителя для открытого содержимого другого пакета
subsystem Пакет (package) Описывает группирование элементов, ряд которых составляет спецификацию поведения других элементов
system Пакет (package) Описывает пакет, представляющий всю моделируемую систему
table Компонент (component) Компонент, представляющий таблицу базы данных
thread Класс (class) Классификатор, экземпляр которого представляет облегченный поток управления
trace Зависимость (dependency) Целевой элемент - это исторический предок исходного
type Класс (class) Абстрактный класс, который используется только для спецификации структуры и поведения (но не реализации) множества объектов
use Зависимость (dependency) Семантика исходного элемента зависит от семантики открытого содержания целевого элемента
utility Класс (class) Определяет класс, для которого область действия всех атрибутов и операций - класс

Помеченные значения

Приведенные ниже помеченные значения определены как стандартные элементы UML. Для каждого помеченного значения в таблице указывается имя, символ UML, к которому оно применимо, и назначение.

В большинстве случаев помеченное значение изображается посредством размещения метки и значения под именем элемента, к которому оно присоединено. При этом все сочетание заключается в фигурные скобки, например {location = client }. Если значение метки представляет собой длинный текст, то помеченное значение можно поместить в дополнительный раздел классификатора.

Помеченное значение Символы, к которым оно применимо Назначение
documentation Все элементы Содержит комментарий, описание или пояснение к тому элементу, к которому присоединено
location Большинство элементов Определяет узел или компонент, которому принадлежит элемент
persistence Класс (class), ассоциация (association) атрибут (attribute) Определяет, сохраняется ли состояние , экземпляра после завершения создавшего его процесса. Состояния бывают устойчивыми (сохраняющими значение) или временными (не сохраняющими значение)
semantics Класс (class), операция (operation) Описывает назначение класса или операции

Ограничения

Приведенные ниже ограничения определены как стандартные элементы UML. Для каждого помеченного значения в таблице указывается имя, символ UML, к которому оно применимо, и назначение.

В большинстве случаев ограничение размещается рядом с элементом и заключается в фигурные скобки, например {complete}. Можно изображать ограничение и по-другому - помещая в примечание, соединенное с элементом зависимостью.

Ограничение Символ, к которому оно применимо Назначение (о чем говорит данное ограничение)
complete Обобщение (generalization) В модели специфицированы все потомки в данном обобщении (хотя некоторые могут быть скрыты на диаграммах), и дополнительных потомков определять не разрешается
destroyed Экземпляр (instance), связь (link) Экземпляр или связь уничтожаются до завершения выполнения объемлющего взаимодействия
disjoint Обобщение (generalization) Объекты данного родителя могут иметь не более одного заданного потомка в качестве типа
implicit Ассоциация (association) Отношение является не явно выраженным, а концептуальным
incomplete Обобщение (generalization) Специфицированы не все потомки в обобщении (учитывая и скрытых). Разрешается определять дополнительных потомков
new Экземпляр (instance), связь (link) Экземпляр или связь создаются в процессе выполнения объемлющего взаимодействия
or Ассоциация (association) Из множества ассоциаций ровно одна является явно выраженной для каждого ассоциированного объекта
overlapping Обобщение (generalization) Объекты данного родителя могут иметь более одного заданного потомка в качестве типа
transient Экземпляр (instance), связь (link) Экземпляр или связь создаются в процессе выполнения объемлющего взаимодействия, но уничтожаются до его завершения

[Предыдущая глава] [Содержание] [Следующая глава]

Знаете ли Вы, что "гравитационное линзирование" якобы наблюдаемое вблизи далеких галактик (но не в масштабе звезд, где оно должно быть по формулам ОТО!), на самом деле является термическим линзированием, связанным с изменениями плотности эфира от нагрева мириадами звезд. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution