Navegación

Búsqueda

Búsqueda avanzada

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.

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.

Visual CPS: Sistemas Ciber-Físicos en la Nube con Soporte a la Variabilidad y Multitenencia

En los últimos años, nuestra sociedad está cambiando a gran velocidad. Cada vez son más los dispositivos que interactúan con nosotros y el entorno para ofrecernos servicios ampliados respecto a los servicios de información tradicionales. Esta nueva era de Internet de las Cosas (Internet of Things – IoT) y de servicios al ciudadano a través de internet, con la nueva concepción de los sistemas inteligentes (smart buildings, grids, cities y spaces), necesitan cada vez de más recursos computacionales y software. En este sentido, Cloud Computing ofrece una serie de características en cuanto escalabilidad y flexibilidad, acceso a recursos a través de Internet (off-premises) sin necesidad de ser instalados y gestionados localmente (on-premises) [1] que son fundamentales para soportar tales sistemas. Los servicios proporcionados por la nube son infraestructura (IaaS), plataforma de desarrollo (PaaS) y software (SaaS). Una de las características más significativas de SaaS (Software as a Service) es la multitenencia, la cual promueve las economías de escala mediante la compartición de una serie de recursos entre múltiples usuarios o grupos de usuarios denominados tenants. Cada tenant podría personalizar ciertas partes del software para satisfacer requisitos individuales. Este concepto no es nuevo, y ha sido abordado ampliamente por la ingeniería de líneas de producto [8] y la gestión de la variabilidad. La variabilidad de un producto software se puede definir como la capacidad de este para cambiar y ser utilizado en múltiples contextos. Resulta de gran importancia el dotar al software de mecanismos para soportar distintos grados de variabilidad para poder ofrecer una personalización ajustada a las necesidades específicas de los usuarios. En este artículo se presenta una herramienta para la creación y gestión de sistemas ciber-físicos en la nube con soporte a múltiples tenants y variabilidad entre los tenants llamada Visual CPS. Un sistema ciber-físico es aquel sistema en el que se embebe o integra capacidad de cómputo con el objetivo de interactuar el software con el mundo físico, obteniendo una comunicación bidireccional entre estos dos. Para soportar dichas características la herramienta se basa en el concepto de multitenencia de la plataforma de nube GPaaS [7] y en el diseño arquitectónico basado en el estilo de microservicios [2] que se define como una aplicación compuesta por componentes independientes, ligeros y muy especializados orquestados para proporcionar la funcionalidad de la aplicación global.

Modeling Systems Variability with Delta Rhapsody

Variability modeling is demanded by industrial companies to support customization of their products. However, not all the software tools include variability modeling mechanisms. IBM Rhapsody is one of the leading environments for modeling complex industrial systems. In this paper we present Delta Rhapsody, a tool for modeling variability in IBM Rhapsody models employing the delta modeling paradigm.