UML es un lenguaje de modelado independiente de métodos que permite especificar, visualizar y documentar sistemas de software. Se originó en la década de 1990 a través de la unificación de los métodos Booch y OMT por Grady Booch, James Rumbaugh y Ivar Jacobson. UML captura información estática y dinámica de un sistema mediante diagramas que modelan objetos e interacciones para lograr un objetivo. Aunque no es un lenguaje de programación, las herramientas pueden generar código a partir de modelos UML