4 research outputs found

    Understanding Variability-Aware Analysis in Low-Maturity Variant-Rich Systems

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

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

    Synchronous development in open-source projects: A higher-level perspective

    Get PDF
    Mailing lists are a major communication channel for supporting developer coordina tion in open-source software projects. In a recent study, researchers explored tempo ral relationships (e.g., synchronization) between developer activities on source code and on the mailing list, relying on simple heuristics of developer collaboration (e.g., co-editing fles) and developer communication (e.g., sending e-mails to the mailing list). We propose two methods for studying synchronization between collaboration and communication activities from a higher-level perspective, which captures the complex activities and views of developers more precisely than the rather technical perspective of previous work. On the one hand, we explore developer collaboration at the level of features (not fles), which are higher-level concepts of the domain and not mere technical artifacts. On the other hand, we lift the view of developer com munication from a message-based model, which treats each e-mail individually, to a conversation-based model, which is semantically richer due to grouping e-mails that represent conceptually related discussions. By means of an empirical study, we investigate whether the diferent abstraction levels afect the observed relationship between commit activity and e-mail communication using state-of-the-art time series analysis. For this purpose, we analyze a combined history of 40 years of data for three highly active and widely deployed open-source projects: QEMU, BusyBox, and OpenSSL. Overall, we found evidence that a higher-level view on the coordina tion of developers leads to identifying a stronger statistical dependence between the technical activities of developers than a less abstract and rather technical view

    Elaboración de métricas basada en un framework de atributos para líneas de productos

    Get PDF
    Una línea de productos es un conjunto de productos relacionados que comparten unas características comunes, así como una variabilidad. Lo anterior facilita la producción masiva de dichos productos además de su adaptación a requisitos particulares. La ingeniería de líneas de productos es un paradigma de producción que permite la personalización masiva de productos. Esto ayuda a una mayor reutilización de componentes, a disminuir el tiempo de desarrollo y a mejorar la calidad final de los productos. Como en cualquier rama de la ingeniería, en la ingeniería de líneas de productos la medición juega un papel clave. Esto permite una mejor gestión de los procesos y los recursos requeridos por estos, así como monitorear la calidad de los productos. Este proceso se implementa mediante el uso de métricas, que permiten tener una medida cuantitativa del grado en el que un sistema, componente o proceso poseen un atributo dado (como costo, mantenibilidad o complejidad). Sin embargo; ni la comunidad académica ni la industria, cuentan con un framework para la aplicación de métricas en líneas de productos. Además, en la ingeniería en general y particularmente en la ingeniería de software, no existe un consenso en la terminología ni en una metodología de medición. Todo esto lleva a que se presenten dificultades, tanto para la definición como para la validación de métricas, en la ingeniería de software y en la ingeniería de líneas de productos. Durante el desarrollo del presente trabajo se propone un framework de medición, enfocado en los atributos, para la ingeniería de líneas de productos. También se define un conjunto de métricas con base en dicho framework. El trabajo propuesto comprende un mapeo sistemático de la literatura sobre la medición en la ingeniería de líneas de productos, un framework de medición centrado en un conjunto de atributos extraídos de la ingeniería de líneas de productos, un conjunto de métricas para líneas de productos y la correspondiente validación de dichas métricas con un análisis teórico.Abstract: A product line is a set of related products that share some common features and variable ones. It allows the massive production of those products besides their adaptation to particular requirements. Product line engineering is a production paradigm that implies mass customization of products. It helps to a greater reuse of components, to decrease the time of development and to improve the final quality of products. Like in any other engineering branch, in product line engineering measurement has a key role. It allows a better management of the processes and the resources required by them, as well as to monitor the quality of the products. This process is implemented through the use of metrics, which allow to have a quantitative measure of the degree in which a system, component or process possesses a given attribute (like cost, maintainability or complexity). However, neither the academy nor the industry have a framework for using metrics in product lines. Although, in engineering but mainly in software engineering, there is not a consensus in a measurement terminology or in a measurement methodology. All this has led to some difficulties in the definition and the validation of metrics in software engineering and in product line engineering. In this work, we propose a measurement framework for product line engineering focused on attributes. We also define a set of metrics based on this framework. The proposed work includes a systematic mapping about measurement in product line engineering, a measurement framework focused on the attributes of the product lines, a set of metrics for product lines and the validation of those metrics with a theoretical analysis.Maestrí
    corecore