Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3461002.3473943acmconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Extending the identification of object-oriented variability implementations using usage relationships

Published: 06 September 2021 Publication History

Abstract

Many variability-rich object-oriented systems rely on multiple traditional techniques (inheritance, patterns) to implement their variability in a single codebase. These variability implementation places are neither explicit nor documented, hampering their detection and variability comprehension. Based on the identification of symmetry property in seven implementation techniques, a first approach was proposed with symfinder to automatically identify and display the variability of a system in a graph-based visualization structured by inheritance. However, composition, or more generally the usage relationship, is extensively used to implement the variability in object-oriented systems, and without this information, comprehending the large amount of variability identified by symfinder is not trivial. In this paper, we present symfinder-2, an extension of the former approach that incorporates the usage relationships to better identify potential variability implementations. We provide two ways to mark classes as entry points, user-defined and automatic, so that the visualization is filtered and enables users to have a better focus when they identify variability. We also report on the evaluation of this extension to ten open-source Java-based systems.

References

[1]
Hussein Alrubaye, Mohamed Wiem Mkaouer, and Anthony Peruma. 2019. Variability in Library Evolution: An Exploratory Study on Open-Source Java Libraries. In Software Engineering for Variability Intensive Systems - Foundations and Applications. Taylor & Francis Group.
[2]
Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer.
[3]
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, 6 (2017), 2972--3016.
[4]
Rafael Capilla, Jan Bosch, Kyo-Chul Kang, et al. 2013. Systems and software variability management. Concepts Tools and Experiences (2013).
[5]
James O. Coplien and Liping Zhao. 2020. Toward a General Formal Foundation of Design. Symmetry and Broken Symmetry. (Forthcoming publication) (2020).
[6]
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 sixth international workshop on variability modeling of software-intensive systems (VaMoS'12). 173--182.
[7]
Bogdan Dit, Meghan Revelle, Malcom Gethers, and Denys Poshyvanyk. 2013. Feature Location in Source Code: A Taxonomy and Survey. Journal of Software: Evolution and Process 25, 1 (2013), 53--95.
[8]
Nuno Flores, Diana Soares, Helder Ferreira, and Marco Rodrigues. 2005. HotSpotter: a JavaML-based approach to discover Framework's HotSpots. Proc. XATA (2005).
[9]
Eric Freeman, Elisabeth Robson, Bert Bates, and Kathy Sierra. 2008. Head First Design Patterns. O'Reilly Media, Inc.
[10]
Critina Gacek and Michalis Anastasopoules. 2001. Implementing Product Line Variabilities. In Proceedings of the 2001 Symposium on Software Reusability: Putting Software Reuse in Context (SSR '01). ACM, 109--117.
[11]
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.
[12]
Christopher G Healey, Kellogg S Booth, and James T Enns. 1996. High-speed visual estimation using preattentive processing. ACM Transactions on ComputerHuman Interaction (TOCHI) 3, 2 (1996), 107--135.
[13]
Claus Hunsen, Bo Zhang, Janet Siegmund, Christian Kästner, Olaf Leßenich, Martin Becker, and Sven Apel. 2016. Preprocessor-based variability in open-source and industrial software systems: An empirical study. Empirical Software Engineering 21, 2 (2016), 449--482.
[14]
Samuel Huppe, Mohamed Aymen Saied, and Houari Sahraoui. 2017. Mining complex temporal API usage patterns: an evolutionary approach. In 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C). IEEE, 274--276.
[15]
Ivar Jacobson, Martin Griss, and Patrik Jonsson. 1997. Software reuse: architecture process and organization for business success. Vol. 285. acm Press New York.
[16]
Kyo C Kang, Sajoong Kim, Jaejoon Lee, Kijoo Kim, Euiseob Shin, and Moonhang Huh. 1998. FORM: A feature-; oriented reuse method with domain-; specific reference architectures. Annals of Software Engineering 5, 1 (1998), 143.
[17]
Kung-Kiu Lau and Tauseef Rana. 2010. A taxonomy of software composition mechanisms. In 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications. IEEE, 102--110.
[18]
Duc Minh Le, Hyesun Lee, Kyo Chul Kang, and Lee Keun. 2013. Validating consistency between a feature model and its implementation. In International Conference on Software Reuse. Springer, 1--16.
[19]
Jörg Liebig, Sven Apel, Christian Lengauer, Christian Kästner, and Michael Schulze. 2010. An analysis of the variability in forty preprocessor-based software product lines. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1. ACM, 105--114.
[20]
Roberto Erick Lopez-Herrejon, Sheny Illescas, and Alexander Egyed. 2018. A Systematic Mapping Study of Information Visualization for Software Product Line Engineering. Journal of Software: Evolution and Process 30, 2 (2018), e1912.
[21]
Angela Lozano. 2011. An Overview of Techniques for Detecting Software Variability Concepts in Source Code. In International Conference on Conceptual Modeling (ER '11). Springer, 141--150.
[22]
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 Proceeedings of the 22nd International Conference on Systems and Software Product Line-Volume 1. ACM, 257--263.
[23]
Jabier Martinez, Tewfik Ziadi, Tegawendé F Bissyandé, Jacques Klein, and Yves Le Traon. 2017. Bottom-up technologies for reuse: automated extractive adoption of software product lines. In Proceedings of the 39th International Conference on Software Engineering Companion. IEEE Press, 67--70.
[24]
Gabriela K Michelon, Lukas Linsbauer, Wesley KG Assunção, Stefan Fischer, and Alexander Egyed. 2021. A Hybrid Feature Location Technique for Re-engineering Single Systems into Software Product Lines. In 15th International Working Conference on Variability Modelling of Software-Intensive Systems. 1--9.
[25]
Ivan Mistrík, Matthias Galster, and Bruce R Maxim. 2019. Software Engineering for Variability Intensive Systems: Foundations and Applications. Auerbach Publications.
[26]
Johann Mortara, Philippe Collet, and Xhevahire Tërnava. 2020. Identifying and Mapping Implemented Variabilities in Java and C++ Systems using symfinder. In Proceedings of the 24th ACM International Systems and Software Product Line Conference-Volume B. 9--12.
[27]
Johann Mortara, Xhevahire Tërnava, and Philippe Collet. 2019. symfinder: a toolchain for the identification and visualization of object-oriented variability implementations. In Proceedings of the 23rd International Systems and Software Product Line Conference-Volume B. ACM, 56.
[28]
Johann Mortara, Xhevahire Tërnava, and Philippe Collet. 2020. Mapping Features to Automatically Identified Object-Oriented Variability Implementations: The Case of ArgoUML-SPL. In Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems.
[29]
Klaus Pohl, Günter Böckle, and Frank J van Der Linden. 2005. Software Product Line Engineering: Foundations, Principles and Techniques. Springer Science & Business Media.
[30]
Martin P Robillard, Eric Bodden, David Kawrykow, Mira Mezini, and Tristan Ratchford. 2012. Automated API property inference techniques. IEEE Transactions on Software Engineering 39, 5 (2012), 613--637.
[31]
Joseph Rosen. 2008. Symmetry Rules: How Science and Nature are Founded on Symmetry. Springer Science & Business Media.
[32]
Julia Rubin and Marsha Chechik. 2013. A survey of feature location techniques. In Domain Engineering. Springer, 29--58.
[33]
Mohamed Aymen Saied, Erick Raelijohn, Edouard Batot, Michalis Famelis, and Houari Sahraoui. 2020. Towards assisting developers in API usage by automated recovery of complex temporal patterns. Information and Software Technology 119 (2020).
[34]
M. A. Saied and H. Sahraoui. 2016. A cooperative approach for combining client-based and library-based API usage pattern mining. In 2016 IEEE 24th International Conference on Program Comprehension (ICPC). 1--10.
[35]
Reinhard Schauer, Sébastien Robitaille, Francois Martel, and Rudolf K Keller. 1999. Hot spot recovery in object-oriented software with inheritance and composition template methods. In Proceedings IEEE International Conference on Software Maintenance-1999 (ICSM'99).'Software Maintenance for Business Change'(Cat. No. 99CB36360). IEEE, 220--229.
[36]
Ben Shneiderman. 2003. The eyes have it: A task by data type taxonomy for information visualizations. In The craft of information visualization. Elsevier, 364--371.
[37]
Xhevahire Tërnava, Johann Mortara, and Philippe Collet. 2019. Identifying and visualizing variability in object-oriented variability-rich systems. In Proceedings of the 23rd International Systems and Software Product Line Conference-Volume A. ACM, 32.
[38]
Xhevahire Tërnava and Philippe Collet. 2017. On the Diversity of Capturing Variability at the Implementation Level. In Proceedings of the 21st International Systems and Software Product Line Conference - Volume B (SPLC '17). ACM, 81--88.
[39]
Liping Zhao and James Coplien. 2003. Understanding symmetry in object-oriented languages. Journal of Object Technology 2, 5 (2003), 123--134.
[40]
Hao Zhong, Tao Xie, Lu Zhang, Jian Pei, and Hong Mei. 2009. MAPO: Mining and recommending API usage patterns. In European Conference on Object-Oriented Programming. Springer, 318--343.
[41]
Zixiao Zhu, Yanzhen Zou, Bing Xie, Yong Jin, Zeqi Lin, and Lu Zhang. 2014. Mining api usage examples from test code. In 2014 IEEE International Conference on Software Maintenance and Evolution. IEEE, 301--310.
[42]
Tewfik Ziadi, Luz Frias, Marcos Aurélio Almeida da Silva, and Mikal Ziane. 2012. Feature identification from the source code of product variants. In 2012 16th European Conference on Software Maintenance and Reengineering. IEEE, 417--422.

Cited By

View all
  • (2024)The VariCity Ecosystem: City Visualization of Object-Oriented Variability in Java and TypeScriptScience of Computer Programming10.1016/j.scico.2024.103210(103210)Online publication date: Sep-2024
  • (2022)IDE-assisted visualization of indebted OO variability implementationsProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B10.1145/3503229.3547066(74-77)Online publication date: 12-Sep-2022
  • (2021)Visualization of Object-Oriented Variability Implementations as Cities2021 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT52517.2021.00017(76-87)Online publication date: Sep-2021

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLC '21: Proceedings of the 25th ACM International Systems and Software Product Line Conference - Volume B
September 2021
148 pages
ISBN:9781450384704
DOI:10.1145/3461002
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 September 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. symfinder
  2. variability identification
  3. variability visualization
  4. variability-rich object-oriented software systems

Qualifiers

  • Research-article

Conference

SPLC '21
Sponsor:

Acceptance Rates

Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)1
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)The VariCity Ecosystem: City Visualization of Object-Oriented Variability in Java and TypeScriptScience of Computer Programming10.1016/j.scico.2024.103210(103210)Online publication date: Sep-2024
  • (2022)IDE-assisted visualization of indebted OO variability implementationsProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B10.1145/3503229.3547066(74-77)Online publication date: 12-Sep-2022
  • (2021)Visualization of Object-Oriented Variability Implementations as Cities2021 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT52517.2021.00017(76-87)Online publication date: Sep-2021

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media