Chico Sundermann, Stefan Vill, Thomas Thüm, Kevin Feichtinger, Prankur Agarwal, Rick Rabiser, J. Galindo, David Benavides
{"title":"UVLParser: Extending UVL with Language Levels and Conversion Strategies","authors":"Chico Sundermann, Stefan Vill, Thomas Thüm, Kevin Feichtinger, Prankur Agarwal, Rick Rabiser, J. Galindo, David Benavides","doi":"10.1145/3579028.3609013","DOIUrl":"https://doi.org/10.1145/3579028.3609013","url":null,"abstract":"The Universal Variability Language (UVL) is a community effort towards a widely adopted textual specification for feature models. For widespread usage, the language should be simple to understand and easy to embed in existing tools. Also, many different use cases should be covered, which requires an expressive language design. To incorporate these clashing requirements in UVL, we enrich the language with several optional extensions that add more expressive language features. Furthermore, we provide conversion strategies that translate between those language levels by replacing the complex constructs with equivalent but simpler ones. With our library, other tool developers can select their supported language levels and automatically convert more complex language constructs. Those constructs are then replaced with semantically equivalent expressions that are supported by the tool.","PeriodicalId":340233,"journal":{"name":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131766362","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"InTra: Automatic Reduction of Model Complexity and Generation of System Variants - A Tool Demonstration","authors":"Philippe Barbie, Vasil L. Tenev, Martin Becker","doi":"10.1145/3579028.3609010","DOIUrl":"https://doi.org/10.1145/3579028.3609010","url":null,"abstract":"Efficient construction and management of variability is becoming increasingly crucial and poses a growing obstacle for model-based system engineering (MBSE). In this paper, we propose a transformative method that addresses these challenges by automating the creation of system model variants using the model transformation approach InTra (Interaction-based Transformation). The main advantage of this approach is the reduction of the complexity of the system model by using rule-based variants. Even models with a limited number of elements can quickly become confusing and difficult to read due to the high density of relationships. Our proposed approach, offers a way to significantly reduce system model complexity by minimizing the number of connectors through the application of interaction rules. By implementing this approach, we were able to generate an abstracted variant of the original system model with a substantially reduced number of connectors, thereby resulting in an overall decrease in model complexity. Thus, InTra not only improves productivity, but also ensures consistency of the model, leading to an overall higher quality of results and simplification of the model for future maintenance. An additional application of the approach is to generate variants of a system model by selectively activating or deactivating individual rules of a predefined rule catalogue, thus enabling easy variant management.","PeriodicalId":340233,"journal":{"name":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124312099","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Jacob Loth, Chico Sundermann, Tobias Schrull, Thilo Brugger, Felix Rieg, Thomas Thüm
{"title":"UVLS: A Language Server Protocol For UVL","authors":"Jacob Loth, Chico Sundermann, Tobias Schrull, Thilo Brugger, Felix Rieg, Thomas Thüm","doi":"10.1145/3579028.3609014","DOIUrl":"https://doi.org/10.1145/3579028.3609014","url":null,"abstract":"The Universal Variability Language (UVL) is a community-driven textual format for feature models. Over the last few years, UVL has been integrated into several relevant product-line tools. One of UVLs major advantages is its manual readability and editability. Still, without automated support it is hard to overview larger UVL models. We implemented a language server protocol (LSP) that includes syntactical and semantic analyses of UVL files. The LSP comes with several handy features to make textual editing of UVL more convenient, such as syntax checks and anomaly detection. Furthermore, the LSP supports the configuration of UVL files in a web-based editor with decision propagation. The reasoning engine supports constraints with a high level of expressiveness, such as numerical and string features. Due to the generic interface of LSPs, UVL can be integrated into modern IDEs with only small efforts. We already integrated the LSP into Visual Studio Code and NeoVim.","PeriodicalId":340233,"journal":{"name":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127071622","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"PYDOP: A Generic Python Library for Delta-Oriented Programming","authors":"Michael Lienhardt","doi":"10.1145/3579028.3609011","DOIUrl":"https://doi.org/10.1145/3579028.3609011","url":null,"abstract":"Delta-Oriented Programming (DOP) is a modular and flexible approach to implement Software Product Lines (SPLs). In DOP, an SPL is structured in four parts: the feature model describes the configuration space of the SPL; the base artifact is an initial artifact; the deltas are sequences of transformation operations on an artifact; and the configuration knowledge indicates for which configuration and in which order the deltas are applied on the base artifact to generate the variant corresponding to the input configuration. In principle, DOP can thus be used to construct SPLs over any artifact that can be transformed. In this paper, we introduce the pydop library which implements DOP in python3. This library provides all the necessary structures to build SPLs over any transformable python artifact. Moreover, it provides transformation operations over python classes and modules, thus enabling the possibility to build SPLs over python code as well. Finally, this library also provides a simple Multi-SPL mechanism that enable SPL interactions.","PeriodicalId":340233,"journal":{"name":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133298028","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Towards Analyzing Variability in Space and Time of Products from a Product Line using Triadic Concept Analysis","authors":"Alexandre Bazin, M. Huchard, Pierre Martin","doi":"10.1145/3579028.3609019","DOIUrl":"https://doi.org/10.1145/3579028.3609019","url":null,"abstract":"In this paper, we report an ongoing work on exploring the ability of Triadic Concept Analysis to provide a framework for analyzing products evolution in time and space, and highlight possible usages in the lifecycle of a product line.","PeriodicalId":340233,"journal":{"name":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122725974","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","authors":"","doi":"10.1145/3579028","DOIUrl":"https://doi.org/10.1145/3579028","url":null,"abstract":"","PeriodicalId":340233,"journal":{"name":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130145051","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}