На этом шаге рассмотрим основные механизмы языка UML.
Работа с UML значительно упрощается благодаря наличию четырех общих механизмов, которые используются в языке повсеместно: спецификаций, дополнений, общих средств разделения и средств расширения.
Примечание (note) – наиболее важное из дополнений, которое может существовать и обособленно. Примечание представляет собой графический символ для описания ограничений или комментариев, присоединенных к элементу или набору элементов. Он предназначен для того, чтобы включить в модель такую информацию, как требования, замечания, оценки и пояснения. Примечание изображается в виде прямоугольника с одним загнутым углом, включающего текстовый или графический комментарий.
Примечания – это механизм, предусмотренный в UML для того, чтобы включить в модель произвольные комментарии и ограничения, поясняющие ее. Примечания могут представлять собой артефакты, играющие важную роль в жизненном цикле разработки программного обеспечения (например, требования) либо обзоры или пояснения, выраженные в свободной форме.
UML предусматривает графическое представление комментариев и ограничений, называемых примечаниями (рис. 1). Эта нотация позволяет вам размещать комментарии прямо на диаграмме. В сочетании с правильными инструментами примечания также дают вам возможность указать ссылки либо непосредственно встроить в модель другие документы.
Рис.1. Примечания в UML
Механизмы расширений UML (стереотипы, помеченные значения и ограничения) обеспечивают возможность расширять этот язык строго контролируемым образом.
Стереотипы (stereotype) расширяют словарь UML, позволяя создавать новые строительные блоки, производные от существующих, но при этом "подогнанные" специально под вашу проблемную область. Стереотип представлен именем, заключенным в угловые кавычки и помещенным над именем другого элемента. Элементы со стереотипом могут изображаться новой пиктограммой, ассоциированной с этим стереотипом.
Например, если вы моделируете сеть, вам могут понадобиться символы для обозначения маршрутизаторов и концентраторов; вы можете использовать узлы со стереотипами для того, чтобы сделать эти элементы примитивными строительными блоками. Другая ситуация: если вы – член команды, которая реализует проект, отвечающий за сборку, тестирование и поставку версий, то вам понадобится отслеживать номера версий и результаты тестов для каждой из основных подсистем. Для включения этой информации в ваши модели пригодятся помеченные значения.
Помеченные значения (tagged value) расширяют свойства стереотипов UML, позволяя описывать новую информацию в спецификации данного элемента. Представлено строкой в форме имя = значение внутри примечания, присоединенного к объекту.
Ограничения (constraint) расширяют семантику строительных блоков UML, позволяя вам добавлять новые правила или модифицировать существующие. Представлено строкой, заключенной в фигурные скобки и помещенной рядом с ассоциированным элементом либо связанной с ним зависимостью. В качестве альтернативы вы можете изображать ограничение, как примечание.
Если вы моделируете сложные системы реального времени, некоторые модели надо будет дополнить информацией о временных бюджетах и предельных сроках. Для формулировки требований, касающихся времени, подойдут ограничения.
UML предусматривает текстовое представление стереотипов, помеченных значений и ограничений (рис. 2).
Рис.2. Стереотипы, помеченные значения и ограничения в UML
Все эти механизмы помогут адаптировать UML для вашей области и методики работы.
Иногда в модель нужно включить информацию, выходящую за рамки обычных формальностей. Так, архитектор порой пишет примечания на комплекте чертежей здания, чтобы обратить внимание строителей на некоторые тонкости. В студии звукозаписи композитор может изобрести новую музыкальную нотацию, чтобы выразить с ее помощью некоторые необычные эффекты, требуемые от исполнителя. Хотя в обоих случаях существуют хорошо определенные языки – язык строительных чертежей и язык музыкальной нотации, – их приходится некоторым образом модифицировать или расширять, чтобы наиболее адекватно выразить ваши намерения.
Моделирование – это обмен информацией. UML представляет полный набор инструментов для визуализации, специфицирования, конструирования и документирования артефактов разнообразных программных систем, однако при некоторых обстоятельствах возникает необходимость в его модификации и расширении. Такие процессы постоянно протекают в человеческих языках, поскольку ни один язык не может быть достаточным на все времена для передачи всего, что вы хотите выразить. UML вы тоже используете в целях коммуникации, а значит, вам нужно будет придерживаться его основных принципов и выразительных средств, если только не возникнет достаточно веских причин, чтобы от них отступить. И когда вы обнаружите необходимость отказаться от обычных формальных средств языка и прибегнуть к чему-то новому, то должны действовать строго определенным образом.
На следующем шаге рассмотрим примечания в UML.