Components are the units of deployment. They are the smallest entities that can be deployed as part of a system. — Robert C. Martin
Software components are self-contained units of software that encapsulate a set of related functions or data.
Characteristics of Software Components:
- Reusability: Can be used in different systems or contexts.
- Replaceable: Can be substituted with other similar components.
- Independence: Has minimal dependencies on other components.
- Extensible: Can be extended to provide new behavior.
- Encapsulated: hides its internal details from the outside world.
Components interact with other parts of the system through well-defined interfaces.