You are here: Home / Publications

Scientific Papers

ISSI Research Papers

Paper information
Title
Model Driven Software Product Line Engineering: System Variability View and Process Implications
Published in
Tesis doctoral. Dirigida por Isidro Ramos Salavert. Universitat Politècnica de València. Departamento de Sistemas Informáticos y Computación. 2 de Marzo de 2012. - 2012
Abstract
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. --- La Ingeniería de Líneas de Productos Software ---Software Product Line Engineering (SPLE) en inglés--- es una técnica de desarrollo de software que busca aplicar los principios de la fabricación industrial para la obtención de aplicaciones informáticas: esto es, una Línea de Productos Software ---Software Product Line (SPL)--- se emplea para producir una familia de productos con características comunes, cuyos miembros, sin embargo, pueden tener características diferenciales. Identificar a priori estas características comunes y diferenciales permite maximizar la reutilización, reduciendo el tiempo y el coste del desarrollo. Describir estas relaciones con la suficiente expresividad se vuelve un aspecto fundamental para conseguir el éxito. La Ingeniería Dirigida por Modelos ---Model Driven Engineering (MDE) en inglés--- se ha revelado en los últimos años como un paradigma que permite tratar con artefactos software con un alto nivel de abstracción de forma efectiva. Gracias a ello, las SPLs puede aprovecharse en gran medida de los estándares y herramientas que han surgido dentro de la comunidad de MDE. No obstante, aún no se ha conseguido una buena integración entre SPLE y MDE, y como consecuencia, los mecanismos para la gestión de la variabilidad no son suficientemente expresivos. De esta manera, no es posible integrar la variabilidad de forma eficiente en procesos complejos de desarrollo de software donde las diferentes vistas de un sistema, las transformaciones de modelos y la generación de código juegan un papel fundamental. Esta tesis presenta MULTIPLE, un marco de trabajo y una herramienta que persiguen integrar de forma precisa y eficiente los mecanismos de gestión de variabilidad propios de las SPLs dentro de los procesos de MDE. MULTIPLE proporciona lenguajes específicos de dominio para especificar diferentes vistas de los sistemas software. Entre ellas se hace especial hincapié en la vista de variabilidad ya que es determinante para la especificación de SPLs. Para esta vista se proporcionan mecanimos precisos de especificación, instanciación, validación y verificación. MULTIPLE permite, además, implementar procesos complejos de desarrollo de software empleando transformaciones de modelos y generación de código. La herramienta MULTIPLE ha sido utilizado en cinco casos de estudio en ámbitos tan diferentes como el desarrollo de familias de sistemas expertos, el análisis de una SPL de gran tamaño en un ambiente industrial, la bioinformática, las métricas software o las arquitecturas software.


BibTeX
@misc{issi_web:id:426,
        title =  "Model Driven Software Product Line Engineering: System Variability View and Process Implications",
        author = "Abel Gómez Llana",
        booktitle = "Tesis doctoral. Dirigida por Isidro Ramos Salavert. Universitat Politècnica de València. Departamento de Sistemas Informáticos y Computación. 2 de Marzo de 2012.",
        year = "2012",
        eprint = "http://issi.dsic.upv.es/publications/archives/",
        url = "http://hdl.handle.net/10251/15075",
        abstract = "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. 

---

La Ingeniería de Líneas de Productos Software ---Software Product Line Engineering (SPLE) en inglés--- es una técnica de desarrollo de software que busca aplicar los principios de la fabricación industrial para la obtención de aplicaciones informáticas: esto es, una Línea de Productos Software ---Software Product Line (SPL)--- se emplea para producir una familia de productos con características comunes, cuyos miembros, sin embargo, pueden tener características diferenciales. Identificar a priori estas características comunes y diferenciales permite maximizar la reutilización, reduciendo el tiempo y el coste del desarrollo. Describir estas relaciones con la suficiente expresividad se vuelve un aspecto fundamental para conseguir el éxito. 

La Ingeniería Dirigida por Modelos ---Model Driven Engineering (MDE) en inglés--- se ha revelado en los últimos años como un paradigma que permite tratar con artefactos software con un alto nivel de abstracción de forma efectiva. Gracias a ello, las SPLs puede aprovecharse en gran medida de los estándares y herramientas que han surgido dentro de la comunidad de MDE. 

No obstante, aún no se ha conseguido una buena integración entre SPLE y MDE, y como consecuencia, los mecanismos para la gestión de la variabilidad no son suficientemente expresivos. De esta manera, no es posible integrar la variabilidad de forma eficiente en procesos complejos de desarrollo de software donde las diferentes vistas de un sistema, las transformaciones de modelos y la generación de código juegan un papel fundamental. 

Esta tesis presenta MULTIPLE, un marco de trabajo y una herramienta que persiguen integrar de forma precisa y eficiente los mecanismos de gestión de variabilidad propios de las SPLs dentro de los procesos de MDE. MULTIPLE proporciona lenguajes específicos de dominio para especificar diferentes vistas de los sistemas software. Entre ellas se hace especial hincapié en la vista de variabilidad ya que es determinante para la especificación de SPLs. Para esta vista se proporcionan mecanimos precisos de especificación, instanciación, validación y verificación. MULTIPLE permite, además, implementar procesos complejos de desarrollo de software empleando transformaciones de modelos y generación de código. 

La herramienta MULTIPLE ha sido utilizado en cinco casos de estudio en ámbitos tan diferentes como el desarrollo de familias de sistemas expertos, el análisis de una SPL de gran tamaño en un ambiente industrial, la bioinformática, las métricas software o las arquitecturas software. 

"
}