Profile (UML)

A profile in the Unified Modeling Language (UML) provides a generic extension mechanism for customizing UML models for particular domains and platforms. Extension mechanisms allow refining standard semantics in strictly additive manner, preventing them from contradicting standard semantics.

Profiles are defined using stereotypes, tag definitions, and constraints which are applied to specific model elements, like Classes, Attributes, Operations, and Activities. A Profile is a collection of such extensions that collectively customize UML for a particular domain (e.g., aerospace, healthcare, financial) or platform (J2EE, .NET).

Examples
The UML Profile for XML is defined by David Carlson in the book "Modeling XML Applications with UML" pp. 310 and describes a set of extensions to basic UML model elements to enable accurate modeling of XSD schemas.

SysML is an Object Management Group (OMG)-standardized profile of Unified Modeling Language which is used for system engineering applications.

MARTE is the OMG standard for modelling real-time and embedded applications with UML2.

The UML profile for relationships (see also ) is based on RM-ODP and provides precise specifications of the semantics of UML concepts used to specify generic (not necessarily binary) relationships such as composition and subtyping.