An Exploratory Study of the Impact of Code Smells on Software Change-proneness

Author(s):  
Foutse Khomh ◽  
Massimiliano Di Penta ◽  
Yann-Gael Gueheneuc
Author(s):  
Huihui Liu ◽  
Bixin Li ◽  
Yibiao Yang ◽  
Wanwangying Ma ◽  
Ru Jia

Code smells are used to describe the bad structures in the source code, which could hinder software maintainability, understandability and changeability. Nowadays, scholars mainly focus on the impact of smell on textual change-proneness. However, in comparison to textual changes, structural changes could better reveal the change nature. In practice, not all code change types are equally important in terms of change risk severity levels, and software developers are more interested in particular changes relevant to their current tasks. Therefore, we investigate the relationship between smells and fine-grained structural change-proneness to solve these issues. Our experiment was conducted on 11 typical open source projects. We first employed Fishers exact test and Mann–Whitney test to explore whether smelly files (affected by at least one smell type) had higher structural change-proneness than other files, and whether files with more smell instances are more likely to undergo structural changes, respectively. Multivariate logistic regression model was built to study the relation between each kind of smell and change-proneness with respect to five change categories. Our results showed that: (1) in most cases, smelly files were more prone to structural changes and files with more smell instances tend to undergo higher structural changes; (2) quite a few smell types were related to structural change-proneness, particularly, Refused Parent Bequest (RPB), Message Chains (MCH), Divergent Change (DIVC), Feature Envy (FE) and Shotgun Surgery (SS) increased structural changes for some change categories. However, when controlling the file size Lines of Code (LOC), significant change-proneness of some smells disappeared or the magnitude of significance decreased more or less.


Author(s):  
Tran Thanh Luong ◽  
Le My Canh

JavaScript has become more and more popular in recent years because its wealthy features as being dynamic, interpreted and object-oriented with first-class functions. Furthermore, JavaScript is designed with event-driven and I/O non-blocking model that boosts the performance of overall application especially in the case of Node.js. To take advantage of these characteristics, many design patterns that implement asynchronous programming for JavaScript were proposed. However, choosing a right pattern and implementing a good asynchronous source code is a challenge and thus easily lead into less robust application and low quality source code. Extended from our previous works on exception handling code smells in JavaScript and exception handling code smells in JavaScript asynchronous programming with promise, this research aims at studying the impact of three JavaScript asynchronous programming patterns on quality of source code and application.


2000 ◽  
Vol 28 (2) ◽  
pp. 109-118 ◽  
Author(s):  
Hessel J. Zondag

Expectancy theory has been utilized by organizational psychology to explore the expectations and valuations of individuals in various professions. This study employs expectancy theory to clergy, investigating pastors' personal motivations, or values, for assuming pastoral ministry and the subsequent expectation that these values will be honored by their activities within the pastorate. The responses of 235 pastors from Catholic and Protestant denominations on a 24-item questionnaire devised to gauge pastoral motivation and adapted to assess pastoral expectations were factor analyzed and correlated in this exploratory study. The analysis yielded four robust factors. The first two motives found to be dominant were the pursuit of a Christian Way of Life and Anthropocentric Altruism. Anthropocentric Egoism and Theocentric Egoism, although secondary motivations, were theoretically meaningful in the understanding of pastoral motivations and expectations. The impact of expectations upon pastoral well-being and resilience against burnout is discussed.


2021 ◽  
pp. 106648072110098
Author(s):  
Carla Sílvia Fernandes ◽  
Bruno Magalhães ◽  
Sílvia Silva ◽  
Beatriz Edra

The COVID-19 pandemic represents a global threat and crisis situation, and its wide-reaching impact has also affected marital satisfaction. Dysfunction of the marital system puts the survival of the family unit at risk. This research aimed to determine the level of marital satisfaction of Portuguese families during the social lockdown and the association between the variables under study. A descriptive, exploratory study was conducted. During the social lockdown, 276 people of Portuguese nationality and residing in Portugal were recruited using nonprobabilistic convenience sampling. Marital satisfaction in the pandemic phase showed low values that may be associated with the social, economic, and political context experienced by the pandemic situation. Future research must be carried out in order to identify, prevent, and intervene in situations of violence. In addition, future research should explore not only marital satisfaction during the current pandemic but a more systemic assessment of marital relations during crises, expanding the impact of marital satisfaction in family functioning.


2021 ◽  
Vol 30 (3) ◽  
pp. 1-56
Author(s):  
Mouna Abidi ◽  
Md Saidur Rahman ◽  
Moses Openja ◽  
Foutse Khomh

Nowadays, modern applications are developed using components written in different programming languages and technologies. The cost benefits of reuse and the advantages of each programming language are two main incentives behind the proliferation of such systems. However, as the number of languages increases, so do the challenges related to the development and maintenance of these systems. In such situations, developers may introduce design smells (i.e., anti-patterns and code smells) which are symptoms of poor design and implementation choices. Design smells are defined as poor design and coding choices that can negatively impact the quality of a software program despite satisfying functional requirements. Studies on mono-language systems suggest that the presence of design smells may indicate a higher risk of future bugs and affects code comprehension, thus making systems harder to maintain. However, the impact of multi-language design smells on software quality such as fault-proneness is yet to be investigated. In this article, we present an approach to detect multi-language design smells in the context of JNI systems. We then investigate the prevalence of those design smells and their impacts on fault-proneness. Specifically, we detect 15 design smells in 98 releases of 9 open-source JNI projects. Our results show that the design smells are prevalent in the selected projects and persist throughout the releases of the systems. We observe that, in the analyzed systems, 33.95% of the files involving communications between Java and C/C++ contain occurrences of multi-language design smells. Some kinds of smells are more prevalent than others, e.g., Unused Parameters , Too Much Scattering , and Unused Method Declaration . Our results suggest that files with multi-language design smells can often be more associated with bugs than files without these smells, and that specific smells are more correlated to fault-proneness than others. From analyzing fault-inducing commit messages, we also extracted activities that are more likely to introduce bugs in smelly files. We believe that our findings are important for practitioners as it can help them prioritize design smells during the maintenance of multi-language systems.


Author(s):  
Khalid Alkharabsheh ◽  
Yania Crespo ◽  
Manuel Fernández-Delgado ◽  
José R. Viqueira ◽  
José A. Taboada

Sign in / Sign up

Export Citation Format

Share Document