skip to main content
research-article

Teaching Software Product Lines: A Snapshot of Current Practices and Challenges

Published:27 October 2017Publication History
Skip Abstract Section

Abstract

Software Product Line (SPL) engineering has emerged to provide the means to efficiently model, produce, and maintain multiple similar software variants, exploiting their common properties, and managing their variabilities (differences). With over two decades of existence, the community of SPL researchers and practitioners is thriving, as can be attested by the extensive research output and the numerous successful industrial projects. Education has a key role to support the next generation of practitioners to build highly complex, variability-intensive systems. Yet, it is unclear how the concepts of variability and SPLs are taught, what are the possible missing gaps and difficulties faced, what are the benefits, and what is the material available. Also, it remains unclear whether scholars teach what is actually needed by industry. In this article, we report on three initiatives we have conducted with scholars, educators, industry practitioners, and students to further understand the connection between SPLs and education, that is, an online survey on teaching SPLs we performed with 35 scholars, another survey on learning SPLs we conducted with 25 students, as well as two workshops held at the International Software Product Line Conference in 2014 and 2015 with both researchers and industry practitioners participating. We build upon the two surveys and the workshops to derive recommendations for educators to continue improving the state of practice of teaching SPLs, aimed at both individual educators as well as the wider community.

Skip Supplemental Material Section

Supplemental Material

References

  1. Ebrahim Khalil Abbasi, Arnaud Hubaux, Mathieu Acher, Quentin Boucher, and Patrick Heymans. 2013. The anatomy of a sales configurator: An empirical study of 111 cases. In Proceedings of the International Conference on Advanced Information Systems Engineering (CAiSE’13). Springer.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert B. France. 2013. FAMILIAR: A domain-specific language for large scale management of feature models. Sci. Comput. Program. 78, 6 (2013), 657--681. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Mathieu Acher, Roberto Lopez-Herrejon, and Rick Rabiser. 2014a. A survey on teaching of software product lines. In Proceedings of the 8th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS’14). ACM, 3--10.Google ScholarGoogle Scholar
  4. Mathieu Acher, Roberto E. Lopez-Herrejon, and Rick Rabiser. 2014b. SPLTea 2014: First international workshop on software product line teaching. In Proceedings of the 18th International Software Product Line Conference (SPLC’14). 352.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Mathieu Acher, Roberto E. Lopez-Herrejon, and Rick Rabiser. 2015. SPLTea 2015: Second international workshop on software product line teaching. In Proceedings of the 19th International Conference on Software Product Line (SPLC’15). 396.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Vander Alves, Nan Niu, Carina Alves, and George Valenca. 2010. Requirements engineering for software product lines: A systematic literature review. Info. Software Technol. 52, 8 (2010), 806--820. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer.Google ScholarGoogle Scholar
  8. Anya Helene Bagge, Ralf Lämmel, and Vadim Zaytsev. 2014. Reflections on courses for software language engineering. In Proceedings of the 10th Educators’ Symposium @ MODELS 2014 (EduSymp’14), Workshop. Springer LNCS, 1--10.Google ScholarGoogle Scholar
  9. Kacper Bak, Zinovy Diskin, Michal Antkiewicz, Krzysztof Czarnecki, and Andrzej Wasowski. 2016. Clafer: Unifying class and feature modeling. Softw. Syst. Model. 15, 3 (2016), 811--845. DOI:http://dx.doi.org/10.1007/s10270-014-0441-1 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Sarah Beecham, Tony Clear, John Barr, Mats Daniels, Michael Oudshoorn, and John Noll. 2017. Preparing tomorrow’s software engineers for work in a global environment. IEEE Softw. 34, 1 (2017), 9--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David Benavides, Sergio Segura, and Antonio Ruiz Cortés. 2010. Automated analysis of feature models 20 years later: A literature review. Info. Syst. 35, 6 (2010), 615--636.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Nelly Bencomo, Svein O. Hallsteinsen, and Eduardo Santana de Almeida. 2012. A view of the dynamic software product line landscape. IEEE Comput. 45, 10 (2012), 36--41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Thorsten Berger, Ralf Rublack, Divya Nair, Joanne M. Atlee, Martin Becker, Krzysztof Czarnecki, and Andrzej Wasowski. 2013a. A survey of variability modeling in industrial practice. In Proceedings of the7th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS’13). ACM,7--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Thorsten Berger, Steven She, Rafael Lotufo, Andrzej Wasowski, and Krzysztof Czarnecki. 2013b. A study of variability models and languages in the systems software domain. IEEE Trans. Softw. Eng. 39, 12 (2013), 1611--1640. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Jan Bosch and Petra Bosch-Sijtsema. 2010. From integration to composition: On the impact of software product lines, global development and ecosystems. J. Syst. Softw. 83, 1 (2010), 67--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Soumen Chakrabarti, Martin Ester, Usama Fayyad, Johannes Gehrke, Jiawei Han, Shinichi Morishita, Gregory Piatetsky-Shapiro, and Wei Wang. 2006. Data Mining Curriculum: A Proposal (Version 1.0) (April 2006). Retrieved from http://www.sigkdd.org/curriculum/index.html.Google ScholarGoogle Scholar
  17. Lianping Chen and Muhammad Ali Babar. 2011. A systematic review of evaluation of variability management approaches in software product lines. Info. Softw. Technol. 53, 4 (2011), 344--362. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Paul Clements and Linda Northrop. 2001. Software Product Lines: Practices and Patterns. SEI Series in Software Engineering, Addison-Wesley.Google ScholarGoogle Scholar
  19. Philippe Collet, Sébastien Mosser, Simon Urli, Mireille Blay-Fornarino, and Philippe Lahire. 2014. Experiences in teaching variability modeling and model-driven generative techniques. In Proceedings of the 18th International Software Product Line Conference (ICSE’14): Companion Volume for Workshops, Demonstrations and Tools—Volume 2. ACM, 26--29.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Steve Cooper and Steve Cunningham. 2010. Teaching computer science in context. ACM Inroads 1, 1 (March 2010), 5--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. CVL. 2014. Common Variability Language (CVL). Retrieved from http://www.omgwiki.org/variability/doku.php?id=start.Google ScholarGoogle Scholar
  22. Krzysztof Czarnecki and Ulrich W. Eisenecker. 2000. Generative Programming: Methods, Techniques, and Applications. Addison-Wesley.Google ScholarGoogle Scholar
  23. Krzysztof Czarnecki, Paul Grünbacher, Rick Rabiser, Klaus Schmid, and Andrzej Wasowski. 2012. Cool features and tough decisions: A comparison of variability modeling approaches. In Proceedings of the 6th International Workshop on Variability Modeling of Software-Intensive Systems (VaMoS’12). ACM, 173--182.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Paulo Anselmo da Mota Silveira Neto, Ivan do Carmo Machado, John D. McGregor, Eduardo Santana de Almeida, and Silvio Romero de Lemos Meira. 2011. A systematic mapping study of software product lines testing. Info Softw. Technol. 53, 5 (2011), 407--423. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Yael Dubinsky, Julia Rubin, Thorsten Berger, Slawomir Duszynski, Martin Becker, and Krzysztof Czarnecki. 2013. An exploratory study of cloning in industrial software product lines. In Proceedings of the 17th European Conference on Software Maintenance and Reengineering (CSMR’13). IEEE, 25--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Emelie Engström and Per Runeson. 2011. Software product line testing—A systematic mapping study. Info. Softw. Technol. 53, 1 (2011), 2--13.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Carlo Ghezzi and Dino Mandrioli. 2005. The challenges of software engineering education. In Proceedings of the International Conference on Software Engineering (ICSE’05). Springer, St. Louis, MO, 115--127.Google ScholarGoogle Scholar
  28. Hassan Gomaa. 2005. Designing Software Product Lines with UML. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Axel Halin, Alexandre Nuttinck, Mathieu Acher, Xavier Devroey, Gilles Perrouin, and Patrick Heymans. 2017. Yo variability! JHipster: A playground for web-apps analyses. In Proceedings of the 11th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS’17). ACM, 44--51.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Mike Hinchey, Sooyong Park, and Klaus Schmid. 2012. Building dynamic software product lines. IEEE Comput. 45, 10 (2012), 22--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Gerald Holl, Paul Grünbacher, and Rick Rabiser. 2012. A systematic review and an expert survey on capabilities supporting multi product lines. Info. Softw. Technol. 54, 8 (2012), 828--852. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Arnaud Hubaux, Andreas Classen, Marcílio Mendonça, and Patrick Heymans. 2010. A preliminary review on the application of feature diagrams in practice. In Proceedings of the 4th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS’10). ICB Research Report, Universität Duisburg-Essen, Linz, Austria, 53--59.Google ScholarGoogle Scholar
  33. Martin Fagereng Johansen, Øystein Haugen, and Franck Fleurey. 2011. A survey of empirics of strategies for software product line testing. In Proceedings of the IEEE 4th International Conference on Software Testing, Verification and Validation (ICST’11) Workshops. IEEE, 266--269.Google ScholarGoogle ScholarCross RefCross Ref
  34. Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak, and A. Spencer Peterson. 1990. Feature-oriented Domain Analysis (FODA) Feasibility Study. Technical Report. Technical Report CMU/SEI-90TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA.Google ScholarGoogle Scholar
  35. Ludwik Kuzniarz and Luiz Eduardo G. Martins. 2016. Teaching model-driven software development: A pilot study. In Proceedings of the 2016 ITiCSE Working Group Reports. ACM, 45--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Daniela Lettner, Michael Petruzelka, Rick Rabiser, Florian Angerer, Herbert Prähofer, and Paul Grünbacher. 2013. Custom-developed vs. model-based configuration tools: Experiences from an industrial automation ecosystem. In Proceedings of MAPLE/SCALE 2013 Workshop at the 17th International Software Product Line Conference (SPLC’13). ACM, 52--58.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Jörg Liebig, Sven Apel, Christian Lengauer, Christian Kästner, and Michael Schulze. 2010. An analysis of the variability in forty preprocessor-based software product lines. In Proceedings of the 32nd International Conference on Software Engineering (ICSE’10). IEEE, 105--114.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Jabier Martinez, Tewfik Ziadi, Tegawendé F. Bissyandé, Jacques Klein, and Yves Le Traon. 2015. Bottom-up adoption of software product lines: A generic and extensible approach. In Proceedings of the 19th International Conference on Software Product Line (SPLC’15). ACM, 101--110.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. John D. McGregor. 2014. Ten years of the arcade game maker pedagogical product line. In Proceedings of the 18th International Software Product Lines Conference (SPLC’14)—Companion Volume for Workshop, Tools and Demo papers. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Brice Morin, Olivier Barais, Jean-Marc Jézéquel, Franck Fleurey, and Arnor Solberg. 2009. Models@ run.time to support dynamic adaptation. IEEE Comput. 42, 10 (2009), 44--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Sébastien Mosser, Philippe Collet, and Mireille Blay-Fornarino. 2014. Exploiting the internet of things to teach domain-specific languages and modeling. In Proceedings of the 10th Educators’ Symposium @ MODELS 2014 (EduSymp’14), Workshop. Springer.Google ScholarGoogle Scholar
  42. Richard F. Paige, Fiona A. C. Polack, Dimitrios S. Kolovos, Louis M. Rose, Nicholas Matragkas, and James R. Williams. 2014. Bad modelling teaching practices. In Proceedings of the 10th Educators’ Symposium @ MODELS 2014 (EduSymp’14), Workshop. Springer, 1--12.Google ScholarGoogle Scholar
  43. Klaus Pohl, Günter Böckle, and Frank van der Linden. 2005. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer.Google ScholarGoogle Scholar
  44. Rick Rabiser, Paul Grünbacher, and Deepak Dhungana. 2010. Requirements for product derivation support: Results from a systematic literature review and an expert survey. Info. Softw. Technol. 52, 3 (2010), 324--346. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Christoph Seidl and Irena Domachowska. 2014. Teaching variability engineering to cognitive psychologists. In Proceedings of the 18th International Software Product Lines Conference (SPLC’14)—Companion Volume for Workshop, Tools and Demo papers. ACM, 16--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Thomas Thüm, Christian Kästner, Fabian Benduhn, Jens Meinicke, Gunter Saake, and Thomas Leich. 2014. FeatureIDE: An extensible framework for feature-oriented software development. Sci. Comput. Program. 79 (2014), 70--85.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Frank van der Linden, Klaus Schmid, and Eelco Rommes. 2007. Software Product Lines in Action—The Best Industrial Practice in Product Line Engineering. Springer, Berlin.Google ScholarGoogle Scholar
  48. Michael Vierhauser, Rick Rabiser, and Paul Grünbacher. 2014. A case study on testing, commissioning, and operation of very-large-scale software systems. In Proceedings of the 36th International Conference on Software Engineering (ICSE’14), ICSE Companion. ACM, Hyderabad, India, 125--134.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. David Weiss and Chi Tau Robert Lai. 1999. Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley Professional.Google ScholarGoogle Scholar
  50. Jon Whittle and John Hutchinson. 2011. Mismatches between industry practice and teaching of model-driven software development. In Proceedings of Models in Software Engineering—Workshops and Symposia at MODELS 2011, Reports and Revised Selected Papers. Springer, Wellington, New Zealand, 40--47.Google ScholarGoogle Scholar
  51. Claes Wohlin, Aybüke Aurum, Lefteris Angelis, Laura Phillips, Yvonne Dittrich, Tony Gorschek, Håkan Grahn, Kennet Henningsson, Simon Kågström, Graham Low, Per Rovegard, Piotr Tomaszewski, Christine Van Toorn, and Jeff Winter. 2012. The success factors powering industry-academia collaboration. IEEE Softw. 29, 2 (2012), 67--73. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Teaching Software Product Lines: A Snapshot of Current Practices and Challenges

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Computing Education
            ACM Transactions on Computing Education  Volume 18, Issue 1
            March 2018
            127 pages
            EISSN:1946-6226
            DOI:10.1145/3155324
            Issue’s Table of Contents

            Copyright © 2017 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 27 October 2017
            • Revised: 1 April 2017
            • Accepted: 1 April 2017
            • Received: 1 April 2016
            Published in toce Volume 18, Issue 1

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader