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.
Supplemental Material
Available for Download
Supplemental movie, appendix, image and software files for, Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Paul Clements and Linda Northrop. 2001. Software Product Lines: Practices and Patterns. SEI Series in Software Engineering, Addison-Wesley.Google Scholar
- 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 ScholarDigital Library
- Steve Cooper and Steve Cunningham. 2010. Teaching computer science in context. ACM Inroads 1, 1 (March 2010), 5--8. Google ScholarDigital Library
- CVL. 2014. Common Variability Language (CVL). Retrieved from http://www.omgwiki.org/variability/doku.php?id=start.Google Scholar
- Krzysztof Czarnecki and Ulrich W. Eisenecker. 2000. Generative Programming: Methods, Techniques, and Applications. Addison-Wesley.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Emelie Engström and Per Runeson. 2011. Software product line testing—A systematic mapping study. Info. Softw. Technol. 53, 1 (2011), 2--13.Google ScholarDigital Library
- 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 Scholar
- Hassan Gomaa. 2005. Designing Software Product Lines with UML. Addison-Wesley. Google ScholarDigital Library
- 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 ScholarDigital Library
- Mike Hinchey, Sooyong Park, and Klaus Schmid. 2012. Building dynamic software product lines. IEEE Comput. 45, 10 (2012), 22--26. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- Klaus Pohl, Günter Böckle, and Frank van der Linden. 2005. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- David Weiss and Chi Tau Robert Lai. 1999. Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley Professional.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
Index Terms
- Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
Recommendations
Teaching software product lines: a snapshot of current practices and challenges (journal-first abstract)
SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1This extended abstract summarizes our article entitled "Teaching Software Product Lines: A Snapshot of Current Practices and Challenges" published in the ACM Transactions on Computing Education, vol. 18 in 2017 (http://doi.acm.org/10.1145/3088440). The ...
A survey on teaching of software product lines
VaMoS '14: Proceedings of the 8th International Workshop on Variability Modelling of Software-Intensive SystemsWith around two decades of existence, the community of Software Product Line (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 ...
Deriving variability patterns in software product lines by ontological considerations
ER'12: Proceedings of the 31st international conference on Conceptual ModelingVariability modeling is widely used in software product line engineering to support reusability. Specifically, it is used in the derivation of concrete software products from a reusable solution within a family of products. To help manage variability, ...
Comments