There is a conceptual gap between the way we currently articulate requirements and the reuse-driven paradigm embodied in component-based system development. The principal challenge in requirements engineering for component-based systems is to develop models and methods that allow us make the best use of the available component technology by balancing aspects of requirements and business concerns, with the architectural assumptions and capabilities embodied in blackbox software components. This paper proposes a method for requirements engineering based on the notion of viewpoints that provides an explicit framework for expressing component-based system requirements from initial formulation through to detailed specification.