UML component diagrams describe software components and their dependencies. A component represents a modular and replaceable unit with well-defined interfaces. Component diagrams show the organization and dependencies between components using interfaces, dependencies, ports, and connectors. They can show both the external view of a component's interfaces as well as its internal structure by nesting other components or classes.