La vitrine de diffusion des mémoires et thèses de l'ÉTS
RECHERCHER

An intelligent framework to explore and detect community smells in software engineering

Téléchargements

Téléchargements par mois depuis la dernière année

Plus de statistiques...

Almarimi, Nuri (2023). An intelligent framework to explore and detect community smells in software engineering. Thèse de doctorat électronique, Montréal, École de technologie supérieure.

[thumbnail of ALMARIMI_Nuri.pdf]
Prévisualisation
PDF
Télécharger (1MB) | Prévisualisation

Résumé

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.

Titre traduit

Un cadre intelligent pour explorer et détecter les odeurs de la communauté en génie logiciel

Résumé traduit

L’ingénierie logicielle peut être définie comme l’effort coordonné de diverses entités, y compris des organisations et des individus, pour construire des produits logiciels. Ainsi, la structure sociale au sein d’une communauté de développement logiciel, y compris les interactions entre les développeurs, est cruciale pour le succès des projets logiciels. Les communautés de projets sont de plus en plus sollicitées dans les systèmes logiciels modernes pour améliorer la productivité des développeurs et garantir la livraison de logiciels de haute qualité. Cependant, ces communautés manquent souvent d’un suivi suffisant de leurs structures organisationnelles, en particulier dans les communautés plus grandes avec des structures explicites où le soutien managérial peut faire défaut. Les communautés de développement logiciel doivent donc coordonner activement leurs efforts pour favoriser une collaboration efficace et promouvoir le bien-être de la communauté de développement. Des recherches récentes ont introduit le terme "odeurs de la communauté" pour décrire une série de modèles socio-techniques ayant un effet préjudiciable sur la santé organisationnelle d’un projet. Les odeurs de la communauté sont associées à des circonstances résultant de mauvaises pratiques organisationnelles et sociales, ce qui contribue à l’accumulation de dettes sociales. Cette thèse présente une série d’études empiriques visant à comprendre les défis de la détection des odeurs de la communauté dans le domaine de l’ingénierie logicielle, à mettre en évidence la valeur des odeurs de la communauté dans le développement logiciel et à proposer de nouvelles approches pour soutenir les développeurs et les gestionnaires dans l’amélioration de l’efficacité de l’ingénierie logicielle au sein de communautés sub-optimales.

Plus précisément, nous abordons trois aspects du problème de détection des odeurs de la communauté. Tout d’abord, nous présentons une étude pour explorer et détecter les odeurs de la communauté dans des projets open-source. Grâce à cette étude, nous développons un modèle utilisant une approche d’apprentissage automatique qui apprend à partir d’un ensemble de symptômes organisationnels-sociaux pour caractériser la présence potentielle d’odeurs de la communauté. Ensuite, nous menons une étude empirique qui applique un modèle d’apprentissage multi-étiquettes (MLL) pour traiter les symptômes entrelacés des odeurs de la communauté existantes. Enfin, nous proposons un cadre et une approche pour améliorer la détection des odeurs de la communauté dans le domaine de l’ingénierie logicielle. Notre cadre intègre plusieurs sources de données, notamment l’analyse des réseaux sociaux, l’analyse des sentiments et les métriques de facteur de camion. Enfin, nous introduisons un nouvel outil automatisé basé sur le cadre proposé pour détecter les odeurs de la communauté dans des projets open-source. Cette approche surpasse les techniques existantes et les approches de pointe.

Les résultats de la thèse mettent en évidence un changement significatif dans le paysage de la communauté de développement logiciel. Les résultats présentés fournissent de nouvelles perspectives sur la détection des odeurs de la communauté au sein de la communauté de développement logiciel. De plus, ils mettent en lumière des approches novatrices pour la détection précoce des odeurs de la communauté potentielles dans un projet logiciel, qui peuvent être utilisées par la communauté logicielle, y compris les développeurs, les gestionnaires et les organisations.

Type de document: Mémoire ou thèse (Thèse de doctorat électronique)
Renseignements supplémentaires: "Manuscript-based thesis presented to École de technologie supérieure in partial fulfillment for the degree of doctor of philosophy". Comprend des références bibliographiques (pages 137-156).
Mots-clés libres: community smells, dette sociale, génie logiciel basé sur la recherche, génie logiciel empirique, apprentissage
Directeur de mémoire/thèse:
Directeur de mémoire/thèse
Ouni, Ali
Programme: Doctorat en génie > Génie
Date de dépôt: 01 févr. 2024 15:18
Dernière modification: 01 févr. 2024 15:18
URI: https://espace.etsmtl.ca/id/eprint/3392

Gestion Actions (Identification requise)

Dernière vérification avant le dépôt Dernière vérification avant le dépôt