Skip to main content

Principles of Software Product Lines

  • Chapter
  • First Online:
UML-Based Software Product Line Engineering with SMarty

Abstract

Software product lines (SPL) has been consolidated in the last decades as a de facto and non-opportunistic way of mass customization and reuse of software artifacts to produce specific products. Over the years, SPLs and their construction processes have evolved based on several seminal works and technologies. In this chapter, we characterize an SPL, present its terminology, chronologically present its first construction methodologies and second-generation ones, and describe SPL development approaches. We conclude the chapter with final remarks and considerations for the next chapters.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 69.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 119.99
Price excludes VAT (USA)
  • Durable hardcover 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Apel, S., Kästner, C.: An overview of feature-oriented software development. J. Object Technol. 8(5), 49–84 (2009)

    Article  Google Scholar 

  2. Apel, S., Batory, D., Kstner, C., Saake, G.: Feature-Oriented Software Product Lines: Concepts and Implementation. Springer Publishing Company, New York (2013)

    Book  Google Scholar 

  3. Assunção, W.K., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Reengineering legacy applications into software product lines: a systematic mapping. Empir. Softw. Eng. 22(6), 2972–3016 (2017). https://doi.org/10.1007/s10664-017-9499-z

    Article  Google Scholar 

  4. Atkinson, C., Bayer, J., Muthig, D.: Component-based product line development: the kobra approach. In: Proceedings of the First Software Product Lines Conference SPLC, pp. 289–309. Springer, New York (2000)

    Google Scholar 

  5. Atkinson, C., Bayer, J., Bunse, C., Kamsties, E., Laitenberger, O., Laqua, R., Muthig, D., Paech, B., Wüst, J., Zettel, J.: Component-Based Product Line Engineering with UML. Addison-Wesley Longman Publishing Co. Inc., Boston (2002)

    Book  Google Scholar 

  6. Ayala, I., Papadopoulos, A.V., Amor, M., Fuentes, L.: Prodspl: Proactive self-adaptation based on dynamic software product lines. J. Syst. Softw. 175, 110,909 (2021). https://doi.org/10.1016/j.jss.2021.110909

    Article  Google Scholar 

  7. Bayer, J., Flege, O., Knauber, P., Laqua, R., Muthig, D., Schmid, K., Widen, T., DeBaud, J.M.: Pulse: a methodology to develop software product lines. In: Proceedings of the 1999 Symposium on Software Reusability, SSR ’99, pp. 122–131. ACM, New York (1999). https://doi.org/10.1145/303008.303063

  8. Bjørner, D.: Domain engineering: a software engineering discipline in need of research. In: Hlaváč, V., Jeffery, K.G., Wiedermann, J. (eds.) SOFSEM 2000: Theory and Practice of Informatics, pp. 1–17. Springer, Berlin (2000)

    Google Scholar 

  9. Buhrdorf, R., Churchett, D., Krüeger, C.: Salion’s experience with a reactive software product line approach. In: 5th International Workshop on Software Product-Family Engineering (PFE), pp. 317–322 (2003)

    Google Scholar 

  10. Clements, P.: Being proactive pays off. IEEE Softw. 19(4), 28 (2002). https://doi.org/10.1109/MS.2002.1020283

    Article  Google Scholar 

  11. Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley, Boston (2002)

    Google Scholar 

  12. Clements, P.C., Jones, L.G., Northrop, L.M., McGregor, J.D.: Project management in a software product line organization. IEEE Softw. 22(5), 54–62 (2005). https://doi.org/10.1109/MS.2005.133

    Article  Google Scholar 

  13. Clements, P., Gregg, S., Krüeger, C., Lanman, J., Rivera, J., Scharadin, R., Shepherd, J., Winkler, A.: Second generation product line engineering takes hold in the dod. Crosstalk J. Def. Softw. Eng., 12–18 (2014)

    Google Scholar 

  14. Czarnecki, K.: Generative programming: Methods, techniques, and applications tutorial abstract. In: Gacek, C. (ed.) Software Reuse: Methods, Techniques, and Tools, pp. 351–352. Springer, Berlin (2002)

    Chapter  MATH  Google Scholar 

  15. Dabhade, M., Suryawanshi, S., Manjula, R.: A systematic review of software reuse using domain engineering paradigms. In: 2016 Online International Conference on Green Engineering and Technologies (IC-GET), pp. 1–6 (2016). https://doi.org/10.1109/GET.2016.7916646

  16. FalvoJr, V., Filho, N.F.D., OliveiraJr, E., Barbosa, E.F.: A contribution to the adoption of software product lines in the development of mobile learning applications. In: Proceedings of the 2014 IEEE Frontiers in Education Conference (FIE), pp. 1–8 (2014). https://doi.org/10.1109/FIE.2014.7044091

  17. FalvoJr, V., Filho, N.F.D., OliveiraJr, E., Barbosa, E.F.: Towards the establishment of a software product line for mobile learning applications. In: International Conference on Software Engineering and Knowledge Engineering, pp. 678–683 (2014)

    Google Scholar 

  18. Gomaa, H.: Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. Addison Wesley Longman Publishing Co. Inc., (2004)

    Google Scholar 

  19. Griss, M.L., Favaro, J., Alessandro, M.d.: Integrating feature modeling with the RSEB. In: Proceedings of the 5th International Conference on Software Reuse, ICSR ’98, p. 76. IEEE Computer Society, Washington (1998)

    Google Scholar 

  20. Heider, W., Grünbacher, P., Rabiser, R.: Negotiation constellations in reactive product line evolution. In: 2010 Fourth International Workshop on Software Product Management, pp. 63–66 (2010). https://doi.org/10.1109/IWSPM.2010.5623862

  21. Hobsbawm, E.: The Age of Revolution: Europe 1789–1848, 1 edn. Weidenfeld & Nicolson Ltd., London (1996)

    Google Scholar 

  22. Horcas, J.M., Pinto, M., Fuentes, L.: Software product line engineering: a practical experience. In: Proceedings of the 23rd International Systems and Software Product Line Conference, SPLC ’19, vol. A, pp. 164–176. Association for Computing Machinery, New York (2019). https://doi.org/10.1145/3336294.3336304

  23. ISO/IEC: ISO/IEC/IEEE 24765:2010 – Systems and software engineering: vocabulary. https://www.iso.org/standard/50518.html

  24. ISO/IEC: ISO/IEC 26550:2015 – Software and systems engineering: reference model for product line engineering and management. https://www.iso.org/standard/69529.html

  25. Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture, Process and Organization for Business Success. ACM Press/Addison-Wesley Publishing Co., New York (1997)

    Google Scholar 

  26. Käkölä, T.K.: Standards initiatives for software product line engineering and management within the international organization for standardization. In: Hawaii International Conference on System Sciences, pp. 1–10 (2010). https://doi.org/10.1109/HICSS.2010.348

  27. Käkölä, T.K.: ISO initiatives on software product line engineering: vision and current status invited talk for variability. In: De Troyer, O., Bauzer Medeiros, C., Billen, R., Hallot, P., Simitsis, A., Van Mingroot, H. (eds.) Advances in Conceptual Modeling. Recent Developments and New Directions, pp. 119–119. Springer, Berlin (2011)

    Chapter  Google Scholar 

  28. Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-oriented domain analysis (FODA) feasibility study. Technical Report. CMU/SEI-90-TR-021, Software Engineering Institute, Carnegie Mellon University, Pittsburgh (1990). http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11231

  29. Kang, K.C., Kim, S., Lee, J., Kim, K., Shin, E., Huh, M.: Form: a feature-oriented reuse method with domain-specific reference architectures. Ann. Softw. Eng. 5(1), 143 (1998). https://doi.org/10.1023/A:1018980625587

    Article  Google Scholar 

  30. Kästner, C., Apel, S., Ostermann, K.: The road to feature modularity? In: International Workshop on Feature-Oriented Software Development (FOSD), pp. 1–8. ACM Press, New York (2011). https://doi.org/10.1145/2019136.2019142

  31. Kotha, S.: From mass production to mass customization: the case of the national industrial bicycle company of Japan. Eur. Manag. J. 14(5), 442–450 (1996). https://doi.org/10.1016/0263-2373(96)00037-0

    Article  Google Scholar 

  32. Krüeger, C.W.: Easing the transition to software mass customization. In: van der Linden, F. (ed.) Software Product-Family Engineering, pp. 282–293. Springer, Berlin (2002)

    Chapter  MATH  Google Scholar 

  33. Krüger, J., Berger, T.: An empirical analysis of the costs of clone- and platform-oriented software reuse. In: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2020, pp. 432–444. Association for Computing Machinery, New York (2020). https://doi.org/10.1145/3368089.3409684

  34. Krüeger, C.W., Clements, P.C.: Second generation systems and software product line engineering. In: Proceedings of the 19th International Conference on Software Product Line, SPLC ’15, pp. 388–389. Association for Computing Machinery, New York (2015). https://doi.org/10.1145/2791060.2798047

  35. Krüger, J., Mahmood, W., Berger, T.: Promote-pl: a round-trip engineering process model for adopting and evolving product lines. In: Proceedings of the 24th ACM Conference on Systems and Software Product Line, SPLC ’20, vol. A. Association for Computing Machinery, New York (2020). https://doi.org/10.1145/3382025.3414970

  36. Linden, F.J.v.d., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer, Berlin (2007)

    Google Scholar 

  37. Lisboa, L.B., Garcia, V.C., Lucrédio, D., de Almeida, E.S., de Lemos Meira, S.R., de Mattos Fortes, R.P.: A systematic review of domain analysis tools. Inf. Softw. Technol. 52(1), 1–13 (2010). https://doi.org/10.1016/j.infsof.2009.05.001

    Article  Google Scholar 

  38. Lucas Robert E., J.: Lectures on Economic Growth, 1 edn. Harvard University Press, Cambridge (2002)

    Google Scholar 

  39. Neves, G.S., Vilain, P.: Reactive variability realization with test driven development and refactoring. In: The 26th International Conference on Software Engineering and Knowledge Engineering, pp. 100–105 (2014)

    Google Scholar 

  40. Niu, N., Easterbrook, S.: Extracting and modeling product line functional requirements. In: 2008 16th IEEE International Requirements Engineering Conference, pp. 155–164 (2008). https://doi.org/10.1109/RE.2008.49

  41. Northrop, L.M.: Sei’s software product line tenets. IEEE Softw. 19(4), 32–40 (2002). https://doi.org/10.1109/MS.2002.1020285

    Article  Google Scholar 

  42. Oizumi, W.N., Contieri Junior, A.C., Correia, G.G., Colanzi, T.E., Ferrari, S., Gimenes, I.M.S., OliveiraJr, E., Garcia, A.F., Masiero, P.C.: On the proactive design of product-line architectures with aspects: an exploratory study. In: 2012 IEEE 36th Annual Computer Software and Applications Conference, pp. 273–278 (2012). https://doi.org/10.1109/COMPSAC.2012.38

  43. OliveiraJr, E., Gimenes, I.M.S., Huzita, E.H.M., Maldonado, J.C.: A variability management process for software product lines. In: Proceedings of the 2005 Conference of the Centre for Advanced Studies on Collaborative Research, CASCON ’05, pp. 225–241. IBM Press, Indianapolis (2005)

    Google Scholar 

  44. OliveiraJr, E., Gimenes, I.M.S., Maldonado, J.C.: Systematic management of variability in UML-based software product lines. J. Univ. Comput. Sci. 16(17), 2374–2393 (2010)

    Google Scholar 

  45. Pohl, K., Böckle, G., Linden, F.J.v.d.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Berlin (2005)

    Google Scholar 

  46. SEI: Software Engineering Institute – Framework for Software Product Line Practice, Version 5.0. https://resources.sei.cmu.edu/asset_files/WhitePaper/2012_019_001_495381.pdf

  47. WebArchive: Ford’s assembly line turns 100: how it changed manufacturing and society. https://web.archive.org/web/20131130021237/http://www.nydailynews.com/autos/ford-assembly-line-turns-100-changed-society-article-1.1478331

  48. Weiss, D.M., Lai, C.T.R.: Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley Longman Publishing Co. Inc., Boston (1999)

    Google Scholar 

  49. Wille, D., Runge, T., Seidl, C., Schulze, S.: Extractive software product line engineering using model-based delta module generation. In: Proceedings of the Eleventh International Workshop on Variability Modelling of Software-Intensive Systems, VAMOS ’17, pp. 36–43. ACM, New York (2017). https://doi.org/10.1145/3023956.3023957

Download references

Acknowledgements

Prof. David would like to thank the Project (RTI2018-101204-B-C22, OPHELIA), funded by FEDER/Ministry of Science and Innovation – State Research Agency; and the Junta de Andalucia COPERNICA (P20_01224) and METAMORFOSIS (FEDER_US-1381375) projects.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Edson OliveiraJr .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

OliveiraJr, E., Benavides, D. (2023). Principles of Software Product Lines. In: OliveiraJr, E. (eds) UML-Based Software Product Line Engineering with SMarty. Springer, Cham. https://doi.org/10.1007/978-3-031-18556-4_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-18556-4_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-18555-7

  • Online ISBN: 978-3-031-18556-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics