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.
- V. Alves. Implementing Software Product Line Adoption Strategies. PhD thesis, Federal University of Pernambuco, Recife, Brazil, March 2007.Google Scholar
- 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. Google Scholar
Digital Library
- P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2002.Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- C. Kästner and S. Apel. Virtual separation of concerns - a second chance for preprocessors. Journal of Object Technology, 8(6):59--78, 2009.Google Scholar
Cross Ref
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- D. L. Parnas. On the criteria to be used in decomposing systems into modules. CACM, 15(12):1053--1058, 1972. Google Scholar
Digital Library
- K. Pohl, G. Bockle, and F. J. van der Linden. Software Product Line Engineering. Springer, 2005. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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.Google Scholar
- 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. Google Scholar
Digital Library
Index Terms
On the impact of feature dependencies when maintaining preprocessor-based software product lines
Recommendations
On the impact of feature dependencies when maintaining preprocessor-based software product lines
GPCE '11: Proceedings of the 10th ACM international conference on Generative programming and component engineeringDuring 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 ...
Modular feature-oriented graphical editor product lines
SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1Software Product Lines (SPLs) have a long tradition and aim at reducing development costs by increasing reuse. They have been successfully applied to develop families of languages, ultimately establishing the field of Language Product Lines (LPLs). ...
Enhancing feature interfaces for supporting software product line maintenance
ICSE Companion 2014: Companion Proceedings of the 36th International Conference on Software EngineeringSoftware product line (SPL) is a technology aimed at speeding up the development process. Although SPLs are widely used, their maintenance is a challenging task. In particular, when maintaining a SPL feature, developers need to know which parts of ...







Comments