Comparing the influence of using feature-oriented programming and conditional compilation on comprehending feature-oriented software

被引:0
|
作者
Alcemir Rodrigues Santos
Ivan do Carmo Machado
Eduardo Santana de Almeida
Janet Siegmund
Sven Apel
机构
[1] Federal University of Bahia,
[2] University of Passau,undefined
来源
关键词
Quasi-experiments; Replication; Feature-oriented software development; FeatureHouse; Conditional compilation; Graduate students;
D O I
暂无
中图分类号
学科分类号
摘要
Several variability representations have been proposed over the years. Software maintenance in the presence of variability is known to be hard. One of the reasons is that maintenance tasks require a large amount of cognitive effort for program comprehension. In fact, the different ways of representing variability in source code might influence the comprehension process in different ways. Despite the differences, there is little evidence about how these variability representations – such as conditional-compilation directives or feature-oriented programming – influence program comprehension. Existing research has focused primarily on either understanding how code using modern paradigms evolves compared to the traditional way of realizing variability, namely conditional compilation, or on the aspects influencing the comprehension of conditional compilation only. We used two different programs implemented in Java and each of these variability representations. As Java does not support conditional compilation natively, we relied on the mimicking (i.e., preprocessing annotations in comments) that has been used in the literature. Our results show no significant statistical differences regarding the evaluated measures (correctness, understanding, or response time) in the tasks. Our heterogeneous sample allowed us to produce evidence about the influence of using CC and FOP variability representations on the aspects involved in the comprehension of feature-oriented software, while addressing bug-finding tasks.
引用
收藏
页码:1226 / 1258
页数:32
相关论文
共 50 条
  • [1] Comparing the influence of using feature-oriented programming and conditional compilation on comprehending feature-oriented software
    Santos, Alcemir Rodrigues
    Machado, Ivan do Carmo
    de Almeida, Eduardo Santana
    Siegmund, Janet
    Apel, Sven
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2019, 24 (03) : 1226 - 1258
  • [2] Metrics for Feature-Oriented Programming
    Abilio, Ramon
    Vale, Gustavo
    Figueiredo, Eduardo
    Costa, Heitor
    [J]. PROCEEDINGS OF 2016 IEEE/ACM 7TH INTERNATIONAL WORKSHOP ON EMERGING TRENDS IN SOFTWARE METRICS (WETSOM), 2016, : 36 - 42
  • [3] Feature-Oriented Control Programming
    Fors, Niklas
    Theorin, Alfred
    Robertz, Sven Gestegard
    Hedin, Gorel
    [J]. 2020 25TH IEEE INTERNATIONAL CONFERENCE ON EMERGING TECHNOLOGIES AND FACTORY AUTOMATION (ETFA), 2020, : 1043 - 1046
  • [4] rbFeatures: Feature-oriented programming with Ruby
    Guenther, Sebastian
    Sunkle, Sagar
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (03) : 152 - 173
  • [5] Access control in feature-oriented programming
    Apel, Sven
    Kolesnikov, Sergiy
    Liebig, Joerg
    Kaestner, Christian
    Kuhlemann, Martin
    Leich, Thomas
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (03) : 174 - 187
  • [6] An Overview of Feature-Oriented Software Development
    Apel, Sven
    Kaestner, Christian
    [J]. JOURNAL OF OBJECT TECHNOLOGY, 2009, 8 (05): : 49 - 84
  • [7] Feature-Oriented Programming with Object Algebras
    Oliveira, Bruno C. D. S.
    van der Storm, Tijs
    Loh, Alex
    Cook, William R.
    [J]. ECOOP 2013 - OBJECT-ORIENTED PROGRAMMING, 2013, 7920 : 27 - 51
  • [8] FEATURE-ORIENTED DESIGN
    CHAHARBAGHI, H
    [J]. FOURTH INTERNATIONAL CONFERENCE ON COMPUTER-AIDED PRODUCTION ENGINEERING, 1988, : 363 - 366
  • [9] Feature-oriented programming and the AHEAD tool suite
    Batory, D
    [J]. ICSE 2004: 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2004, : 702 - 703
  • [10] Feature-oriented programming: A fresh look at objects
    Prehofer, C
    [J]. ECOOP'97: OBJECT-ORIENTED PROGRAMMING, 1997, 1241 : 419 - 443