Діаграма композитної структури
Діаграма композитної структури у Unified Modeling Language (UML) є типом статичної структурної діаграми, що показує внутрішню структуру класу.
Ця діаграма може містити внутрішні частини, порти, через які частини класу взаємодіють між собою або як сутності класу взаємодіють з частинами класу та зовнішнім світом, і з'єднувачі між частинами або портами. Композитна структура являє собою сукупність взаємопов'язаних елементів, які взаємодіють між собою під час виконання для досягнення якоїсь мети. Кожен елемент має певну роль в цій взаємодії.
Концепти композитної структури
Ключовими поняттям композитної структури у UML 2.0 є: структуровані класифікатори, частини, порти, з'єднувачі та взаємодія.
- Частина : Частина представляє роль під час виконання одної сутності класифікатора або колекції сутностей. Частина може назвати тільки роль, абстрактний суперклас, або конкретний конкретний клас.
- Порт : Порт є точкою взаємодії, яка може бути використаною для з'єднання структурованих класифікаторів з їх частинами та з навколишнім середовищем. Порти можуть додатково вказати ті сервіси, які вони надають і сервіси, які вони вимагають від інших частин системи. На діаграмі, кожен з маленьких квадратиків є портом. Кожен порт має тип і позначений з ім'ям, наприклад, "var", "indVar1", або "view" на діаграмі.
- З'єднувач: З'єднувач пов'язує два або більше об'єктів разом, дозволяючи їм взаємодіяти під час виконання. З'єднувач показаний у вигляді лінії між деякою комбінацією частин, портів і структурованих класифікаторів.
- Взаємодія: Взаємодія, як правило, більш абстрактна, ніж структурований класифікатор. На діаграмі відображається, як пунктирний овал, що містить ролі, які можуть мати сутності у взаємодії
- Структурований класифікатор: Структурований класифікатор - це клас, часто абстрактний клас, чия поведінка може бути повністю або частково описаною через взаємодію між частинами.
- Інкапсульований класифікатор: Інкапсульований класифікатор є типом структурованого класифікатора, який містить порти.
Приклад діаграми композитної структури
Як приклад розглянемо один з можливих способів моделювання послідовності Фібоначчі.
Ця діаграма композитної структури показує, що екземпляри класу в 'FibonacciSystem' складаються з декількох частин. Самий верхній з цих частин визначені як класифікатор 'FibonacciFunction'. Три з частин визначаються тією роллю, яку вони відіграють у випадках FibonacciSystem - роль NMinus2, роль NMinus1, і роль N. П'ята частина, визначена своїм класифікатором Viewer, може включати в себе специфікації кратності. Під час виконання може бути 0 або більше екземплярів Viewer, або деякий конкретний підклас Viewer.
Під час виконання екземпляри класів, які реалізують ці три ролі повинні надавати сервіси, зазначені в інтерфейсі IVar через свої порти var. Одним з таких класів є Variable, як показано на схемі з портом var типу Var, що реалізує інтерфейс IVar.
Порт під назвою "view" є непублічним портом, який може бути використаний екземпляром FibonacciSystem для доступу до додаткового екземпляру Viewer.