Унифицированный язык моделирования (Unified Modeling Language, UML) – это язык визуального моделирования для решения задач общего характера, который используется при определении, визуализации, конструировании и документировании артефактов программной системы. Данный язык призван объединить в единый стандартный подход весь опыт, который был накоплен в процессе использования прежних способов моделирования, а также все лучшее из современных методов программирования. UML является преемником методов объектно-ориентированного анализа и проектирования (OOA/OOD).
В своем нынешнем состоянии язык UML определяет нотацию и метамодель. Нотация– это совокупность графических элементов, образующих синтаксис данного языка. Она используется для визуального представления семантики модели. Визуальное представление обеспечивает возможность непосредственной работы с моделью, т.е. позволяет просматривать и редактировать ее. Метамодель представляет собой диаграмму, использующую нотацию. На рис. 3 изображена часть метамодели языка UML, которая показывает отношение между ассоциациями и обобщением.
Рис. 3. Фрагмент метамодели языка UML
UML состоит из четырех частей, описывающих различные аспекты системы:
· статические,
· динамические,
· организационные,
· относящиеся к реализации.
Система моделируется как группа дискретных объектов, которые взаимодействуют друг с другом таким образом, чтобы удовлетворить требованиям пользователя. В статической структуре задаются типы объектов, значимые для системы, и ее реализации, а также отношения между этими объектами. Динамическое поведение определяет историю объектов и их взаимодействие для достижения конечной цели. Организационный аспект предполагает возможность деления информации о системе на иерархически организованные связные понятные части, или пакеты, позволяющие командам разработчиков параллельно работать над различными разделами системы. В языке UML также есть структуры, позволяющие отображать решения по реализации системы и организовывать выполняемые блоки программы в компоненты. При этом под компонентом понимается вещественная замещаемая часть системы, которая соответствует некоторому набору интерфейсов и обеспечивает их реализацию. Компонент должен легко замещаться другими компонентами с тем же набором интерфейсов.
UML создавался как язык моделирования общего назначения для применения в таких дискретных системах, как программное обеспечение, аппаратные средства или цифровая логика. Это дискретный язык моделирования, он не предназначен для разработки непрерывных систем, встречающихся в физике и механике. UML не является языком программирования. Программный код можно получить на основе созданной модели с помощью инструментальных средств, поддерживающих UML и содержащих генераторы кода. С другой стороны, на основе исходного кода можно восстановить UML-модели уже существующих программ.