ABSTRACT
Successful Software Product Lines (SPLs) evolve over time. However, one practical problem is that during SPL evolution the core assets, especially the code, tend to become complicated and difficult to understand, use, and maintain. Typically, more and more problems arise over time with implicit or already lost adaptation knowledge about the interdependencies of the different system variants and the supported variability. In this paper, we present a model-based SPL improvement process that analyzes existing large-scale SPL reuse infrastructure to identify improvement potential with respective metrics. Since Conditional Compilation (CC) is one of the most widely used mechanisms to implement variability, we parse variability-related facts from preprocessor code. Then we automatically extract an implementation variability model, including product configuration and variation points that are structured in a hierarchical variability tree. The extraction process is presented with concrete measurement results from an industrial case study.
- J. M. Cem, C. Fuss, R. Zimmermann, and I. Aktas, "Model-driven support for source code variability in automotive software engineering," 7. Workshop Automotive Software Engineering (ASE 09), vol. Lecture Notes in Informatics (LNI), 2009.Google Scholar
- S. Duszynski, J. Knodel, and M. Becker, "Analyzing the source code of multiple software variants for reuse potential," Reverse Engineering, Working Conference on, vol. 0, pp. 303--307, 2011. Google ScholarDigital Library
- FeatureCommander. http://wwwiti.cs.uni-magdeburg.de/~feigensp/xenomai/. Retrieved on May 25th, 2012.Google Scholar
- The FreeRTOS project. http://www.freertos.org/.Google Scholar
- J. Galindo, D. Benavides, and S. Segura, "Debian packages repositories as software product line models. towards automated analysis," in Proceedings of the 1st International Workshop on Automated Configuration and Tailoring of Applications (ACoTA), Sep. 2010, pp. 29--34.Google Scholar
- C. Kästner, S. Apel, and M. Kuhlemann, "Granularity in software product lines," in Proceedings of the 30th international conference on Software engineering, ser. ICSE '08. New York, NY, USA: ACM, 2008, pp. 311--320. Google ScholarDigital Library
- C. Kästner, "Virtual separation of concerns: Toward preprocessors 2.0," Ph.D. dissertation, 2010.Google Scholar
- C. Kästner, P. G. Giarrusso, and K. Ostermann, "Partial preprocessing c code for variability analysis," in Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems, ser. VaMoS '11. New York, NY, USA: ACM, 2011, pp. 127--136. Google ScholarDigital Library
- C. W. Krueger, "New Methods behind a New Generation of Software Product Line Successes", In K. C. Kang, V. Sugumaran, and S. Park, "Applied Software Product Line Engineering", Auerbach Publications, 2010, pp. 39--60.Google Scholar
- 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 - Volume 1, ser. ICSE '10. New York, NY, USA: ACM, 2010, pp. 105--114. Google ScholarDigital Library
- J. Liebig, C. Kästner, and S. Apel, "Analyzing the discipline of preprocessor annotations in 30 million lines of c code," in Proceedings of the tenth international conference on Aspect-oriented software development, ser. AOSD '11. New York, NY, USA: ACM, 2011, pp. 191--202. Google ScholarDigital Library
- A. Lozano, "An overview of techniques for detecting software variability concepts in source code," in ER Workshops, ser. Lecture Notes in Computer Science, O. D. Troyer, C. B. Medeiros, R. Billen, P. Hallot, A. Simitsis, and H. V. Mingroot, Eds., vol. 6999. Springer, 2011, pp. 141--150. Google ScholarDigital Library
- J. D. McGregor, "The evolution of product line assets," Tech. Rep., 2003.Google Scholar
- G. C. Murphy, D. Notkin, and K. J. Sullivan, "Software reflexion models: Bridging the gap between design and implementation," IEEE Trans. Softw. Eng., vol. 27, no. 4, pp. 364--380, Apr. 2001. Google ScholarDigital Library
- T. Patzke, M. Becker, M. Steffens, K. Sierszecki, J. E. Savolainen, T. Fogdal, "Identifying Improvement Potential in Evolving Product Line Infrastructures: 3 Case Studies," In Proceedings of the Software Product Line Conference, ser. SPLC'12,. Brazil, September 2012. (To appear) Google ScholarDigital Library
- S. She, R. Lotufo, T. Berger, A. Wkasowski, and K. Czarnecki, "Reverse engineering feature models," in Proceedings of the 33rd International Conference on Software Engineering, ser. ICSE '11. New York, NY, USA: ACM, 2011, pp. 461--470. Google ScholarDigital Library
- Sincero, R. Tartler, D. Lohmann, and W. S. Preikschat, "Efficient extraction and analysis of preprocessor-based variability," SIGPLAN Not., vol. 46, no. 2, pp. 33--42, Oct. 2010. Google ScholarDigital Library
- van Solingen, R., Basili, V. R., Caldiera, G., and Rombach, H. D, "Goal Question Metric (GQM) Approach,". In Marciniak, J. J. (Ed.): Encyclopedia of Software Engineering (2nd Ed.), John Wiley & Sons: 578--583, 2002.Google Scholar
- H. Spencer and G. Collyer, "#ifdef considered harmful, or portability experience with C News," in USENIX Summer Technical Conference, Jun. 1992, pp. 185--197.Google Scholar
- M. Svahnberg and J. Bosch, "Evolution in software product lines: Two cases," Journal of Software Maintenance, vol. 11, no. 6, pp. 391--422, Nov. 1999. Google ScholarDigital Library
- R. Tartler, J. Sincero, W. S. Preikschat, and D. Lohmann, "Dead or alive: finding zombie features in the linux kernel," in Proceedings of the First International Workshop on Feature-Oriented Software Development, ser. FOSD '09. New York, NY, USA: ACM, 2009, pp. 81--86. Google ScholarDigital Library
- Treeviz. http://www.randelshofer.ch/treeviz/.Google Scholar
- TypeChef Project. http://ckaestne.github.com/TypeChef/.Google Scholar
- Bo Zhang. "Extraction and Improvement of Conditionally Compiled Product Line Code," In Proceedings of the International Conference on Program Comprehension, ser. ICPC'12, Germany, June 2012. (To appear).Google Scholar
Index Terms
- Code-based variability model extraction for software product line improvement
Recommendations
Software product line extraction from variability-rich systems: the robocode case study
SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1The engineering of a Software Product Line (SPL), either by creating it from scratch or through the re-engineering of existing variants, it uses to be a project that spans several years with a high investment. It is often hard to analyse and quantify ...
The Measurement of Software Product Line Variability and Its Relationship with Software Defects
QSIC '12: Proceedings of the 2012 12th International Conference on Quality SoftwareDevelopment of software product lines relies heavily on the use of variability, and implementation of variability is not a trivial task. Preprocessor is an effective and quite simple way to realize variability, however, it lacks structure, makes ...
Variability code analysis using the VITAL tool
FOSD '14: Proceedings of the 6th International Workshop on Feature-Oriented Software DevelopmentAs a product line evolves over time, variability realizations become overly complex and difficult to understand. This causes practical challenges in product line maintenance. To solve this issue, the VITAL tool is developed to automatically extract a ...
Comments