Class UML 2.4.1::Interface
Description:
Since an interface specifies conformance characteristics, it does not own
detailed behavior specifications. Instead, interfaces may own a protocol
state machine that specifies event sequences and pre/post conditions for
the operations and receptions described by the interface.Interfaces may
include receptions (in addition to operations).An interface is a kind of
classifier that represents a declaration of a set of coherent public features
and obligations. An interface specifies a contract; any instance of a classifier
that realizes the interface must fulfill that contract. The obligations
that may be associated with an interface are in the form of various kinds
of constraints (such as pre- and post-conditions) or protocol specifications,
which may impose ordering restrictions on interactions through the interface.
Direct Superclasses: ClassifierDirect Subclasses: Class Precedence List: Interface,
Classifier,
Namespace,
Type,
PackageableElement,
ParameterableElement,
RedefinableElement,
NamedElement,
TemplateableElement,
ElementProperties:
![](/se-interop/image/down-arrow.png)
nestedClassifier :
Classifier (0 *); -- source
Interface![](/se-interop/image/down-arrow.png)
ownedAttribute :
Property (0 *); -- source
Interface![](/se-interop/image/down-arrow.png)
ownedOperation :
Operation (0 *); -- source
Interface![](/se-interop/image/down-arrow.png)
ownedReception :
Reception (0 *); -- source
Interface![](/se-interop/image/down-arrow.png)
protocol :
ProtocolStateMachine (0 1); -- source
Interface![](/se-interop/image/down-arrow.png)
redefinedInterface :
Interface (0 *); -- source
Interface![](/se-interop/image/down-arrow.png)
attribute :
Property (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
collaborationUse :
CollaborationUse (0 *); -- source
Classifier![](/se-interop/image/right-arrow.png)
feature :
Feature (0 *); -- source
ClassifierSpecifies each feature defined in the classifier. Note that there may be
members of the Classifier that are of the type Feature but are not included
in this association, e.g. inherited features.
{
readonly}
Derived union with sources: (attribute, ownedReception, ownedOperation, ownedAttribute)
Subsets: Namespace.member
Opposite: Feature.featuringClassifier
![](/se-interop/image/down-arrow.png)
general :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/right-arrow.png)
inheritedMember :
NamedElement (0 *); -- source
ClassifierSpecifies all elements inherited by this classifier from the general classifiers.
{
readonly,
derived}
Subsets: Namespace.member
![](/se-interop/image/right-arrow.png)
isAbstract : Boolean (1 1); -- source
ClassifierIf true, the Classifier does not provide a complete declaration and can
typically not be instantiated. An abstract classifier is intended to be
used by other classifiers e.g. as the target of general metarelationships
or generalization relationships.
Default value: FALSE
![](/se-interop/image/down-arrow.png)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png)
ownedUseCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
representation :
CollaborationUse (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png)
substitution :
Substitution (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png)
useCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
package :
Package (0 1); -- source
Type![](/se-interop/image/down-arrow.png)
visibility :
VisibilityKind (1 1); -- source
PackageableElement![](/se-interop/image/right-arrow.png)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElementThe formal template parameter that owns this element.
Subsets: Element.owner, ParameterableElement.templateParameter
Opposite: TemplateParameter.ownedParameteredElement
![](/se-interop/image/right-arrow.png)
isLeaf : Boolean (1 1); -- source
RedefinableElementIndicates whether it is possible to further redefine a RedefinableElement.
If the value is true, then it is not possible to further redefine the RedefinableElement.
Note that this property is preserved through package merge operations;
that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false)
must be preserved in the resulting RedefinableElement of a package merge
operation where a RedefinableElement with isLeaf=false is merged with a
matching RedefinableElement with isLeaf=true: the resulting RedefinableElement
will have isLeaf=false. Default value is false.
Default value: FALSE
![](/se-interop/image/down-arrow.png)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png)
owner :
Element (0 1); -- source
ElementConstraints:
Signature: visibility() : Boolean;
Description: The visibility of all features owned by an interface must be public.
Expression: self.feature->forAll(f | f.visibility = #public)
Operations:
No additional operations.
Send questions or comments to
[email protected].