12 research outputs found

    Effects of variability in models: a family of experiments

    Get PDF
    The ever-growing need for customization creates a need to maintain software systems in many different variants. To avoid having to maintain different copies of the same model, developers of modeling languages and tools have recently started to provide implementation techniques for such variant-rich systems, notably variability mechanisms, which support implementing the differences between model variants. Available mechanisms either follow the annotative or the compositional paradigm, each of which have dedicated benefits and drawbacks. Currently, language and tool designers select the used variability mechanism often solely based on intuition. A better empirical understanding of the comprehension of variability mechanisms would help them in improving support for effective modeling. In this article, we present an empirical assessment of annotative and compositional variability mechanisms for three popular types of models. We report and discuss findings from a family of three experiments with 164 participants in total, in which we studied the impact of different variability mechanisms during model comprehension tasks. We experimented with three model types commonly found in modeling languages: class diagrams, state machine diagrams, and activity diagrams. We find that, in two out of three experiments, annotative technique lead to better developer performance. Use of the compositional mechanism correlated with impaired performance. For all three considered tasks, the annotative mechanism was preferred over the compositional one in all experiments. We present actionable recommendations concerning support of flexible, tasks-specific solutions, and the transfer of established best practices from the code domain to models

    Compositional Verification of Evolving SPL

    Get PDF
    This paper presents a novel approach to the design verification of Software Product Lines(SPL). The proposed approach assumes that the requirements and designs are modeled as finite state machines with variability information. The variability information at the requirement and design levels are expressed differently and at different levels of abstraction. Also the proposed approach supports verification of SPL in which new features and variability may be added incrementally. Given the design and requirements of an SPL, the proposed design verification method ensures that every product at the design level behaviorally conforms to a product at the requirement level. The conformance procedure is compositional in the sense that the verification of an entire SPL consisting of multiple features is reduced to the verification of the individual features. The method has been implemented and demonstrated in a prototype tool SPLEnD (SPL Engine for Design Verification) on a couple of fairly large case studies.Ce papier prĂ©sente une approche nouvelle de vĂ©rification pour les lignes de produits logiciels (LPL). L'approche proposĂ©e considĂšre que la spĂ©cification et la conception de LPL peuvent ĂȘtre abstraites comme des automates Ă  Ă©tats finis comprenant des informations sur la variabilitĂ©. Ces informations sont exprimĂ©es diffĂ©remment aux niveaux spĂ©cification et conceptions. Sous ces hypothĂšses, l'approche proposĂ©e supporte la vĂ©rification de LPLs dans lesquelles des fonctionnalitĂ©s peuvent ĂȘtre ajoutĂ©es incrĂ©mentalement. A partir de la spĂ©cification et de la conception d'une LPL, la mĂ©thode de vĂ©rification proposĂ©e assure que chaque produit au niveau conception se conforme, comportementalement parlant, Ă  un produit au niveau spĂ©cification. La procĂ©dure de conformitĂ© est compositionnelle car la vĂ©rification de la LPL en entier se rĂ©duit Ă  la vĂ©rification des fonctionnalitĂ©s qui la compose individuellement. La mĂ©thode a Ă©tĂ© implantĂ©e dans un outil appelĂ© ''SPLEnD'' et essayĂ©e sur deux cas d'Ă©tude relativement larges

    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

    Managing Variability in Assembly Lines

    Get PDF
    Every successful company have a diversified product portfolio based on their customer demand. Though products are branded as different variants, versions etc. most of them are similar products with little variations in their features or functions they perform. With the traditional, product centric approach to handle variation, new techniques like Clone and own were implemented in which engineers pick the most similar one available, copy it, make changes to it and present it as a new variant. Even though this approach employs reuse, but the savings occur once and only once. This project discussed how companies can exploit the commonality between the products, manage variability and get benefitted using concepts like feature based modelling, materialization etc. Feature based modelling was extensively being used in software industry, this paper focuses on using the same methods in manufacturing industry and improve the product lines for better efficiency. This project specifically investigates the assembly lines and how they can be programmed and documented to handle the portfolio of products efficiently through the entire Product Life Cycle using pure::variants, a leading variant-management tool. The use feature based modelling and variability management techniques through the assembly lines greatly reduces the evolution and development time of variants, improves cycle time and with project management documents like instruction Manuals, Bill of materials etc. Keywords: Central Variability Model (CVM), Feature based modelling, Pure Variants, Assembly Lines, Product Life Cycle

    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

    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

    ClaferMPS: Modeling and Optimizing Automotive Electric/Electronic Architectures Using Domain-Specific Languages

    Get PDF
    Modern automotive electric/electronic (E/E) architectures are growing to the point where architects can no longer manually predict the effects of their design decisions. Thus, in addition to applying an architecture reference model to decompose their architectures, they also require tools for synthesizing and evaluating candidate architectures during the design process. Clafer is a modeling language, which has been used to model variable multi-layer, multi-perspective automotive system architectures according to an architecture reference model. Clafer tools allow architects to synthesize optimal candidates and evaluate effects of their design decisions. However, since Clafer is a general-purpose structural modeling language, it does not help the architects in building models conforming to the given architecture reference model. In this work, we present ClaferMPS, a set of extensible languages and IDE for modeling E/E architectures using Clafer. First, we present an E/E architecture domain-specific language (DSL) built on top of Clafer, which embodies the reference model and which guides the architects in correctly applying the reference model. We then evaluate the DSL and its implementation by modeling two existing automotive systems, which were originally modeled in plain Clafer. The evaluation showed that by using the DSL, an evaluator obtained correct models by construction because the DSL helped prevent typical errors that are easy to make in plain Clafer. The evaluator was also able to synthesize and evaluate candidate architectures as with plain Clafer. Finally, we demonstrate extensibility capabilities of ClaferMPS. Our implementation is built on top of the JetBrains Meta Programming System, which supports language modularization and composition, multi-stage transformations and projectional editing. As a result, ClaferMPS allows third parties to seamlessly add extensions to both Clafer and the E/E architecture DSL without invasive changes. To illustrate this approach, we consider the Robot Operating System (ROS) communications infrastructure, a case study, which is outside the scope of the existing reference model. We show how the E/E architecture DSL can be adapted to the new domain using MPS language modularization and composition

    Variability-Modelling Practices in Industrial Software Product Lines: A Qualitative Study

    Get PDF
    Many organizations have transitioned from single-systems development to product-line development with the goal of increasing productivity and facilitating mass customization. Variability modelling is a key activity in software product-line development that deals with the explicit representation of variability using dedicated models. Variability models specify points of variability and their variants in a product line. Although many variability-modelling notations and tools have been designed by researchers and practitioners, very little is known about their usage, actual benefits or challenges. Existing studies mostly describe product-line practices in general, with little focus on variability modelling. We address this gap through a qualitative study on variability-modelling practices in medium- and large-scale companies using two empirical methods: surveys and interviews. We investigated companies' variability-modelling practices and experiences with the aim to gather information on 1) the methods and strategies used to create and manage variability models, 2) the tools and notations used for variability modelling, 3) the perceived values and challenges of variability modelling, and 4) the core characteristics of their variability models. Our results show that variability models are often created by re-engineering existing products into a product line. All of the interviewees and the majority of survey participants indicated that they represent variability using separate variability models rather than annotative approaches. We found that developers use variability models for many purposes, such as the visualization of variabilities, configuration of products, and scoping of products. Although we observed that high degree of heterogeneity exists in the variability-modelling notations and tools used by organizations, feature-based notations and tools are the most common. We saw huge differences in the sizes of variability models and their contents, which indicate that variability models can have different use cases depending on the organization. Most of our study participants reported complexity challenges that were related mainly to the visualization and evolution of variability models, and dependency management. In addition, reports from interviews suggest that product-line adoption and variability modelling have forced developers to think in terms of a product-line scenario rather than a product-based scenario
    corecore