A component is a group of files and directory elements (this might be a library, DLL, JAR, an executable, or other assets) that are released as a unit and are related by being located in a specific directory tree.
Components provide separation of concern and organize elements into well-defined entities. A VOB can host one or more components, but a component without any elements does not have to be in a VOB. Similarly, components constitute parts of a project, and projects often share components.
There are two types of components in UCM:
(1) A rooted component
(2) A rootless component.
A rooted component is a UCM object linked to a VOB root or directory within a VOB. A rootless component is a UCM object containing no root directory (This type of component is used for composite baselines).