Component (UML)

A component[1] in the Unified Modeling Language represents a modular part of a system that encapsulates the state and behavior of a number of classifiers.

Its behavior is defined in terms of provided and required interfaces,[2] is self-contained, and substitutable.

[1] A component may be replaced at design time or run-time by another if and only if their provided and required interfaces are identical.

This idea is the underpinning for the plug-and-play capability of component-based systems and promotes software reuse.

[2] A component acts like a package for all model elements that are involved in or related to its definition, which should be either owned or imported explicitly.

A UML Component with provided and required interfaces