19 research outputs found
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 service-based 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.Work partially supported by the projects TIN2008-05932,
TIN2008-01942, TIN2012-35669, TIN2012-34840 and CSD2007-0004 funded by
Spanish Ministry of Economy and Competitiveness and FEDER; P09-TIC-05231 and
P11-TIC-7659 funded by Andalusian Government; and FP7-317731 funded by EU. Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tec
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
Reconfigurando aplicaciones multi-cloud con líneas de producto software dinámicas
La reconfiguración dinámica de aplicaciones multi-cloud es un reto
complejo aún no suficientemente explorado. En estos entornos las aplicaciones
o sus módulos pueden estar desplegados en diferentes proveedores. Por lo tanto,
reconfigurar en tiempo de ejecución estas aplicaciones puede requerir la
modificación de la distribución en múltiples y heterogéneos proveedores.
Obtener la nueva distribución para que sigan funcionando correctamente las
aplicaciones no es una tarea sencilla, pues tanto los requisitos de las
aplicaciones como las propiedades de los proveedores son muy diversos y
variables. Además, la migración de las aplicaciones o sus módulos en tiempo
real de un proveedor a otro puede conllevar problemas de compatibilidad y/o
dependencias entre los módulos. Por lo tanto, el manejo de la variabilidad
dinámica de las aplicaciones y proveedores, así como el de las dependencias
existentes es deseable que se haga a un alto nivel de abstracción. Las Líneas de
Producto Software Dinámicas (DSLP) utilizan modelos de variabilidad en
tiempo de ejecución para obtener los cambios que han de llevarse a cabo
durante la reconfiguración. En este trabajo de reflexión, exploramos el uso del
enfoque de DSPL, para que cuando ocurran problemas en los proveedores o se
violen los requisitos de las aplicaciones en entornos multi-cloud, las
aplicaciones puedan ser reconfiguradas y seguir proporcionando los servicios
adecuadamente a los usuarios.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
Optimizing mobile applications by exploiting variability models at runtime
El servicio de reconfiguración dinámica genera y despliega configuraciones de la aplicación optimizadas para el contexto de la ejecución. Para la generación eficiente de estas configuraciones se han definido los algoritmos genéticos DAGAME (mono-objetivo) y MO-DAGAME (multi-objetivo). Ambos algoritmos han sido evaluados, obteniendo buenos resultados con respecto al tiempo de ejecución y a la calidad de las configuraciones generadas. Fecha de lectura de Tesis Doctoral: 18 de diciembre 2018.Los teléfonos móviles inteligentes son una herramienta indispensable en nuestra vida cotidiana. Son dispositivos con los que podemos ejecutar aplicaciones y tareas complejas en cualquier lugar y en cualquier momento. Estas aplicaciones están fuertemente relacionadas con su contexto (e.g., localización, recursos disponibles, etc.) y los requisitos del usuario cambian cuando lo hace el contexto en el que se ejecutan. Por lo tanto, desarrollar aplicaciones que se adaptan al contexto es fundamental para satisfacer dichos requisitos y, para lograrlo, es necesario proporcionar mecanismos de reconfiguración dinámica.
Un enfoque ampliamente aceptado para gestionar la variabilidad de las aplicaciones en tiempo de ejecución son las Líneas de Producto Software Dinámicas (DSPLs). Por otro lado, otro paradigma ampliamente aceptado en la comunidad de los sistemas distributidos es el de la Computación Autónoma (CA), cuyo principal objetivo es dotar a los sistemas distribuidos de capacidades de auto-gestión.
Esta tesis explora la aplicación de las DSPLs y la CA al desarrollo de aplicaciones para dispositivos móviles que pueden ser reconfiguradas en tiempo de ejecución en función de su contexto. Sus contribuciones cubren tanto el diseño de la DSPL como el desarrollo de mecanismos de reconfiguración dinámica.
Con respecto al diseño de la DSPL, se han propuesto dos alternativas diferentes para la especificación de la arquitectura software y la variabilidad. Por un lado, un mecanismo basado en el uso de perfiles UML y herramientas para modelos de características. Por otro lado, un mecanismo basado en el uso del lenguaje CVL para el modelado de la variabilidad. Para la adaptación de las aplicaciones en tiempo de ejecución se ha definido un middleware que incluye servicios de monitorización del contexto y de reconfiguración dinámica
A model-driven approach for constructing ambient assisted-living multi-agent systems customized for Parkinson patients
The Parkinson disease affects some people, especially in the last years of their lives. Ambient assisted living systems can support them, especially in the middle stages of the disease. However, these systems usually need to be customized for each Parkinson patient. In this context, the current work follows the model-driven engineering principles to achieve this customized development. It represents each patient with a model. This is transformed into an agent-based model, from which a skeleton of programming code is generated. A case study illustrates this approach. Moreover, 24 engineers expert in model-driven engineering, multi-agent systems and/or health experienced the current approach alongside the three most similar works, by implementing actual systems. Some of these systems were tested by Parkinson patients. The results showed that (1) the current approach reduced the development time, (2) the developed system satisfied a higher percentage of the requirements established for certain Parkinson patients, (3) the usability increased, (4) the performance of the systems improved taking response time into account, and (5) the developers considered that the underlying metamodel is more appropriate for the current goal
Context-dependent reconfiguration of autonomous vehicles in mixed traffic
Human drivers naturally adapt their behaviour depending on the traffic conditions, such as the
current weather and road type. Autonomous vehicles need to do the same, in a way that is both
safe and efficient in traffic composed of both conventional and autonomous vehicles. In this paper,
we demonstrate the applicability of a reconfigurable vehicle controller agent for autonomous
vehicles that adapts the parameters of a used car-following model at runtime, so as to maintain a
high degree of traffic quality (efficiency and safety) under different weather conditions.We follow
a dynamic software product line approach to model the variability of the car-following model
parameters, context changes and traffic quality, and generate specific configurations for each
particular context. Under realistic conditions, autonomous vehicles have only a very local knowledge
of other vehicles' variables.We investigate a distributed model predictive controller agent
for autonomous vehicles to estimate their behavioural parameters at runtime, based on their
available knowledge of the system.We show that autonomous vehicles with the proposed reconfigurable
controller agent lead to behaviour similar to that achieved by human drivers, depending
on the context.Junta de Andalucía MAGIC P12-TIC1814Ministerio de Ciencia, Innovación y Universidades HADAS TIN2015-64841-
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
Model Defects in Evolving Software Product Lines: A Review of Literature
Software products lines (SPLs) are long living systems that undergo several evolutions throughout their lifetime due to many reasons related to technology, strategy, business, etc. These evolutions can be the source of several defects that impact the different artefacts of SPLs, namely requirements, models, architecture and code. Many studies in the literature have dealt with the correction of defects in software product lines, but to our knowledge, no reviews have been carried out to provide an extensive overview of these studies. In this paper, we present a literature review of model defects in software product lines. The purpose of this review is to enumerate the different defects discussed in literature and to present the approaches proposed to detect and correct them. The findings of this review reveal new research leads to explore in this issue
Specification Patterns for Robotic Missions
Mobile and general-purpose robots increasingly support our everyday life,
requiring dependable robotics control software. Creating such software mainly
amounts to implementing their complex behaviors known as missions. Recognizing
the need, a large number of domain-specific specification languages has been
proposed. These, in addition to traditional logical languages, allow the use of
formally specified missions for synthesis, verification, simulation, or guiding
the implementation. For instance, the logical language LTL is commonly used by
experts to specify missions, as an input for planners, which synthesize the
behavior a robot should have. Unfortunately, domain-specific languages are
usually tied to specific robot models, while logical languages such as LTL are
difficult to use by non-experts. We present a catalog of 22 mission
specification patterns for mobile robots, together with tooling for
instantiating, composing, and compiling the patterns to create mission
specifications. The patterns provide solutions for recurrent specification
problems, each of which detailing the usage intent, known uses, relationships
to other patterns, and---most importantly---a template mission specification in
temporal logic. Our tooling produces specifications expressed in the LTL and
CTL temporal logics to be used by planners, simulators, or model checkers. The
patterns originate from 245 realistic textual mission requirements extracted
from the robotics literature, and they are evaluated upon a total of 441
real-world mission requirements and 1251 mission specifications. Five of these
reflect scenarios we defined with two well-known industrial partners developing
human-size robots. We validated our patterns' correctness with simulators and
two real robots
Evolution in Dynamic Software Product Lines
International audienceMany software systems today provide support for adaptation and reconfiguration at runtime, in response to changes in their environment. Such adaptive systems are designed to run continuously and may not be shut down for reconfiguration or maintenance tasks. The variability of such systems has to be explicitly managed, together with mechanisms that control their runtime adaptation and reconfiguration. Dynamic software product lines (DSPLs) can help to achieve this. However, dealing with evolution is particularly challenging in a DSPL, as changes made at run-time can easily lead to inconsistencies. This paper describes the challenges of evolving DSPLs using an example cyber-physical system for home automation. We discuss the shortcomings of existing work and present a reference architecture to support DSPL evolution. To demonstrate its feasibility and flexibility, we implemented the proposed reference architecture for two different DSPLs: the aforementioned cyber-physical system, which uses feature models to describe its variability, and a runtime monitoring infrastructure, which is based on decision models. To assess the industrial applicability of our approach, we also implemented the reference architecture for a real-world DSPL, an automation software system for injection molding machines. Our results provide evidence on the flexibility, performance and industrial applicability of our approach