Browsing by Keyword "Software product lines"
Now showing 1 - 11 of 11
Results Per Page
Sort Options
Item Feature location benchmark for extractive software product line adoption research using realistic and synthetic Eclipse variants(2018-12) Martinez, Jabier; Ziadi, Tewfik; Papadakis, Mike; Bissyandé, Tegawendé F.; Klein, Jacques; Traon, Yves le; SWTContext: It is common belief that high impact research in software reuse requires assessment in non-trivial, comparable, and reproducible settings. However, software artefacts and common representations are usually unavailable. Also, establishing a representative ground truth is a challenging and debatable subject. Feature location in the context of software families, which is key for software product line adoption, is a research field that is becoming more mature with a high proliferation of techniques. Objective: We present EFLBench, a benchmark and a framework to provide a common ground for the evaluation of feature location techniques in families of systems. Method: EFLBench leverages the efforts made by the Eclipse Community which provides feature-based family artefacts and their plugin-based implementations. Eclipse is an active and non-trivial project and thus, it establishes an unbiased ground truth which is realistic and challenging. Results: EFLBench is publicly available and supports all tasks for feature location techniques integration, benchmark construction and benchmark usage. We demonstrate its usage, simplicity and reproducibility by comparing four techniques in Eclipse releases. As an extension of our previously published work, we consider a decade of Eclipse releases and we also contribute an approach to automatically generate synthetic Eclipse variants to benchmark feature location techniques in tailored settings. We present and discuss three strategies for this automatic generation and we present the results using different settings. Conclusion: EFLBench is a contribution to foster the research in feature location in families of systems providing a common framework and a set of baseline techniques and results.Item Generation language– enabling scalability for product realisation(Lancaster University, 2010) Martinez, Jabier; Botterweck, Goetz; Jarzabek, Stan; Kishi, Tomoji; Lee, Jaejoon; Livengood, Steve; SWTSoftware Factories and Product Line Architectures are designed and implemented in order to achieve the economic and quality related benefits of predictive software reuse. In this context, a reusable asset is any software development lifecycle artifact that contains variability points and instructions for its usage at generation time. This paper introduces the Generation Language which has two objectives. On the one hand, the language is used for explicitly declaring needed parameters and preconditions of each reusable asset. On the other hand, it is used as input for the Product Realisation process using mechanisms that enable product configuration modularization, extensibility, and improve scalability within this process.Item A literature review and comparison of three feature location techniques using ArgoUML-SPL(Association for Computing Machinery, 2019-02-06) Cruz, Daniel; Figueiredo, Eduardo; Martinez, Jabier; SWTOver the last decades, the adoption of Software Product Line (SPL) engineering for supporting software reuse has increased. An SPL can be extracted from one single product or from a family of related software products, and feature location strategies are widely used for variability mining. Several feature location strategies have been proposed in the literature and they usually aim to map a feature to its source code implementation. In this paper, we present a systematic literature review that identifies and characterizes existing feature location strategies. We also evaluated three different strategies based on textual information retrieval in the context of the ArgoUML-SPL feature location case study. In this evaluation, we compare the strategies based on their ability to correctly identify the source code of several features from ArgoUML-SPL ground truth. We then discuss the strengths and weaknesses of each feature location strategy.Item Open-source software product line extraction processes: the ArgoUML-SPL and Phaser cases: the ArgoUML-SPL and Phaser cases(2022-04-08) Moreira, Rodrigo André Ferreira; Assunção, Wesley K. G.; Martinez, Jabier; Figueiredo, Eduardo; SWTSoftware Product Lines (SPLs) are rarely developed from scratch. Commonly, they emerge from one product when there is a need to create tailored variants, or from existing variants created in an ad-hoc way once their separated maintenance and evolution become challenging. Despite the vast literature about re-engineering systems into SPLs and related technical approaches, there is a lack of detailed analysis of the process itself and the effort involved. In this paper, we provide and analyze empirical data of the extraction processes of two open source case studies, namely ArgoUML and Phaser. Both cases emerged from the transition of a monolithic system into an SPL. The analysis relies on information mined from the version control history of their respective source-code repositories and the discussion with developers that took part in the process. Unlike previous works that focused mostly on the structural results of the final SPL, the contribution of this study is an in-depth characterization of the processes. With this work, we aimed at providing a deeper understanding of the strategies for SPL extraction and their implications. Our results indicate that the source code changes can range from almost a fourth to over half of the total lines of code. Developers may or may not use branching strategies for feature extraction. Additionally, the problems faced during the extraction process may be due to lack of tool support, complexity on managing feature dependencies and issues with feature constraints. We made publicly available the datasets and the analysis scripts of both case studies to be used as a baseline for extractive SPL adoption research and practice.Item Product line architecture recovery with outlier filtering in software families: the Apo-Games case study: the Apo-Games case study(2019-12-01) Lima, Crescencio; Assunção, Wesley KG; Martinez, Jabier; Mendonça, William; Machado, Ivan C; Chavez, Christina FG; SWTSoftware 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.Item REVE 2018: 6th international workshop on reverse variability engineering(Association for Computing Machinery, 2018-08-20) Ziadi, Tewfik; Lopez-Herrejon, Roberto E.; Acher, Mathieu; Martinez, Jabier; Light, Ann; Lee, Yanki; Lee, Yanki; Garde, Julia; Botterweck, Goetz; Nadi, Sarah; Kanstrup, Anne Marie; Borba, Paulo; Vines, John; Berger, Thorsten; Mannisto, Tomi; Teli, Maurizio; Brandt, Eva; Bodker, Keld; Benavides, David; SWTSoftware Product Line (SPL) migration remains a challenging endeavour. From organizational issues to purely technical challenges, there is a wide range of barriers that complicates SPL adoption. The workshop REverse Variability Engineering (REVE) aims to foster research about making the most of the two main inputs for SPL migration: 1) domain knowledge and 2) legacy assets. Domain knowledge, usually implicit and spread across an organization, is key to define the SPL scope and to validate the variability model and its semantics. At the technical level, domain expertise is also needed to create or extract the reusable software components. Legacy assets can be, for instance, similar product variants (e.g., requirements, models, source code) that were implemented using ad-hoc reuse techniques such as clone-and-own. More generally, the workshop attracts researchers and practitioners contributing to processes, techniques, tools, or empirical studies related to the automatic, semi-automatic or manual extraction or refinement of SPL assets.Item REVE 2021: 9th International Workshop on Reverse Variability Engineering: 9th International Workshop on Reverse Variability Engineering(Association for Computing Machinery, 2021-09-06) Assunção, Wesley K.G.; Lopez-Herrejon, Roberto E.; Ziadi, Tewfik; Martinez, Jabier; Mousavi, Mohammad; Schobbens, Pierre-Yves; Araujo, Hugo; Schaefer, Ina; ter Beek, Maurice H.; Devroey, Xavier; Rojas, Jose Miguel; Pinto, Monica; Teixeira, Leopoldo; Berger, Thorsten; Noppen, Johannes; Reinhartz-Berger, Iris; Temple, Paul; Damiani, Ferruccio; Petke, Justyna; SWTSoftware Product Line (SPL) migration remains a challenging endeavour. From organizational issues to purely technical challenges, there is a wide range of barriers that complicates SPL adoption. This workshop aims to foster research about making the most of the two main inputs for SPL migration: 1) domain knowledge and 2) legacy assets. Domain knowledge, usually implicit and spread across an organization, is key to define the SPL scope and to validate the variability model and its semantics. At the technical level, domain expertise is also needed to create or extract the reusable software components. Legacy assets can be, for instance, similar product variants (e.g., requirements, models, source code, etc.) that were implemented using ad-hoc reuse techniques such as clone-and-own. More generally, the workshop REverse Variability Engineering attracts researchers and practitioners contributing to processes, techniques, tools, or empirical studies related to the automatic, semi-automatic or manual extraction or refinement of SPL assets.Item Software product line extraction from variability-rich systems: The robocode case study(Association for Computing Machinery, 2018-08-20) Martinez, Jabier; Tërnava, Xhevahire; Ziadi, Tewfik; Light, Ann; Lee, Yanki; Lee, Yanki; Garde, Julia; Botterweck, Goetz; Nadi, Sarah; Kanstrup, Anne Marie; Borba, Paulo; Vines, John; Berger, Thorsten; Mannisto, Tomi; Teli, Maurizio; Brandt, Eva; Bodker, Keld; Benavides, David; SWTThe engineering of a Software Product Line (SPL), either by creating it from scratch or through the re-engineering of existing variants, it uses to be a project that spans several years with a high investment. It is often hard to analyse and quantify this investment, especially in the context of extractive SPL adoption when the related software variants are independently created by different developers following different system architectures and implementation conventions. This paper reports an experience on the creation of an SPL by reengineering system variants implemented around an educational game called Robocode. The objective of this game is to program a bot (a battle tank) that battles against the bots of other developers. The world-wide Robocode community creates and maintains a large base of knowledge and implementations that are mainly organized in terms of features, although not presented as an SPL. Therefore, a group of master students analysed this variability-rich domain and extracted a Robocode SPL. We present the results of such extraction augmented with an analysis and a quantification regarding the spent time and effort. We believe that the results and the a-posteriori analysis can provide insights on global challenges on SPL adoption. We also provide all the elements to SPL educators to reproduce the teaching activity, and we make available this SPL to be used for any research purpose.Item Spectrum-based feature localization for families of systems(2023-01) Michelon, Gabriela K.; Martinez, Jabier; Sotto-Mayor, Bruno; Arrieta, Aitor; Assunção, Wesley K.G.; Abreu, Rui; Egyed, Alexander; SWTIn large code bases, locating the elements that implement concrete features of a system is challenging. This information is paramount for maintenance and evolution tasks, although not always explicitly available. In this work, motivated by the needs of locating features as a first step for feature-based Software Product Line adoption, we propose a solution for improving the performance of existing approaches. For this, relying on an automatic feature localization approach to locate features in single-systems, we propose approaches to deal with feature localization in the context of families of systems, e.g., variants created through opportunistic reuse such as clone-and-own. Our feature localization approaches are built on top of Spectrum-based feature localization (SBFL) techniques, supporting both dynamic feature localization (i.e., using execution traces as input) and static feature localization (i.e., relying on the structural decomposition of the variants’ implementation). Concretely, we provide (i) a characterization of different settings for dynamic SBFL in single systems, (ii) an approach to improve accuracy of dynamic SBFL for families of systems, and (iii) an approach to use SBFL as a static feature localization technique for families of systems. The proposed approaches are evaluated using the consolidated ArgoUML SPL feature localization benchmark. The results suggest that some settings of SBFL favor precision such as using the ranking metrics Wong2, Ochiai2, or Tarantula with high threshold values, while most of the ranking metrics with low thresholds favor recall. The approach to use information from variants increase the precision of dynamic SBFL while maintaining recall even with few number of variants, namely two or three. Finally, the static SBFL approach performs equally in terms of accuracy to other state-of-the-art approaches, such as Formal Concept Analysis and Interdependent Elements.Item The state of adoption and the challenges of systematic variability management in industry(2020-05-01) Berger, Thorsten; Steghöfer, Jan-Philipp; Ziadi, Tewfik; Robin, Jacques; Martinez, Jabier; SWTHandling 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.Item Visualizations for the evolution of Variant-Rich Systems: A systematic mapping study: A systematic mapping study(2023-02) Medeiros, Raul; Martinez, Jabier; Díaz, Oscar; Falleri, Jean-Rémy; SWTContext: Variant-Rich Systems (VRSs), such as Software Product Lines or variants created through clone & own, aim at reusing existing assets. The long lifespan of families of variants, and the scale of both the code base and the workforce make VRS maintenance and evolution a challenge. Visualization tools are a needed companion. Objective: We aim at mapping the current state of visualization interventions in the area of VRS evolution. We tackle evolution in both functionality and architecture. Three research questions are posed: What sort of analysis is being conducted to assess VRS evolution? (Analysis perspective); What sort of visualizations are displayed? (Visualization perspective); What is the research maturity of the reported interventions? (Maturity perspective). Methods: We performed a systematic mapping study including automated search in digital libraries, expert knowledge, and snowballing. Results: The study reports on 41 visualization approaches to cope with VRS evolution. Analysis wise, feature identification and location is the most popular scenario, followed by variant integration towards a Software Product Line. As for visualization, nodelink diagram visualization is predominant while researchers have come up with a wealth of ingenious visualization approaches. Finally, maturity wise, almost half of the studies are solution proposals. Most of the studies provide proof-of-concept, some of them also include publicly available tools, yet very few face proof-of-value. Conclusions: This study introduces a comparison framework where to frame future studies. It also points out distinct research gaps worth investigating as well as shortcomings in the evidence about relevance and contextual considerations (e.g., scalability).