Do Code Smells Impact the Effort of Different Maintenance Programming Activities?
Chapter, Peer reviewed, Chapter
Published version

View/ Open
Date
2016Metadata
Show full item recordCollections
Original version
Soh, Yamashita AY, Khomh: Do Code Smells Impact the Effort of DifferentMaintenance Programming Activities?. In: Jiu. 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), 2016. IEEE p. 393-402 http://dx.doi.org/10.1109/SANER.2016.103Abstract
Empirical studies have shown so far that code smells
have relatively low impact over maintenance effort at file level.
We surmise that previous studies have found low effects of code
smells because the effort considered is a “sheer-effort” that does
not distinguish between the kinds of developers’ activities. In
our study, we investigate the effects of code smells at the activity
level. Examples of activities are: reading, editing, searching, and
navigating, which are performed independently over different
files during maintenance. We conjecture that structural attributes
represented in the form of different code smells do indeed
have an effect on the effort for performing certain kinds of
activities. To verify this conjecture, we revisit a previous study
about the impact of code smell on maintenance effort, using
the same dataset, but considering activity effort. Six professional
developers were hired to perform three maintenance tasks on four
functionally equivalent Java Systems. Each developer performs
two maintenance tasks. During maintenance task, we monitor
developers’ logs. Then, we define an annotation schema to
identify developers’ activities and assess whether code smells
affect different maintenance activities. Results show that different
code smells affect differently activity effort. Yet, the size of the
changes performed to solve the task impacts the effort of all
activities more than code smells and file size. While code smells
impact the editing and navigating effort more than file size, the
file size impacts the reading and searching activities more than
code smells. One major implication of these results is that if
code smells indeed affect the effort of certain kinds of activities, it
means that their effects are contingent on the type of maintenance
task at hand, where some kinds of activities will become more
predominant than others.