Em modelos UML, os gabaritos são elementos do modelo com parâmetros formais não ligados que podem ser utilizados para definir famílias de classificadores, pacotes e operações.
Um gabarito é um elemento de modelo parametrizado que descreve ou identifica o padrão de um grupo de elementos de modelo de um tipo específico. Como eles representam tipos de elementos, não é possível utilizar gabaritos diretamente em seus modelos. Em vez disso, você deve primeiro instanciar o gabarito ligando seus parâmetros a valores reais. Uma ligação entre um gabarito e um elemento de modelo gera um novo elemento de modelo com base no gabarito. Em seguida, é possível utilizar o elemento ligado para modelar parte de um sistema.
Em vez de projetar elementos de modelo distintos para cada tipo de dados no modelo, é possível utilizar gabaritos para projetar um único elemento de modelo (um classificador, um pacote ou uma operação) que trabalhe com diferentes tipos de dados. Por exemplo, uma classe de gabarito fornece uma descrição parametrizada de uma classe, especificando seus atributos e operações. Ligando múltiplas classes ao gabarito, é possível gerar novas classes com as mesmas características do gabarito.
Um gabarito aparece como um classificador com uma caixa tracejada no canto superior direito.