[{"year":"2022","issue":"1","title":"Static data-flow analysis for software product lines in C","date_created":"2022-03-25T07:41:26Z","publisher":"Springer Science and Business Media LLC","abstract":[{"lang":"eng","text":"<jats:title>Abstract</jats:title><jats:p>Many critical codebases are written in C, and most of them use preprocessor directives to encode variability, effectively encoding software product lines. These preprocessor directives, however, challenge any static code analysis. SPLlift, a previously presented approach for analyzing software product lines, is limited to Java programs that use a rather simple feature encoding and to analysis problems with a finite and ideally small domain. Other approaches that allow the analysis of real-world C software product lines use special-purpose analyses, preventing the reuse of existing analysis infrastructures and ignoring the progress made by the static analysis community. This work presents <jats:sc>VarAlyzer</jats:sc>, a novel static analysis approach for software product lines. <jats:sc>VarAlyzer</jats:sc> first transforms preprocessor constructs to plain C while preserving their variability and semantics. It then solves any given distributive analysis problem on transformed product lines in a variability-aware manner. <jats:sc>VarAlyzer</jats:sc> ’s analysis results are annotated with feature constraints that encode in which configurations each result holds. Our experiments with 95 compilation units of OpenSSL show that applying <jats:sc>VarAlyzer</jats:sc> enables one to conduct inter-procedural, flow-, field- and context-sensitive data-flow analyses on entire product lines for the first time, outperforming the product-based approach for highly-configurable systems.</jats:p>"}],"publication":"Automated Software Engineering","language":[{"iso":"eng"}],"keyword":["inter-procedural static analysis","software product lines","preprocessor","LLVM","C/C++"],"citation":{"chicago":"Schubert, Philipp, Paul Gazzillo, Zach Patterson, Julian Braha, Fabian Benedikt Schiebel, Ben Hermann, Shiyi Wei, and Eric Bodden. “Static Data-Flow Analysis for Software Product Lines in C.” <i>Automated Software Engineering</i> 29, no. 1 (2022). <a href=\"https://doi.org/10.1007/s10515-022-00333-1\">https://doi.org/10.1007/s10515-022-00333-1</a>.","ieee":"P. Schubert <i>et al.</i>, “Static data-flow analysis for software product lines in C,” <i>Automated Software Engineering</i>, vol. 29, no. 1, Art. no. 35, 2022, doi: <a href=\"https://doi.org/10.1007/s10515-022-00333-1\">10.1007/s10515-022-00333-1</a>.","ama":"Schubert P, Gazzillo P, Patterson Z, et al. Static data-flow analysis for software product lines in C. <i>Automated Software Engineering</i>. 2022;29(1). doi:<a href=\"https://doi.org/10.1007/s10515-022-00333-1\">10.1007/s10515-022-00333-1</a>","apa":"Schubert, P., Gazzillo, P., Patterson, Z., Braha, J., Schiebel, F. B., Hermann, B., Wei, S., &#38; Bodden, E. (2022). Static data-flow analysis for software product lines in C. <i>Automated Software Engineering</i>, <i>29</i>(1), Article 35. <a href=\"https://doi.org/10.1007/s10515-022-00333-1\">https://doi.org/10.1007/s10515-022-00333-1</a>","mla":"Schubert, Philipp, et al. “Static Data-Flow Analysis for Software Product Lines in C.” <i>Automated Software Engineering</i>, vol. 29, no. 1, 35, Springer Science and Business Media LLC, 2022, doi:<a href=\"https://doi.org/10.1007/s10515-022-00333-1\">10.1007/s10515-022-00333-1</a>.","short":"P. Schubert, P. Gazzillo, Z. Patterson, J. Braha, F.B. Schiebel, B. Hermann, S. Wei, E. Bodden, Automated Software Engineering 29 (2022).","bibtex":"@article{Schubert_Gazzillo_Patterson_Braha_Schiebel_Hermann_Wei_Bodden_2022, title={Static data-flow analysis for software product lines in C}, volume={29}, DOI={<a href=\"https://doi.org/10.1007/s10515-022-00333-1\">10.1007/s10515-022-00333-1</a>}, number={135}, journal={Automated Software Engineering}, publisher={Springer Science and Business Media LLC}, author={Schubert, Philipp and Gazzillo, Paul and Patterson, Zach and Braha, Julian and Schiebel, Fabian Benedikt and Hermann, Ben and Wei, Shiyi and Bodden, Eric}, year={2022} }"},"intvolume":"        29","publication_status":"published","publication_identifier":{"issn":["0928-8910","1573-7535"]},"main_file_link":[{"open_access":"1","url":"https://link.springer.com/article/10.1007/s10515-022-00333-1"}],"doi":"10.1007/s10515-022-00333-1","author":[{"id":"60543","full_name":"Schubert, Philipp","orcid":"0000-0002-8674-1859","last_name":"Schubert","first_name":"Philipp"},{"first_name":"Paul","last_name":"Gazzillo","full_name":"Gazzillo, Paul"},{"first_name":"Zach","full_name":"Patterson, Zach","last_name":"Patterson"},{"first_name":"Julian","full_name":"Braha, Julian","last_name":"Braha"},{"first_name":"Fabian Benedikt","last_name":"Schiebel","orcid":"0009-0008-6867-9802","full_name":"Schiebel, Fabian Benedikt","id":"55745"},{"full_name":"Hermann, Ben","id":"66173","orcid":"0000-0001-9848-2017","last_name":"Hermann","first_name":"Ben"},{"first_name":"Shiyi","full_name":"Wei, Shiyi","last_name":"Wei"},{"id":"59256","full_name":"Bodden, Eric","last_name":"Bodden","orcid":"0000-0003-3470-3647","first_name":"Eric"}],"volume":29,"date_updated":"2025-12-04T10:42:38Z","oa":"1","status":"public","type":"journal_article","alternative_title":["Revoking the preprocessor’s special role"],"article_type":"original","article_number":"35","user_id":"15249","department":[{"_id":"76"}],"project":[{"name":"SFB 901 - B4: SFB 901 - Subproject B4","_id":"12"},{"_id":"3","name":"SFB 901 - B: SFB 901 - Project Area B"},{"name":"SFB 901: SFB 901","_id":"1"}],"_id":"30511"},{"year":"2020","date_created":"2020-08-25T08:27:38Z","publisher":"Springer","title":"Model-based Product Configuration in Augmented Reality Applications","publication":"Human-Centered Software Engineering. HCSE 2020","file":[{"file_size":2258601,"access_level":"open_access","file_id":"20541","file_name":"HCSE20_full.pdf","date_updated":"2020-11-30T08:36:52Z","creator":"sego","date_created":"2020-11-30T08:33:30Z","relation":"main_file","content_type":"application/pdf"}],"abstract":[{"lang":"eng","text":"Augmented Reality (AR) has recently found high attention in mobile shopping apps such as in domains like furniture or decoration. Here, the developers of the apps focus on the positioning of atomic 3D objects in the physical environment. With this focus, they neglect the conﬁguration of multi-faceted 3D object composition according to the user needs and environmental constraints. To tackle these challenges, we present a model-based approach to support AR-assisted product con-ﬁguration based on the concept of Dynamic Software Product Lines. Our approach splits products (e.g. table) into parts (e.g. tabletop, ta-ble legs, funnier) with their 3D objects and additional information (e.g. name, price). The possible products, which can be conﬁgured out of these parts, are stored in a feature model. At runtime, this feature model can be used to conﬁgure 3D object compositions out of the product parts and adapt to user needs and environmental constraints. The beneﬁts of this approach are demonstrated by a case study of conﬁguring modular kitchens with the help of a prototypical mobile-based implementation."}],"language":[{"iso":"eng"}],"ddc":["000"],"keyword":["Product Configuration","Augmented Reality","Runtime Adaptation","Dynamic Software Product Lines"],"publication_status":"published","has_accepted_license":"1","citation":{"mla":"Gottschalk, Sebastian, et al. “Model-Based Product Configuration in Augmented Reality Applications.” <i>Human-Centered Software Engineering. HCSE 2020</i>, edited by Regina Bernhaupt et al., vol. 12481, Springer, 2020, doi:<a href=\"https://doi.org/10.1007/978-3-030-64266-2_5\">10.1007/978-3-030-64266-2_5</a>.","bibtex":"@inproceedings{Gottschalk_Yigitbas_Schmidt_Engels_2020, place={Cham}, series={Lecture Notes in Computer Science}, title={Model-based Product Configuration in Augmented Reality Applications}, volume={12481}, DOI={<a href=\"https://doi.org/10.1007/978-3-030-64266-2_5\">10.1007/978-3-030-64266-2_5</a>}, booktitle={Human-Centered Software Engineering. HCSE 2020}, publisher={Springer}, author={Gottschalk, Sebastian and Yigitbas, Enes and Schmidt, Eugen and Engels, Gregor}, editor={Bernhaupt, Regina and Ardito, Carmelo and Sauer, StefanEditors}, year={2020}, collection={Lecture Notes in Computer Science} }","short":"S. Gottschalk, E. Yigitbas, E. Schmidt, G. Engels, in: R. Bernhaupt, C. Ardito, S. Sauer (Eds.), Human-Centered Software Engineering. HCSE 2020, Springer, Cham, 2020.","apa":"Gottschalk, S., Yigitbas, E., Schmidt, E., &#38; Engels, G. (2020). Model-based Product Configuration in Augmented Reality Applications. In R. Bernhaupt, C. Ardito, &#38; S. Sauer (Eds.), <i>Human-Centered Software Engineering. HCSE 2020</i> (Vol. 12481). Cham: Springer. <a href=\"https://doi.org/10.1007/978-3-030-64266-2_5\">https://doi.org/10.1007/978-3-030-64266-2_5</a>","ieee":"S. Gottschalk, E. Yigitbas, E. Schmidt, and G. Engels, “Model-based Product Configuration in Augmented Reality Applications,” in <i>Human-Centered Software Engineering. HCSE 2020</i>, Eindhoven, 2020, vol. 12481.","chicago":"Gottschalk, Sebastian, Enes Yigitbas, Eugen Schmidt, and Gregor Engels. “Model-Based Product Configuration in Augmented Reality Applications.” In <i>Human-Centered Software Engineering. HCSE 2020</i>, edited by Regina Bernhaupt, Carmelo Ardito, and Stefan Sauer, Vol. 12481. Lecture Notes in Computer Science. Cham: Springer, 2020. <a href=\"https://doi.org/10.1007/978-3-030-64266-2_5\">https://doi.org/10.1007/978-3-030-64266-2_5</a>.","ama":"Gottschalk S, Yigitbas E, Schmidt E, Engels G. Model-based Product Configuration in Augmented Reality Applications. In: Bernhaupt R, Ardito C, Sauer S, eds. <i>Human-Centered Software Engineering. HCSE 2020</i>. Vol 12481. Lecture Notes in Computer Science. Cham: Springer; 2020. doi:<a href=\"https://doi.org/10.1007/978-3-030-64266-2_5\">10.1007/978-3-030-64266-2_5</a>"},"intvolume":"     12481","place":"Cham","author":[{"first_name":"Sebastian","full_name":"Gottschalk, Sebastian","id":"47208","last_name":"Gottschalk"},{"last_name":"Yigitbas","orcid":"0000-0002-5967-833X","id":"8447","full_name":"Yigitbas, Enes","first_name":"Enes"},{"full_name":"Schmidt, Eugen","last_name":"Schmidt","first_name":"Eugen"},{"first_name":"Gregor","last_name":"Engels","id":"107","full_name":"Engels, Gregor"}],"volume":12481,"oa":"1","date_updated":"2022-01-06T06:53:28Z","conference":{"end_date":"2020-12-02","location":"Eindhoven","name":"8th International Working Conference on Human-Centered Software Engineering (HCSE'20)","start_date":"2020-11-30"},"doi":"10.1007/978-3-030-64266-2_5","type":"conference","status":"public","editor":[{"full_name":"Bernhaupt, Regina","last_name":"Bernhaupt","first_name":"Regina"},{"full_name":"Ardito, Carmelo","last_name":"Ardito","first_name":"Carmelo"},{"first_name":"Stefan","last_name":"Sauer","full_name":"Sauer, Stefan"}],"series_title":"Lecture Notes in Computer Science","user_id":"47208","department":[{"_id":"66"},{"_id":"534"}],"project":[{"_id":"1","name":"SFB 901"},{"_id":"4","name":"SFB 901 - Project Area C"},{"name":"SFB 901 - Subproject C5","_id":"17"}],"_id":"18249","file_date_updated":"2020-11-30T08:36:52Z"},{"page":"5746-5755","citation":{"ama":"Bäumer FS, Geierhos M. Flexible Ambiguity Resolution and Incompleteness Detection in Requirements Descriptions via an Indicator-based Configuration of Text Analysis Pipelines. In: <i>Proceedings of the 51st Hawaii International Conference on System Sciences</i>. ; 2018:5746-5755. doi:<a href=\"https://doi.org/10125/50609\">10125/50609</a>","ieee":"F. S. Bäumer and M. Geierhos, “Flexible Ambiguity Resolution and Incompleteness Detection in Requirements Descriptions via an Indicator-based Configuration of Text Analysis Pipelines,” in <i>Proceedings of the 51st Hawaii International Conference on System Sciences</i>, Big Island, Waikoloa Village, 2018, pp. 5746–5755.","chicago":"Bäumer, Frederik Simon, and Michaela Geierhos. “Flexible Ambiguity Resolution and Incompleteness Detection in Requirements Descriptions via an Indicator-Based Configuration of Text Analysis Pipelines.” In <i>Proceedings of the 51st Hawaii International Conference on System Sciences</i>, 5746–55, 2018. <a href=\"https://doi.org/10125/50609\">https://doi.org/10125/50609</a>.","apa":"Bäumer, F. S., &#38; Geierhos, M. (2018). Flexible Ambiguity Resolution and Incompleteness Detection in Requirements Descriptions via an Indicator-based Configuration of Text Analysis Pipelines. In <i>Proceedings of the 51st Hawaii International Conference on System Sciences</i> (pp. 5746–5755). Big Island, Waikoloa Village. <a href=\"https://doi.org/10125/50609\">https://doi.org/10125/50609</a>","mla":"Bäumer, Frederik Simon, and Michaela Geierhos. “Flexible Ambiguity Resolution and Incompleteness Detection in Requirements Descriptions via an Indicator-Based Configuration of Text Analysis Pipelines.” <i>Proceedings of the 51st Hawaii International Conference on System Sciences</i>, 2018, pp. 5746–55, doi:<a href=\"https://doi.org/10125/50609\">10125/50609</a>.","short":"F.S. Bäumer, M. Geierhos, in: Proceedings of the 51st Hawaii International Conference on System Sciences, 2018, pp. 5746–5755.","bibtex":"@inproceedings{Bäumer_Geierhos_2018, title={Flexible Ambiguity Resolution and Incompleteness Detection in Requirements Descriptions via an Indicator-based Configuration of Text Analysis Pipelines}, DOI={<a href=\"https://doi.org/10125/50609\">10125/50609</a>}, booktitle={Proceedings of the 51st Hawaii International Conference on System Sciences}, author={Bäumer, Frederik Simon and Geierhos, Michaela}, year={2018}, pages={5746–5755} }"},"publication_identifier":{"isbn":["978-0-9981331-1-9"]},"has_accepted_license":"1","publication_status":"published","doi":"10125/50609","conference":{"name":"51st Hawaii International Conference on System Sciences (HICSS 2018)","start_date":"2018-01-03","end_date":"2018-01-06","location":"Big Island, Waikoloa Village"},"main_file_link":[{"url":"https://scholarspace.manoa.hawaii.edu/bitstream/10125/50609/1/paper0722.pdf","open_access":"1"}],"author":[{"last_name":"Bäumer","full_name":"Bäumer, Frederik Simon","id":"38837","first_name":"Frederik Simon"},{"orcid":"0000-0002-8180-5606","last_name":"Geierhos","id":"42496","full_name":"Geierhos, Michaela","first_name":"Michaela"}],"oa":"1","date_updated":"2022-01-06T07:01:01Z","status":"public","type":"conference","file_date_updated":"2018-11-02T14:32:35Z","department":[{"_id":"36"},{"_id":"1"},{"_id":"579"}],"user_id":"477","_id":"44","project":[{"_id":"1","name":"SFB 901"},{"name":"SFB 901 - Project Area B","_id":"3"},{"_id":"9","name":"SFB 901 - Subproject B1"}],"year":"2018","quality_controlled":"1","title":"Flexible Ambiguity Resolution and Incompleteness Detection in Requirements Descriptions via an Indicator-based Configuration of Text Analysis Pipelines","date_created":"2017-10-17T12:40:59Z","file":[{"access_level":"closed","file_name":"paper0722.pdf","file_id":"5274","file_size":753693,"creator":"ups","date_created":"2018-11-02T14:32:35Z","date_updated":"2018-11-02T14:32:35Z","relation":"main_file","success":1,"content_type":"application/pdf"}],"abstract":[{"text":"Natural language software requirements descriptions enable end users to formulate their wishes and expectations for a future software product without much prior knowledge in requirements engineering. However, these descriptions are susceptible to linguistic inaccuracies such as ambiguities and incompleteness that can harm the development process. There is a number of software solutions that can detect deficits in requirements descriptions and partially solve them, but they are often hard to use and not suitable for end users. For this reason, we develop a software system that helps end-users to create unambiguous and complete requirements descriptions by combining existing expert tools and controlling them using automatic compensation strategies. In order to recognize the necessity of individual compensation methods in the descriptions, we have developed linguistic indicators, which we present in this paper. Based on these indicators, the whole text analysis pipeline is ad-hoc configured and thus adapted to the individual circumstances of a requirements description.","lang":"eng"}],"publication":"Proceedings of the 51st Hawaii International Conference on System Sciences","language":[{"iso":"eng"}],"keyword":["Software Product Lines: Engineering","Services","and Management","Ambiguities","Incompleteness","Natural Language Processing","Software Requirements"],"ddc":["000"]}]
