Aspects influencing feature-oriented software comprehension: observations from a focus group

Feature-oriented software development has been considered as a reasonable way to address the ever increasing need of handling variability in software systems. However, we still lack to understand the influence of the use of different ways to implement variability on program comprehension and consequently on the effort they demand from developers, so they could successfully accomplish the assigned maintenance tasks. This paper addresses it presenting a qualitative study carried out as an focus group aimed at identify factors influencing program comprehension. The findings of our study were grouped into four groups, including the followed strategies to understand feature-oriented software, the factors hindering and easing such understanding, as well as general observations on the effort demanded to maintain software either using C onditional C ompilation or F eature H ouse .

[1]  R. Likert “Technique for the Measurement of Attitudes, A” , 2022, The SAGE Encyclopedia of Research Design.

[2]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[3]  Alessandro F. Garcia,et al.  The Discipline of Preprocessor-Based Annotations - Does #ifdef TAG n't #endif Matter , 2017, 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).

[4]  Thomas Leich,et al.  Do background colors improve program comprehension in the #ifdef hell? , 2012, Empirical Software Engineering.

[5]  Sven Apel,et al.  Does the discipline of preprocessor annotations matter?: a controlled experiment , 2014 .

[6]  Janice Singer,et al.  Guide to Advanced Empirical Software Engineering , 2007 .

[7]  Eduardo Santana de Almeida,et al.  RiSE events: a testbed for software product lines experimentation , 2016, VACE@ICSE.

[8]  Thomas Leich,et al.  Tool support for feature-oriented software development: featureIDE: an Eclipse-based approach , 2005, eclipse '05.

[9]  Sven Apel,et al.  Comparing program comprehension of physically and virtually separated concerns , 2012, FOSD '12.

[10]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[11]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[12]  Claus Brabrand,et al.  Variability through the Eyes of the Programmer , 2017, 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).

[13]  Márcio Ribeiro,et al.  The Love/Hate Relationship with the C Preprocessor: An Interview Study , 2015, ECOOP.

[14]  Claus Brabrand,et al.  How Does the Degree of Variability Affect Bug Finding? , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[15]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[16]  Sven Apel,et al.  Measuring and modeling programming experience , 2013, Empirical Software Engineering.

[17]  Eduardo Santana de Almeida,et al.  RiPLE-HC: javascript systems meets spl composition , 2016, SPLC.