Software Disclaimer

Class UML 2.3::Profile

Description:

A profile defines limited extensions to a reference metamodel with the purpose of adapting the metamodel to a specific platform or domain.

Direct Superclasses: Package

Direct Subclasses:

Class Precedence List: Profile, Package, TemplateableElement, Namespace, PackageableElement, ParameterableElement, NamedElement, Element

Properties:

metaclassReference : ElementImport (0 *); -- source Profile
metamodelReference : PackageImport (0 *); -- source Profile
nestedPackage : Package (0 *); -- source Package

References the packaged elements that are Packages.
{composite, derived}
Subsets: Package.packagedElement
The spec does not provide a function to compute this derived property!

nestingPackage : Package (0 1); -- source Package
ownedStereotype : Stereotype (0 *); -- source Package
ownedType : Type (0 *); -- source Package
packageMerge : PackageMerge (0 *); -- source Package
packagedElement : PackageableElement (0 *); -- source Package
profileApplication : ProfileApplication (0 *); -- source Package
ownedTemplateSignature : TemplateSignature (0 1); -- source TemplateableElement
templateBinding : TemplateBinding (0 *); -- source TemplateableElement
elementImport : ElementImport (0 *); -- source Namespace
importedMember : PackageableElement (0 *); -- source Namespace
member : NamedElement (0 *); -- source Namespace
ownedMember : NamedElement (0 *); -- source Namespace
ownedRule : Constraint (0 *); -- source Namespace
packageImport : PackageImport (0 *); -- source Namespace
visibility : VisibilityKind (1 1); -- source PackageableElement
owningTemplateParameter : TemplateParameter (0 1); -- source ParameterableElement
templateParameter : TemplateParameter (0 1); -- source ParameterableElement
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: references_same_metamodel() : Boolean;
Description: All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel.
The OCL used here is not normative.
Editor's notes: removed ) at ())->, but allOwningPackages not used, thus this cannot be used.
Expression: true
Original: self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages())-> union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty()

Signature: metaclass_reference_not_specialized() : Boolean;
Description: An element imported as a metaclassReference is not specialized or generalized in a Profile.
The OCL used here is not normative.
Editor's notes: specialization not defined.
Expression: true
Original: self.metaclassReference.importedElement-> select(c | c.oclIsKindOf(Classifier) and (c.generalization.namespace = self or (c.specialization.namespace = self) )->isEmpty()

Operations:

No additional operations.



Send questions or comments to [email protected].