Model Profiling
Profiling is an adaptation process of UML2 metaclasses for different application specific purposes. It is a mechanism defined by the UML standard. A profile can be seen as a specific kind of a package containing stereotypes (specific metaclasses), tagged values (metaattributes) and constraints defining restriction rules that constrain a reference metamodel. Whereas definition of new stereotypes and tagged values is standardized, the definition and especially the enforcement of the constraints is not specified and poorly supported or not supported at all by UML design tools. This fact represents a big obstacle in using and applying of custom profiles.
The missing concept for the constraint definition, but mainly for the constraint enforcement has resulted in the development of a new profile enforcement concept that is presented by these web sites in the section Profile Enforcement.
Definition of Constraints
The definition of constraints and their enforcement on a reference metamodel is not strictly forced by the UML standard. Presently, in the case of the constraint definition there are two mostly widespread profile definition approaches. The first and the most natural choice is to use an informal language to describe restrictions on considered UML2 elements. The second possibility is to use a special programming language in which the restrictions can be described in a formal manner. However, in majority of cases these two approaches are combined, starting with the informal description that is consequently translated, if possible, to a description in formal language. The OCL (Object Constraint Language) is a typical representative of a language used for the formal description of restrictions on UML2 metaclasses.