skip to main content
10.1145/3646548.3676543acmconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article
Open access

Towards a Flexible Approach for Variability Mining

Published: 02 September 2024 Publication History

Abstract

Software Product Line (SPL) Engineering relies on explicitly documenting and managing variability information, typically in variability models such as feature models, and relating them with reusable artifacts, e.g., software components. Many companies still rely on clone-and-own reuse approaches and could benefit from adopting an SPL approach instead. However, extracting variability information from existing systems is often challenging due to their size and complexity. Also, manually creating and maintaining variability models and relating them with reusable artifacts is very expensive and requires expert knowledge. To address this problem, SPL reverse-engineering approaches try to automatically extract variability information from existing systems to populate variability models with it. Unfortunately, many existing approaches are limited to a single artifact type and only a few more widely applicable methods have been proposed. In this short paper, we present our vision of a flexible, extensible and artifact-independent approach, which provides a framework for users to mine the variability of their existing system variants and automatically reverse-engineer SPLs. We discuss challenges and give an overview of a possible architecture as well as the steps necessary to realize our approach.

References

[1]
2024. Software Product Line Conference Hall of Fame. https://splc.net/fame.html. Accessed: 2024-04-03.
[2]
Mathieu Acher, Anthony Cleve, Philippe Collet, Philippe Merle, Laurence Duchien, and Philippe Lahire. 2011. Reverse Engineering Architectural Feature Models. In Software Architecture, Ivica Crnkovic, Volker Gruhn, and Matthias Book (Eds.). Springer Berlin Heidelberg, 220–235.
[3]
Mathieu Acher and Jabier Martinez. 2023. Generative AI for Reengineering Variants into Software Product Lines: An Experience Report. In Proceedings of the 27th ACM International Systems and Software Product Line Conference-Volume B. ACM, 57–66.
[4]
Ra’Fat AL-Msie’deen, Abdelhak Seriai, Marianne Huchard, Christelle Urtado, Sylvain Vauttier, and Hamzeh Eyal Salman. 2013. Feature Location in a Collection of Software Product Variants Using Formal Concept Analysis. In Safe and Secure Software Reuse, John Favaro and Maurizio Morisio (Eds.). Springer Berlin Heidelberg, 302–307.
[5]
Pouria Alikhanifard and Nikolaos Tsantalis. 2024. A Novel Refactoring and Semantic Aware Abstract Syntax Tree Differencing Tool and a Benchmark for Evaluating the Accuracy of Diff Tools. arxiv:2403.05939 [cs.SE]
[6]
Timo Asikainen, Tomi Männistö, and Timo Soininen. 2022. Combining multiple granularity variability in a software product line approach for web engineering. Information and Software Technology 148 (2022), 106910.
[7]
Wesley KG Assunção, Roberto E Lopez-Herrejon, Lukas Linsbauer, Silvia R Vergilio, and Alexander Egyed. 2017. Reengineering legacy applications into software product lines: a systematic mapping. Empirical Software Engineering 22 (2017), 2972–3016.
[8]
Wesley K.G. Assunção, Silvia R. Vergilio, and Roberto E. Lopez-Herrejon. 2020. Automatic extraction of product line architecture and feature models from UML class diagram variants. Inf. Softw. Technol. 117, C (2020).
[9]
Thorsten Berger, Ralf Rublack, Divya Nair, Joanne M Atlee, Martin Becker, Krzysztof Czarnecki, and Andrzej Wąsowski. 2013. A survey of variability modeling in industrial practice. In Proceedings of the 7th International Workshop on Variability Modelling of Software-intensive Systems. ACM, 1–8.
[10]
Thorsten Berger, Jan-Philipp Steghöfer, Tewfik Ziadi, Jacques Robin, and Jabier Martinez. 2020. The state of adoption and the challenges of systematic variability management in industry. Empirical Software Engineering 25 (2020), 1755–1797.
[11]
Marcus Vinicius Couto, Marco Tulio Valente, and Eduardo Figueiredo. 2011. Extracting Software Product Lines: A Case Study Using Conditional Compilation. In Proceedings of the 15th European Conference on Software Maintenance and Reengineering. IEEE, 191–200.
[12]
Krzysztof Czarnecki, Paul Grünbacher, Rick Rabiser, Klaus Schmid, and Andrzej Wąsowski. 2012. Cool features and tough decisions: a comparison of variability modeling approaches. In Proceedings of the 6th International workshop on variability modeling of software-intensive systems. ACM, 173–182.
[13]
Xavier Devroey, Maxime Cordy, Gilles Perrouin, Eun-Young Kang, Pierre-Yves Schobbens, Patrick Heymans, Axel Legay, and Benoit Baudry. 2012. A Vision for Behavioural Model-Driven Validation of Software Product Lines. In Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change, Tiziana Margaria and Bernhard Steffen (Eds.). Springer Berlin Heidelberg, 208–222.
[14]
Xavier Devroey, Gilles Perrouin, Axel Legay, Pierre-Yves Schobbens, and Patrick Heymans. 2015. Covering SPL Behaviour with Sampled Configurations: An Initial Assessment. In Proceedings of the 9th International Workshop on Variability Modelling of Software-Intensive Systems. ACM, 59––66.
[15]
Christian Dietrich, Reinhard Tartler, Wolfgang Schröder-Preikschat, and Daniel Lohmann. 2012. A robust approach for variability extraction from the Linux build system. In Proceedings of the 16th International Software Product Line Conference-Volume 1. ACM, 21–30.
[16]
Yael Dubinsky, Julia Rubin, Thorsten Berger, Slawomir Duszynski, Martin Becker, and Krzysztof Czarnecki. 2013. An Exploratory Study of Cloning in Industrial Software Product Lines. In Proceedings of the 17th European Conference on Software Maintenance and Reengineering. IEEE, 25–34.
[17]
Hafiyyan Sayyid Fadhlillah, Antonio Manuel Gutiérrez-Fernández, Rick Rabiser, and Alois Zoitl. 2023. Managing Cyber-Physical Production Systems Variability using V4rdiac: Industrial Experiences. In Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A. ACM, 223–233.
[18]
Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc, Matias Martinez, and Martin Monperrus. 2014. Fine-grained and accurate source code differencing. In Proceedings of the 29th ACM/IEEE international conference on Automated software engineering. ACM, 313–324.
[19]
Alessandro Fantechi, Stefania Gnesi, and Laura Semini. 2024. Exploring LLMs’ Ability to Detect Variability in Requirements. In International Working Conference on Requirements Engineering: Foundation for Software Quality. Springer, 178–188.
[20]
Kevin Feichtinger, Johann Stöbich, Dario Romano, and Rick Rabiser. 2021. TRAVART: An Approach for Transforming Variability Models. In Proceedings of the 15th International Working Conference on Variability Modelling of Software-Intensive Systems. ACM, 1–10.
[21]
Stefan Fischer, Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2014. Enhancing Clone-and-Own with Systematic Reuse for Developing Software Variants. In Proceedings IEEE International Conference on Software Maintenance and Evolution. IEEE, 391–400.
[22]
Beat Fluri, Michael Wursch, Martin PInzger, and Harald Gall. 2007. Change distilling: Tree differencing for fine-grained source code change extraction. IEEE Transactions on Software Engineering 33, 11 (2007), 725–743.
[23]
Matthias Galster, Danny Weyns, Dan Tofan, Bartosz Michalik, and Paris Avgeriou. 2013. Variability in software systems—a systematic literature review. IEEE Transactions on Software Engineering 40, 3 (2013), 282–306.
[24]
Som Gupta and SK Gupta. 2019. Natural language processing in mining unstructured data from software repositories: a review. Sādhanā 44, 12 (2019), 244.
[25]
Evelyn Nicole Haslinger, Roberto E. Lopez-Herrejon, and Alexander Egyed. 2011. Reverse Engineering Feature Models from Programs’ Feature Sets. In Proceedings of the 18th Working Conference on Reverse Engineering. IEEE, 308–312.
[26]
Sebastian Krieter, Thomas Thüm, Sandro Schulze, Gunter Saake, and Thomas Leich. 2020. YASA: yet another sampling algorithm. In Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems. ACM, 1–10.
[27]
Jacob Krüger, Wolfram Fenske, Thomas Thüm, Dirk Aporius, Gunter Saake, and Thomas Leich. 2018. Apo-games: a case study for reverse engineering variability from cloned Java variants. In Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1. ACM, 251––256.
[28]
Christian Kästner, Alexander Dreiling, and Klaus Ostermann. 2014. Variability Mining: Consistent Semi-automatic Detection of Product-Line Features. IEEE Transactions on Software Engineering 40, 1 (2014), 67–82.
[29]
Roberto E Lopez-Herrejon, Lukas Linsbauer, José A Galindo, José A Parejo, David Benavides, Sergio Segura, and Alexander Egyed. 2015. An assessment of search-based techniques for reverse engineering feature models. Journal of Systems and Software 103 (2015), 353–369.
[30]
Roberto E Lopez-Herrejon, Jabier Martinez, Wesley Klewerton Guez Assunção, Tewfik Ziadi, Mathieu Acher, and Silvia Vergilio. 2023. Handbook of Re-Engineering Software Intensive Systems into Software Product Lines. Springer.
[31]
Jonathan I Maletic and Michael L Collard. 2004. Supporting source code difference analysis. In 20th IEEE International Conference on Software Maintenance, 2004. Proceedings.IEEE, 210–219.
[32]
Jabier Martinez, Wesley KG Assunção, and Tewfik Ziadi. 2017. Espla: A catalog of extractive spl adoption case studies. In Proceedings of the 21st International Systems and Software Product Line Conference-Volume B. ACM, 38–41.
[33]
Jabier Martinez, Nicolas Ordoñez, Xhevahire Tërnava, Tewfik Ziadi, Jairo Aponte, Eduardo Figueiredo, and Marco Tulio Valente. 2018. Feature location benchmark with ArgoUML SPL. In Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1. ACM, 257–263.
[34]
Jabier Martinez, Tewfik Ziadi, Tegawendé F. Bissyandé, Jacques Klein, and Yves Le Traon. 2015. Bottom-up adoption of software product lines. In Proceedings of the 19th International Conference on Software Product Line, Douglas C. Schmidt (Ed.). ACM, 101–110.
[35]
Leonardo Passos, Rodrigo Queiroz, Mukelabai Mukelabai, Thorsten Berger, Sven Apel, Krzysztof Czarnecki, and Jesus Alejandro Padilla. 2021. A Study of Feature Scattering in the Linux Kernel. IEEE Transactions on Software Engineering 47, 1 (2021), 146–164.
[36]
Klaus Pohl, Günter Böckle, and Frank Van Der Linden. 2005. Software product line engineering: foundations, principles, and techniques. Vol. 1. Springer.
[37]
Mikko Raatikainen, Juha Tiihonen, and Tomi Männistö. 2019. Software product lines and variability modeling: A tertiary study. Journal of Systems and Software 149 (2019), 485–510.
[38]
Uwe Ryssel, Joern Ploennigs, and Klaus Kabitzsch. 2010. Automatic variation-point identification in function-block-based models. ACM SIGPLAN Notices 46, 2 (2010), 23–32.
[39]
Sandro Schulze and Yang Li. 2022. Feature and Variability Extraction from Natural Language Requirements. In Handbook of Re-Engineering Software Intensive Systems into Software Product Lines. Springer, 31–52.
[40]
Steven She, Rafael Lotufo, Thorsten Berger, Andrzej Wąsowski, and Krzysztof Czarnecki. 2010. Variability Model of the Linux Kernel. In Proceedings of the Fourth International Workshop on Variability Modeling of Software-intensive Systems (VaMoS 2010). ICB Research Reports, 45–51.
[41]
Lisa Sonnleithner, Philipp Bauer, Rick Rabiser, and Alois Zoitl. 2022. Applying Visualization Concepts to Large-Scale Software Systems in Industrial Automation. In Proceedings of the 2022 Working Conference on Software Visualization. IEEE, 182–186.
[42]
Jing Sun, Hongyu Zhang, Yuan Fang, and Li Hai Wang. 2005. Formal semantics and verification for feature modeling. In Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems. IEEE, 303–312.
[43]
Michele Tufano, Cody Watson, Gabriele Bavota, Massimiliano Di Penta, Martin White, and Denys Poshyvanyk. 2018. Deep learning similarities from different representations of source code. In Proceedings of the 15th international conference on mining software repositories. ACM, 542–553.
[44]
Markus Unterdechler, Antonio M. Gutiérrez, Lisa Sonnleithner, Rick Rabiser, and Alois Zoitl. 2022. Identifying repeating patterns in IEC 61499 systems using Feature-Based embeddings. In Proceedings of the 27th International Conference on Emerging Technologies and Factory Automation. IEEE, 1–8.
[45]
Frank van der Linden, Klaus Schmid, and Eelco Rommes. 2007. Software product lines in action - the best industrial practice in product line engineering. Springer.
[46]
Rudolf Wille. 2005. Formal Concept Analysis as Mathematical Theory of Concepts and Concept Hierarchies. Springer Berlin Heidelberg, 1–33.
[47]
Tewfik Ziadi, Luz Frias, Marcos Aurélio Almeida da Silva, and Mikal Ziane. 2012. Feature Identification from the Source Code of Product Variants. In Proceedings of the 16th European Conference on Software Maintenance and Reengineering. 417–422.
[48]
Tewfik Ziadi, Christopher Henard, Mike Papadakis, Mikal Ziane, and Yves Le Traon. 2014. Towards a language-independent approach for reverse-engineering of software product lines. In Proceedings of the 29th Annual ACM Symposium on Applied Computing, Yookun Cho (Ed.). ACM, 1064–1071.
[49]
Alois Zoitl, Thomas Strasser, and Gerhard Ebenhofer. 2013. Developing modular reusable IEC 61499 control applications with 4diac. In Proceedings of the 11th IEEE International Conference on Industrial Informatics (INDIN). 358–363.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLC '24: Proceedings of the 28th ACM International Systems and Software Product Line Conference
September 2024
103 pages
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 September 2024

Check for updates

Author Tags

  1. Reverse Engineering
  2. Software Product Lines
  3. Variability Mining

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

SPLC '24
Sponsor:

Acceptance Rates

Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 15
    Total Downloads
  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)15
Reflects downloads up to 14 Sep 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media