Previous UML Classes Table of Contents UML Packages Next


7.3.19 Feature

Kernel


   A feature declares a behavioral or structural characteristic of instances of classifiers.

*Generalizations

   

    RedefinableElement (from Kernel ) on page 132

*Description

   A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass.

*Attributes

*Associations

*Constraints

   No additional constraints

*Semantics

   A feature represents some characteristic for its featuring classifiers; this characteristic may be of the classifier’s instances considered individually (not static), or of the classifier itself (static). A Feature can be a feature of multiple classifiers. The same feature cannot be static in one context but not another.

*Semantic Variation Points

   With regard to static features, two alternative semantics are recognized. A static feature may have different values for different featuring classifiers, or the same value for all featuring classifiers.

   In accord with this semantic variation point, inheritance of values for static features is permitted but not required by UML

   2. Such inheritance is encouraged when modeling systems will be coded in languages, such as C++, Java, and C#, which stipulate inheritance of values for static features.

*Notation

   No general notation. Subclasses define their specific notation.

   Static features are underlined.

*Presentation Options

   Only the names of static features are underlined.

   An ellipsis (...) as the final element of a list of features indicates that additional features exist but are not shown in that list.

*Changes from previous UML

   The property isStatic in UML 2 serves in place of the metaattribute ownerScope of Feature in UML 1. The enumerated data type ScopeKind with two values, instance and classifier, provided in UML 1 as the type for ownerScope is no longer needed because isStatic is Boolean.