A custom UML profile is primarily
a set of stereotypes, constraints, and sometimes classes and other
elements that adapt the UML metamodel for a particular domain or purpose;
profiles are external to a model and they extend the UML without changing
the base metamodel.
You can create custom UML profiles if the default profiles do not
meet your project requirements. You can create basic profiles that
simply provide additional presentation functionality; you can also
create complex profiles deployed through plug-ins and that contain
accompanying code to take advantage of the profile's metamodel extensions.
A custom UML profile is helpful in the following situations:
- To extend and customize the UML metamodel for a particular domain
- To provide syntax for constructs that do not have a UML notation
- To provide a different notation for existing symbols
- To add semantics that the UML metamodel does not specify, such
as how to prioritize the reception of signals in a state machine
- To add semantics that do not exist in the UML metamodel such as
a timer or clock
- To add information that a transformation uses to generate code
from a model
A custom UML profile is stored in a file with an EPX file extension;
you can view profiles in the Project Explorer view.
When you create a profile, consider the following information to
help guide custom profile development:
- Look for published, existing profiles that already meet your needs.
- Determine the level of abstraction that makes the most sense.
- Identify the key terms in the domain that you are trying to represent
in the profile.
- Consider how profiles can work with custom patterns and transformations.
Important: Profiles are an extension to the meta-model;
therefore, the profile becomes critical to the definition of the model
internals as soon as a profile is applied to a model. A model can
only be opened in the presence of all of the profiles that are applied
to it.