1,636 research outputs found
Model Driven Evolution of an Agent-Based Home Energy Management System
Advanced smart home appliances and new models of energy tariffs imposed
by energy providers pose new challenges in the automation of home energy
management. Users need some assistant tool that helps them to make complex decisions
with different goals, depending on the current situation. Multi-agent systems
have proved to be a suitable technology to develop self-management systems,
able to take the most adequate decision under different context-dependent situations,
like the home energy management. The heterogeneity of home appliances
and also the changes in the energy policies of providers introduce the necessity of
explicitly modeling this variability. But, multi-agent systems lack of mechanisms
to effectively deal with the different degrees of variability required by these kinds
of systems. Software Product Line technologies, including variability models, has
been successfully applied to different domains to explicitly model any kind of variability.
We have defined a software product line development process that performs
a model driven generation of agents embedded in heterogeneous smart objects with
different degrees of self-management. However, once deployed, the home energy
assistant system has to be able to evolve to self-adapt its decision making or devices
to new requirements. So, in this paper we propose a model driven mechanism to
automatically manage the evolution of multi-agent systems distributed among several
devices.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
WeaFQAs: A Software Product Line Approach for Customizing and Weaving Efficient Functional Quality Attributes
Fecha de Lectura de Tesis: 10 de julio de 2018Los atributos de calidad funcionales (FQA) son aquellos que tienen una clara implicación en la funcionalidad del sistema, es decir, existen unos componentes específicos que deben ser incorporados a la arquitectura software del sistema para satisfacer sus requisitos de atributos de calidad. Ejemplos de FQAs son seguridad, usabilidad, o persistencia. Modelar estos atributos es una tarea compleja. Por un lado, se componen de muchas características relacionadas, por ejemplo seguridad está compuesto, entre otros, por autenticación, confidencialidad y encriptación. Tienen dependencias entre ellos, por ejemplo, seguridad puede ser requerido por usabilidad o persistencia. Por otro lado, tienen muchos puntos de variabilidad: una aplicación concreta puede requerir autenticación y control de acceso mientras que otra puede necesitar sólo encriptación. Además, su funcionalidad suele estar dispersa afectando a varios componentes del sistema en desarrollo.
El objetivo de esta tesis es definir una línea de productos software orientada a aspectos que permita: (1) modelar las similitudes y la variabilidad de los FQAs desde las primeras etapas del proceso de desarrollo, (2) gestionar las dependencias existentes entre los FQAs, (3) independizar el modelado de los FQAs de la arquitectura de la aplicación afectada, (4) configurar los FQAs en base a los requisitos de cada aplicación teniendo además en cuenta propiedades no funcionales como el rendimiento y el consumo energético de cada solución, (5) incorporar las configuraciones a la arquitectura de la aplicación de manera automática; y (6) gestionar la evolución de los FQAs cuando los requisitos cambien en el futuro. Como resultado se ha definido WeaFQAs, un proceso software para gestionar los FQAs que cubre todos los puntos mencionados. Se han realizado y comparado dos instanciaciones de WeaFQAs usando diferentes lenguajes de variabilidad y de modelado, además de proporcionar soporte con una herramienta basada en el lenguaje CVL
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.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
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 cofiguración de los FQAs que optimiza
la ficiencia energética de la aplicación. Para ello se dfine 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.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
Evolución arquitectónica de servicios basada en modelos CVL con cardinalidad
La computación en la nube se está convirtiendo en un mecanismo
predominante para desplegar fácilmente aplicaciones con requisitos
especiales, tales como el almacenamiento masivo compartido, o el
equilibrado de carga. Esta funcionalidad se proporciona normalmente
como servicios por las plataformas en la nube. Un desarrollador puede
mejorar tanto el despliegue de sus aplicaciones como la productividad
siguiendo un enfoque multi-tenancy, donde diferentes variantes de la misma
aplicación pueden adaptarse rápidamente a las necesidades de cada
usuario (tenant). Sin embargo, gestionar la variabilidad inherente a las
aplicaciones multi-tenant, con cientos de usuarios y miles de configuraciones
arquitectónicas diferentes, puede llegar a ser una tarea intratable
de abordar manualmente. En este artículo, se propone un enfoque de línea
de producto software en el cual: (1) usamos modelos de variabilidad
con cardinalidad para modelar cada tenant como una característica clonable,
(2) automatizamos el proceso de evolución de las arquitecturas de
aplicaciones multi-tenant, y (3) demostramos que la implementación de
los procesos de evolución es correcta y eficiente para un número elevado
de tenants en un tiempo razonable.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
vEXgine: extendiendo el motor de ejecución de CVL
El Lenguaje CVL (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.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech.
Proyectos MAGIC P12-TIC1814 y HADAS TIN2015-64841-
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
Product Line Architecture for Automatic Evolution of Multi-Tenant Applications
Cloud computing is becoming the predominant
mechanism to seamlessly deploy applications with special requirements
such as massive storage sharing or load balancing,
usually provided as services by cloud platforms. A developer can
improve the application’s delivery and productivity by following
a multi tenancy approach, where variants of the same application
can be quickly customized to the necessities of each tenant.
However, managing the inherent variability existing in multitenant
applications and, even more importantly, managing the
evolution of a multi-tenant application with hundreds of tenants
and thousands of different valid architectural configurations can
become intractable if performed manually. In this paper we
propose a product line architecture approach in which: (1) we
use cardinality-based variability models to model each tenant as
a clonable feature, (2) we automate the process of evolving the
multi-tenant application architecture, and (3) we demonstrate
that the implemented process is correct and efficient for a high
number of tenants in a reasonable time. We use a running case
study in the domain of medical software.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
Energy efficient adaptation engines for android applications
Context The energy consumption of mobile devices is increasing due to the improvement in their components (e.g., better processors, larger screens). Although the hardware consumes the energy, the software is responsible for managing hardware resources such as the camera software and its functionality, and therefore, affects the energy consumption. Energy consumption not only depends on the installed code, but also on the execution context (environment, devices status) and how the user interacts with the application.
Objective In order to reduce the energy consumption based on user behavior, it is necessary to dynamically adapt the application. However, the adaptation mechanism also consumes a certain amount of energy in itself, which may lead to an important increase in the energy expenditure of the application in comparison with the benefits of the adaptation. Therefore, this footprint must be measured and compared with the benefit obtained.
Method In this paper, we (1) determine the benefits, in terms of energy consumption, of dynamically adapting mobile applications, based on user behavior; and (2) advocate the most energy-efficient adaptation mechanism. We provide four different implementations of a proposed adaptation model and measure their energy consumption.
Results The proposed adaptation engines do not increase the energy consumption when compared to the benefits of the adaptation, which can reduce the energy consumption by up to 20%.
Conclusion The adaptation engines proposed in this paper can decrease the energy consumption of the mobile devices based on user behavior. The overhead introduced by the adaptation engines is negligible in comparison with the benefits obtained by the adaptation.Junta de Andalucía MAGIC P12-TIC1814Ministerio de Economía y Competitividad TIN2015-64841-RMinisterio de Ciencia, Innovación y Universidades TIN2017-90644-REDTMinisterio de Ciencia, Innovación y Universidades RTI2018-099213-B-I00Universidad de Málaga LEIA UMA18-FEDERJA-15
A modular metamodel and refactoring rules to achieve software product line interoperability.
Emergent application domains, such as cyber–physical systems, edge computing or industry 4.0. present a high variability in software and hardware infrastructures. However, no single variability modeling language supports all language extensions required by these application domains (i.e., attributes, group cardinalities, clonables, complex constraints). This limitation is an open challenge that should be tackled by the software engineering field, and specifically by the software product line (SPL) community. A possible solution could be to define a completely new language, but this has a high cost in terms of adoption time and development of new tools. A more viable alternative is the definition of refactoring and specialization rules that allow interoperability between existing variability languages. However, with this approach, these rules cannot be reused across languages because each language uses a different set of modeling concepts and a different concrete syntax. Our approach relies on a modular and extensible metamodel that defines a common abstract syntax for existing variability modeling extensions. We map existing feature modeling languages in the SPL community to our common abstract syntax. Using our abstract syntax, we define refactoring rules at the language construct level that help to achieve interoperability between variability modeling languages.Work supported by the projects MEDEA RTI2018-099213-B-I00, IRIS PID2021-122812OB-I00 (co-financed by FEDER funds), Rhea P18-FR-1081 (MCI/AEI/FEDER, UE), LEIA UMA18-FEDERIA-157, and DAEMON H2020-101017109. // Funding for open access: Universidad de Málaga / CBUA
- …