Modeling software components from multiple perspectives provides complementary views of a software system and enables sophisticated
analyses of its functionality. A software component is traditionally modeled from one or more of four functional aspects:
interface, static behavior, dynamic behavior, and interaction protocol. Each of these aspects helps to ensure different levels
of component compatibility and interoperability. Existing approaches to component modeling have either focused on only one
of the aspects (e.g., interfaces in various IDLs) or on well-understood combinations of pairs of aspects (e.g., interfaces
and their associated pre- and post-conditions in static behavior models). We advocate that, in order to accrue the true benefits
of component-based software development, one needs to model all four aspects of components. In such a case, ensuring the consistency
among the multiple views becomes critical. We offer an approach to modeling components using a fourview perspective (called
the Quartet) and identify the points at which the consistency among the models must be maintained. We outline the range of
possible intra-component, inter-model relationships, discuss their respective advantages and drawbacks, and motivate the specific
choices we have made in our on-going research on ensuring the dependability of software systems from an architectural perspective.
Keywords Software architecture - software component - dependability - reliability - the Quartet