However, complex component interfaces or multipurpose components may be
necessary for a particular system, limiting the effectiveness of testing individual
components or how the application interfaces with the component.
Similarly, components should communicate using open standards.