Стереотип
- 1 year ago
- 0
- 0
Стереотипы являются одним из трех типов механизмов расширяемости в унифицированном языке моделирования ( UML ). Они позволяют проектировщикам расширять словарь UML для создания новых элементов моделирования , получаемых из существующих, но имеющих определенные свойства, которые подходят для конкретной проблемы предметной области или для другого специализированного использования. Термин происходит от первоначального значения слова « стереотип », который используется в книгопечатании . Например, при моделировании сети вам могут понадобиться символы для представления маршрутизаторов и концентраторов. С помощью стереотипных узлов вы можете представлять их в виде примитивных строительных блоков.
Графически стереотип отображается как имя, заключенное в кавычки («», или, если такие кавычки недопустимы, <<>>) и расположенное над именем другого элемента. В дополнение или в качестве альтернативы он может быть обозначен соответствующей иконкой. Значок может даже заменить весь символ UML. Например, стереотипы диаграммы классов могут быть использованы для описания методов поведения, таких как «конструктор» и «геттер». Несмотря на своё внешнее представление, «интерфейс» - не стереотип, а классификатор .
Одной из альтернатив стереотипам, предложенной в своей книге «Применение Java в моделировании цветом с UML: Организация и производство» является использование цветных архетипов. Архетипы, обозначенные UML-блоками разных цветов, могут быть использованы в сочетании со стереотипами. Это добавочное определение назначения показывает роль, которую играет объект UML в рамках более широкой программной системы.
Начиная с версии 2.0 независимое именованное значение считается атрибутом стереотипа. Термин «именованное значение» до сих пор сохраняется. Каждый стереотип имеет от нуля или более определений меток, и все стереотипные элементы 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) | Определяет класс, для которого область действия всех атрибутов и операций - класс |