Investigating Variability-aware Smells in SPLs: An Exploratory Study
Variability-aware smell is a concept referring to artifact shortcomings in the context of highly-configurable systems that can degrade aspects such as program comprehension, maintainability, and evolvability. To the best of our knowledge, there is very little evidence that variability-aware smells exist in Software Product Lines (SPLs). This work presents an exploratory study that investigated (I) evidence that variability-aware smells exist in SPLs and (II) new types of variability-aware smell not yet documented in the literature based on a quantitative study with open source SPL projects. We collected quantitative data to generate reliable research evidence, by performing feature model and source code inspections on eleven open-source SPL projects. Our findings revealed that (1) instances of variability-aware smells exist in open-source SPL projects and (2) feature information presented significant associations with variability-aware smells. Furthermore, (3) the study presented six new types of variability-aware smells.
H. Andrade, E. Almeida, and I. Crnkovic. 2014. Architectural Bad Smells in Software Product Lines. In Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA). 12:1--12.6.
S. Apel, D. Batory, C. Kastner, and G. Saake. 2013. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer.
D. Batory. 2005. Feature Models, Grammars, and Propositional Formulas. In Proceedings of the 9th International Conference on Software Product Lines. 7--20.
D. Batory, J. Sarvela, and A. Rauschmayer. 2004. Scaling Step-Wise Refinement. IEEE Transactions on Software Engineering 30, 6 (2004), 355--371.
I. Bertran, A. Garcia, and A. von Staa. 2011. An Exploratory Study of Code Smells in Evolving Aspect-oriented Systems. In Proceedings of the Tenth International Conference on Aspect-oriented Software Development. 203--214.
P. Clements and L. Northrop. 2002. Software Product Lines: Practices and Patterns. Addison-Wesley.
K. Czarnecki and U. Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA.
J. Feigenspan, C. Kästner, M. Frisch, R. Dachselt, and S. Apel. 2010. Visual Support for Understanding Product Lines. In Proceedings of the 2010 IEEE 18th International Conference on Program Comprehension (ICPC). 34--35.
W. Fenske and S. Schulze. 2015. Code Smells Revisited: A Variability Perspective. In Proceedings of the Ninth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS). 3:3--3.10.
W. Fenske, S. Schulze, D. Meyer, and G. Saake. 2015. When code smells twice as much: Metric-based detection of variability-aware code smells. In Proceedings of the IEEE 15th International Working Conference on Source Code Analysis and Manipulation (SCAM). 171--180.
E. Fernandes, G. Vale, L. Sousa, E. Figueiredo, A. Garcia, and J. Lee. 2017. No Code Anomaly is an Island - Anomaly Agglomeration as Sign of Product Line Instabilities. In Proceedings of the 16th International Conference on Software Reuse (ICSR). 48--64.
M. Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison Wesley.
J. Garcia, D. Popescu, G. Edwards, and N. Medvidovic. 2009. Identifying Architectural Bad Smells. In Proceedings of the 13th Software Maintenance and Reengineering (CSMR). 255--258.
S. Günther and S. Sunkle. 2012. rbFeatures: Feature-oriented programming with Ruby. Science of Computer Programming 77, 3 (2012), 152--173.Google ScholarDigital Library
K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. 1990. Feature-Oriented Domain Analysis (FODA) - Feasibility Study. Technical Report. Carnegie Mellon University.
C. Kästner, S. Apel, and M. Kuhlemann. 2008. Granularity in Software Product Lines. In Proceedings of the International Conference on Software Engineering (ICSE). 311--320.
C. Kästner, S. Apel, S. Trujillo, M. Kuhlemann, and D. Batory. 2009. Guaranteeing Syntactic Correctness for All Product Line Variants: A Language-Independent Approach. In Proceedings of the 47th International Conference on Objects, Components, Models and Patterns. 175--194.
M. Kaur and P. Kumar. 2014. Spotting the phenomenon of bad smells in MobileMedia product line architecture. In Proceedings of the Seventh International Conference on Contemporary Computing (IC3). 357--363.
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. 1997. Aspect-oriented programming. In Proceedings of the 11th European Conference on Object-Oriented Programming. 220--242.
M. Lanza and R. Marinescu. 2006. Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems (1st ed.). Springer Publishing Company, Incorporated.
J. Liebig, S. Apel, C. Lengauer, C. Kästner, and M. Schulze. 2010. An Analysis of the Variability in Forty Preprocessor-Based Software Product Lines. In Proceedings of the International Conference on Software Engineering (ICSE). 105--114.
T. Patzke, M. Becker, M. Steffens, K. Sierszecki, J. Savolainen, and T. Fogdal. 2012. Identifying Improvement Potential in Evolving Product Line Infrastructures: 3 Case Studies. In Proceedings of the 16th International Software Product Line Conference - Volume 1. 239--248.
P. Runeson and M. Höst. 2009. Guidelines for conducting and reporting case study research in software engineering. Empirical Software Engineering 14 (2009), 131--164.
S. Schulze, O. Richers, and I. Schaefer. 2013. Refactoring Delta-Oriented Software Product Lines. In Proceedings of the 12th Aspect-Oriented Software Development (AOSD). 73--84.
C.Seaman. 1999. Qualitative methods in empirical studies of software engineering. IEEE Transactions on Software Engineering 25, 4 (1999), 557--572.
T. Sharma and D. Spinellis. 2018. A Survey on Software Smells. Journal of Systems and Software 138 (2018), 158--173.
K. Srivisut and P. Muenchaisri. 2007. Bad-Smell Metrics for Aspect-Oriented Software. In Proceedings of the 6th IEEE/ACIS International Conference on Computer and Information Science (ICIS). 1060--1065.
M. Tufano, F. Palomba, G. Bavota, M. Di Penta, R. Oliveto, A. De Lucia, and D. Poshyvanyk. 2016. An Empirical Investigation into the Nature of Test Smells. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering. 4--15.
G. Vale, E. Figueiredo, R. Abilio, and H. Costa. 2014. Bad Smells in Software Product Lines: A Systematic Review. In Proceedings of the 8th Brazilian Symposium on Software Components (SBCARS). 84--93.
R. Yin. 2013. Case Study Research: Design and Methods (Applied Social Research Methods). Sage Publications.
M. Zhang, T. Hall, and N. Baddoo. 2011. Code Bad Smells: A Review of Current Knowledge. Journal of Software Maintenance and Evolution: Research and Practice 23, 3 (2011), 179--202.