192,860 research outputs found

    Variability Support in Domain-Specific Language Development

    Get PDF
    International audienceDomain Specific Languages (DSLs) are widely adopted to capitalize on business domain experiences. Consequently, DSL development is becoming a recurring activity. Unfortunately, even though it has its benefits, language development is a complex and time-consuming task. Languages are commonly realized from scratch, even when they share some concepts and even though they could share bits of tool support. This cost can be reduced by employing modern modular programming techniques that foster code reuse. However, selecting and composing these modules is often only within the reach of a skilled DSL developer. In this paper we propose to combine modular language development and variability management, with the objective of capitalizing on existing assets. This approach explicitly models the dependencies between language components, thereby allowing a domain expert to configure a desired DSL, and automatically derive its implementation. The approach is tool supported, using Neverlang to implement language components, and the Common Variability Language (CVL) for managing the variability and automating the configuration. We will further illustrate our approach with the help of a case study, where we will implement a family of DSLs to describe state machines

    Business process model customisation using domain-driven controlled variability management and rule generation

    Get PDF
    Business process models are abstract descriptions and as such should be applicable in different situations. In order for a single process model to be reused, we need support for configuration and customisation. Often, process objects and activities are domain-specific. We use this observation and allow domain models to drive the customisation. Process variability models, known from product line modelling and manufacturing, can control this customisation by taking into account the domain models. While activities and objects have already been studied, we investigate here the constraints that govern a process execution. In order to integrate these constraints into a process model, we use a rule-based constraints language for a workflow and process model. A modelling framework will be presented as a development approach for customised rules through a feature model. Our use case is content processing, represented by an abstract ontology-based domain model in the framework and implemented by a customisation engine. The key contribution is a conceptual definition of a domain-specific rule variability language

    Business process model customisation using domain-driven controlled variability management and rule generation

    Get PDF
    Business process models are abstract descriptions and as such should be applicable in different situations. In order for a single process model to be reused, we need support for configuration and customisation. Often, process objects and activities are domain-specific. We use this observation and allow domain models to drive the customisation. Process variability models, known from product line modelling and manufacturing, can control this customisation by taking into account the domain models. While activities and objects have already been studied, we investigate here the constraints that govern a process execution. In order to integrate these constraints into a process model, we use a rule-based constraints language for a workflow and process model. A modelling framework will be presented as a development approach for customised rules through a feature model. Our use case is content processing, represented by an abstract ontology-based domain model in the framework and implemented by a customisation engine. The key contribution is a conceptual definition of a domain-specific rule variability language

    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

    Towards Product Lining Model-Driven Development Code Generators

    Get PDF
    A code generator systematically transforms compact models to detailed code. Today, code generation is regarded as an integral part of model-driven development (MDD). Despite its relevance, the development of code generators is an inherently complex task and common methodologies and architectures are lacking. Additionally, reuse and extension of existing code generators only exist on individual parts. A systematic development and reuse based on a code generator product line is still in its infancy. Thus, the aim of this paper is to identify the mechanism necessary for a code generator product line by (a) analyzing the common product line development approach and (b) mapping those to a code generator specific infrastructure. As a first step towards realizing a code generator product line infrastructure, we present a component-based implementation approach based on ideas of variability-aware module systems and point out further research challenges.Comment: 6 pages, 1 figure, Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, pp. 539-545, Angers, France, SciTePress, 201

    Integrating the common variability language with multilanguage annotations for web engineering

    Get PDF
    Web applications development involves managing a high diversity of files and resources like code, pages or style sheets, implemented in different languages. To deal with the automatic generation of custom-made configurations of web applications, industry usually adopts annotation-based approaches even though the majority of studies encourage the use of composition-based approaches to implement Software Product Lines. Recent work tries to combine both approaches to get the complementary benefits. However, technological companies are reticent to adopt new development paradigms such as feature-oriented programming or aspect-oriented programming. Moreover, it is extremely difficult, or even impossible, to apply these programming models to web applications, mainly because of their multilingual nature, since their development involves multiple types of source code (Java, Groovy, JavaScript), templates (HTML, Markdown, XML), style sheet files (CSS and its variants, such as SCSS), and other files (JSON, YML, shell scripts). We propose to use the Common Variability Language as a composition-based approach and integrate annotations to manage fine grained variability of a Software Product Line for web applications. In this paper, we (i) show that existing composition and annotation-based approaches, including some well-known combinations, are not appropriate to model and implement the variability of web applications; and (ii) present a combined approach that effectively integrates annotations into a composition-based approach for web applications. We implement our approach and show its applicability with an industrial real-world system.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
    • …
    corecore