Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Evolving software system families in space and time with feature revisions

Published: 01 September 2022 Publication History

Abstract

Software companies commonly develop and maintain variants of systems, with different feature combinations for different customers. Thus, they must cope with variability in space. Software companies further must cope with variability in time, when updating system variants by revising existing software features. Inevitably, variants evolve orthogonally along these two dimensions, resulting in challenges for software maintenance. Our work addresses this challenge with ECSEST (Extraction and Composition for Systems Evolving in Space and Time), an approach for locating feature revisions and composing variants with different feature revisions. We evaluated ECSEST using feature revisions and variants from six highly configurable open source systems. To assess the correctness of our approach, we compared the artifacts of input variants with the artifacts from the corresponding composed variants based on the implementation of the extracted features. The extracted traces allowed composing variants with 99-100% precision, as well as with 97-99% average recall. Regarding the composition of variants with new configurations, our approach can combine different feature revisions with 99% precision and recall on average. Additionally, our approach retrieves hints when composing new configurations, which are useful to find artifacts that may have to be added or removed for completing a product. The hints help to understand possible feature interactions or dependencies. The average time to locate feature revisions ranged from 25 to 250 seconds, whereas the average time for composing a variant was 18 seconds. Therefore, our experiments demonstrate that ECSEST is feasible and effective.

References

[1]
Ananieva S, Greiner S, Ku̇hn T, Kru̇ger J, Linsbauer L, Gru̇ner S, Kehrer T, Klare H, Koziolek A, Lȯnn H, Krieter S, Seidl C, Ramesh S, Reussner RH, Westfechtel B (2020) A conceptual model for unifying variability in space and time. In: Lopez-herrejon RE (ed) 24th ACM international systems and software product line conference, volume - a, SPLC ’20. ACM, pp 15:1–15:12
[2]
Angerer F, Grimmer A, Prähofer H, and Grünbacher PChange impact analysis for maintenance and evolution of variable software systemsAutom Softw Eng201926417-461https://doi.org/10.1007/s10515-019-00253-7
[3]
Apel S, Batory D, Kstner C, Saake G (2013) Feature-Oriented Software product lines: Concepts and implementation. Springer Publishing Company, Incorporated, New York
[4]
Assunção KG, Vergilio SR (2014) Feature location for software product line migration: a mapping study. In: 18Th international software product line conference: Companion volume for workshops, demonstrations and tools - volume 2, SPLC 2014. ACM, New York, pp 52–59
[5]
Bennett KH, Rajlich VT (2000) Software maintenance and evolution: a roadmap. In: Conference on the future of software engineering, ICSE ’00. ACM, New York, pp 73–87
[6]
Berger T, Chechik M, Kehrer T, and Wimmer MSoftware evolution in time and space: Unifying version and variability management (dagstuhl seminar 19191)Dagstuhl Rep2019951-30https://doi.org/10.4230/DagRep.9.5.1
[7]
Berger T, Lettner D, Rubin J, Grünbacher P, Silva A, Becker M, Chechik M, Czarnecki K (2015) What is a feature?: a qualitative study of features in industrial software product lines. In: 19Th international conference on software product line, SPLC 2015. ACM, New York, pp 16–25
[8]
Berger T, She S, Lotufo R, Czarnecki K, Wasowski A (2010) Feature-to-code mapping in two large product lines. In: Bosch J, Lee J (eds) Software product lines: Going beyond. Springer, Berlin, pp 98–499
[9]
Berger T, She S, Lotufo R, Wasowski A, and Czarnecki KA study of variability models and languages in the systems software domainIEEE Trans Softw Eng201339121611-1640https://doi.org/10.1109/TSE.2013.34
[10]
Berger T, Steghȯfer J, Ziadi T, Robin J, and Martinez JThe state of adoption and the challenges of systematic variability management in industryEmpir Softw Eng20202531755-1797https://doi.org/10.1007/s10664-019-09787-6
[11]
Clements P, Northrop LM (2002) Software product lines: Practices and patterns. SEI series in software engineering. Addison-wesley, Boston
[12]
Collins-Sussman B, Fitzpatrick BW, Pilato CM (2002) Version Control with Subversion. O’Reilly Media. http://svnbook.red-bean.com/
[13]
Conradi R and Westfechtel BVersion models for software configuration managementACM Comput Surv1998302232-282https://doi.org/10.1145/280277.280280
[14]
Cruz D, Figueiredo E, Martinez J (2019) A literature review and comparison of three feature location techniques using argouml-spl. In: 13Th international workshop on variability modelling of software-intensive systems, VAMOS 2019. ACM, New York, pp 16:1–16:10
[15]
Deorowicz S, Debudaj-Grabysz A, Gudyṡ A (2014) Kalign-LCS — a more accurate and faster variant of Kalign2 algorithm for the multiple sequence alignment problem. In: Gruca D. A., Czachórski T, Kozielski S. (eds) Man-machine interactions 3. Springer International Publishing, Cham, pp 495–502
[16]
Dit B, Revelle M, Gethers M, and Poshyvanyk DFeature location in source code: a taxonomy and surveyJ Softw Evol Process201325153-95https://doi.org/10.1002/smr.567
[17]
Estublier J (2000) Software configuration management: a roadmap. In: Conference on the future of software engineering, ICSE ’00. ACM, New York, pp 279–289
[18]
Feichtinger K, Hinterreiter D, Linsbauer L, Prȧhofer H, and Gru̇nbacher PGuiding feature model evolution by lifting code-level dependenciesJ Comput Lang2021631-17https://doi.org/10.1016/j.cola.2021.101034
[19]
Fischer S, Linsbauer L, Lopez-Herrejon RE, Egyed A (2014) Enhancing clone-and-own with systematic reuse for developing software variants. In: 30Th IEEE international conference on software maintenance and evolution, ICSME 2014. IEEE, New York, pp 391–400
[20]
Fischer S, Linsbauer L, Lopez-Herrejon RE, Egyed A (2015) The ecco tool: Extraction and composition for clone-and-own. In: 37Th IEEE international conference on software engineering, ICSE 2015., vol 2. IEEE, New York, pp 665–668
[21]
Fischer S, Linsbauer L, Lopez-herrejon RE, Egyed A (2016) A source level empirical study of features and their interactions in variable software. In: 16Th international working conference on source code analysis and manipulation, SCAM 2016. IEEE, New York, pp 197–206
[22]
Fischer S, Ramler R, Linsbauer L, Egyed A (2019) Automating test reuse for highly configurable software. In: 23Rd international systems and software product line conference, SPLC 2019. ACM, Paris, pp 1–11
[23]
Gargantini A, Petke J, Radavelli M, Vavassori P (2016) Validation of constraints among configuration parameters using search-based combinatorial interaction testing. In: Sarro F, Deb K (eds) Search based software engineering. Springer International Publishing, New York, pp 49–63
[24]
Ghabach E, Blay-fornarino M, Khoury FE, Baz B (2018) Clone-and-own software product derivation based on developer preferences and cost estimation. In: 12Th international conference on research challenges in information science. IEEE, pp 1–6
[25]
Grünbacher P, Hanl R, Linsbauer L (2021) Using music features for managing revisions and variants in music notation software. In: Gottfried R, Hajdu G, Sello J, Anatrini A, MacCallum J (eds) International conference on technologies for music notation and representation, TENOR’20/21. Hamburg University for Music and Theater, Hamburg, pp 212–220
[26]
Ha H, Zhang H (2019) Performance-influence model for highly configurable software with fourier learning and lasso regression. In: 35Th international conference on software maintenance and evolution, ICSME 2019. IEEE, New York, pp 470–480
[27]
Herzig K, Just S, and Zeller AThe impact of tangled code changes on defect prediction modelsEmpir Softw Eng2016212303-336https://doi.org/10.1007/s10664-015-9376-6
[28]
Hinterreiter D, Linsbauer L, Feichtinger K, Prähofer H, and Grünbacher PSupporting feature-oriented evolution in industrial automation product linesConcurr Eng Res Appl202028265-279https://doi.org/10.1177/1063293X20958930
[29]
Hinterreiter D, Linsbauer L, Grünbacher P., Prähofer H. (2021) Feature-oriented clone and pull for distributed development and evolution. In: 14Th international conference on the quality of information and communications technology, QUATIC ’21
[30]
Hinterreiter D, Nieke M, Linsbauer L, Seidl C, Prähofer H, Grünbacher P (2019) Harmonized temporal feature modeling to uniformly perform, track, analyze, and replay software product line evolution. In: 18Th international conference on generative programming: Concepts & experiences, GPCE 2019. ACM, New York, pp 115–128
[31]
Krüger J, Mukelabai M, Gu W, Shen H, Hebig R, and Berger TWhere is my feature and what is it about? a case study on recovering feature facetsJ Syst Softw2019152239-253https://doi.org/10.1016/j.jss.2019.01.057
[32]
Kru̇ger J, Ċalikli G, Berger T, Leich T (2021) How explicit feature traces did not impact developers’ memory. In: 28Th IEEE international conference on software analysis, evolution and reengineering, SANER ’21. IEEE, pp 610–613
[33]
Krüger J., Gu W, Shen H, Mukelabai M, Hebig R, Berger T (2018) Towards a better understanding of software features and their characteristics: a case study of marlin. In: 12Th international workshop on variability modelling of software-intensive systems, VAMOS 2018. ACM, New York, pp 105–112
[34]
Liebig J, Apel S, Lengauer C, Kästner C, Schulze M (2010) An analysis of the variability in forty preprocessor-based software product lines. In: 32Nd ACM/IEEE international conference on software engineering - volume 1, ICSE 2010. ACM, New York, pp 105–114
[35]
Linsbauer L, Berger T, Gru̇nbacher P (2017) A classification of variation control systems. In: Flatt M, Erdweg S (eds) 16Th international conference on generative programming: Concepts and experiences, GPCE ’17. ACM, New York, pp 49–62
[36]
Linsbauer L, Egyed A, Lopez-herrejon RE (2016) A variability aware configuration management and revision control platform. In: Dillon LK, Visser W, Williams LA (eds) 38th International Conference on Software Engineering, ICSE ’16. ACM, pp 803–806
[37]
Linsbauer L, Fischer S, Lopez-Herrejon RE, Egyed A (2015) Using traceability for incremental construction and evolution of software product portfolios. In: 8Th international symposium on software and systems traceability, SST 2015. IEEE, New York, pp 57–60
[38]
Linsbauer L, Lopez-Herrejon ER, Egyed A (2013) Recovering traceability between features and code in product variants. In: 17Th international software product line conference, SPLC 2013. ACM, New York, pp 131–140
[39]
Linsbauer L, Lopez-herrejon RE, and Egyed AVariability extraction and modeling for product variantsSoftw Syst Model20171641179-1199https://doi.org/10.1007/s10270-015-0512-y
[40]
Linsbauer L, Lopez-herrejon RE, and Egyed AVariability extraction and modeling for product variantsSoftw Syst Model20171641179-1199https://doi.org/10.1007/s10270-015-0512-y
[41]
Linsbauer L, Schwägerl F, Berger T, Grünbacher P (2021) Concepts of variation control systems. J Syst Softw 171:110,796.
[42]
Liu J, Batory D, Lengauer C (2006) Feature oriented refactoring of legacy applications. In: 28Th international conference on software engineering, ICSE 2006. ACM, New York, pp 112–121
[43]
MacKay SA (1995) The state of the art in concurrent, distributed configuration management. In: Selected papers from the ICSE SCM-4 and SCM-5 workshops, on software configuration management. Springer, Berlin, pp 180–193
[44]
Martinez J (2016) Mining software artefact variants for product line migration and analysis. Ph.D. thesis, Pierre and Marie Curie University, France. http://orbilu.uni.lu/handle/10993/28675
[45]
Martinez J, Ziadi T, Bissyandé TF, Klein J, Le Traon Y (2015) Bottom-up adoption of software product lines: a generic and extensible approach. In: 19Th international conference on software product line, SPLC ’15. ACM, New York, pp 101–110
[46]
Martinez J, Ziadi T, Papadakis M, Bissyandé TF, Klein J, le Traon Y (2018) Feature location benchmark for extractive software product line adoption research using realistic and synthetic eclipse variants. Inf Softw Technol 104:46–59.
[47]
McGovern J, Ambler SW, Stevens ME, Linn J, Jo EK, Sharan V (2003) The practical guide to enterprise architecture. Prentice Hall, PTR
[48]
Medeiros F, Kȧstner C, Ribeiro M, Nadi S, Gheyi R (2015) The love/hate relationship with the C preprocessor: an interview study (artifact). Dagstuhl Artifacts Ser 1(1):07:1–07,32.
[49]
Medeiros F, Ribeiro M, Gheyi R, Apel S, Kästner C, Ferreira B, Carvalho L, and Fonseca BDiscipline matters: Refactoring of preprocessor directives in the #ifdef hellIEEE Trans Softw Eng2018445453-469https://doi.org/10.1109/TSE.2017.2688333
[50]
Melo J, Brabrand C, Wasowski A (2016) How does the degree of variability affect bug finding?. In: 38Th international conference on software engineering, ICSE ’16. ACM, New York, pp 679–690
[51]
Michelon GK, Assunção WKG, Obermann D, Linsbauer L, Grünbacher P, Egyed A (2021a) The life cycle of features in highly-configurable software systems evolving in space and time. In: 20Th international conference on generative programming: Concepts & experiences, GPCE 2021. ACM, New York, pp 1–14
[52]
Michelon GK, Linsbauer L, Assunċȧo WKG, Egyed A (2019) Comparison-based feature location in argouml variants. In: 23Rd international systems and software product line conference - Volume A, SPLC 2019. ACM, pp 17:1–17:5
[53]
Michelon GK, Linsbauer L, Assunċȧo WKG, Fischer S, Egyed A (2021b) A hybrid feature location technique for re-engineering single systems into software product lines. In: Gru̇nbacher P, Seidl C, Dhungana D, Lovasz-Bukvova H (eds) 15th International Working Conference on Variability Modelling of Software-Intensive Systems, VaMoS ’21. ACM, pp 11:1–11:9
[54]
Michelon GK, Obermann D, Assunċȧo WKG, Linsbauer L, Gru̇nbacher P, Egyed A (2021c) Managing systems evolving in space and time: four challenges for maintenance, evolution and composition of variants. In: 25Th international systems and software product line conference - Volume A. ACM, New York, pp 75–80
[55]
Michelon GK, Obermann D, Assunção WKG, Linsbauer L, Grünbacher P., Egyed A (2020a) Mining feature revisions in highly-configurable software systems. In: 24Th ACM international systems and software product line conference - Volume B, SPLC ’20. ACM, New York, pp 74–78
[56]
Michelon GK, Obermann D, Linsbauer L, Assunċȧo WKG, Gru̇nbacher P, Egyed A (2020d) Locating feature revisions in software systems evolving in space and time. In: Lopez-herrejon RE (ed) 24th ACM international systems and software product line conference, volume - a, SPLC ’20. ACM, pp 14:1–14:11
[57]
Michelon GK, Sotto-Mayor B, Martinez J, Arrieta A, Abreu R, Assunção W. K. G. (2021d) Spectrum-based Feature Localization: A Case Study Using argoUML, SPLC ’21, ACM, New York.
[58]
Nassif M, Robillard MP (2017) Revisiting turnover-induced knowledge loss in software projects. In: 2017 IEEE International conference on software maintenance and evolution, ICSME ’17. IEEE computer society, pp 261–272
[59]
Passos L, Padilla J, Berger T, Apel S, Czarnecki K, Valente MT (2015) Feature scattering in the large: a longitudinal study of linux kernel device drivers. In: 14Th international conference on modularity, MODULARITY 2015. ACM, New York, pp 81–92
[60]
Pereira JA, Acher M, Martin H, Jėzėquel J (2020) Sampling effect on performance prediction of configurable systems: A case study. In: Amaral JN, Koziolek A, Trubiani C, Iosup A (eds) International Conference on Performance Engineering, ICPE ’20. ACM, pp 277–288
[61]
Pohl K, Böckle G., Linden FJvd (2005) Software Product Line Engineering: foundations, Principles and Techniques. Springer, Berlin
[62]
Pohl K, Metzger A (2018) Software Product Lines. Springer International Publishing, Cham, pp 185–201.
[63]
Rabiser R, Gru̇nbacher P, Lehofer M (2012) A qualitative study on user guidance capabilities in product configuration tools. In: International conference on automated software engineering, ASE ’12. ACM, pp 110–119
[64]
Rubin J, Chechik M (2013) A survey of feature location techniques. In: Domain Engineering, Product Lines, Languages, and Conceptual Models. Springer, Berlin, pp 29–58.
[65]
Schwȧgerl F (2018) Version control and product lines in model-driven software engineering. Ph.D. thesis, University of Bayreuth, Germany
[66]
Schwȧgerl F, Westfechtel B (2016) Supermod: tool support for collaborative filtered model-driven software product line engineering. In: Lo D, Apel S, Khurshid S (eds) 31st International Conference on Automated Software Engineering, ASE ’16. ACM, pp 822–827
[67]
Schwägerl F and Westfechtel BIntegrated revision and variation control for evolving model-driven software product linesSoftw Syst Model20191863373-3420https://doi.org/10.1007/s10270-019-00722-3
[68]
Seidl C, Schaefer I, Aßmann U (2013) Capturing variability in space and time with hyper feature models. In: 8Th international workshop on variability modelling of software-intensive systems, VAMOS 2014. ACM, New York, pp 6:1–6:8
[69]
Seidl C, Schaefer I, Aßmann U (2014) Deltaecore – A model-based delta language generation framework. In: Fill H, Karagiannis D, Reimer U (eds) Modellierung 2014, LNI, vol P-225, pp 81–96
[70]
Sincero J, Schirmeier H, Schröder-Preikschat W, Spinczyk O (2007) Is The Linux Kernel a Software Product Line?. In: van der Linden, F, Lundell B (eds) International Workshop on Open Source Software and Product Lines, SPLC-OSSPL ’07, Kyoto
[71]
Strüber D, Mukelabai M, Krüger J, Fischer S, Linsbauer L, Martinez J, Berger T (2019) Facing the truth: Benchmarking the techniques for the evolution of variant-rich systems. In: 23Rd international systems and software product line conference - Volume A, SPLC ’19. ACM, New York, pp 177–188
[72]
Ting KM (2010) Precision and Recall. Springer US, Boston.
[73]
Vale T and Almeida ESExperimenting with information retrieval methods in the recovery of feature-code SPL tracesEmpir Softw Eng20192431328-1368https://doi.org/10.1007/s10664-018-9652-3
[74]
Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2000) Experimentation in software engineering: an introduction. Kluwer Academic Publishers, USA.

Cited By

View all
  • (2024)Feature-oriented Test Case Prioritization Strategies: An Evaluation for Highly Configurable SystemsProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672592(72-83)Online publication date: 2-Sep-2024
  • (2023)Feature-oriented Test Case Selection during Evolution of Highly-Configurable SystemsProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608979(76-86)Online publication date: 28-Aug-2023
  • (2023)Designing a Test Model for a Configurable System: An Exploratory Study of Preprocessor Directives and Feature TogglesProceedings of the 17th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3571788.3571795(31-39)Online publication date: 25-Jan-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Empirical Software Engineering
Empirical Software Engineering  Volume 27, Issue 5
Sep 2022
845 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 September 2022
Accepted: 10 December 2021

Author Tags

  1. Feature location
  2. Feature revisions
  3. Variation control system
  4. Repository mining

Qualifiers

  • Research-article

Funding Sources

  • Johannes Kepler University Linz

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 28 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Feature-oriented Test Case Prioritization Strategies: An Evaluation for Highly Configurable SystemsProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672592(72-83)Online publication date: 2-Sep-2024
  • (2023)Feature-oriented Test Case Selection during Evolution of Highly-Configurable SystemsProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608979(76-86)Online publication date: 28-Aug-2023
  • (2023)Designing a Test Model for a Configurable System: An Exploratory Study of Preprocessor Directives and Feature TogglesProceedings of the 17th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3571788.3571795(31-39)Online publication date: 25-Jan-2023
  • (2023)Spectrum-based feature localization for families of systemsJournal of Systems and Software10.1016/j.jss.2022.111532195:COnline publication date: 1-Jan-2023
  • (2022)Test2FeatureProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B10.1145/3503229.3547031(62-65)Online publication date: 12-Sep-2022

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media