Code smells are symptoms that something is wrong in the source code. They have been catalogued and investigated in several programming techniques. These techniques can be used to develop Software Product Lines (SPL). However, feature-oriented programming (FOP) is a specific technique to deal with the modularization of features in SPL. One of the most popular FOP languages is AHEAD and, as far as we are concerned, we still lack systematic studies on the categorization and detection of code smells in AHEAD-based SPL. To fill this gap, this paper extends the definitions of three traditional code smells, namely God Method, God Class, and Shotgun Surgery, to take into account FOP abstractions. We then proposed 8 new FOP measures to quantify specific characteristics of compositional approaches like AHEAD. Finally, we combine the proposed and existing measures to define 3 detection strategies for identifying the investigated code smells. To evaluate the detection strategies, we performed an exploratory study involving 26 participants. The study participants rely on metrics to identify code smells in 8 AHEAD systems. Our results show that the proposed detection strategies can be used as code smell predictor since statistical tests indicate agreement among them and the study participants.
Software product line (SPL) is a set of software systems that share a common, managed set of features satisfying the specific needs of a particular market segment. Bad smells are symptoms that something may be wrong in system design. Bad smells in SPL are a relative new topic and need to be explored. This paper performed a Systematic Literature Review (SLR) to find and classify published work about bad smells in SPLs and their respective refactoring methods. Based on 18 relevant papers found in the SLR, we identified 70 bad smells and 95 refactoring methods related to them. The main contribution of this paper is a catalogue of bad smells and refactoring methods related to SPL.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.