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