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.
Previous studies have been conducted with the aim of increasing the system quality. As a result, some contemporary technologies have been proposed for software development to improve maintainability, such as feature-oriented and aspectoriented programming. Metrics are used to quantify the quality of systems developed in these technologies. Recently, contemporary metrics have been proposed or adapted from existing ones to evaluate specific issues of these contemporary technologies. This paper presents results of applying a systematic literature review to identify contemporary metrics associated with software maintainability and proposed for the featureoriented and aspect-oriented technologies. Initially, we identify 672 published works and, after the primary selection, these quantity was reduced to 11 papers. These papers account for 33 and 78 contemporary metrics for feature-oriented and aspectoriented technologies, respectively. The main contributions of this paper are (i) the list of metrics and measurable properties studies for feature-oriented and aspect-oriented programming, (ii) elaboration of a unified catalog of metrics applicable for both technologies, and (iii) identification of their main references. Keyword-metrics, orientation features, orientation aspects, maintainability, software quality I. INTRODUÇÃO Algumas tecnologias recentes, como programação orientada a aspectos [1] e programação orientada a características [2], vêm sendo adotadas no desenvolvimento de sistemas com o objetivo de maximizar a modularização e a qualidade interna desses sistemas. Tais tecnologias são investigadas no contexto de Linha de Produtos de Software (Software Product Line -SPL). Uma SPL é definida como um conjunto de sistemas que compartilham artefatos de código em comum e são gerenciados para atender a uma demanda específica de mercado ou de um cliente [3][4]. Os sistemas derivados de uma SPL são diferenciados por suas características (features) -itens visíveis e distinguíveis pelo usuário ou propriedades de um sistema [5]. Elas também podem ser entendidas como um conjunto ou módulo coerente de funções de uma aplicação independente e combinável [6]. O objetivo da implementação de uma SPL é desenvolver sistemas similares pela reutilização sistemática de artefatos eficientemente, com rapidez, qualidade e com baixo custo [3][4]. A melhora da qualidade dos produtos resultantes é alcançada, pois essa reutilização em diferentes sistemas aumenta a chance de detectar falhas e corrigi-las [3]. A reutilização de artefatos é viável em decorrência da modularização, que consiste no agrupamento de funções similares no mesmo componente, sendo importante fator de qualidade por facilitar a evolução do sistema [3]. A modularização de características e a posterior integração ao sistema base (núcleo comum) podem afetar atributos de qualidade interna do sistema, tais como, legibilidade, confiabilidade e manutenibilidade. Portanto, é necessário medir o impacto da integração de características ao sistema base para ter controle sobre a variaçã...
Feature-oriented programming (FOP) is a programming technique to implement software product lines based on composition mechanisms called refinements. A software product line is a set of software systems that share a common, managed set of features satisfying the specific needs of a particular market segment. The literature reports various software metrics for software product lines developed using object-oriented and aspect-oriented programming. However, after a literature review, we observed that we lack the definition of FOP-specific metrics. Based on this observation, this paper proposes a set of eight novel metrics for feature-oriented programming. These metrics were derived both from our experience in FOP and from existing software metrics. We demonstrate the applicability of the proposed metrics by applying them to a software product line. CCS Concepts• General and reference ~ Metrics • Software and its engineering ~ Software product lines.
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.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.