Se você estiver modelando um sistema e precisar estender o metamodelo UML para um uso específico, em vez de alterar o metamodelo, poderá criar um conjunto de estereótipos e restrições e agrupá-los em um perfil UML personalizado. Você pode aplicar um perfil UML personalizado a um modelo e utilizar os estereótipos e restrições para marcar seu modelo para uma plataforma ou domínio específico. Por exemplo, você pode criar um perfil que controle como uma transformação gera código C++ a partir de um modelo UML.