With 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 support the next generation of engineers to build highly complex SPLs. Yet, it is unclear how SPLs are taught, what are the possible missing gaps and difficulties faced, what are the benefits, or what is the material available. In this paper, we carry out a survey with over 30 respondents with the purpose of capturing a snapshot of the state of teaching in our community. We report and discuss quantitative as well as qualitative results of the survey. We build upon them and sketch six concrete actions to continue improving the state of practice of SPL teaching.
1. A Survey on Teaching of
Software Product Lines
Mathieu Acher
Roberto Lopez-Herrejon
Rick Rabiser
Inria/IRISA
University of Rennes 1
Rennes, France
SEA
Johannes Kepler Univ.
Linz, Austria
CDL MEVSS
Johannes Kepler Univ.
Linz, Austria
mathieu.acher@irisa.fr
www.mathieuacher.com
roberto.lopez@jku.at
www.sea.jku.at
rick.rabiser@jku.at
mevss.jku.at
3. Motivation and Goals
•
•
•
•
SPL now well-established in research and industry; body of knowledge growing
Scope continuously broadens
Education has a key role to play in disseminating the SPL knowledge
Research can also benefit from teaching
• Teaching SPLs is challenging
• Relatively young discipline
• SPLE encompasses a variety of topics
• Teaching material suitable for attracting students?
• Dedicated venues for SW Eng. teaching (SEET@ICSE, CSEE&T, Educators
Symposium at MODELS) -- Not for SPLs!
• Currently unclear, our goal: find out…
•
•
•
•
…how SPLs are taught
…what are the possible gaps and difficulties faced
…what are the benefits
…what is the material available
Jan, 2014
VaMoS 2014, Nice, France
3
4. Survey Design
• 91 contacts
• pool of SPL researchers we know teach
• search for SPL courses online
• review SPLC and VaMoS papers
• on-line questionnaire
(http://www.surveygizmo.com/s3/1342346
/Teaching-Software-Product-Lines)
• 13 enumerative and 5 open questions
• feedback by colleagues to refine
questionnaire
• 34 complete responses and 15 partial
• Decision: only analyze complete responses
• 13 enumerative questions 5 categories
Jan, 2014
VaMoS 2014, Nice, France
4
5. Survey Results
Respondents and their institutions
• 34 responses from 13 countries
• Avg. SPL experience 10yrs, avg. SPL teaching experience 6yrs
• Half say their research exp. = their teaching exp.
• Institutions
•
•
•
•
15 research-focused
9 teaching-focused (colleges)
7 have both focuses
3 industrial institutions
• Departments
• CS (13), SE (9), IT (2)
• others (10) -- all CS-related
Portugal, 1
USA, 6
VaMoS 2014, Nice, France
Colombia, 1
France, 2
Switzerland,
1
Spain, 3
Korea, Rep.
Of, 1
Japan, 1
Italy, 1
Israel, 2
• 16 full and self-contained SPL courses
• 18 teach SPL topics as part of other courses
Jan, 2014
Austria, 2
Canada, 1
Germany, 1
2
5
6. Survey Results
Literature used
• 28 respondents use these books
• 25 use research papers, selected based on personal preferences
• 12 use case studies, e.g., by van der Linden et al. 2007; BigLever;
Renault, STAGO, LINUX, and SPLOT; and own case studies
10
9
8
7
6
5
4
3
2
1
0
Apel et al.
2013
Jan, 2014
Clements Czarnecki
and
and
Northrop Eisenecker
2001
2000
VaMoS 2014, Nice, France
Gomaa
2005
Pohl et al.
2005
van der Weiss and
Linden et Lai 1999
al. 2007
6
7. Survey Results
Tools used
SPL Tool
used by
None
8
FeatureIDE
6
BigLever's GEARS
4
FeatureHouse
3
pure system's pure::variants
3
AHEAD
2
CIDE
2
CVL
2
Feature Modelling Plug-in (FMP)
2
DOPLER, EasyProducer, FaMa, Familiar, FeatureMapper, Munge,
1
SPLAR, SPLOT, VARIAMOS, Varmod
each
C++, Metaprogramming, Software Generators, Xtext, MPS
1
Different tools for creating feature diagrams and UML-based models
1
Feature modeling UML tools extended for SPL
1
Haskell-Embedded Variation DSL
1
Own research prototypes
1
also see the survey by Berger et al. VaMoS 2013
Jan, 2014
VaMoS 2014, Nice, France
7
8. Survey Results
Length, audience
• Most courses are held over a semester (26)
• 3 "on demand", 2 as week-long courses, quarter (1), 1-2 days
seminars (1), and with a flexible schedule (1)
• Average course length 24 hours (min: 1h; max: 120h)
Only Undergrads
14
Undergrads, Grads
, and Industry
people
12
10
8
Only Grads
6
4
2
Undergrads
students and
Industry people
Grads and Industry
people
Jan, 2014
VaMoS 2014, Nice, France
0
Only Industry
People
Undergrads and
Grads
8
9. Survey Results
Practical time, SPL lifecycle coverage
• Practical time/overall course time 65% in average
Topic
Requirements engineering
Testing
Modelling
Implementation
Maintenance & Evolution
Reverse engineering & SPL Adoption
Processes
Other
Department
CS SE OT
7 4 12
3 1 4
9 8 13
9 8 8
9 3 5
7 2 1
5 6 8
5 2 3
Total
23
8
30
25
17
10
19
10
CS: Computer Science, SE: Software Engineering, OT: Other departments
Jan, 2014
VaMoS 2014, Nice, France
9
10. Survey Results
Challenges of teaching SPL
• Lack of and availability of well-documented real-world examples and
case studies suitable for teaching (16)
• Complexity of the subject and required background knowledge (9)
• Lack of and availability of SPL tools (7)
• Acceptance on the curriculum and opening the mind of students (4)
• "Even software engineering can be hard to teach as developing
large-scale systems does not connect to students hands-on
experience of developing rather small solutions. Teaching SPL
means SE for many systems, this does even less relate to students'
experiences."
Jan, 2014
VaMoS 2014, Nice, France
10
11. Survey Results
How to improve the state of teaching SPL
• Improved textbook examples and case studies (13)
• Better tools for students (7)
• Broaden the focus of teaching SPLs (3)
• SPL is already mainstream! (2)
• Other ideas
• videos of experts to motivate SPLs and explain key concepts and ideas
• incorporate the notions and terminology of SPLs more in other courses
• develop a standard curriculum and evaluation scheme for teaching SPLs
Jan, 2014
VaMoS 2014, Nice, France
11
12. Survey Results
Impact of teaching SPL
• On research
•
•
•
•
•
Student participation in research evaluations (11)
Finding research personnel (8)
Feedback on and discussion about tools, examples, case studies (6)
Connecting with industry (5)
Discussion of open research issues with students (2)
• On practice
• Teaching SPLE = preparation of introduction of SPLE in industry (13)
• Makes students aware of the topic students eventually end up in
industry or even are already working in industry increases awareness of
SPL in industry and trains future practitioners (7)
• Teaching SPLs can be the start of industry-academia collab. projects (2)
Jan, 2014
VaMoS 2014, Nice, France
12
13. Survey Results
Other comments
• Teaching SPLs together with model-driven development
• very interesting from a teaching perspective
• Having a common, clearly defined basis of terminology and
concepts taught at the majority of the institutions
• would help a lot
• Real-world SPLE is very different from research
• Variability models seem to be the key topic in research
• In practice it often is just one technique for some roles
• Industry often successfully manages variability w/o dedicated models
• Our survey was not a perfect fit for SPL consultants and trainers
• True; we have to address this in our future work
• Invite consultants/trainers in a workshop
Jan, 2014
VaMoS 2014, Nice, France
13
14. What now? Perspectives?
Here, we need your help!
• Organize SPL teaching workshop at SPLC
• Create a virtual meeting place for the community
• teaching materials, tools, case studies, examples for teaching
• Later
• Tool and artifact recognition at conferences or workshops, awards
• Strive for teaching benchmarks
• Involve industry in teaching
• Develop a baseline curriculum and evaluation scheme
Thank You! Questions now or later to
mathieu.acher@irisa.fr – roberto.lopez@jku.at – rick.rabiser@jku.at
Jan, 2014
VaMoS 2014, Nice, France
14
Notes de l'éditeur
SPL teaching is probably performed concurrently with research and thus it might not always be the result of mature research experience.software engineering (8)requirements engineering (4)automated software design (1)principles of software construction (1)domain engineering (1)software architecture (1)factory development of software (1)Given the relative novelty of the topic, it is not surprising that over half of respondents teach SPL topics as part of other courses.
While using text books and some research papers for teaching is pretty much standard in computer science, using case studies is also essential, especially for teaching SPLs. Why only about a third of respondents use case studies to teach SPLs should be further investigated (cf. Section 3.6)