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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Apel, S., Kästner, C.: An overview of feature-oriented software development. J. Object Technol. 8(5), 49–84 (2009)
Apel, S., Batory, D., Kstner, C., Saake, G.: Feature-Oriented Software Product Lines: Concepts and Implementation. Springer Publishing Company, New York (2013)
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
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)
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)
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
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
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)
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)
Clements, P.: Being proactive pays off. IEEE Softw. 19(4), 28 (2002). https://doi.org/10.1109/MS.2002.1020283
Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley, Boston (2002)
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
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)
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)
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
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
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)
Gomaa, H.: Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. Addison Wesley Longman Publishing Co. Inc., (2004)
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)
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
Hobsbawm, E.: The Age of Revolution: Europe 1789–1848, 1 edn. Weidenfeld & Nicolson Ltd., London (1996)
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
ISO/IEC: ISO/IEC/IEEE 24765:2010 – Systems and software engineering: vocabulary. https://www.iso.org/standard/50518.html
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
Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture, Process and Organization for Business Success. ACM Press/Addison-Wesley Publishing Co., New York (1997)
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
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)
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
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
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
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
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)
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
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
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
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)
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
Lucas Robert E., J.: Lectures on Economic Growth, 1 edn. Harvard University Press, Cambridge (2002)
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)
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
Northrop, L.M.: Sei’s software product line tenets. IEEE Softw. 19(4), 32–40 (2002). https://doi.org/10.1109/MS.2002.1020285
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
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)
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)
Pohl, K., Böckle, G., Linden, F.J.v.d.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Berlin (2005)
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
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
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)
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 Springer Nature Switzerland AG
About this chapter
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)