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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Графічно стереотип відображається як ім'я, взяте в лапки («», або, якщо такі лапки неприпустимі, <<>>) та розташоване над іменем іншого елементу. На додачу чи як альтернатива він може бути позначений відповідною піктограмою. Піктограма може навіть замінити весь символ UML. Наприклад, стереотипи діаграми класів можуть бути використані для опису таких методів поведінки, як «конструктор» і «ґеттер». Попри своє зовнішнє подання, «інтерфейс» — не стереотип, а класифікатор[1].

Однією з альтернатив стереотипам, запропонованою Пітером Коудом[en] у своїй книзі «Застосування 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) Визначає клас, для якого область дії всіх атрибутів і операцій — клас

Примітки[ред. | ред. код]

  1. UML Superstructure Specification // v2.0. — Object Management Group, 2005. — Серпень. — С. 33.

Література[ред. | ред. код]

  • Крэг Ларман. Застосування UML і паттернів: Вступ до об'єктно-орієнтованого аналізу, дизайну й ітеративної розробки = Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development. — 3-є вид. — М. : Вільямс, 2006. — 736 с. — ISBN 0-13-148906-2.
  • Джозеф Шмуллер. Засвой самостійно UML за 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

Посилання[ред. | ред. код]