Abstract
Code smells are poor implementation choices applied by developers during software evolution that often lead to critical flaws or failure. Much in the same way, community smells reflect the presence of organizational and socio-technical issues within a software community that may lead to additional project costs. Recent empirical studies provide evidence that community smells are often---if not always---connected to circumstances such as code smells. In this paper we look deeper into this connection by conducting a mixed-methods empirical study of 117 releases from 9 open-source systems. The qualitative and quantitative sides of our mixed-methods study were run in parallel and assume a mutually-confirmative connotation. On the one hand, we survey 162 developers of the 9 considered systems to investigate whether developers perceive relationship between community smells and the code smells found in those projects. On the other hand, we perform a fine-grained analysis into the 117 releases of our dataset to measure the extent to which community smells impact code smell intensity (i.e., criticality). We then propose a code smell intensity prediction model that relies on both technical and community-related aspects. The results of both sides of our mixed-methods study lead to one conclusion: community-related factors contribute to the intensity of code smells. This conclusion supports the joint use of community and code smells detection as a mechanism for the joint management of technical and social problems around software development communities.
Original language | English |
---|---|
Article number | 8546762 |
Pages (from-to) | 108-129 |
Number of pages | 22 |
Journal | IEEE Transactions on Software Engineering |
Volume | 47 |
Issue number | 1 |
Early online date | 2020 |
DOIs | |
Publication status | Published - 10 Jan 2021 |
Keywords
- Code smells
- Convergence
- Feature extraction
- Open source software
- Predictive models
- Software engineering
- Tools
- community smells
- mixed-methods study
- organizational structure