Software engineering can be defined as the coordinated effort of various entities, including organizations, and individuals, to build software products. Thus, the social structure within a software development community, including the interactions among developers, is crucial for the success of software projects. Project communities are increasingly relied upon in modern software systems to enhance developers’ productivity and ensure the delivery of high-quality software. However, such communities often lack sufficient monitoring of their organizational structures, especially in larger communities with explicit structures where managerial support may be lacking. Software development communities, therefore, need to actively coordinate their efforts to foster effective collaboration and promote the well-being of the development community. Recent research has introduced the term ’community smells’ to describe a range of socio-technical patterns that have a detrimental effect on the organizational health of a project. Community smells are associated with circumstances resulting from poor organizational and social practices, which contribute to the accumulation of social debt. This thesis presents a series of empirical studies that aim to understand the challenges of detecting community smells in the software engineering domain, highlight the value of community smells in software development, and propose novel approaches to support developers and managers in improving the efficiency of software engineering within sub-optimal communities.
Specifically, we address three aspects of the community smells detection problem. First, we present a study to explore and detect community smells in open-source projects. Through this study, we develop a model using a machine-learning approach that learns from a set of organizational-social symptoms to characterize the potential presence of community smells. Second, we conduct an empirical study that applies a multi-label learning (MLL) model to deal with the interleaving symptoms of existing community smells. Third, we propose a framework and approach to enhance the detection of community smells in the software engineering domain. Our framework integrates multiple data sources, including social network analysis, sentiment analysis, and truck factor metrics. Finally, we introduce a novel automated tool based on the proposed framework for detecting community smells in open-source projects. This approach outperforms existing techniques and state-of-the-art approaches.
The findings of the thesis highlight a significant shift in the software development community landscape. The presented results provide fresh insights into the detection of community smells within the software development community. Furthermore, they shed light on innovative approaches for the early detection of potential community smells in a software project, which can be utilized by the software community, including developers, managers, and organizations.
| Date | 22 Nov 2023 |
|---|
| Original language | American English |
|---|
| Awarding Institution | - École de technologie supérieure
|
|---|
| Supervisor | Ali Ouni (Supervisor) |
|---|
Almarimi, N. (Author),
Ouni, A. (Supervisor),
22 Nov 2023Student thesis: Doctoral thesis › Doctorate in Engineering: Engineering