Введение

UML-инструмент – это программное приложение, поддерживающее некоторые или все обозначения и семантику, связанные с Унифицированным языком моделирования (UML), являющимся отраслевым стандартом для общего назначения в области разработки программного обеспечения. Под UML-инструментом здесь понимаются также прикладные программы, которые не специализируются исключительно на UML, но поддерживают некоторые функции Унифицированного языка моделирования в виде дополнения, компонента или как часть своей общей функциональности.

Диаграмма

Диаграммы в данном контексте подразумевают создание и редактирование диаграмм UML, то есть диаграмм, соответствующих графической нотации Унифицированного языка моделирования. Использование диаграмм UML для визуализации – преимущественно – объектно-ориентированного программного обеспечения общепринято среди разработчиков. Когда разработчики визуализируют объектно-ориентированное программное обеспечение, они, как правило, используют нотацию UML. Однако часто ведутся споры о необходимости этих диаграмм в принципе, о том, на каких этапах процесса разработки программного обеспечения их следует применять, и о том, как (если вообще) поддерживать их актуальность. Преимущество программного кода часто приводит к тому, что диаграммы отходят на второй план и устаревают.

Инженерные работы

Инженерная разработка в прямом и обратном направлении — это способность UML-инструмента генерировать код из моделей и генерировать модели из кода (также известная как реверс-инжиниринг), поддерживая при этом семантическую согласованность между моделью и кодом. Генерация кода и реверс-инжиниринг рассматриваются более подробно ниже.

Создание кода

Создание кода в данном контексте означает, что пользователь создает UML-диаграммы, содержащие связанные данные модели, а инструмент UML генерирует из этих диаграмм часть или весь исходный код программной системы. В некоторых инструментах пользователь может предоставить каркас исходного кода программы в виде шаблона, где предопределенные маркеры заменяются фрагментами исходного кода в процессе генерации. Распространенная критика заключается в том, что UML-диаграммы не обладают достаточной детализацией для представления того же объема информации, что и исходный код программы: Джек У. Ривз утверждает, что окончательное воплощение проекта находится в исходном коде. (Его часто цитируемое высказывание "Код – это дизайн" было неверно истолковано как утверждение об отсутствии необходимости в промежуточных и высокоуровневых артефактах проектирования программного обеспечения, таких как UML-диаграммы или документы с требованиями к программному обеспечению).

Обмен моделями и диаграммами

XML Metadata Interchange (XMI) — это формат обмена моделями UML. XMI не поддерживает обмен диаграммами UML (UML Diagram Interchange), позволяющий импортировать диаграммы UML из одной модели в другую.

Преобразование модели

Ключевой концепцией, связанной с инициативой архитектуры, управляемой моделями, является возможность преобразования одной модели в другую. Например, можно преобразовать платформенно-независимую модель предметной области в модель, специфичную для платформы Java, для последующей реализации. Также возможно рефакторинг UML-моделей для получения более компактных и корректных UML-моделей. Можно генерировать UML-модели из других нотаций моделирования, таких как BPMN, который сам является профилем UML. Стандарт, поддерживающий это, называется QVT (Queries/Views/Transformations) – Запросы/Виды/Преобразования. Одним из примеров QVT-решения с открытым исходным кодом является язык ATL, разработанный INRIA.