Software Product Line Engineering (SPLE) is a software development technique that aims to apply the principles of industrial manufacturing to obtaining software applications: i.e., a Software Product Line (SPL) is used to build a family of products with common features and whose members, however, may have some distinguished features. To identify these commonalities and variabilities a priori maximizes the reuse, and reduces the costs and development time. In this context, to describe these relationships among products with enough expressiveness becomes the key to success. In recent years Model Driven Engineering (MDE) has emerged as a paradigm that allows dealing with software artifacts with a high level of abstraction. As a result, SPLs can benefit greatly from the standards and tools that have emerged within the MDE community. However, a good integration between SPLE and MDE has not been achieved yet. As a consequence, the mechanisms for variability management are not expressive enough. Thus, it is not possible to deal with variability issues in an effective way in complex software development processes, where different views of a system, model transformations and code generation play an important role. This thesis presents MULTIPLE, a framework and a tool which aims to integrate accurate and efficient variability management mechanisms (which are inherent to SPLs development) together with MDE techniques. MULTIPLE provides domain specific languages to specify different views of software systems. Among these views special emphasis has been placed on the variability view because it is crucial for the specification of a SPL. Precise mechanism of specification, instantiation, validation and verification are provided for this view. MULTIPLE also allows to implement complex software development processes of using model transformations and code generation. The MULTIPLE tool has been used in five case studies in areas as diverse as the development of families of expert systems, the analysis of a large SPL in an industrial environment, bioinformatics, software metrics and software architectures.