3.6.2. Design time/run time composition and composition mechanisms. In CBSE, components can be composed at design time and run time. Design time composition allows for optimization [4]. A component detaches its interface from its implementation, and conceals its implementation details, hence permitting composition without need to know the component implementation details [1]. The mechanisms for component composition vary from method calls, to pipes and filters or event mechanism [4]. Furthermore, component models provide also general architecture and mechanism for component composition. For example, component models require components to support introspective operations to enable component composition at assembly time or run time [17], e.g. the functionality and properties of the components can be discovered and utilized automatically at assembly time or run time.