Navegación

Búsqueda

Búsqueda avanzada

El autor Lidia Fuentes ha publicado 19 artículo(s):

2 - Configuring a Context-Aware Middleware for Wireless Sensor Networks

In the Future Internet, applications based on Wireless Sensor Networks will have to support reconfiguration with minimum human intervention, depending on dynamic context changes in their environment. These situations create a need for building these applications as adaptive software and including techniques that allow the context acquisition and decisions about adaptation. However, contexts use to be made up of complex information acquired from heterogeneous devices and user characteristics, making them difficult to manage. So, instead of building context-aware applications from scratch, we propose to use FamiWare, a family of middleware for Ambient Intelligence specifically designed to be aware of contexts in sensor and smartphone devices. It provides both, several monitoring services to acquire contexts from devices and users, and a context-awareness service to analyze and detect context changes. However, the current version of FamiWare does not allow the automatic incorporation related to the management of new contexts into the FamiWare family. To overcome this shortcoming, in this work, we first present how to model the context using a metamodel to define the contexts that must to be taken into account in an instantiation of FamiWare for a certain Ambient Intelligence system. Then, to configure a new context-aware version of FamiWare and to generate code ready-to-install within heterogeneous devices, we define a mapping that automatically transforms metamodel elements defining contexts into elements of the FamiWare family, and we also use the FamiWare configuration process to customize the new context-aware variant. Finally, we evaluate the benefits of our process, and we analyze both that the new version of the middleware works as expected and that it manages the contexts in an efficient way.

Autores: Nadia Gamez / Javier Cubo / Lidia Fuentes / Ernesto Pimentel / 
Palabras Clave:

3 - Teoría de Categorías Aplicada a Variabilidad

La Teoría de Categorías es un álgebra abstracta que capta los componentes comunes de estructuras aparentemente diferentes. Sus principios organizadores pretenden remodelar y reformular problemas, facilitando su resolución y abriendo puertas a nuevas vías de investigación. En este trabajo analizamos su aplicabilidad a Modelos de Variabilidad con los objetivos de estandarizar su expresividad y expandir el conjunto tradicional de herramientas de razonamiento y optimización.

Autores: Daniel-Jesus Munoz / Mónica Pinto / Lidia Fuentes / 
Palabras Clave: atributo de calidad - característica - modelo de variabilidad - razonador - teoría de categorías

4 - Modelando y Gestionando la Variabilidad de los Sistemas de Inteligencia Ambiental con CVL

Las Líneas de Productos Software son una tecnología adecuada para gestionar la variabilidad inherente de los sistemas de Inteligencia Ambiental (AmI). Proponemos aplicar los conceptos de la ingeniería de líneas de producto a nivel de middleware para proporcionar configuraciones adaptadas a cada dispositivo de un determinado sistema AmI. Además de por la variabilidad, el dominio AmI está caracterizado por la necesidad de adaptar el sistema a los recursos escasos que suelen poseer los dispositivos AmI. Normalmente, en este domino, que también engloba los sistemas empotrados, estos problemas se suelen resolver a nivel de código. Pero nosotros consideramos que los modelos pueden ser claves para automatizar la generación de configuraciones de middlewares a medida y también para reconfigurar dicho middleware en tiempo de ejecución. Entonces, proponemos el uso de CVL (Common Variability Language), un lenguaje de modelado de la variabilidad genérico, para modelar una familia de middlewares para AmI, gestionando la variabilidad tanto en tiempo de diseño como en tiempo de ejecución.

Autores: Nadia Gámez / Lidia Fuentes / 
Palabras Clave: Ambientes Inteligentes - Lenguajes de Modelado de la Variabilidad - Líneas de Producto Software

5 - Integrating the Common Variability Language with Multilanguage Annotations for Web Engineering

Web applications development involves managing a high diversity of files and resources like code, pages or style sheets, implemented in different languages. To deal with the automatic generation of custom-made configurations of web applications, industry usually adopts annotation-based approaches even though the majority of studies encourage the use of composition-based approaches to implement Software Product Lines. Recent work tries to combine both approaches to get the complementary benefits. However, technological companies are reticent to adopt new development paradigms such as feature-oriented programming or aspect-oriented programming.Moreover, it is extremely difficult, or even impossible, to apply these programming models to web applications, mainly because of their multilingual nature, since their development involves multiple types of source code (Java, Groovy, JavaScript), templates (HTML, Markdown, XML), style sheet files (CSS and its variants, such as SCSS), and other files (JSON, YML, shell scripts).We propose to use the Common Variability Language as a composition-based approach and integrate annotations to manage fine grained variability of a Software Product Line for web applications.In this paper, we (i) show that existing composition and annotation-based approaches, including some well-known combinations, are not appropriate to model and implement the variability of web applications; and (ii) present a combined approach that effectively integrates annotations into a composition-based approach for web applications. We implement our approach and show its applicability with an industrial real-world system.

Autores: José Miguel Horcas Aguilera / Alejandro Cortiñas / Lidia Fuentes / Miguel R. Luaces / 
Palabras Clave: annotations - automation - composition - CVL - SPL - Variability - web engineering

6 - vEXgine: Extendiendo el Motor de Ejecución de CVL

El Lenguaje CVL (textit{Common Variability Language}) carece de una herramienta flexible que permita poner en práctica las necesidades industriales del modelado de la variabilidad en Líneas de Producto Software. Las herramientas existentes que proporcionan soporte para CVL son prototipos incompletos, o se centran principalmente en la especificación de la variabilidad, sin llegar a resolverla sobre modelos reales. Además, no existe una API que permita la interacción directa con el motor CVL para extenderlo o usarlo en una aplicación independiente. Este artículo presenta vEXgine, una implementación adaptable y extensible del motor de ejecución de la variabilidad de CVL.

Autores: José Miguel Horcas Aguilera / Mónica Pinto / Lidia Fuentes / 
Palabras Clave: CVL - Línea de Producto Software - Variabilidad - vEXgine

7 - Sistema de Asignación de Tareas Energéticamente Eficiente en Infraestructuras de Despliegue Variables

Cada vez existen más dispositivos de la Internet de las Cosas conectados a Internet que generan una gran cantidad de datos que pueden llegar a congestionar la red en su camino hacia la Nube. Para paliar esta congestión, tecnologías recientes, como el Edge Computing y el Fog Computing, proponen realizar el procesamiento de los datos en dispositivos más cercanos al origen de estos datos. Esto hace que las infraestructuras sobre las que se despliegan las aplicaciones sean cada vez más variables (diferentes tipo de dispositivos, capacidades de cómputo, características de red, etc). En este trabajo se presenta una solución para la asignación óptima de tareas a dispositivos del borde, con el objetivo de minimizar el consumo energético de la ejecución de las aplicaciones. Para ello, utilizamos modelos de variabilidad de Lineas de Producto Software para configurar tanto las aplicaciones como las infraestructuras de despliegue, presentando un modelo general para este último. La configuración de ambas se utiliza como entrada a un marco de trabajo de asignación óptima de tareas, obteniendo como resultado un sistema que proporciona la configuración más eficiente energéticamente en el momento en que el usuario lanza la aplicación, sin comprometer su experiencia como usuario, de forma transparente, escalable, y consiguiendo un importante ahorro energético, como se demuestra en nuestro caso de estudio.

Autores: Ángel Cañete / Mercedes Amor / Lidia Fuentes / 
Palabras Clave: Eficiencia energética - Líneas de Producto Software - Mobile Cloud Computing - Mobile Edge Computing

8 - Despliegue Energéticamente Eficiente de Aplicaciones Distribuidas en Infraestructuras en el Borde Heterogéneas

Para disminuir la latencia y el consumo energético de las aplicaciones de usuario, paradigmas como el Edge Computing proponen delegar cierta carga computacional, que normalmente se ejecutaría en el dispositivo del cliente o en la Nube, a dispositivos situados en el borde de la red. Esto permite tanto optimizar la ejecución de las aplicaciones, como descongestionar la red al disminuir la cantidad de datos que se envían para su procesamiento en la Nube. Para hacer una asignación óptima de tareas a dispositivos es necesario considerar las capacidades y recursos de los dispositivos y los requisitos de las aplicaciones para determinar qu+AOk dispositivos serán los encargados de ejecutar cada tarea de la aplicación. En este trabajo se presenta una solución para la asignación óptima de tareas a dispositivos del borde cuyo objetivo es minimizar el consumo energético de la ejecución de las aplicaciones mientras considera los requisitos de la aplicación. Nuestro modelo de selección de dispositivos se integra con herramientas de virtualización ligera y orquestación de contenedores ampliamente utilizadas en la industria, ofreciendo alta disponibilidad y tolerancia a fallos. Aplicamos nuestra propuesta al despliegue de una aplicación de realidad aumentada en una infraestructura de nodos heterogéneos, obteniendo una reducción del consumo de la aplicación del 83+ACU comparado con la asignación por defecto del orquestador Kubernetes.

Autores: Angel Cañete / Alberto Rodríguez / Lidia Fuentes / Mercedes Amor / 
Palabras Clave: Contenedores - Docker - Edge Computing - Eficiencia energética - Kubernetes - Líneas de Producto Software - Orquestadores

9 - Mecanismos de Reconfiguración Eco-eficiente de Código en Aplicaciones Móviles Android

Los dispositivos móviles ofrecen cada vez mayores prestaciones a costa de un mayor consumo energético. La energía consumida por un móvil no sólo depende de las aplicaciones en sí, sino también de las interacciones del usuario con la aplicación. Si un recurso no está siendo utilizado por la aplicación, no debería estar consumiendo energía. En este artículo se presenta un modelo de adaptación de aplicaciones móviles al contexto del usuario con el objetivo de reducir el consumo energético de las aplicaciones. Se desarrollan y evalúan cuatro implementaciones diferentes de la propuesta en busca del mecanismo de reconfiguración más eficiente energéticamente.

Autores: Angel Canete / José Miguel Horcas Aguilera / Lidia Fuentes / 
Palabras Clave: Adaptabilidad - Android - Dispositivos móviles - Eco-Eficiente - Energía - reconfiguración dinámica

10 - Modelando la Variabilidad de Características Complejas en Líneas de Productos Software

A pesar de la gran cantidad de trabajos y de herramientas existentes en el ámbito de las Líneas de Productos Software, muchos dominios de aplicación actuales no pueden verse beneficiados del uso de una Línea de Producto Software. Además, fuera del mundo académico, la empresa sigue siendo bastante reticente a usar este enfoque. En este artículo reflexionamos sobre las razones de esta falta de adopción, tanto desde el punto de vista de las características complejas que son imprescindibles en los sistemas actuales, como del soporte que las herramientas existentes proporcionan.

Autores: José Miguel Horcas Aguilera / Mónica Pinto / Lidia Fuentes / 
Palabras Clave: Líneas de Productos Software - Modelado - Soporte de herramientas - Variabilidad

11 - Auto-adaptación de microservicios: revisión sistemática de la literatura

Los microservicios son un estilo arquitectónico que propone el desarrollo de sistemas software como un conjunto de procesos independientes y potencialmente distribuidos que interactúan para proporcionar una determinada funcionalidad. La gestión de este tipo de sistemas es tremendamente compleja ya que aúna los problemas intrínsecos de las aplicaciones distribuidas desplegadas en la nube, la heterogeneidad de los sistemas donde se despliegan y la posibilidad de fallo de los microservicios. Todo ello ha motivado la aplicación de técnicas de auto-adaptación en las aplicaciones basadas en microservicios. El objetivo de este estudio es clasificar y analizar los trabajos de auto-adaptación para microservicios. Para ello hemos realizado una revisión sistemática de la literatura con 37 trabajos publicados en los últimos 10 años. Los trabajos han sido clasificados teniendo en cuenta las tecnologías utilizadas y cómo realizan la auto-adaptación. También se han analizado sus contribuciones y retos pendientes. Nuestra principal conclusión es que no hay propuestas holísticas que aborden todos los problemas de gestión de microservicios. Además, hay áreas que aún están poco exploradas como el uso de las técnicas dirigidas por modelos, la auto-adaptación de microservicios en el edge o la IoT, o el análisis del impacto de los propios procesos de auto-adaptación.

Autores: Pablo Serrano Gutiérrez / Inmaculada Ayala / Lidia Fuentes / 
Palabras Clave: auto-adaptación - Microservicios - revisión sistemática

12 - Variability Models for Generating Efficient Configurations of Functional Quality Attributes

Context: Quality attributes play a critical role in the architecture elicitation phase. Software Sustainability and energy efficiency is becoming a critical quality attribute that can be used as a selection criteria to choose from among different design or implementation alternatives. Energy efficiency usually competes with other non-functional requirements, like for instance, performance.Objective: This paper presents a process that helps developers to automatically generate optimum configurations of functional quality attributes in terms of energy efficiency and performance. Functional quality attributes refer to the behavioral properties that need to be incorporated inside a software architecture to fulfill a particular quality attribute (e.g., encryption and authentication for the security quality attribute, logging for the usability quality attribute).Method: Quality attributes are characterized to identify their design and implementation variants and how the different configurations influence both energy efficiency and performance. A usage model for each characterized quality attribute is defined. The variability of quality attributes, as well as the energy efficiency and performance experiment results, are represented as a constraint satisfaction problem with the goal of formally reasoning about it. Then, a configuration of the selected functional quality attributes is automatically generated, which is optimum with respect to a selected objective function.Results: Software developers can improve the energy efficiency and/or performance of their applications by using our approach to perform a richer analysis of the energy consumption and performance of different alternatives for functional quality attributes. We show quantitative values of the benefits of using our approach and discuss the threats to validity.Conclusions: The process presented in this paper will help software developers to build more energy efficient software, whilst also being aware of how their decisions affect other quality attributes, such as performance.

Autores: José Miguel Horcas Aguilera / Mónica Pinto / Lidia Fuentes / 
Palabras Clave: Energy consumption - Energy Efficiency - Performance - Quality Attributes - Software Product Line - Sustainability - Variability

13 - Composition and Self-Adaptation of Service-Based Systems with Feature Models

The adoption of mechanisms for reusing software in pervasive systems has not yet become standard practice. This is because the use of pre-existing software requires the selection, composition and adaptation of prefabricated software parts, as well as the management of some complex problems such as guaranteeing high levels of efficiency and safety in critical domains. In addition to the wide variety of services, pervasive systems are composed of many networked heterogeneous devices with embedded software. In this work, we promote the safe reuse of services in servicebased systems using two complementary technologies, Service-Oriented Architecture and Software Product Lines. In order to do this, we extend both the service discovery and composition processes defined in the DAMASCo framework, which currently does not deal with the service variability that constitutes pervasive systems. We use feature models to represent the variability and to self-adapt the services during the composition in a safe way taking context changes into consideration. We illustrate our proposal with a case study related to the driving domain of an Intelligent Transportation System, handling the context information of the environment.
In this work, we present the integration process of the feature models (FM) into DAMASCo to deal with the services’ variability in the composition. Firstly, in addition to the BPEL/WF descriptions, we have a FM for each service describing its variability. Then, each business process corresponds with a valid configuration of the FM that represents it. We focus on the representation of the service variability wrt the context. After a client executes a request, both the DAMASCo model transformation and the semantic-based service discovery process are activated. Due to the high variability of the services, it is possible that a small variation of a service could be needed. Then, a new process using FM is added to the DAMASCo framework, called service family discovery, to find a new matching as regards a certain context. A new valid configuration of that family containing this feature, representing the particular services, is automatically created, and the new service self-adaptation process added to DAMASCo is executed. Then, the CA-STS corresponding with this FM configuration is automatically created. Finally, this CA-STS interface is transformed into a WF/BPEL, composed with the services to satisfy the request.

Autores: Javier Cubo / Nadia Gamez / Lidia Fuentes / Ernesto Pimentel / 
Palabras Clave:

14 - Composición Categórica de Análisis Automáticos para Líneas de Productos Extendidas

Para las +AFw-emph+AHs-Líneas de Productos Software+AH0 (LPS) se necesitan operaciones que nos permitan analizar dicho software y el reúso de sus características. Los razonadores son herramientas que automatizan estas operaciones. Desde la extensión de LPS con diversos tipos atributos de calidad, el tipo y número de operaciones de razonamiento ha crecido más rápido que el desarrollo de los respectivos razonadores. En consecuencia, las operaciones de análisis extendido son parcialmente soportadas, en el mejor de los casos, por los razonadores estado-del-arte.Para este desafío, podemos aplicar un enfoque de +AFw-emph+AHs-Teoría de Categorías+AH0 (TC)+ADs el álgebra abstracta que capta los componentes comunes de estructuras aparentemente diferentes. Basándonos en la flexibilidad de sus razonamientos, proponemos una metodología donde las operaciones extendidas sean composiciones configurables de un conjunto de operaciones reusables independientes. Por tanto, buscamos definir e implementar un framework de razonamiento funcional de LPS extendidas basado en TC.

Autores: Daniel-Jesus Munoz / Mónica Pinto / Lidia Fuentes / 
Palabras Clave: atributo de calidad - Consultas - modelo de variabilidad - razonador - teoría de categorías

15 - Configuración Eco-Eficiente de Atributos de Calidad Funcionales

Los atributos de calidad funcionales (FQAs) son aquellos que para satisfacerlos se necesita incorporar funcionalidad adicional a la arquitectura de las aplicación (e.g., seguridad). La nueva funcionalidad incorporada por estos FQAs (e.g., encriptación) afecta a otro atributo de calidad como es el consumo de energía de la aplicación. Hasta el momento no se han explorado suficientemente las interdependencias entre, por ejemplo diferentes niveles de seguridad y su incidencia en el consumo de energía. En este artículo se propone una solución para ayudar al arquitecto software a generar la configuración de los FQAs que optimiza la eficiencia energética de la aplicación. Para ello se define un modelo de uso para cada FQA, teniendo en cuenta las variables que influyen en el consumo de energía y como el valor de estas variables cambia en función del punto de la aplicación donde se requiere ese FQA. Se extiende una Línea de Productos Software que modela una familia de FQAs para incorporar la variabilidad del modelo de uso y los frameworks existentes que implementan los FQAs. Generamos la configuración más eco-eficiente seleccionando el framework y las características más adecuadas para cada FQA y configurándolo según los requisitos de la aplicación.

Autores: José Miguel Horcas Aguilera / Mónica Pinto / Lidia Fuentes / 
Palabras Clave: Atributos de Calidad - Eco-Eficiente - Energía - FQA - Línea de Productos Software - Variabilidad

16 - Análisis de la gestión de variabilidad en la empresa

Las líneas de productos de software (Software Product Line, SPL) permiten la reutilización sistemática dentro de una organización, lo que permite reducir los costes, los esfuerzos, el tiempo de desarrollo y el número medio de defectos por producto. Sin embargo, no existen evidencias empíricas sobre la adopción de las SPL en las empresas de desarrollo software, para la personalización de sus productos. Para evaluar la necesidad de las tecnologías SPL en el desarrollo software real es necesario analizar las prácticas de variabilidad en las empresas para desarrollar sus productos, señalando las fortalezas y debilidades de sus enfoques.Para ello, presentamos el diseño de un estudio para evaluar cómo las empresas realizan la gestión de la variabilidad. Partimos de la base de que la mayoría de las empresas gestionan la variabilidad, pero no muchas de ellas conocen las líneas de productos de software.

Autores: Ana Eva Chacón-Luna / Antonio Manuel Gutierrez / David Benavides / Lidia Fuentes / 
Palabras Clave: Empirical studies - software product lines - Variability management

17 - Self-Adaptation of Mobile Systems with Dynamic Software Product Lines

Mobile ecosystems are generally long-lived and sometimes operate in inaccessible areas, so they require support for self-adaptation to the continuous context changes. Dynamic Software Product Lines (DSPLs) produce software products capable of adapting to requirements that change at runtime. We propose a DSPL-based self-adaptation process especially designed for mobile system requirements, such as context and device heterogeneity. We follow a lightweight model@run.time approach, by using variability models to generate, at runtime, the products adapted to the context changes, but without loading the models in the mobile devices. In addition, our approach takes into account the quality-of-service as part of the decision making process.

Autores: Nadia Gamez / Lidia Fuentes / José María Troya / 
Palabras Clave: Dynamic Software Product Lines - Self-Adaptation

18 - Finding Correlations of Features Affecting Energy Consumption and Performance of Web Servers Using the HADAS Eco-Assistant

The impact of energy consumption on the environment andthe economy is raising awareness of «green»software engineering. HADASis an eco-assistant that makes developers aware of the influence oftheir designs and implementations on the energy consumption and performanceof the final product. In this paper, we extend HADAS to bettersupport the requirements of users: researchers, automatically dumpingthe energy-consumption of different software solutions; and developers,who want to perform a sustainability analysis of different software solutions.This analysis has been extended by adding Pearson’s chi-squareddifferentials and Bootstrapping statistics, to automatically check the significanceof correlations of the energy consumption, or the execution time,with any other variable (e.g., the number of users) that can influencethe selection of a particular eco-efficient configuration. We have evaluatedour approach by performing a sustainability analysis of the mostcommon web servers (i.e. PHP servers) using the time and energy datameasured with the Watts Up? Pro tool previously dumped in HADAS.We show how HADAS helps web server providers to make a trade-offbetween energy consumption and execution time, allowing them to selldifferent server configurations with different costs without modifying thehardware.

Autores: Daniel-Jesus Munoz / Mónica Pinto / Lidia Fuentes / 
Palabras Clave: Energy Efficiency - Linux - Performance - Web Servers

19 - Aplicabilidad de la Caracterización de Benchmarks a Modelos de Variabilidad

Los Benchmarks utilizados para comparar el rendimiento de diferentes sistemas presentan una alta variabilidad que puede ser representada en modelos de variabilidad como los feature models. En este artículo presentamos las ventajas de la caracterización de Benchmarks (dada por sus cargas de trabajo), junto a los problemas de escalabilidad y complejidad de selección por objetivos de los Feature Models. Para solucionar esos problemas, formalizamos un modelo de caracterización de paquetes de cargas de trabajo para Feature Models, basándonos en ocho atributos abstractos (operaciones matemáticas, memoria, …). Este modelo y sus ventajas son evaluados en el eco-asistente HADAS, junto a un Benchmark PHP, y al Benchmark de sistemas empotrados BEEBS, obteniendo una capacidad de selección más intuitiva, y un decremento en el tiempo de obtención de configuraciones válidas y sus métricas en HADAS, con respecto a la representación estándar.

Autores: Daniel Jesus Munoz Guerra / Lidia Fuentes / 
Palabras Clave: Atributos - Benchmarking - Caracterización - Eficiencia - escalabilidad - Features - Software - Variabilidad