Si vous modélisez un système et que vous avez besoin d'étendre le métamodèle UML pour un usage particulier, au lieu de changer de métamodèle vous pouvez créer un jeu de stéréotypes et de contraintes et les regrouper en un profil UML personnalisé. Vous pouvez appliquer un profil UML personnalisé à un modèle et utiliser les stéréotypes et les contraintes pour marquer votre modèle en fonction d'une plateforme ou d'un domaine particuliers. Vous pouvez, par exemple, créer un profil qui contrôle la manière une transformation génère du code C++ à partir d'un modèle UML.