Abstract
In this chapter we review essential concepts we explore in this work. Firstly, we review software families and software product lines, since the problem we address here is critical in these contexts. We show the basic concepts and then move towards conditional compilation with preprocessors, a widely used mechanism to implement features in industrial practice. Despite the widespread usage, conditional compilation has several drawbacks. We then present the Virtual Separation of Concerns (VSoC) approach, which can minimize some of these drawbacks. In this work, we intend to address the lack of feature modularity. Thus, we need to catch dependencies between features and inform developers about them. To do so, we rely on dataflow analyses, the last topic we review in this chapter.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Best lap is a commercial product developed by Meantime Mobile Creations. http://www.meantime.com.br/.
References
Aho, A., Lam, M., Sethi, R., Ullman, J.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Boston (2006)
Alves, V., Matos P. Jr., Cole, L., Borba, P., Ramalho, G.: Extracting and Evolving Mobile Games Product Lines. In: Proceedings of the 9th International Software Product Line Conference (SPLC), Lecture Notes in Computer Science, vol. 3714, pp. 70–81. Springer (2005)
Alves, V.: Implementing Software Product Line Adoption Strategies. Ph.D. thesis, Federal University of Pernambuco (2007)
Batory, D.: Feature models, grammars, and propositional formulas. In: Proceedings of the 9th International Conference on Software Product Lines (SPLC), pp. 7–20. Springer, New York (2005)
Brabrand, C., Ribeiro, M., Tolêdo, T., Borba, P.: Intraprocedural dataflow analysis for software product lines. In: Proceedings of the 11th International Conference on Aspect-Oriented Software Development (AOSD), pp. 13–24. ACM (2012)
Brabrand, C., Ribeiro, M., Tolêdo, T., Winther, J., Borba, P.: Intraprocedural dataflow analysis for software product lines. Lecture Notes in Computer Science: Transactions on Aspect-Oriented Software Development I, pp. 73–108. Springer (2012)
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Boston (2002)
Concurrent Versions System. http://savannah.nongnu.org/projects/cvs/ (2011)
Ernst, M.D., Badros, G.J., Notkin, D.: An empirical analysis of c preprocessor use. IEEE Trans. Softw. Eng. 28, 1146–1170 (2002)
Kang, K.-C., Cohen, S.G., Hess, J.A., Novak, W.E., Spencer Peterson, A.: Feature-Oriented Domain Analysis (FODA). Feasibility Study. Technical Report CMU/SEI-90-TR-21. Software Engineering Institute (1990)
Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: Proceedings of the 30th International Conference on Software Engineering (ICSE), pp. 311–320. ACM (2008)
Kästner, C., Apel, S.: Virtual separation of concerns—a second chance for preprocessors. J. Object Technol. 8(6), 59–78 (2009)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Proceedings of European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, pp. 220–242 (1997)
Kildall, G.A.: A unified approach to global program optimization. In: Proceedings of the 1st Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL), pp. 194–206. ACM (1973)
Kolb, R., Muthig, D., Patzke, T., Yamauchi, K.: 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), pp. 369–378. IEEE Computer Society (2005)
Liebig, J., Kästner, C., Apel, S.: 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), pp. 191–202. ACM (2011)
van der Linden, F., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer, Berlin (2007)
Matos P. Jr.: Analyzing techniques for implementing product line variabilities. Master’s thesis, Federal University of Pernambuco (2008)
Pilato, C.M., Collins-Sussman, B., Fitzpatrick, B.W.: Version Control with Subversion, 1st edn. O’Reilly, Sebastopol (2004)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, New York (1999)
Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 2(1), 1–9 (1976)
Pohl, K., Bockle, G., van der Linden, F.J.: Software Product Line Engineering. Springer, Berlin (2005)
Schwartzbach, M.I.: Lecture Notes on Static Analysis (2008)
Soot: A Java Optimization Framework. http://www.sable.mcgill.ca/soot/ (2010)
Spencer, H., Collyer, G.: #ifdef considered harmful, or portability experience with C news. In: Proceedings of the Usenix Summer Technical Conference, pp. 185–198. Usenix Association (1992)
Társis Tolêdo.: Dataflow analysis for software product lines. Master’s thesis, Federal University of Pernambuco (2013)
Trujillo, S., Batory, D., Diaz, O.: Feature refactoring a multi-representation program into a product line. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering (GPCE), pp. 191–200. ACM (2006)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2014 The Author(s)
About this chapter
Cite this chapter
Ribeiro, M., Borba, P., Brabrand, C. (2014). Software Families, Software Products Lines, and Dataflow Analyses. In: Emergent Interfaces for Feature Modularization. SpringerBriefs in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-11493-4_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-11493-4_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-11492-7
Online ISBN: 978-3-319-11493-4
eBook Packages: Computer ScienceComputer Science (R0)