Пакет (UML)
Пакет (англ. package) в языке моделирования UML — основная группирующая сущность, с помощью которой организуются конкретные проектные решения в рамках используемой UML-модели. UML-пакет предназначен для группировки большого количества структурных, поведенческих и других сущностей в единое целое; изображается в виде стилизованной папки с закладкой, которая может иметь своё собственное имя[1][2]
Для обозначения пакета UML используется изображение в виде большого прямоугольника с закладкой в левом верхнем углу; внутри прямоугольника можно разместить содержимое данного пакета[3]. Зависимость между пакетами выражается с помощью диаграммы пакетов, которая несёт в себе информацию об управлении моделью и фактически является разновидностью диаграммы классов[4].
Описание
Введение UML пакетов позволяет распределять разнообразные отдельные элементы создаваемого проекта по удобным для масштабирования блокам, которыми можно будет позже манипулировать как некими самостоятельными единицами. Как правило, пакеты служат для хранения элементов модели верхнего уровня: классов и их отношений, графов Use Case, конечных автоматов и т. п.[5] Элементы пакета могут иметь различную видимость снаружи, то есть — некоторый функционал пакета может быть инкапсулирован с точки зрения внешнего пользователя. В этом отношении пакет выполняет функцию отдельного пространства имён, элементы которого могут быть как публичными, так и приватными[6]. Грамотно структурированный пакет должен объединять семантически и функционально родственные элементы, которые имеют тенденцию совместно эволюционировать в процессе разработки[2].
Спецификация языка UML не налагает жёстких ограничений на то, как модель разбивается на пакеты, существует множество способов организации по функциональности, виду модели или по любому другому признаку. Допускается также иерархическое вкладывание одних UML-пакетов в другие[7][8], при этом вложенный пакет имеет полный доступ к содержимому своего контейнера и считается его частью[6]. При использовании вложенности модель должна иметь начальный корневой пакет[7], обычно он только один[9]. В целях упрощения текстовых нотаций допускается также импортировать видимые элементы из одного пакета в другой и дополнять ими локальные пространства имён, однако импортированный элемент становится видимым под тем именем, которое ему было присвоено при импорте[10].
Имя пакета должно быть отличающим его от других пакетов, как правило оно представляется в виде текстовой строки, содержащей буквы латинского алфавита, цифры и некоторые знаки препинания. Для разделения в именах иерархической вложенности пакетов используется спецификатор ::
. В пределах пакета-контейнера выбранное имя вложенного пакета должно быть уникальным[11].
Примечания
- Буч, Рамбо, Якобсон, 2006, Строительные блоки UML, с. 37—38.
- Буч, Рамбо, Якобсон, 2006, Пакеты, с. 178.
- Буч, Якобсон, Рамбо, 2006, package (пакет), с. 519.
- Буч, Якобсон, Рамбо, 2006, Представление управления моделью, с. 62.
- Буч, Якобсон, Рамбо, 2006, Пакеты, с. 122.
- Буч, Якобсон, Рамбо, 2006, Видимость, с. 123.
- Буч, Якобсон, Рамбо, 2006, Представление управления моделью, с. 61.
- Буч, Якобсон, Рамбо, 2006, Пакеты, с. 121.
- Буч, Якобсон, Рамбо, 2006, package (пакет), с. 518.
- Буч, Якобсон, Рамбо, 2006, Импорт, с. 123.
- Буч, Рамбо, Якобсон, 2006, Имена, с. 180.
Литература
- Г. Буч, Д. Рамбо, И. Якобсон. Язык UML. Руководство пользователя = The Unified Modeling Language Usere Guide. — 2-е. — М. : ДМК Пресс, 2006. — 496 с. — ISBN 5-94074-334-X.
- Г. Буч, А. Якобсон, Д. Рамбо,. UML. Классика CS = The Unified Modeling Language Reference Manual. — 2-е. — СПб. : «Питер», 2006. — 736 с. — ISBN 5-469-00599-2.