The increasing demand for complex and distributed software calls for novel software engineering methods and techniques, to create systems able to autonomously adapt to dynamically changing situations. In this paper, we present a framework for engineering requirements for adaptive software systems. The approach, called Tropos4AS, combines goal-oriented concepts and high-variability design methods. The Tropos4AS requirements model can be directly mapped to software prototypes with an agent-oriented architecture which can be executed for requirements validation and refinement. We give a comprehensive description of the framework, with conceptual models, modelling guidelines, and supporting tools. The applicability of the framework to requirements validation and refinement is illustrated through a case study. Two controlled experiments with subjects provide an empirical evaluation of the proposed modelling language, with statistical evidence of the effectiveness of the modelling approach for gathering requirements of adaptive systems.