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

skip to main content
research-article

On the impact of feature dependencies when maintaining preprocessor-based software product lines

Published: 22 October 2011 Publication History

Abstract

During Software Product Line (SPL) maintenance tasks, Virtual Separation of Concerns (VSoC) allows the programmer to focus on one feature and hide the others. However, since features depend on each other through variables and control-flow, feature modularization is compromised since the maintenance of one feature may break another. In this context, emergent interfaces can capture dependencies between the feature we are maintaining and the others, making developers aware of dependencies. To better understand the impact of code level feature dependencies during SPL maintenance, we have investigated the following two questions: how often methods with preprocessor directives contain feature dependencies? How feature dependencies impact maintenance effort when using VSoC and emergent interfaces? Answering the former is important for assessing how often we may face feature dependency problems. Answering the latter is important to better understand to what extent emergent interfaces complement VSoC during maintenance tasks. To answer them, we analyze 43 SPLs of different domains, size, and languages. The data we collect from them complement previous work on preprocessor usage. They reveal that the feature dependencies we consider in this paper are reasonably common in practice; and that emergent interfaces can reduce maintenance effort during the SPL maintenance tasks we regard here.

References

[1]
V. Alves. Implementing Software Product Line Adoption Strategies. PhD thesis, Federal University of Pernambuco, Recife, Brazil, March 2007.
[2]
V. Alves, P. M. Jr., L. Cole, P. Borba, and G. Ramalho. Extracting and Evolving Mobile Games Product Lines. In Proceedings of the 9th International Software Product Line Conference (SPLC'05), volume 3714 of LNCS, pages 70--81. Springer-Verlag, September 2005.
[3]
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2002.
[4]
M. D. Ernst, G. J. Badros, and D. Notkin. An empirical analysis of c preprocessor use. IEEE Transactions on Software Engineering, 28:1146--1170, December 2002.
[5]
C. Kästner and S. Apel. Type-checking software product lines - a formal approach. In Proceedings of the 23rd International Conference on Automated Software Engineering (ASE'08), pages 258--267. IEEE Computer Society, September 2008.
[6]
C. Kästner and S. Apel. Virtual separation of concerns - a second chance for preprocessors. Journal of Object Technology, 8(6):59--78, 2009.
[7]
C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In Proceedings of the 30th International Conference on Software Engineering (ICSE'08), pages 311--320, New York, NY, USA, 2008. ACM.
[8]
C. Kästner, S. Apel, T. Thüm, and G. Saake. Type checking annotation-based product lines. ACM Transactions on Software Engineering and Methodology (TOSEM'11), 2011.
[9]
A. Kenner, C. Kästner, S. Haase, and T. Leich. Typechef: toward type checking #ifdef variability in c. In Proceedings of the 2nd International Workshop on Feature-Oriented Software Development (FOSD'10), pages 25--32, New York, NY, USA, 2010. ACM.
[10]
C. H. Kim, D. Batory, and S. Khurshid. Reducing combinatorics in testing product lines. In Proceeding of the 10th International Conference on Aspect Oriented Software Development (AOSD'11), New York, NY, USA, 2011. ACM. To appear.
[11]
R. Kolb, D. Muthig, T. Patzke, and K. Yamauchi. A Case Study in Refactoring a Legacy Component for Reuse in a Product Line. In Proceedings of the 21st International Conference on Software Maintenance (ICSM'05), pages 369--378, Washington, DC, USA, 2005. IEEE Computer Society.
[12]
T. D. LaToza and B. A. Myers. Developers ask reachability questions. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE '10), pages 185--194, New York, NY, USA, 2010. ACM.
[13]
J. Liebig, S. Apel, C. Lengauer, C. Kästner, and M. Schulze. An analysis of the variability in forty preprocessor-based software product lines. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE'10), pages 105--114, New York, NY, USA, 2010. ACM.
[14]
J. Liebig, C. Kästner, and S. Apel. Analyzing the discipline of preprocessor annotations in 30 million lines of c code. In Proceeding of the 10th International Conference on Aspect Oriented Software Development (AOSD'11), pages 191--202, New York, NY, USA, March 2011. ACM.
[15]
D. L. Parnas. On the criteria to be used in decomposing systems into modules. CACM, 15(12):1053--1058, 1972.
[16]
K. Pohl, G. Bockle, and F. J. van der Linden. Software Product Line Engineering. Springer, 2005.
[17]
M. Ribeiro, H. Pacheco, L. Teixeira, and P. Borba. Emergent Feature Modularization. In Onward! 2010, affiliated with ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH'10), pages 11--18, New York, NY, USA, 2010. ACM.
[18]
H. Spencer and G. Collyer. #ifdef considered harmful, or portability experience with C news. In Proceedings of the Usenix Summer 1992 Technical Conference, pages 185--198, Berkeley, CA, USA, June 1992. Usenix Association.
[19]
S. Trujillo, D. Batory, and O. Diaz. Feature refactoring a multi-representation program into a product line. In Proceedings of the 5th International Conference on Generative Programming and Component Engineering (GPCE'06), pages 191--200, New York, NY, USA, 2006. ACM.

Cited By

View all
  • (2019)How does feature dependency affect configurable system comprehensibility?Proceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00016(19-29)Online publication date: 25-May-2019
  • (2023)Analysis and Propagation of Feature Revisions in Preprocessor-based Software Product Lines2023 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER56733.2023.00035(284-295)Online publication date: Mar-2023
  • (2021)A Method to Comprehend Feature Dependencies Based on Semi-Static Structures2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME52107.2021.00020(148-158)Online publication date: Sep-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 47, Issue 3
GCPE '11
March 2012
179 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2189751
Issue’s Table of Contents
  • cover image ACM Conferences
    GPCE '11: Proceedings of the 10th ACM international conference on Generative programming and component engineering
    October 2011
    194 pages
    ISBN:9781450306898
    DOI:10.1145/2047862
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 ACM 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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 October 2011
Published in SIGPLAN Volume 47, Issue 3

Check for updates

Author Tags

  1. modularity
  2. preprocessors
  3. software product lines

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)3
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2019)How does feature dependency affect configurable system comprehensibility?Proceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00016(19-29)Online publication date: 25-May-2019
  • (2023)Analysis and Propagation of Feature Revisions in Preprocessor-based Software Product Lines2023 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER56733.2023.00035(284-295)Online publication date: Mar-2023
  • (2021)A Method to Comprehend Feature Dependencies Based on Semi-Static Structures2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME52107.2021.00020(148-158)Online publication date: Sep-2021
  • (2020)Feature dependencies in automotive software systemsJournal of Systems and Software10.1016/j.jss.2019.110458160:COnline publication date: 1-Feb-2020
  • (2019)On the Evolution of Feature DependenciesProceedings of the 13th International Workshop on Variability Modelling of Software-Intensive Systems10.1145/3302333.3302342(1-9)Online publication date: 6-Feb-2019
  • (2018)Discipline Matters: Refactoring of Preprocessor Directives in the #ifdef HellIEEE Transactions on Software Engineering10.1109/TSE.2017.268833344:5(453-469)Online publication date: 1-May-2018
  • (2016)Product-line maintenance with emergent contract interfacesProceedings of the 20th International Systems and Software Product Line Conference10.1145/2934466.2934471(134-143)Online publication date: 16-Sep-2016
  • (2016)Segregating feature interfaces to support software product line maintenanceProceedings of the 15th International Conference on Modularity10.1145/2889443.2889451(1-12)Online publication date: 14-Mar-2016
  • (2016)How does the degree of variability affect bug finding?Proceedings of the 38th International Conference on Software Engineering10.1145/2884781.2884831(679-690)Online publication date: 14-May-2016
  • (2016)Assessing fine-grained feature dependenciesInformation and Software Technology10.1016/j.infsof.2016.05.00678:C(27-52)Online publication date: 1-Oct-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media