6 research outputs found

    V1E: A Kernel for Domain-specific Textual Variability Modelling Languages

    Get PDF
    v1e is a language kernel for textual variability modelling built on top of the language-development system DjDSL. As a language kernel,v1e provides a minimal but extensible set of abstractions to implement families of domain-specific languages for textual variability modelling. v1e provides for a small and versatile abstract syntax to encode feature models using multiplicity constraints and canonical semantics. v1e offers built-in analysis support, such as configuration validation, by maintaining internal BDD representations. A derived language becomes realised as a collection of extensions dependent on the language kernel. v1e is designed to behighly extensible and embeddable, e.g., as a dynamic library or as aREPL shell. In this paper, we showcase a selected derived languageand the design decisions involved: a kernel implementation of TVL on top of v1e. We conclude the paper by pointing out current limitations (e.g., representing attributed variability models) and future directions (e.g., analysis support beyond BDD).Series: Technical Reports / Institute for Information Systems and New Medi

    V1E: A Kernel for Domain-specific Textual Variability Modelling Languages

    Get PDF
    v1e is a language kernel for textual variability modelling built on top of the language-development system DjDSL. As a language kernel,v1e provides a minimal but extensible set of abstractions to implement families of domain-specific languages for textual variability modelling. v1e provides for a small and versatile abstract syntax to encode feature models using multiplicity constraints and canonical semantics. v1e offers built-in analysis support, such as configuration validation, by maintaining internal BDD representations. A derived language becomes realised as a collection of extensions dependent on the language kernel. v1e is designed to behighly extensible and embeddable, e.g., as a dynamic library or as aREPL shell. In this paper, we showcase a selected derived languageand the design decisions involved: a kernel implementation of TVL on top of v1e. We conclude the paper by pointing out current limitations (e.g., representing attributed variability models) and future directions (e.g., analysis support beyond BDD).Series: Technical Reports / Institute for Information Systems and New Medi

    Preprocessor-based variability in open-source and industrial software systems: An empirical study

    No full text
    Almost every sufficiently complex software system today is configurable. Conditional compilation is a simple variability-implementation mechanism that is widely used in open-source projects and industry. Especially, the C preprocessor (CPP) is very popular in practice, but it is also gaining (again) interest in academia. Although there have been several attempts to understand and improve CPP, there is a lack of understanding of how it is used in open-source and industrial systems and whether different usage patterns have emerged. The background is that much research on configurable systems and product lines concentrates on open-source systems, simply because they are available for study in the first place. This leads to the potentially problematic situation that it is unclear whether the results obtained from these studies are transferable to industrial systems. We aim at lowering this gap by comparing the use of CPP in open-source projects and industry - especially from the embedded-systems domain - based on a substantial set of subject systems and well-known variability metrics, including size, scattering, and tangling metrics. A key result of our empirical study is that, regarding almost all aspects we studied, the analyzed open-source systems and the considered embedded systems from industry are similar regarding most metrics, including systems that have been developed in industry and made open source at some point. So, our study indicates that, regarding CPP as variability-implementation mechanism, insights, methods, and tools developed based on studies of open-source systems are transferable to industrial systems - at least, with respect to the metrics we considered
    corecore