<  Back to the Polytechnique Montréal portal

Consensus-Based Recommendation Technique for Software Engineering Applications

Layan Etaiwi

Ph.D. thesis (2023)

[img] Restricted to: Repository staff only until 27 September 2024
Terms of Use: All rights reserved
Show abstract
Hide abstract

Abstract

Software engineering is a knowledge-intensive domain. Daily developers’ engineering activities produce a large volume of data, such as source-code, change history, interaction traces, etc. This creates software data richness, but it makes it difficult to analyse and extract beneficial data to support developers’ needs to accomplish specific tasks. As a means of facilitating the analysis of software data and the identification of relevant information for a given task, software engineering researchers develop recommendation systems for software engineering (RSSEs) that support software development and maintenance, as well as improve the quality of decision-making processes. A Recommendation system for software engineering (RSSE) is a software application that recommends items that are deemed valuable for a given software engineering task within a specific context. Various recommendation techniques have been proposed since the early 1990s. Specifically, the first recommendation system was introduced in 1992. Goldberg et al. built Tapestry [1], a mailing recommendation system that recommends a mailing list to users based on their interests. In the software engineering domain, a wide range of recommendation systems for software engineering (RSSEs) have been developed based on various recommendation techniques to support software engineering activities. While these techniques can be effective, studies demonstrated that they can present some limitations. Some of these techniques are unable to generate recommendations without sufficient knowledge and metadata about the items. Furthermore, others, such as association rules, require user input before making recommendations. Although techniques such as data mining can be efficient, they are computationally expensive due to the fact that they require enormous datasets in order to provide highly accurate recommendations. In addition, to the best of our knowledge, none of these software engineering recommendation systems were applied, tested and evaluated across a variety of data types and applications to demonstrate their generalisation. Thus, it is important to provide a recommendation technique that can generate recommendations without requiring large datasets and can run on different types of data for different software applications, demonstrating generalisation.

Résumé

L’ingénierie logicielle est un domaine intensif en connaissances. Les activités quotidiennes des développeurs produisent une grande quantité de données, telles que du code source, des historiques de modifications, des traces d’interactions, etc. Cela crée une richesse de données logicielles, mais rend difficile l’analyse et l’extraction de données bénéfiques pour répondre aux besoins des développeurs dans le but d’accomplir des tâches spécifiques. Afin de faciliter l’analyse des données logicielles et l’identification d’informations pertinentes pour une tâche donnée, les chercheurs en génie logiciel développent des systèmes de recommandation, ou RSSE (Recommender Systems for Software Engineering), qui soutiennent le développement et la maintenance logicielle, ainsi que l’amélioration de la qualité des processus de prise de décision. Un système de recommandation pour le génie logiciel est une application qui fournit des éléments jugés précieux pour une tâche en génie logiciel donnée dans un contexte spécifique. Depuis le début des années 1990, différentes techniques de recommandation ont été proposées. Plus précisément, le premier système de recommandation a été introduit en 1992. Goldberg et al. ont créé Tapestry [1], un système de recommandation par courrier électronique qui recommande une liste de diffusion aux utilisateurs en fonction de leurs centres d’intérêt. Dans le domaine de l’ingénierie logicielle, une large gamme de RSSEs ont été développés sur la base de différentes techniques de recommandation pour soutenir les activités en génie logiciel. Bien que ces techniques puissent être efficaces, des études ont montré qu’elles peuvent présenter certaines limites. En effet, certaines de ces techniques ne sont pas en mesure de générer des recommandations sans une connaissance suffisante et des métadonnées sur les éléments. De plus, d’autres techniques, telles que les règles d’association, nécessitent une contribution de l’utilisateur avant de faire des recommandations. Bien que des techniques telles que l’extraction de données puissent être efficaces, elles sont coûteuses en termes de calcul, car elles nécessitent des ensembles de données énormes pour fournir des recommandations hautement précises. De plus, à notre connaissance, aucun de ces systèmes de recommandation pour l’ingénierie logicielle n’a été appliqué, testé et évalué sur une variété de types de données et d’applications logicielles pour démontrer leur généralisabilité. Il est donc important de fournir une technique de recommandation capable de produire des recommandations sans nécessiter de vastes ensembles de données, et ayant été prouvée comme suffisamment généralisable pour traiter différents types de données pour différentes applications logicielles.

Department: Department of Computer Engineering and Software Engineering
Program: Génie informatique
Academic/Research Directors: Foutse Khomh, Yann-Gaël Guéhéneuc and Sylvie Hamel
PolyPublie URL: https://publications.polymtl.ca/53429/
Institution: Polytechnique Montréal
Date Deposited: 27 Sep 2023 14:23
Last Modified: 12 Nov 2023 04:32
Cite in APA 7: Etaiwi, L. (2023). Consensus-Based Recommendation Technique for Software Engineering Applications [Ph.D. thesis, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/53429/

Statistics

Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only

View Item View Item