Skip to main content

Software Families, Software Products Lines, and Dataflow Analyses

  • Chapter
  • First Online:

Part of the book series: SpringerBriefs in Computer Science ((BRIEFSCOMPUTER))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    Best lap is a commercial product developed by Meantime Mobile Creations. http://www.meantime.com.br/.

References

  1. Aho, A., Lam, M., Sethi, R., Ullman, J.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Boston (2006)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. Alves, V.: Implementing Software Product Line Adoption Strategies. Ph.D. thesis, Federal University of Pernambuco (2007)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Boston (2002)

    Google Scholar 

  8. Concurrent Versions System. http://savannah.nongnu.org/projects/cvs/ (2011)

  9. Ernst, M.D., Badros, G.J., Notkin, D.: An empirical analysis of c preprocessor use. IEEE Trans. Softw. Eng. 28, 1146–1170 (2002)

    Article  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. Kästner, C., Apel, S.: Virtual separation of concerns—a second chance for preprocessors. J. Object Technol. 8(6), 59–78 (2009)

    Article  Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. van der Linden, F., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer, Berlin (2007)

    Book  Google Scholar 

  18. Matos P. Jr.: Analyzing techniques for implementing product line variabilities. Master’s thesis, Federal University of Pernambuco (2008)

    Google Scholar 

  19. Pilato, C.M., Collins-Sussman, B., Fitzpatrick, B.W.: Version Control with Subversion, 1st edn. O’Reilly, Sebastopol (2004)

    Google Scholar 

  20. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, New York (1999)

    Book  MATH  Google Scholar 

  21. Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 2(1), 1–9 (1976)

    Article  MATH  Google Scholar 

  22. Pohl, K., Bockle, G., van der Linden, F.J.: Software Product Line Engineering. Springer, Berlin (2005)

    Book  MATH  Google Scholar 

  23. Schwartzbach, M.I.: Lecture Notes on Static Analysis (2008)

    Google Scholar 

  24. Soot: A Java Optimization Framework. http://www.sable.mcgill.ca/soot/ (2010)

  25. 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)

    Google Scholar 

  26. Társis Tolêdo.: Dataflow analysis for software product lines. Master’s thesis, Federal University of Pernambuco (2013)

    Google Scholar 

  27. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Márcio Ribeiro .

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics