Xhevahire Tërnava, Luc Lesoil, Georges Aaron Randrianaina, D. Khelladi, M. Acher
{"title":"On the Interaction of Feature Toggles","authors":"Xhevahire Tërnava, Luc Lesoil, Georges Aaron Randrianaina, D. Khelladi, M. Acher","doi":"10.1145/3510466.3510485","DOIUrl":"https://doi.org/10.1145/3510466.3510485","url":null,"abstract":"Feature toggling is a technique for enabling branching-in-code. It is increasingly used during continuous deployment to incrementally test and integrate new features before their release. In principle, feature toggles tend to be light, that is, they are defined as simple Boolean flags and used in conditional statements to condition the activation of some software features. However, there is a lack of knowledge on whether and how they may interact with each other, in that case their enabling and testing become complex. We argue that finding the interactions of feature toggles is valuable for developers to know which of them should be enabled at the same time, which are impacted by a removed toggle, and to avoid their mis-configurations. In this work, we mine feature toggles and their interactions in five open-source projects. We then analyse how they are realized and whether they tend to be multiplied over time. Our results show that 7% of feature toggles interact with each other, 33% of them interact with another code expression, and their interactions tend to increase over time (22%, on average). Further, their interactions are expressed by simple logical operators (i.e., and and or) and nested if statements. We propose to model them into a Feature Toggle Model, and believe that our results are helpful towards robust management approaches of feature toggles.","PeriodicalId":254559,"journal":{"name":"Proceedings of the 16th International Working Conference on Variability Modelling of Software-Intensive Systems","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130696315","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":"The four dimensions of Variability and their impact on MBPLE: How to approach variability in the development of aircraft product lines at Airbus","authors":"Marco Forlingieri","doi":"10.1145/3510466.3511275","DOIUrl":"https://doi.org/10.1145/3510466.3511275","url":null,"abstract":"The development of complex systems such as aircraft product lines requires the support of advanced modeling methodologies such as Model-Based Systems Engineering (MBSE) and Product-Line Engineering (PLE). To enable the development of such complex product lines, Airbus is adopting the combination of MBSE and PLE, a method previously applied in other industries and known as Model-Based Product Line Engineering (MBPLE). In adopting MBPLE it is necessary to understand the type of constraints that influences the definition of variability within a development program or project. This paper proposes four different dimensions of variability which facilitate and guide the application of MBPLE at Airbus but that can also be extended to other industries and organizations. Those four dimensions, namely Co-Variability in product, manufacturing and services, Variability in development lifecycle, Variability in layers of abstraction, and Variability in system hierarchy levels, are first described. Afterward, their impact on the MBPLE method steps, namely “Define Product Line Feature Models”, “Define Product Line Assets”, “Select Member Product Feature Configuration” and “Derive Member Product Assets”, is analyzed with the support of an Airbus example.","PeriodicalId":254559,"journal":{"name":"Proceedings of the 16th International Working Conference on Variability Modelling of Software-Intensive Systems","volume":"01 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129752395","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}
Michael Ratzenböck, P. Grünbacher, W. K. Assunção, Alexander Egyed, L. Linsbauer
{"title":"Refactoring Product Lines by Replaying Version Histories","authors":"Michael Ratzenböck, P. Grünbacher, W. K. Assunção, Alexander Egyed, L. Linsbauer","doi":"10.1145/3510466.3510484","DOIUrl":"https://doi.org/10.1145/3510466.3510484","url":null,"abstract":"When evolving software product lines, new features are added over time and existing features are revised. Engineers also decide to merge different features or split features in other cases. Such refactoring tasks are difficult when using manually maintained feature-to-code mappings. Intensional version control systems such as ECCO overcome this issue with automatically computed feature-to-code mappings. Furthermore, they allow creating variants that have not been explicitly committed before. However, such systems are still rarely used compared to extensional version control systems like Git, which keep track of the evolution history by assigning revisions to states of a system. This paper presents an approach combining both extensional and intensional version control systems, which relies on the extensional version control system Git to store versions. Developers selectively tag existing versions to describe the evolution at the level of features. Our approach then automatically replays the evolution history to create a repository of the intensional variation control system ECCO. The approach contributes to research on refactoring features of existing product lines and migrating existing systems to product lines. We provide an initial evaluation of the approach regarding correctness and performance based on an existing system.","PeriodicalId":254559,"journal":{"name":"Proceedings of the 16th International Working Conference on Variability Modelling of Software-Intensive Systems","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123867095","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}
Elias Kuiter, Alexander Knüppel, Tabea Bordis, Tobias Runge, Ina Schaefer
{"title":"Verification Strategies for Feature-Oriented Software Product Lines","authors":"Elias Kuiter, Alexander Knüppel, Tabea Bordis, Tobias Runge, Ina Schaefer","doi":"10.1145/3510466.3511272","DOIUrl":"https://doi.org/10.1145/3510466.3511272","url":null,"abstract":"Highly-customizable software systems in form of software product lines are becoming increasingly relevant for safety-critical systems, in which the correctness of software is a major concern. To ensure the correct behavior of a software product line, each product can be verified in isolation—however, this strategy quickly becomes infeasible for a large number of products. In this paper, we propose proof plans, a novel strategy for verifying feature-oriented software product lines based on partial proofs. Our technique splits the verification task into small proofs that can be reused across method variants, which gives rise to a wider spectrum of verification strategies for software product lines. We describe applications of our technique and evaluate one of them on a case study by comparing it with established verification strategies.","PeriodicalId":254559,"journal":{"name":"Proceedings of the 16th International Working Conference on Variability Modelling of Software-Intensive Systems","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121360869","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}
H. Fadhlillah, Kevin Feichtinger, Kristof Meixner, Lisa Sonnleithner, Rick Rabiser, Alois Zoitl
{"title":"Towards Multidisciplinary Delta-Oriented Variability Management in Cyber-Physical Production Systems","authors":"H. Fadhlillah, Kevin Feichtinger, Kristof Meixner, Lisa Sonnleithner, Rick Rabiser, Alois Zoitl","doi":"10.1145/3510466.3511273","DOIUrl":"https://doi.org/10.1145/3510466.3511273","url":null,"abstract":"Cyber-Physical Production Systems (CPPSs) are complex systems comprised of software and hardware interacting with each other and the environment. In industry, over time, a plethora of CPPSs are developed to satisfy varying customer requirements and changing technologies. Managing variability is challenging, especially in multidisciplinary environments like in CPPS engineering. For instance, when supporting the automatic derivation and configuration of control software, one needs to understand variability from not only a software perspective, but also a mechatronic, electrical, process, and business perspective. It is unrealistic to use a single model or even one type of model across these perspectives. In this paper, we describe a Multidisciplinary Delta-Oriented Variability Management approach for CPPSs that we are currently developing. Our approach aims to express CPPS variability in different disciplines using heterogeneous variability models, relating models via cross-discipline constraints, and automatically generating control software based on variability models. We implemented a prototype of our approach by realizing delta-oriented variability modeling for IEC 61499-based distributed control software and a configuration tool to enact the configuration options from multiple variability models. We performed a feasibility study of our approach using two systems of different size and complexity. We conclude that, despite current limitations, our approach can successfully and automatically generate control software based on related multidisciplinary variability models. We think that our approach is a good starting point to manage CPPS variability in practice.","PeriodicalId":254559,"journal":{"name":"Proceedings of the 16th International Working Conference on Variability Modelling of Software-Intensive Systems","volume":"52 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114179507","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}