{"title":"用于分析C和c++项目中预处理器注释中的高阶特征交互的工具","authors":"David Korsman, C. Damasceno, D. Strüber","doi":"10.1145/3503229.3547027","DOIUrl":null,"url":null,"abstract":"Feature interactions are an intricate phenomenon: they can add value to software systems, but also lead to subtle bugs and complex, emergent behavior. Having a clearer understanding of feature interactions in practice can help practitioners to select appropriate quality assurance techniques for their systems and researchers to guide further research efforts. In this paper, we present pdparser, a Python-based tool for analysing structural feature interactions in software systems developed with C and C++ preprocessor. Our tool relies on a lightweight methodology to quantify the frequency of pairwise and higher-order feature interactions and the percentage of code affected by them. We showcase the individual characteristics brought forward by the automated analysis of one toy example and two open-source text editors: Vim and Emacs. The source code and a demo video are available on GitHub at https://github.com/dkorsman/pdparser.","PeriodicalId":193319,"journal":{"name":"Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B","volume":"30 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"A tool for analysing higher-order feature interactions in preprocessor annotations in C and C++ projects\",\"authors\":\"David Korsman, C. Damasceno, D. Strüber\",\"doi\":\"10.1145/3503229.3547027\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Feature interactions are an intricate phenomenon: they can add value to software systems, but also lead to subtle bugs and complex, emergent behavior. Having a clearer understanding of feature interactions in practice can help practitioners to select appropriate quality assurance techniques for their systems and researchers to guide further research efforts. In this paper, we present pdparser, a Python-based tool for analysing structural feature interactions in software systems developed with C and C++ preprocessor. Our tool relies on a lightweight methodology to quantify the frequency of pairwise and higher-order feature interactions and the percentage of code affected by them. We showcase the individual characteristics brought forward by the automated analysis of one toy example and two open-source text editors: Vim and Emacs. The source code and a demo video are available on GitHub at https://github.com/dkorsman/pdparser.\",\"PeriodicalId\":193319,\"journal\":{\"name\":\"Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B\",\"volume\":\"30 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-09-12\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3503229.3547027\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3503229.3547027","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
A tool for analysing higher-order feature interactions in preprocessor annotations in C and C++ projects
Feature interactions are an intricate phenomenon: they can add value to software systems, but also lead to subtle bugs and complex, emergent behavior. Having a clearer understanding of feature interactions in practice can help practitioners to select appropriate quality assurance techniques for their systems and researchers to guide further research efforts. In this paper, we present pdparser, a Python-based tool for analysing structural feature interactions in software systems developed with C and C++ preprocessor. Our tool relies on a lightweight methodology to quantify the frequency of pairwise and higher-order feature interactions and the percentage of code affected by them. We showcase the individual characteristics brought forward by the automated analysis of one toy example and two open-source text editors: Vim and Emacs. The source code and a demo video are available on GitHub at https://github.com/dkorsman/pdparser.