Title
Code Smells Revisited: A Variability Perspective
Abstract
Highly-configurable software systems (also called software product lines) gain momentum in both, academia and industry. For instance, the Linux kernel comes with over 12 000 configuration options and thus, can be customized to run on nearly every kind of system. To a large degree, this configurability is achieved through variable code structures, for instance, using conditional compilation. Such source code variability adds a new dimension of complexity, thus giving rise to new possibilities for design flaws. Code smells are an established concept to describe design flaws or decay in source code. However, existing smells have no notion of variability and thus do not support flaws regarding variable code structures. In this paper, we propose an initial catalog of four variability-aware code smells. We discuss the appearance and negative effects of these smells and present code examples from real-world systems. To evaluate our catalog, we have conducted a survey amongst 15 researchers from the field of software product lines. The results confirm that our proposed smells (a) have been observed in existing product lines and (b) are considered to be problematic for common software development activities, such as program comprehension, maintenance, and evolution.
Year
DOI
Venue
2015
10.1145/2701319.2701321
VaMoS
Keywords
Field
DocType
design,software product lines,variability,code smells,design defects,languages,restructuring, reverse engineering, and reengineering
Data mining,Software engineering,SOLID,Computer science,Source code,Theoretical computer science,Software system,KPI-driven code analysis,Conditional compilation,Program comprehension,Software development,Code smell
Conference
Citations 
PageRank 
References 
5
0.42
34
Authors
2
Name
Order
Citations
PageRank
Wolfram Fenske1618.04
Sandro Schulze225923.43