Общие механизмы языка uml

Моделирование упрощается и ведется более эффективно, если придерживаться некоторых соглашений. Работу с UML существенно облегчает последовательное использование следующих общих механизмов:

· спецификации (specifications);

· дополнения (adornments);

· принятые деления (common divisions);

· механизмы расширения (extensibility mechanisms).

Спецификация стоит за каждой частью системы графической нотации UML и содержит текстовое представление соответствующей конструкции языка. Например, пиктограмме класса соответствует спецификация, которая полностью описывает его атрибуты, операции и поведение, хотя визуально, на диаграмме пиктограмма часто отражает только малую часть этой совокупности. Более того, в модели может присутствовать другое представление этого класса, отражающее совершенно иные его аспекты, но тем не менее соответствующее спецификации. Таким образом, графическую нотацию UML используют для визуализации системы, а с помощью спецификаций описывают ее детали.

Практически каждый из элементов UML имеет соответствующее ему уникальное графическое представление, которое дает визуальную картину о самых важных аспектах этого элемента. Нотация класса содержит самые важные его характеристики: имя, атрибуты и операции. Спецификация класса может содержать и другие детали, например, видимость атрибутов и операций, комментарии или указание на то, что класс является абстрактным. Многие из этих деталей можно визуализировать в виде графических или текстовых дополнений к стандартному прямоугольнику, который изображает класс.

Принятые деления

При моделировании объектно-ориентированных систем реальность делится с учетом, по крайней мере, двух методов.

Во-первых, существует деление на классы и объекты. Класс - это абстракция, а объект - конкретное воплощение этой абстракции. В связи с этим, практически все конструкции языка характеризуются дихотомией "класс/объект". Например, имеются прецеденты и экземпляры прецедентов, компоненты и экземпляры компонентов, узлы и экземпляры узлов и т. д. В графическом представлении для объекта принято использовать тот же символ, что и для класса, а название подчеркивать.

Во-вторых, существует деление на интерфейс и его реализацию. Интерфейс декларирует обязательства, а реализация представляет конкретное воплощение этих обязательств и обязуется точно следовать объявленной семантике интерфейса. А в связи с этим, почти все конструкции UML характеризуются дихотомией "интерфейс/реализация". Например, прецеденты реализуются кооперациями, а операции - методами.

Механизмы расширения UML

UML - это стандартный язык разработки моделей программных систем, но ни один замкнутый язык не в состоянии охватить нюансы всех возможных моделей в различных предметных областях. Поэтому UML является открытым языком, то есть допускает контролируемые расширения. Механизмы расширения UML включают:

· стереотипы (stereotype), которые расширяют словарь UML, позволяя на основе существующих блоков языка создавать новые, специфичные для решения конкретной проблемы.;

· помеченные значения (tagged value), которые расширяют свойства основных конструкций UML, позволяя включать новую информацию в спецификацию элемента;

· ограничения (constraints), которые расширяют семантику конструкций UML, позволяя создавать новые и отменять существующие правила.

Совместно эти три механизма расширения языка позволяют модифицировать UML в соответствии с потребностями проекта или особенностями технологии разработки в группе проекта. Кроме того, они дают возможность адаптировать UML к новым технологиям разработки программного обеспечения, например к вероятному появлению более мощных языков распределенного программирования. С помощью механизмов расширения можно создавать новые конструкции языка, модифицировать существующие и даже изменять их семантику.