Стереотип (UML)

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

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

Графически стереотип отображается как имя, заключенное в кавычки («», или, если такие кавычки недопустимы, <<>>) и расположенное над именем другого элемента. В дополнение или в качестве альтернативы он может быть обозначен соответствующей иконкой. Значок может даже заменить весь символ UML. Например, стереотипы диаграммы классов могут быть использованы для описания методов поведения, таких как «конструктор» и «геттер». Несмотря на своё внешнее представление, «интерфейс» - не стереотип, а классификатор.[1]

Графическое изображение связей с различными стереотипами

Одной из альтернатив стереотипам, предложенной Петром Коудом в своей книге «Применение Java в моделировании цветом с UML: Организация и производство» является использование цветных архетипов. Архетипы, обозначенные UML-блоками разных цветов, могут быть использованы в сочетании со стереотипами. Это добавочное определение назначения показывает роль, которую играет объект UML в рамках более широкой программной системы.

Атрибуты стереотипов

Начиная с версии 2.0 независимое именованное значение считается атрибутом стереотипа. Термин «именованное значение» до сих пор сохраняется. Каждый стереотип имеет от нуля или более определений меток, и все стереотипные элементы UML имеют соответствующее число именованных значений.

Стереотипы, определяемые 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) Классификатор, все объекты которого являются потомками данного родителя
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 2.0 и шаблонов проектирования = Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development. — 3-е изд. — М.: Вильямс, 2006. — 736 с. — ISBN 0-13-148906-2.
  • Джозеф Шмуллер. Освой самостоятельно UML 2 за 24 часа. Практическое руководство = Sams Teach Yourself UML in 24 Hours, Complete Starter Kit. — М.: Вильямс, 2005. — 416 с. — ISBN 0-672-32640-X.
  • Грейди Буч, Джеймс Рамбо, Айвар Джекобсон. Язык UML. Руководство пользователя = The Unified Modeling Language user guide. — 2-е изд. — М., СПб.: ДМК Пресс, Питер, 2004. — 432 с. — ISBN 5-94074-260-2.
  • Буч Г., Якобсон А., Рамбо Дж. UML. Классика CS. 2-е изд. / Пер. с англ.; Под общей редакцией проф. С. Орлова — СПб.: Питер, 2006. — 736 с. ISBN 5-469-00599-2

Ссылки