A modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.
A Component defines its behavior in terms of ProvidedInterfaces and RequiredInterfaces. As such, a Component serves as a type, whose conformity is defined by these ProvidedInterfaces and RequiredInterfaces (encompassing both their static as well as dynamic semantics). One Component may therefore be substituted by another only if the two are type-conformant. Larger pieces of a system's functionality may be assembled by reusing Components as parts in an encompassing Component or assembly of Components, and wiring together their ProvidedInterfaces and RequiredInterfaces. A Component is modeled throughout the development life cycle and successively refined into deployment and run-time. A Component may be manifested by one or more Artifacts, and in turn, that Artifact may be deployed to its execution environment. A Component is a subtype of Class, and can have Attributes and Operations, and is able to participate in Associations and Generalizations. A Component may form the Abstraction for a set of realizing Classifiers that realize its behavior. A Component may optionally have an internal structure and own a set of Ports that formalize its interaction points. A Component has a number of ProvidedInterfaces and RequiredInterfaces, that form the basis for wiring components together, either using Dependencies or Connectors. A ProvidedInterface is one that is either implemented directly by the Component or one of its realizing Classifiers, or it is the type of a provided Port of the Component. A RequiredInterface is designated by a Usage Dependency from the Component or one of its realizing Classifiers, or it is the type of a required Port. A Component is extended to define the grouping aspects of packaging Components. This defines the NameSpace aspects of a Component through its inherited ownedMember and elementImport associations. In a Component's NameSpace, all ModelElements that are involved in or related to its definition are either owned or imported explicitly. This may include, for example, UseCases and Dependencies (for example, mappings), Packages, Components and Artifacts.
: Component (architecture_autodiagram)
Figure 204 : Component (architecture_autodiagram)
Realization : ComponentRealization [0..*]
Specifies the Classifier to which it can be substituted.