Um perfil é um pacote estereotipado que contém elementos de diagrama UML (Linguagem de Modelagem Unificada) que podem ser customizados para um domínio ou para um fim específico utilizando mecanismos de extensão, como estereótipos.
Um estereótipo é um mecanismo de extensão UML que amplia o vocabulário da UML e fornece significado mais específico para um artefato em um diagrama UML.
Os estereótipos não alteram a semântica subjacente de artefatos. Por exemplo, é possível especificar a aparência de um estereótipo de uma classe Java pela inclusão de um ícone de decoração, de um ícone baseado em imagem de um elemento de diagrama ou de texto entre colchetes em ângulo duplos (<< >>), mas a semântica da classe não é alterada. A classe ainda terá os mesmos atributos, operações e propriedades.
Conforme ilustrado na figura a seguir, um estereótipo é exibido como um nome delimitado por colchetes em ângulo duplos (<< >>). Alguns elementos de perfis, como estereótipos, enumerações, classes e atributos de classes e estereótipos, devem ser identificadores Java válidos para evitar colisões de nomes.