In [[ingegneria del software]], lo '''UML''' ('''U'''nified '''M'''odeling '''L'''anguage, "linguaggio di modellazione unificato") è un [[linguaggio di modellazione]] e [[linguaggio di specifica|specifica]] non proprietario, in larga parte basato su concetti ''[[programmazione orientata agli oggetti|object-oriented]]''. Oltre che per modellare sistemi [[software]], UML viene comunemente usato per la descrizione e la specifica di sistemi [[hardware]], [[processo di business|processi di ''business'']], [[struttura organizzativa|strutture organizzative]] e altro. Come il nome suggerisce, il linguaggio è nato unificando una serie di notazioni di modellazione e specifica preesistenti, con l'obiettivo generale di integrare le ''[[best practices]]'' rappresentate da ciascuna di esse. In questo senso, UML rappresenta la ''summa'' di almeno due decenni di studio sulla modellazione ''object-oriented'' e, anche per questo motivo, è oggi considerato una sorta di lingua franca che qualunque progettista (soprattutto, ma non solo, di sistemi software) dovrebbe conoscere in modo approfondito.
L'UML è un linguaggio che definisce una sintassi e delle regole di interpretazione; non si tratta quindi di una [[metodologia]] di progettazione e per questo motivo può essere adottato con diverse metodologie o in ambiti diversi da quello informatico.