Class UML 2.4.1::Component
Description:
In the namespace of a component, all model elements that are involved in
or related to its definition are either owned or imported explicitly. This
may include, for example, use cases and dependencies (e.g. mappings), packages,
components, and artifacts.A component represents a modular part of a system
that encapsulates its contents and whose manifestation is replaceable within
its environment.
Direct Superclasses: ClassDirect Subclasses: Class Precedence List: Component,
Class,
EncapsulatedClassifier,
StructuredClassifier,
BehavioredClassifier,
Classifier,
Namespace,
Type,
PackageableElement,
ParameterableElement,
RedefinableElement,
NamedElement,
TemplateableElement,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
isIndirectlyInstantiated : Boolean (1 1); -- source
Component![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
packagedElement :
PackageableElement (0 *); -- source
Component![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
provided :
Interface (0 *); -- source
Component![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
realization :
ComponentRealization (0 *); -- source
Component![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
required :
Interface (0 *); -- source
Component![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
extension :
Extension (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
isAbstract : Boolean (1 1); -- source
Class![](/se-interop/image/right-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
isActive : Boolean (1 1); -- source
ClassDetermines whether an object specified by this class is active or not.
If true, then the owning class is referred to as an active class. If false,
then such a class is referred to as a passive class.
Default value: FALSE
![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
nestedClassifier :
Classifier (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedAttribute :
Property (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedOperation :
Operation (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedReception :
Reception (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
superClass :
Class (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedPort :
Port (0 *); -- source
EncapsulatedClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedConnector :
Connector (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
part :
Property (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
role :
ConnectableElement (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
classifierBehavior :
Behavior (0 1); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
interfaceRealization :
InterfaceRealization (0 *); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedBehavior :
Behavior (0 *); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
attribute :
Property (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
collaborationUse :
CollaborationUse (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
feature :
Feature (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
inheritedMember :
NamedElement (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier![](/se-interop/image/right-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedUseCase :
UseCase (0 *); -- source
ClassifierReferences the use cases owned by this classifier.
{
composite}
Subsets: Namespace.ownedMember
![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
representation :
CollaborationUse (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
substitution :
Substitution (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
useCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/right-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
elementImport :
ElementImport (0 *); -- source
NamespaceReferences the ElementImports owned by the Namespace.
{
composite}
Subsets: Element.ownedElement
Opposite: ElementImport.importingNamespace
![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/right-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
package :
Package (0 1); -- source
TypeSpecifies the owning package of this classifier, if any.
Opposite: Package.ownedType
![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
visibility :
VisibilityKind (1 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=104937%3A0C35876E1DBA908CF18F31EE94BD15B7)
owner :
Element (0 1); -- source
ElementConstraints:
Signature: no_packaged_elements() : Boolean;
Description: component nested in a Class cannot have any packaged elements.
Expression: (not self.class->isEmpty()) implies self.packagedElement->isEmpty()
Signature: no_nested_classifiers() : Boolean;
Description: A component cannot nest classifiers.
Expression: self.nestedClassifier->isEmpty()
Operations:
Signature: usedInterfaces(classifier : Classifier; ) : Interface;
Description: Utility returning the set of used interfaces of a component.
The OCL used here is not normative.Editor's notes: supplierDependency not defined.
Expression: Set{}
Original: result = (classifier.supplierDependency-> select(dependency|dependency.oclIsKindOf(Usage) and dependency.supplier.oclIsKindOf(interface)))-> collect(dependency|dependency.supplier)
Signature: required.1() : Interface;
Description: Missing derivation for Component::/required : Interface
The OCL used here is not normative.Editor's notes: realizedInterfaces() not RealizedInterfaces(), and it is also a variable here. Needs investigation.
Expression: Set{}
Original: result = let usedInterfaces : Set(Interface) = UsedInterfaces(self), realizingClassifiers : Set(Classifier) = Set{self.realizingClassifier}->union(self.allParents().realizingClassifier), allRealizingClassifiers : Set(Classifier) = realizingClassifiers->union(realizingClassifiers.allParents()), realizingClassifierInterfaces : Set(Interface) = allRealizingClassifiers->iterate(c; rci : Set(Interface) = Set{} | rci->union(UsedInterfaces(c))), ports : Set(Port) = self.ownedPort->union(allParents.oclAsType(Set(EncapsulatedClassifier)).ownedPort), usedByPorts : Set(Interface) = ports.required in usedInterfaces->union(realizingClassifierInterfaces) ->union(usedByPorts)->asSet()
Signature: realizedInterfaces(classifier : Classifier; ) : Interface;
Description: Utility returning the set of realized interfaces of a component.
The OCL used here is not normative.Editor's notes: I removed a open paren here somewhere.
Expression: result = classifier.clientDependency->
select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface))->
collect(dependency|dependency.client)
Original: result = (classifier.clientDependency-> select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface)))-> collect(dependency|dependency.client)
Signature: provided.1() : Interface;
Description: Missing derivation for Component::/provided : Interface
The OCL used here is not normative.Editor's notes: realizedInterfaces() not RealizedInterfaces(), and it is also a variable here. Needs investigation.
Expression: Set{}
Original: result = let realizedInterfaces : Set(Interface) = RealizedInterfaces(self) , realizingClassifiers : Set(Classifier) = Set{self.realizingClassifier}->union(self.allParents().realizingClassifier), allRealizingClassifiers : Set(Classifier) = realizingClassifiers->union(realizingClassifiers.allParents()) , realizingClassifierInterfaces : Set(Interface) = allRealizingClassifiers->iterate(c; rci : Set(Interface) = Set{} | rci->union(RealizedInterfaces(c))) , ports : Set(Port) = self.ownedPort->union(allParents.oclAsType(Set(EncapsulatedClassifier)).ownedPort) , providedByPorts : Set(Interface) = ports.provided in realizedInterfaces->union(realizingClassifierInterfaces) ->union(providedByPorts)->asSet()
Send questions or comments to
[email protected].