La notazione UML è semi-grafica e [[Linguaggio formale|semi-formale]]; un modello UML è costituito da una collezione organizzata di [[diagramma|diagrammi]] correlati, costruiti componendo elementi grafici (con significato formalmente definito), elementi testuali formali, ed elementi di testo libero. Ha una [[semantica (informatica)|semantica]] molto precisa e un grande potere descrittivo.
Il linguaggio è stato progettato con l'obiettivo esplicito di facilitare il supporto software alla costruzione di modelli e l'integrazione di questo supporto con gli [[Integrated development environment|ambienti integrati di sviluppo]]. OMG, in particolare, gestisce una famiglia di standard correlata a UML, detta [[Model Driven Architecture]] (MDA), che ha lo scopo di fornire le fondamenta concettuali e semantiche per lo sviluppo di ambienti evoluti di ''[[round-trip engineering]]'' in cui la modellazione UML, in qualche misura, possa sostituire di fatto la programmazione tradizionale. Sebbene questo obiettivo sia ancora da raggiungere, molti [[Integrated development environment|IDE]] comprendono strumenti di modellazione in UML e forniscono meccanismi automatici di traduzione parziale dei diagrammi UML in [[codice sorgente|codice]] e viceversa. Viceversa, molti ambienti software dedicati alla modellazione in UML consentono di generare codice in diversi linguaggi.
UML è un linguaggio di modellazione ''general purpose'', che fornisce concetti e strumenti applicabili in tutti i contesti. Poiché particolari domini applicativi o famiglie di applicazioni potrebbero aver bisogno di concetti ulteriori e specifici, UML fornisce un meccanismo standard che consente di estendere il linguaggio. Una estensione di UML per un particolare contesto viene detta un [[profilo UML]].