30 research outputs found
Automated analysis of feature models: Quo vadis?
Feature models have been used since the 90's to describe software product lines as a way of reusing common parts in a family of software systems. In 2010, a systematic literature review was published summarizing the advances and settling the basis of the area of Automated Analysis of Feature Models (AAFM). From then on, different studies have applied the AAFM in different domains. In this paper, we provide an overview of the evolution of this field since 2010 by performing a systematic mapping study considering 423 primary sources. We found six different variability facets where the AAFM is being applied that define the tendencies: product configuration and derivation; testing and evolution; reverse engineering; multi-model variability-analysis; variability modelling and variability-intensive systems. We also confirmed that there is a lack of industrial evidence in most of the cases. Finally, we present where and when the papers have been published and who are the authors and institutions that are contributing to the field. We observed that the maturity is proven by the increment in the number of journals published along the years as well as the diversity of conferences and workshops where papers are published. We also suggest some synergies with other areas such as cloud or mobile computing among others that can motivate further research in the future.Ministerio de Economía y Competitividad TIN2015-70560-RJunta de Andalucía TIC-186
Migrating to the Cloud: a Software Product Line Based Analysis
Identifying which part of a local system should be migrated to a public Cloud environment is often a difficult and error prone process. With the significant (and increasing) number of commercial Cloud providers, choosing a provider whose capability best meets requirements is also often difficult. Most Cloud service providers offer large amounts of configurable resources, which can be combined in a number of different ways. in the case of small and medium companies, finding a suitable configuration with the minimum cost is often an essential requirement to migrate, or even to initiate the decision process for migration. We interpret this need as a problem associated with variability management and analysis. Variability techniques and models deal with large configuration spaces, and have been proposed previously to support configuration processes in industrial cases. Furthermore, this is a mature field which has a large catalog of analysis operations to extract valuable information in an automated way. Some of these operations can be used and tailored for Cloud environments. We focus in this work on Amazon Cloud services, primarily due to the large number of possible configurations available by this service provider and its popularity. Our approach can also be adapted to other providers offering similar capabilities
Modeling Quality and Machine Learning Pipelines through Extended Feature Models
The recently increased complexity of Machine Learning (ML) methods, led to
the necessity to lighten both the research and industry development processes.
ML pipelines have become an essential tool for experts of many domains, data
scientists and researchers, allowing them to easily put together several ML
models to cover the full analytic process starting from raw datasets. Over the
years, several solutions have been proposed to automate the building of ML
pipelines, most of them focused on semantic aspects and characteristics of the
input dataset. However, an approach taking into account the new quality
concerns needed by ML systems (like fairness, interpretability, privacy, etc.)
is still missing. In this paper, we first identify, from the literature, key
quality attributes of ML systems. Further, we propose a new engineering
approach for quality ML pipeline by properly extending the Feature Models
meta-model. The presented approach allows to model ML pipelines, their quality
requirements (on the whole pipeline and on single phases), and quality
characteristics of algorithms used to implement each pipeline phase. Finally,
we demonstrate the expressiveness of our model considering the classification
problem
User-centric Adaptation Analysis of Multi-tenant Services
Multi-tenancy is a key pillar of cloud services. It allows different users to share computing and virtual
resources transparently, meanwhile guaranteeing substantial cost savings. Due to the tradeoff between
scalability and customization, one of the major drawbacks of multi-tenancy is limited configurability. Since
users may often have conflicting configuration preferences, offering the best user experience is an open
challenge for service providers. In addition, the users, their preferences, and the operational environment
may change during the service operation, thus jeopardizing the satisfaction of user preferences. In this
article, we present an approach to support user-centric adaptation of multi-tenant services. We describe
how to engineer the activities of the Monitoring, Analysis, Planning, Execution (MAPE) loop to support
user-centric adaptation, and we focus on adaptation analysis. Our analysis computes a service configuration
that optimizes user satisfaction, complies with infrastructural constraints, and minimizes reconfiguration
obtrusiveness when user- or service-related changes take place. To support our analysis, we model multitenant
services and user preferences by using feature and preference models, respectively. We illustrate our
approach by utilizing different cases of virtual desktops. Our results demonstrate the effectiveness of the
analysis in improving user preferences satisfaction in negligible time.Ministerio de Economía y Competitividad TIN2012-32273Junta de Andalucía P12--TIC--1867Junta de Andalucía TIC-590
Separation of Concerns in Feature Modeling: Support and Applications
International audienceFeature models (FMs) are a popular formalism for describing the commonality and variability of software product lines (SPLs) in terms of features. SPL development increasingly involves manipulating many large FMs, and thus scalable modular techniques that support compositional development of complex SPLs are required. In this paper, we describe how a set of complementary operators (aggregate, merge, slice) provides practical support for separation of concerns in feature modeling. We show how the combination of these operators can assist in tedious and error prone tasks such as automated correction of FM anomalies, update and extraction of FM views, reconciliation of FMs and reasoning about properties of FMs. For each task, we report on practical applications in different domains. We also present a technique that can efficiently decompose FMs with thousands of features and report our experimental results
The Kconfig Variability Framework as a Feature Model
Zur einfachen Handhabung von Softwarevariabilität werden oft externe Werkzeuge eingesetzt. Ein solches Werkzeug ist Kconfig, welches vom Linux-Kernel zur Erstellung von konkreten Softwarekonfigurationen benutzt wird. Kconfig arbeitet mit Textdateien, in denen die Variabilitätsstruktur des zugehörigen Softwareprojekts definiert wird. Diese Dateien werden oft als Kconfig-Dateien bezeichnet. Kconfig-Dateien können analysiert werden, um Probleme in der Variabilitätsstruktur festzustellen. Feature-orientierte Programmierung (FOP) wird auch zur besseren Handhabung von Softwarevariabilität eingesetzt. Die Variabilitätsstruktur eines Softwareprojekts wird im Umfang von FOP in einem sogenannten Feature-Modell dargestellt. Es gibt Werkzeuge, welche zur Analyse von Feature-Modellen verwendet werden können. Diese kann man jedoch nicht zur Analyse von Kconfig-Dateien nutzen, da bisher eine Transformation zwischen Kconfig-Dateien und Feature-Modellen fehlt. In dieser Arbeit stellen wir eine Methodik zur korrekten Transformation von Kconfig-Dateien in Feature-Modelle vor, sodass Werkzeuge zur Feature-Modell-Analyse auch auf Kconfig-Dateien angewandt werden können. Wir evaluieren die Korrektheit unserer Transformation mit automatischen und manuellen Vorgehen. Unsere Methodik kann ausgewählte Kconfig-Dateien mit nichttrivialer Struktur erfolgreich in semantisch äquivalente Feature-Modelle überführen
Investigating styles in variability modeling: Hierarchical vs. constrained styles
Context: A common way to represent product lines is with variability modeling. Yet, there are different ways to extract and organize relevant characteristics of variability. Comprehensibility of these models and the ease of creating models are important for the efficiency of any variability management approach.
Objective: The goal of this paper is to investigate the comprehensibility of two common styles to organize variability into models - hierarchical and constrained - where the dependencies between choices are specified either through the hierarchy of the model or as cross-cutting constraints, respectively.
Method: We conducted a controlled experiment with a sample of 90 participants who were students with prior training in modeling. Each participant was provided with two variability models specified in Common Variability Language (CVL) and was asked to answer questions requiring interpretation of provided models. The models included 9 to 20 nodes and 8 to 19 edges and used the main variability elements. After answering the questions, the participants were asked to create a model based on a textual description.
Results: The results indicate that the hierarchical modeling style was easier to comprehend from a subjective point of view, but there was also a significant interaction effect with the degree of dependency in the models, that influenced objective comprehension. With respect to model creation, we found that the use of a constrained modeling style resulted in higher correctness of variability models.
Conclusions: Prior exposure to modeling style and the degree of dependency among elements in the model determine what modeling style a participant chose when creating the model from natural language descriptions. Participants tended to choose a hierarchical style for modeling situations with high dependency and a constrained style for situations with low dependency. Furthermore, the degree of dependency also influences the comprehension of the variability model
Feature-Model-Guided Online Learning for Self-Adaptive Systems
A self-adaptive system can modify its own structure and behavior at runtime
based on its perception of the environment, of itself and of its requirements.
To develop a self-adaptive system, software developers codify knowledge about
the system and its environment, as well as how adaptation actions impact on the
system. However, the codified knowledge may be insufficient due to design time
uncertainty, and thus a self-adaptive system may execute adaptation actions
that do not have the desired effect. Online learning is an emerging approach to
address design time uncertainty by employing machine learning at runtime.
Online learning accumulates knowledge at runtime by, for instance, exploring
not-yet executed adaptation actions. We address two specific problems with
respect to online learning for self-adaptive systems. First, the number of
possible adaptation actions can be very large. Existing online learning
techniques randomly explore the possible adaptation actions, but this can lead
to slow convergence of the learning process. Second, the possible adaptation
actions can change as a result of system evolution. Existing online learning
techniques are unaware of these changes and thus do not explore new adaptation
actions, but explore adaptation actions that are no longer valid. We propose
using feature models to give structure to the set of adaptation actions and
thereby guide the exploration process during online learning. Experimental
results involving four real-world systems suggest that considering the
hierarchical structure of feature models may speed up convergence by 7.2% on
average. Considering the differences between feature models before and after an
evolution step may speed up convergence by 64.6% on average. [...
Architectural Evolution of a Software Product Line: an experience report
Abstract-This work presents an experience report on the architectural decisions taken in the evolution of a Software Product Line (SPL) of Model-based Testing tools (PLeTs). This SPL was partially designed and developed with the intention of minimizing effort and time-to-market during the development of a family of performance testing tools. With the evolution of our research and the addition of new features to the SPL, we identified limitations in the initial architectural design of PLeTs' components, which led us to redesign its Software Product Line Architecture (SPLA). In this paper, we discuss the main issues that led to changes in our SPLA, as well as present the design decisions that facilitate its evolution in the context of an industrial environment. We will also report our experiences on architecture modifications in the evolution of our SPL with the intention of allowing easier maintenance in a volatile development environment