UML Profile Diagrams
Profile diagram is structure diagram which describes lightweight extension mechanism to the UML by defining custom stereotypes, tagged values, and constraints. Profiles allow adaptation of the UML metamodel for different:
- platforms, such as Java Platform, Enterprise Edition (Java EE) or Microsoft .NET Framework, or
- domains, such business process modeling, service-oriented architecture, medical applications, etc.
For example, semantics of standard UML metamodel elements could be specialized in a profile. In a model with the profile "Java model," generalization of classes should be able to be restricted to single inheritance without having to explicitly assign a stereotype «Java class» to each and every class instance.
The profiles mechanism is not a first-class extension mechanism. It does not allow to modify existing metamodels or to create a new metamodel as MOF does. Profile only allows adaptation or customization of an existing metamodel with constructs that are specific to a particular domain, platform, or method. It is not possible to take away any of the constraints that apply to a metamodel, but it is possible to add new constraints that are specific to the profile.
Metamodel customizations are defined in a profile, which is then applied to a package. Stereotypes are specific metaclasses, tagged values are standard metaattributes, and profiles are specific kinds of packages.
Profiles can be dynamically applied to or retracted from a model. They can also be dynamically combined so that several profiles will be applied at the same time on the same model.
Graphical nodes and edges used on profile diagrams are: profile, metaclass, stereotype, extension, reference, profile application.
Profiles were present in UML 1.x. Profile diagrams were introduced in UML 2.0 but first appeared on "official" taxonomy of UML diagrams in UML 2.2 ([UML 2.2 - Superstructure], Figure A.5).