Component
A component is defined as an "object with introspectable interfaces". Specifically, we define a component to be an object that asserts interfaces using the ZopeInterfaces.
The main point of components is composability. Components are hooked together to form applications. Interfaces define the way components can be hooked together.
Within the component architecure, we use interfaces, rather than classes, to abstractly classify components into different kinds. We connect components together based on kind of component.
In general a component fosters predictable, extensible component interoperation: general clarity for interconnection, promoting reusability, maintainability, systematic characterization and categorization.
