Каково назначение UML?

UML предназначен для моделирования. Сами авторы UML определяют свое детище следующим образом.

Язык UML — это графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке программных систем.

Разберемся.

Спецификация.

В процессе разработки приложений участвуют по меньше мере два действующих лица: заказчик и разработчик. В реальности действующих лиц может быть гораздо больше.

В процессе разработки приложения создается формальные или неформальные документы (артефакты): техническое задание (описание требований к приложению), функциональная спецификация, описание архитектуры приложения и др.

Мы будем все такие артефакты называть спецификациями, исходя из того, что спецификация — это декларативное описание того, как нечто устроено или работает.

При этом необходимо принимать во внимание три толкования спецификаций.

Эти три трактовки спецификаций могут не совпадать, и, к сожалению, как показывает практика, сплошь и рядом не совпадают, причем значительно.

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

Визуализация.

Особенности человеческого восприятия таковы, что текст с картинками воспринимается легче, чем "голый" текст. А картинки с текстом (это называется "комиксы") — еще легче.

Модели UML допускают представление в форме картинок, причем эти картинки наглядны, интуитивно понятны, практически однозначно интерпретируются и легко составляются.

Посмотрите на следующий рисунок. Разве что-нибудь здесь непонятно?

purpose-uml

Таким образом, второе по важности назначение UML состоит в том, чтобы служить адекватным средством коммуникации между людьми.

Проектирование.

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

Другими словами, одним из назначений UML является, например, создание таких моделей, для которых возможна автоматическая генерация программного кода (или фрагментов кода) соответствующих приложений. Более того, природа моделей UML такова, что возможен и обратный процесс: автоматическое построение модели по коду готового приложения.

Документирование.

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

Денис Иванов, Федор Новиков