На этом шаге рассмотрим моделирование новой семантики в UML.
Создавая модель с помощью UML, вы работаете по определенным правилам данного языка. И не напрасно: благодаря этому вы можете четко передать свои намерения любому, кто умеет читать UML-модели. Но если вам требуется выразить новую семантику, о которой UML умалчивает или же модифицировать правила UML, придется писать ограничение.
Чтобы смоделировать новую семантику, воспользуйтесь следующими рекомендациями:
В качестве примера на рис. 1 представлена модель небольшой части корпоративной системы управления человеческими ресурсами.
Рис.1. Моделирование новой семантики в UML
Диаграмма показывает, что каждый человек (Person) может быть членом одной или нескольких команд (Team) либо не входить ни в одну из них; в каждой команде должен быть как минимум один руководитель; каждый человек может быть руководителем одной или нескольких команд либо не руководить ни одной. Вся эта семантика может быть выражена простыми средствами UML. Однако тот факт, что руководитель должен быть членом команды, которую он возглавляет, касается нескольких ассоциаций и не может быть выражен с использованием стандартного UML. Чтобы задать этот инвариант, вы должны описать ограничение, которое показывает, что руководитель относится к числу членов команды, и связать обе ассоциации ограничением. Еще одно ограничение указывает, что руководитель должен быть членом команды не меньше года.
На следующем шаге рассмотрим правила моделирования примечаний в UML.