An empirical study on the impact of AspectJ on software evolvability

被引:16
|
作者
Przybylek, Adam [1 ]
机构
[1] Gdansk Univ Technol, Fac Elect Telecommun & Informat, Narutowicza 11-12, PL-80233 Gdansk, Poland
关键词
Aspect-oriented programming; AOP; Maintainability; Understandability; Separation of concerns; Controlled experiment; EVOLUTION; DESIGN; METRICS;
D O I
10.1007/s10664-017-9580-7
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Since its inception in 1996, aspect-oriented programming (AOP) has been believed to reduce the effort required to maintain software systems by replacing cross-cutting code with aspects. However, little convincing empirical evidence exists to support this claim, while several studies suggest that AOP brings new obstacles to maintainability. This paper discusses two controlled experiments conducted to evaluate the impact of AspectJ (the most mature and popular aspect-oriented programming language) versus Java on software evolvability. We consider evolvability as the ease with which a software system can be updated to fulfill new requirements. Since a minor language was compared to the mainstream, the experiments were designed so as to anticipate that the participants were much more experienced in one of the treatments. The first experiment was performed on 35 student subjects who were asked to comprehend either Java or AspectJ implementation of the same system, and perform the corresponding comprehension tasks. Participants of both groups achieved a high rate of correct answers without a statistically significant difference between the groups. Nevertheless, the Java group significantly outperformed the AspectJ group with respect to the average completion time. In the second experiment, 24 student subjects were asked to implement (in a non-invasive way) two extension scenarios to the system that they had already known. Each subject evolved either the Java version using Java or the AspectJ version using AspectJ. We found out that a typical AspectJ programmer needs significantly fewer atomic changes to implement the change scenarios than a typical Java programmer, but we did not observe a significant difference in completion time. The overall result indicates that AspectJ has a different effect on two sub-characteristics of the evolvability: understandability and changeability. While AspectJ decreases the former, it improves one aspect of the latter.
引用
收藏
页码:2018 / 2050
页数:33
相关论文
共 50 条
  • [1] An empirical study on the impact of AspectJ on software evolvability
    Adam Przybyłek
    Empirical Software Engineering, 2018, 23 : 2018 - 2050
  • [2] Subjective evaluation of software evolvability using code smells:: An empirical study
    Mantyla, Mika V.
    Lassenius, Casper
    EMPIRICAL SOFTWARE ENGINEERING, 2006, 11 (03) : 395 - 431
  • [3] Subjective evaluation of software evolvability using code smells: An empirical study
    Mika V. Mäntylä
    Casper Lassenius
    Empirical Software Engineering, 2006, 11 : 395 - 431
  • [4] Usage and testability of AOP: An empirical study of AspectJ
    Munoz, Freddy
    Baudry, Benoit
    Delamare, Romain
    Le Traon, Yves
    INFORMATION AND SOFTWARE TECHNOLOGY, 2013, 55 (02) : 252 - 266
  • [5] Empirical Software Evolvability - Code Smells and Human Evaluations
    Mantyla, Mika V.
    2010 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 2010,
  • [6] Software evolvability
    Harrison, Rachel
    IET SOFTWARE, 2008, 2 (04) : 303 - 303
  • [7] Regression test selection for AspectJ software
    Xu, Guoqing
    Rountev, Atanas
    ICSE 2007: 29TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2007, : 65 - +
  • [8] Symbiosis and software evolvability
    Indiana University South Bend
    不详
    IT Prof, 2008, 4 (56-62): : 56 - 62
  • [9] Software-Evolvability
    Matthias Riebisch
    Stephan Bode
    Informatik-Spektrum, 2009, 32 (4) : 339 - 343
  • [10] Empirical Study of Code Smell Impact on Software Evolution
    Zhang X.-F.
    Zhu C.
    Ruan Jian Xue Bao/Journal of Software, 2019, 30 (05): : 1422 - 1437