One of the most important problems that were presented to be solved when Web Engineering emerged was the insufficient requirements specification techniques that exist for Web applications. Although a significant number of proposals provide methodological solutions for developing Web applications, they mainly focus on defining Web applications from conceptual models, and do not pay much attention to the specification of requirements. Furthermore, traditional techniques for specifying requirements are not appropriate to support distinctive characteristics of Web applications such as Navigation. In this thesis, we present a Requirements Engineering approach for specifying Web applications requirements. This approach includes mechanisms based on the task metaphor for specifying not only requirements related to the structural and behavior aspect of Web applications but also those related to the navigational aspects. However, requirements specifications alone are of little use if we do not translate them into the proper software artefacts. This is a classical problem that the Software Engineering community has been trying to solve from its beginning: how to go from the problem space (user requirements) to the solution space (design and implementation) with a sound methodological guidance. In this thesis, we present a tool-supported strategy based on graph transformations that allows us to automatically perform model-to-model transformations between task-based requirements specifications and Web conceptual schemas. Furthermore, this strategy has been integrated with a Web engineering method that provides us with code generation capabilities. This integration allows us to provide a mechanism to automatically generate Web application prototypes from requirements specification.