3,223 research outputs found
Product line architecture recovery with outlier filtering in software families: the Apo-Games case study
Software product line (SPL) approach has been widely adopted to achieve systematic reuse in families of software products. Despite its benefits, developing an SPL from scratch requires high up-front investment. Because of that, organizations commonly create product variants with opportunistic reuse approaches (e.g., copy-and-paste or clone-and-own). However, maintenance and evolution of a large number of product variants is a challenging task. In this context, a family of products developed opportunistically is a good starting point to adopt SPLs, known as extractive approach for SPL adoption. One of the initial phases of the extractive approach is the recovery and definition of a product line architecture (PLA) based on existing software variants, to support variant derivation and also to allow the customization according to customers’ needs. The problem of defining a PLA from existing system variants is that some variants can become highly unrelated to their predecessors, known as outlier variants. The inclusion of outlier variants in the PLA recovery leads to additional effort and noise in the common structure and complicates architectural decisions. In this work, we present an automatic approach to identify and filter outlier variants during the recovery and definition of PLAs. Our approach identifies the minimum subset of cross-product architectural information for an effective PLA recovery. To evaluate our approach, we focus on real-world variants of the Apo-Games family. We recover a PLA taking as input 34 Apo-Game variants developed by using opportunistic reuse. The results provided evidence that our automatic approach is able to identify and filter outlier variants, allowing to eliminate exclusive packages and classes without removing the whole variant. We consider that the recovered PLA can help domain experts to take informed decisions to support SPL adoption.This research was partially funded by INES 2.0; CNPq grants 465614/2014-0 and 408356/2018-9; and FAPESB grants JCB0060/2016 and BOL2443/201
A Systematic Review of Tracing Solutions in Software Product Lines
Software Product Lines are large-scale, multi-unit systems that enable
massive, customized production. They consist of a base of reusable artifacts
and points of variation that provide the system with flexibility, allowing
generating customized products. However, maintaining a system with such
complexity and flexibility could be error prone and time consuming. Indeed, any
modification (addition, deletion or update) at the level of a product or an
artifact would impact other elements. It would therefore be interesting to
adopt an efficient and organized traceability solution to maintain the Software
Product Line. Still, traceability is not systematically implemented. It is
usually set up for specific constraints (e.g. certification requirements), but
abandoned in other situations. In order to draw a picture of the actual
conditions of traceability solutions in Software Product Lines context, we
decided to address a literature review. This review as well as its findings is
detailed in the present article.Comment: 22 pages, 9 figures, 7 table
Understanding Variability-Aware Analysis in Low-Maturity Variant-Rich Systems
Context: Software systems often exist in many variants to support varying stakeholder requirements, such as specific market segments or hardware constraints. Systems with many variants (a.k.a. variant-rich systems) are highly complex due to the variability introduced to support customization. As such, assuring the quality of these systems is also challenging since traditional single-system analysis techniques do not scale when applied. To tackle this complexity, several variability-aware analysis techniques have been conceived in the last two decades to assure the quality of a branch of variant-rich systems called software product lines. Unfortunately, these techniques find little application in practice since many organizations do use product-line engineering techniques, but instead rely on low-maturity \clo~strategies to manage their software variants. For instance, to perform an analysis that checks that all possible variants that can be configured by customers (or vendors) in a car personalization system conform to specified performance requirements, an organization needs to explicitly model system variability. However, in low-maturity variant-rich systems, this and similar kinds of analyses are challenging to perform due to (i) immature architectures that do not systematically account for variability, (ii) redundancy that is not exploited to reduce analysis effort, and (iii) missing essential meta-information, such as relationships between features and their implementation in source code.Objective: The overarching goal of the PhD is to facilitate quality assurance in low-maturity variant-rich systems. Consequently, in the first part of the PhD (comprising this thesis) we focus on gaining a better understanding of quality assurance needs in such systems and of their properties.Method: Our objectives are met by means of (i) knowledge-seeking research through case studies of open-source systems as well as surveys and interviews with practitioners; and (ii) solution-seeking research through the implementation and systematic evaluation of a recommender system that supports recording the information necessary for quality assurance in low-maturity variant-rich systems. With the former, we investigate, among other things, industrial needs and practices for analyzing variant-rich systems; and with the latter, we seek to understand how to obtain information necessary to leverage variability-aware analyses.Results: Four main results emerge from this thesis: first, we present the state-of-practice in assuring the quality of variant-rich systems, second, we present our empirical understanding of features and their characteristics, including information sources for locating them; third, we present our understanding of how best developers\u27 proactive feature location activities can be supported during development; and lastly, we present our understanding of how features are used in the code of non-modular variant-rich systems, taking the case of feature scattering in the Linux kernel.Future work: In the second part of the PhD, we will focus on processes for adapting variability-aware analyses to low-maturity variant-rich systems.Keywords:\ua0Variant-rich Systems, Quality Assurance, Low Maturity Software Systems, Recommender Syste
The state of adoption and the challenges of systematic variability management in industry
Handling large-scale software variability is still a challenge for many organizations. After decades of research on variability management concepts, many industrial organizations have introduced techniques known from research, but still lament that pure textbook approaches are not applicable or efficient. For instance, software product line engineering—an approach to systematically develop portfolios of products—is difficult to adopt given the high upfront investments; and even when adopted, organizations are challenged by evolving their complex product lines. Consequently, the research community now mainly focuses on re-engineering and evolution techniques for product lines; yet, understanding the current state of adoption and the industrial challenges for organizations is necessary to conceive effective techniques. In this multiple-case study, we analyze the current adoption of variability management techniques in twelve medium- to large-scale industrial cases in domains such as automotive, aerospace or railway systems. We identify the current state of variability management, emphasizing the techniques and concepts they adopted. We elicit the needs and challenges expressed for these cases, triangulated with results from a literature review. We believe our results help to understand the current state of adoption and shed light on gaps to address in industrial practice.This work is supported by Vinnova Sweden, Fond Unique Interminist´eriel (FUI) France, and the Swedish Research Council.
Open access funding provided by University of Gothenbur
Run-time Adaptation of Mobile Applications using Genetic Algorithms
Mobile applications run in environments where the
context is continuously changing. Therefore, it is necessary to
provide support for the run-time adaptation of these applications.
This support is usually achieved by middleware platforms that
offer a context-aware dynamic reconfiguration service. However,
the main shortcoming of existing approaches is that both the list
of possible configurations and the plans to adapt the application
to a new configuration are usually specified at design-time. In
this paper we present an approach that allows the automatic
generation at run-time of application configurations and of
reconfiguration plans. Moreover, the generated configurations
are optimal regarding the provided functionality and, more
importantly, without exceeding the available resources (e.g. battery).
This is performed by: (1) having the information about
the application variability available at runtime using feature
models, and (2) using an genetic algorithm that allows generating
an optimal configuration at runtime. We have specified a case
study and evaluated our approach, and the results show that
it is efficient enough as to be used on mobile devices without
introducing an excessive overhead.Campus de Excelencia Andalucía Tech y Proyectos de investigación TIN2008-01942, P09-TIC-5231 y INTER-TRUST FP7-317731
Merging cloned alloy models with colorful refactorings
Likewise to code, clone-and-own is a common way to create variants of a model, to explore the impact of different features while exploring the design of a software system. Previously, we have introduced Colorful Alloy, an extension of the popular Alloy language and toolkit to support feature-oriented design, where model elements can be annotated with feature expressions and further highlighted with different colors to ease understanding. In this paper we propose a catalog of refactorings for Colorful Alloy models, and show how they can be used to iteratively merge cloned Alloy models into a single feature-annotated colorful model, where the commonalities and differences between the different clones are easily perceived, and more efficient aggregated analyses can be performed.This work is financed by the ERDF — European Regional Development Fund
through the Operational Programme for Competitiveness and Internationalisation
– COMPETE 2020 Programme and by National Funds through the Portuguese
funding agency, FCT – Fundação para a Ciência e a Tecnologia within project
PTDC/CCI-INF/29583/2017 – POCI-01-0145-FEDER-029583
- …