Self-adaptation is emerging as a crucial enabling capability for many applications, particularly those deployed in dynamically changing environments. One key challenge posed by dynamically adaptive systems (DASs) is the need to handle changes to the requirements and corresponding behavior of a DAS in response to varying environmental conditions. In this paper we propose a visual model-driven approach that uses the i* modeling language to represent goal models for the DAS requirements. Our approach applies a rigorous separation of concerns between the requirements for the DAS to operate in stable conditions and those that enable it to adapt at run-time to enable it to cope with changes in its environment. We further show how requirements derived from the i* modeling can be used by a domain-specific language to achieve requirements model-driven development. We describe our experiences with applying this approach to GridStix, an adaptive flood warning system, deployed on the River Ribble in North Yorkshire, England.