12 research outputs found

    CASE Tool support for variability management in software product lines

    Get PDF
    Software product lines (SPL) aim at reducing time-to-market and increasing software quality through extensive, planned reuse of artifacts. An essential activity in SPL is variability management, i.e., defining and managing commonality and variability among member products. Due to the large scale and complexity of today’s software-intensive systems, variability management has become increasingly complex to conduct. Accordingly, tool support for variability management has been gathering increasing momentum over the last few years and can be considered a key success factor for developing and maintaining SPLs. While several studies have already been conducted on variability management, none of these analyzed the available tool support in detail. In this work, we report on a survey in which we analyzed 37 existing variability management tools identified using a systematic literature review to understand the tools’ characteristics, maturity, and the challenges in the field. We conclude that while most studies on variability management tools provide a good motivation and description of the research context and challenges, they often lack empirical data to support their claims and findings. It was also found that quality attributes important for the practical use of tools such as usability, integration, scalability, and performance were out of scope for most studies

    A Scalable Design Framework for Variability Management in Large-Scale Software Product Lines

    Get PDF
    Variability management is one of the major challenges in software product line adoption, since it needs to be efficiently managed at various levels of the software product line development process (e.g., requirement analysis, design, implementation, etc.). One of the main challenges within variability management is the handling and effective visualization of large-scale (industry-size) models, which in many projects, can reach the order of thousands, along with the dependency relationships that exist among them. These have raised many concerns regarding the scalability of current variability management tools and techniques and their lack of industrial adoption. To address the scalability issues, this work employed a combination of quantitative and qualitative research methods to identify the reasons behind the limited scalability of existing variability management tools and techniques. In addition to producing a comprehensive catalogue of existing tools, the outcome form this stage helped understand the major limitations of existing tools. Based on the findings, a novel approach was created for managing variability that employed two main principles for supporting scalability. First, the separation-of-concerns principle was employed by creating multiple views of variability models to alleviate information overload. Second, hyperbolic trees were used to visualise models (compared to Euclidian space trees traditionally used). The result was an approach that can represent models encompassing hundreds of variability points and complex relationships. These concepts were demonstrated by implementing them in an existing variability management tool and using it to model a real-life product line with over a thousand variability points. Finally, in order to assess the work, an evaluation framework was designed based on various established usability assessment best practices and standards. The framework was then used with several case studies to benchmark the performance of this work against other existing tools

    A Code Tagging Approach to Software Product Line Development:An Application to Satellite Communication Libraries

    Get PDF
    International audienceSoftware product line engineering seeks to systematise reuse when developing families of similar software systems so as to minimise development time, cost and defects. To realise variability at the code level, product line methods classically advocate usage of inheritance, components, frameworks, aspects or generative techniques. However, these might require unaffordable paradigm shifts for developers if the software was not thought at the outset as a product line. Furthermore, these techniques can be conflicting with a company's coding practices or external regulations. These concerns were the motivation for the industry- university collaboration described in this paper in which we developed a minimally intrusive coding technique based on tags. The approach was complemented with traceability from code to feature diagrams which were exploited for automated configuration. It is supported by a toolchain and is now in use in the partner company for the development of flight grade satellite communica- tion software libraries

    Synthesis of Attributed Feature Models From Product Descriptions: Foundations

    Get PDF
    Feature modeling is a widely used formalism to characterize a set of products (also called configurations). As a manual elaboration is a long and arduous task, numerous techniques have been proposed to reverse engineer feature models from various kinds of artefacts. But none of them synthesize feature attributes (or constraints over attributes) despite the practical relevance of attributes for documenting the different values across a range of products. In this report, we develop an algorithm for synthesizing attributed feature models given a set of product descriptions. We present sound, complete, and parametrizable techniques for computing all possible hierarchies, feature groups, placements of feature attributes, domain values, and constraints. We perform a complexity analysis w.r.t. number of features, attributes, configurations, and domain size. We also evaluate the scalability of our synthesis procedure using randomized configuration matrices. This report is a first step that aims to describe the foundations for synthesizing attributed feature models

    Use of Model-Based Software Product Line Engineering for Certifiable Avionics Software Development

    Get PDF
    RÉSUMÉ Tous les systĂšmes logiciels avioniques sont soumis aux contraintes de certification imposĂ©es par les normes DO-178. Les fabricants d’équipements avioniques civils sont trĂšs conservateurs dans leur processus de dĂ©veloppement de logiciels et la plupart utilisent encore des outils et des mĂ©thodes d’ingĂ©nierie logicielle Ă©prouvĂ©s en raison des contraintes de certification strictes. Les contraintes de certification, avec la taille et la complexitĂ© du logiciel des systĂšmes avioniques modernes qui augmentent continuellement, ont un impact considĂ©rable sur le coĂ»t du dĂ©veloppement de logiciel avionique certifiable. Pour rĂ©duire le coĂ»t de dĂ©veloppement, les fabricants d’équipements avioniques doivent utiliser des mĂ©thodes de dĂ©veloppement logiciel modernes, ce qui est possible avec la publication de la norme DO-178C. Dans le cadre de ma thĂšse, nous explorons l’utilisation de l’ingĂ©nierie de ligne de produit basĂ©e sur des modĂšles pour le dĂ©veloppement de logiciels avioniques certifiables et proposons des solutions au niveau industriel pour utiliser un processus de ligne de produit utilisant des outils commerciaux. Dans le cadre de ma thĂšse, nous explorons Ă©galement l’applicabilitĂ© de notre processus de development logiciel basĂ© sur le concept de ligne de produit au dĂ©veloppement de logiciels avioniques certifiables contrĂŽlĂ©s. Nous identifions les contraintes qui limitent la rĂ©utilisation des composants logiciels dans les logiciels avioniques sous contrĂŽle d’exportation et proposons des solutions techniques qui facilitent l’application de ligne de produit logiciel basĂ©e sur des modĂšles au dĂ©veloppement de logiciels avioniques certifiĂ©s et sous contrĂŽle d’exportation. Nous validons nos solutions proposĂ©es par des Ă©tudes de cas industriels.----------ABSTRACT All avionics software systems are subjected to certification constraints imposed by DO-178 standards. Civil avionics equipment manufacturers are quite conservative in their software development processes: most still use time-tested software engineering tools and methods, due to strict certification constraints. These certification constraints, along with the increasing size and complexity of modern avionics software-intensive systems, are having a huge impact on the cost of certifiable avionics software development. To cope with this increasing complexity, avionics equipment manufacturers need to use modern software development methodologies. This is possible with the release of DO-178C standard. In my thesis, I have explored the use of model-based software product line engineering for certifiable avionics software development, and have proposed industrial-level solutions for using a model-based software product line process based on commercially available tools. In this thesis, I have also explored the applicability of our model-based software product line process to export-controlled, certifiable avionics software development, identifying constraints that limit the reuse of software components among export-controlled avionics software and proposing technical solutions that facilitate the application of a model-based software product line to export-controlled, certifiable avionics software development. The proposed solutions are validated using industrial case studies

    Evaluating a Textual Feature Modelling Language: Four Industrial Case Studies

    Get PDF
    Abstract. Feature models are commonly used in software product line engineer-ing as a means to document variability. Since their introduction, feature models have been extended and formalised in various ways. The majority of these ex-tensions are variants of the original tree-based graphical notation. But over time, textual dialects have also been proposed. The textual variability language (TVL) was proposed to combine the advantages of both graphical and textual notations. However, its benefits and limitations have not been empirically evaluated up to now. In this paper, we evaluate TVL with four cases from companies of differ-ent sizes and application domains. The study shows that practitioners can benefit from TVL. The participants appreciated the notation, the advantages of a textual language and considered the learning curve to be gentle. The study also reveals some limitations of the current version of TVL.

    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

    Hephaestus-PL : uma linha de produtos de ferramentas para linha de produtos de software

    Get PDF
    Dissertação (mestrado)—Universidade de BrasĂ­lia, Departamento de CiĂȘncia da Computação, 2012.Suporte ferramental e essencial para a Engenharia de Aplica ção em Linhas de Produto de Software (LPS). Apesar de uma variedade de ferramentas existentes, a maioria delas nĂŁo apresenta suporte adequado a con gurabilidade e exibilidade. Assim sendo, e dif cil para elas serem aplicadas em diferentes contextos, por exemplo, endere car variabilidade em diferentes combina çÔes de artefatos e permitir a inserção e o gerenciamento de variabilidades de novos artefatos de diferentes dom nios. Para abordar esta questĂŁo, e necessĂĄrio explorar sistematicamente a comunalidade e, adequadamente, gerenciar a variabilidade de tais ferramentas. Nesse sentido, realizamos uma an alise comparativa de t ecnicas de gerenciamento de variabilidades para o desenvolvimento de ferramentas de LPS no contexto da ferramenta Hephaestus. A an alise revela que duas t ecnicas, uma anotativa e outra transformacional, sĂŁo as mais adequadas ao gerenciamento de variabilidades em Hephaestus, e que a sua combina ção e uma estrat egia viĂĄvel para melhorar esse gerenciamento. AlĂ©m disso, apresentamos a an ĂĄlise, projeto e implementa ção do dom Ă­nio e um processo que suporta a evolu cĂŁo de Hephaestus-PL, uma linha de produtos de ferramentas de linha de produtos de software onde o gerenciamento de variabilidades foi implementado por abordagem transformacional usando opera c~oes de metaprogramação. Hephaestus-PL suporta um processo que permite a instanciaç~~ao de ferramentas de linha de produtos modelando a variabilidade em novos e em qualquer combina ção de artefatos, e foi desenvolvida por bootstrapping de versĂ”es da ferramenta Hephaestus. Este processo suporta a aborda- gem reativa e a exibilidade para introduzir novos ativos aumentando a con gurabilidade de Hephaestus-PL e permitindo a gera cĂŁo de diferentes instĂąncias de Hephaestus-PL. Uma avalia cĂŁo da solu ção proposta revela que a mesma melhorou a con gurabilidade e exibilidade quando comparamos com as evolu cĂ”es anteriores de Hephaestus. ______________________________________________________________________________ ABSTRACTTool support is essential for application engineering in software product lines. Despite a myriad of existing tools, most still lack adequate support for con gurability and exibility, so that it is hard for them to be applied in di erent contexts, e.g., addressing variability in an arbitrary combination of di erent artifacts and introducing and managing variabil- ity in new artifacts. Addressing this issue requires systematically exploring underlying commonality and adequately managing variability of such tools. Accordingly, we have conducted a comparative analysis of variability management techniques for SPL tool development in the context of the SPL Hephaestus tool. The analysis reveals that two techniques, one annotative and another transformational, are most suitable to variability management in Hephaestus, and that their combination is a feasible strategy to improve such management. Furthermore, we present domain analysis, design, implementation, and a supporting process for extending Hephaestus-PL, a software product line of software product line tools whose variability management was implemented by transformational approach us- ing metaprogramming operations. Hephaestus-PL is supported by a process allowing instantiating product line tools for modeling variability in new and in any combination of artifacts, and has been developed by bootstrapping previous versions of the Hephaestus tool. This process supports the reactive approach and exibility to add new assets increas- ing the con gurability of Hephaestus-PL and reaching the goal of enabling the generation of di erent instances of Hephaestus-PL. An assessment of the proposed solution reveals that it has improved con gurability and exibility when compared to previous evolution of Hephaestus

    Software variability in service robotics

    Get PDF
    Robots artificially replicate human capabilities thanks to their software, the main embodiment of intelligence. However, engineering robotics software has become increasingly challenging. Developers need expertise from different disciplines as well as they are faced with heterogeneous hardware and uncertain operating environments. To this end, the software needs to be variable—to customize robots for different customers, hardware, and operating environments. However, variability adds substantial complexity and needs to be managed—yet, ad hoc practices prevail in the robotics domain, challenging effective software reuse, maintenance, and evolution. To improve the situation, we need to enhance our empirical understanding of variability in robotics. We present a multiple-case study on software variability in the vibrant and challenging domain of service robotics. We investigated drivers, practices, methods, and challenges of variability from industrial companies building service robots. We analyzed the state-of-the-practice and the state-of-the-art—the former via an experience report and eleven interviews with two service robotics companies; the latter via a systematic literature review. We triangulated from these sources, reporting observations with actionable recommendations for researchers, tool providers, and practitioners. We formulated hypotheses trying to explain our observations, and also compared the state-of-the-art from the literature with the-state-of-the-practice we observed in our cases. We learned that the level of abstraction in robotics software needs to be raised for simplifying variability management and software integration, while keeping a sufficient level of customization to boost efficiency and effectiveness in their robots’ operation. Planning and realizing variability for specific requirements and implementing robust abstractions permit robotic applications to operate robustly in dynamic environments, which are often only partially known and controllable. With this aim, our companies use a number of mechanisms, some of them based on formalisms used to specify robotic behavior, such as finite-state machines and behavior trees. To foster software reuse, the service robotics domain will greatly benefit from having software components—completely decoupled from hardware—with harmonized and standardized interfaces, and organized in an ecosystem shared among various companies
    corecore