13 research outputs found

    A systematic reuse-based approach for customized cloned variants

    Get PDF
    Systematic reuse often becomes possible only after a number of customized cloned variants have already been delivered. Transforming from customized cloned variants to a systematic reuse with the explicit management of variability is beneficial. Hence, industrial companies prefer to adopt a reusebased approach. We propose in this research work an approach that supports the re-engineering of existing customized cloned variants towards systematic software reuse. The approach also eases the process of adding a new variant to a set of customized cloned variants, whenever there is enough implementation similarity between the existing customized cloned variants and the new one. We plan to evaluate our approach in an industrial case study, specifically in a set of customized cloned variants of software applications used by automotive companies. As an initial validation effort, we already have presented our first results to software developers at Bosch. They provided us a positive feedback about the ability of our approach to give an overview of the commonality and the variability of the customized cloned variant. For more robust validation, we propose to use a structured demonstration for the same industrial case study environment with qualitative and quantitative evaluation of the impact.We thank our colleagues from Bosch company in sensor software team (Joao Santos and Helder Vilas-Boas) and we also like to show our gratitude to Matthias Renninger (Development, Mangement of projects) for his assistance. We thank the European Structural and Investment Funds in the FEDER component, through the Operational Competitiveness and Internationalization Programme (COMPETE 2020) Project n° 002797; Funding Reference: POCI-01-0247-FEDER-002797

    Recording Feature Mappings During Evolution of Cloned Variants

    Get PDF
    Clone-and-Own and software product lines are often used approaches when developing variational software products. Nevertheless, both approaches have negative points which are inevitable when developing variants. While clone-and-own often is not feasible in terms of synchronizing changes into other variants, software product lines are costly when developing only a small amount of variants. In this thesis, we tackle these problems through the creation of an annotation-based approach. Our approach uses line-based feature mappings to implement variability language independent in any textual documents. Feature mappings are recorded automatically during a source edit with as few developer interactions as possible. As automatically feature mapping is hard without knowing the intentions of developers, they select a feature context and a feature context mode which are then used by in the feature mapping calculation. With the feature mapping assigned, developers can also select patches to be synchronized to variants which also implement the calculated feature mapping. In total, our approach mixes elements from clone-and-own and software product lines and enables developer to work as efficient as possible with an acceptable cost-benefit ratio

    Seamless Variability Management With the Virtual Platform

    Get PDF
    Customization is a general trend in software engineering, demanding systems that support variable stakeholder requirements. Two opposing strategies are commonly used to create variants: software clone & own and software configuration with an integrated platform. Organizations often start with the former, which is cheap, agile, and supports quick innovation, but does not scale. The latter scales by establishing an integrated platform that shares software assets between variants, but requires high up-front investments or risky migration processes. So, could we have a method that allows an easy transition or even combine the benefits of both strategies? We propose a method and tool that supports a truly incremental development of variant-rich systems, exploiting a spectrum between both opposing strategies. We design, formalize, and prototype the variability-management framework virtual platform. It bridges clone & own and platform-oriented development. Relying on programming-language-independent conceptual structures representing software assets, it offers operators for engineering and evolving a system, comprising: traditional, asset-oriented operators and novel, feature-oriented operators for incrementally adopting concepts of an integrated platform. The operators record meta-data that is exploited by other operators to support the transition. Among others, they eliminate expensive feature-location effort or the need to trace clones. Our evaluation simulates the evolution of a real-world, clone-based system, measuring its costs and benefits.Comment: 13 pages, 10 figures; accepted for publication at the 43rd International Conference on Software Engineering (ICSE 2021), main technical trac

    Spectrum-based feature localization for families of systems

    Get PDF
    In 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

    Maintainability and evolvability of control software in machine and plant manufacturing -- An industrial survey

    Full text link
    Automated Production Systems (aPS) have lifetimes of up to 30-50 years, throughout which the desired products change ever more frequently. This requires flexible, reusable control software that can be easily maintained and evolved. To evaluate selected criteria that are especially relevant for maturity in software maintainability and evolvability of aPS, the approach SWMAT4aPS+ builds on a questionnaire with 52 questions. The three main research questions cover updates of software modules and success factors for both cross-disciplinary development as well as reusable models. This paper presents the evaluation results of 68 companies from machine and plant manufacturing (MPM). Companies providing automation devices and/or engineering tools will be able to identify challenges their customers in MPM face. Validity is ensured through feedback of the participating companies and an analysis of the statistical unambiguousness of the results. From a software or systems engineering point of view, almost all criteria are fulfilled below expectations

    Feature location benchmark for extractive software product line adoption research using realistic and synthetic Eclipse variants

    Get PDF
    International audienceContext: 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

    Enhancing Clone-and-Own with Systematic Reuse for Developing Software Variants

    No full text

    Análisis y comparación de algoritmos de identificación de características aplicados a una familia de productos de software

    Get PDF
    El desarrollo de software es una tendencia hoy en día por lo que la cantidad de código que se ha generado en los últimos años ha aumentado significativamente. Adicionalmente, el aumento de demanda y la necesidad de reducir los tiempos de desarrollo generan problemas a corto y largo plazo que dificultan la mantenibilidad de cualquier proyecto. La reutilización de elementos de software (código fuente, modelos, entre otros), ha sido una práctica que se ha realizado a través de técnicas que no tienen en cuenta su soporte. Las líneas de productos de software (SPL) promueven la construcción de elementos que se puedan reutilizar y actualizar de acuerdo a las necesidades de manera organizada. En busca de la reutilización, existen técnicas extractivas que buscan componentes en proyectos legados o monolíticos, software que se creó teniendo en cuenta un objetivo específico. Existen varios casos de estudio, en donde se ha construido una SPL a partir de elementos que no buscaban ser reutilizados originalmente. Particularmente, ArgoUML SPL fue un proyecto creado en Java, el cual ha sido usado para verificar la efectividad de los algoritmos automáticos de análisis y extracción de características. Sin embargo, debido a la cantidad de variantes que existen en este caso de estudio, se hace evidente mostrar una comparación que sintetice y establezca un punto de referencia para la construcción de algoritmos de recuperación de características. Por tal motivo en este trabajo se realizó la construcción de una medida de comparación y se implementó una técnica que sirva como punto de referencia para futuras investigaciones utilizando dicha métrica unificada.Abstract: Nowadays, Software development is a trend, so the amount of code that has been generated in recent years has increased significantly. Additionally, the demand of software is also increasing, and the need to reduce the development time generates short and longterm problems that make difficult the maintenance of any project. The reuse of software elements (source code, models, among others), has been a practice that has been carried out through techniques that do not pay enough attention to the maintenance of the multiple projects. Software product lines (SPL) promote the construction of assets that can be reused and updated according to needs in a systematic manner. In search of reuse, there are instructive techniques that look for components in legacy or monolithic projects, software that was created with a specific objective in mind. There are several cases of study, where an SPL has been built from assets that did not seek to be reused originally. In particular, ArgoUML SPL was a project created in Java, which has been extensively used to test automatic techniques of identification and extraction of features. However, due to the number of variants that exist in this case study, it is evident to show a comparison that synthesizes and establishes a reference point for the construction of feature recovery algorithms. The main objective of this work is build a groundtruth to compare feature location algorithms and implement a technique which can be used as a reference to compare future researches.Maestrí

    Systematic Reuse and Ad Hoc Forking to Develop Software Variants

    Get PDF
    corecore