SoftVarE-Group / Course-on-Software-Product-Lines

Material for lectures on software product lines
Creative Commons Attribution Share Alike 4.0 International
11 stars 0 forks source link

Potentially revise terminology for configurable software #20

Open ekuiter opened 4 months ago

ekuiter commented 4 months ago

Currently, the course promises to teach implementation techniques for software product lines. However, not all presented implementation techniques are specific to software product lines (i.e., they do not fit the definition of a software product line well).

For example:

This is somewhat problematic, as I find myself struggling to delineate what a software product line is or is not in the exercise. I also find myself arguing that the lecture presents a somewhat idealized image of a software product line, which does not necessarily correspond to what students will encounter and build in practice.

I think this is mostly a philosophical/semantic issue of terminology and could probably be fixed or at least improved by (briefly) discussing and comparing (for example) the following concepts in the (first?) lecture, for example in a picture (e.g., a Venn diagram):

... and then concluding this philosophical discussion with the remark that we basically consider these all to be the same thing and that we won't distinguish them in the remainder of the lecture. Or even better, we could distinguish them in the remainder of the lecture by fitting them into the picture, respectively (which also enables students to name a kind of variability correctly when they see it).

I think the lecture is currently needlessly restrictive with its titular focus on "software product lines". We actually teach all kinds of techniques for implementing software variability in general, which kind of muddles the concept of what a software product line actually is. In principle, one could argue that the lecture could even be renamed to "software variability" or "configurable systems" (although I probably would not go that far).

(partially inspired by reading Bringing Together Configuration Research: Towards a Common Ground, and other papers arguing/giving up arguing about terminology)

tthuem commented 4 months ago

I do not think that throwing more terms to students is the right way to go here. However, we could do this in Lecture 8 when we compare the different techniques and could provide an overview in terms of a Venn diagramm.

The term SPL is more used as that of a vision and we are not claiming that every technique is actually leading to a product line, especially for the ad-hoc techniques.