<  Back to the Polytechnique Montréal portal

Recommending When Design Technical Debt Should Be Self-Admitted

Cédric Noiseux

Masters thesis (2017)

[img]
Preview
Download (878kB)
Cite this document: Noiseux, C. (2017). Recommending When Design Technical Debt Should Be Self-Admitted (Masters thesis, École Polytechnique de Montréal). Retrieved from https://publications.polymtl.ca/2826/
Show abstract Hide abstract

Abstract

Les Technical Debts (TD) sont des solutions temporaires et peu optimales introduites dans le code source d’un logiciel informatique pour corriger un problème rapidement au détriment de la qualité logiciel. Cette pratique est répandue pour diverses raisons: rapidité d’implémentation, conception initiale des composantes, connaissances faibles du projet, inexpérience du développeur ou pression face aux dates limites. Les TD peuvent s’avérer utiles à court terme, mais excessivement dommageables pour un logiciel et au niveau du temps perdu. En effet, le temps requis pour régler des problèmes et concevoir du code de qualité n’est souvent pas compatible avec le cycle de développement d’un projet. C’est pourquoi le sujet des dettes techniques a déjà été analysé dans de nombreuses études, plus spécifiquement dans l’optique de les détecter et de les identifier. Une approche populaire et récente est d’identifier les dettes techniques qui sont consciemment admises dans le code. La particularité de ces dettes, en comparaison aux TD, est qu’elles sont explicitement documentées par commentaires et intentionnellement introduites dans le code source. Les Self-Admitted Technical Debts (SATD) ne sont pas rares dans les projets logiciels et ont déjà été largement étudiées concernant leur diffusion, leur impact sur la qualité logiciel, leur criticité, leur évolution et leurs acteurs. Diverses méthodes de détection sont présentement utilisées pour identifier les SATD mais toutes demeurent sujettes à amélioration. Donc, cette thèse analyse dans quelle mesure des dettes techniques ayant déjà été consciemment admises (SATD) peuvent être utilisées pour fournir des recommandations aux développeurs lorsqu’ils écrivent du nouveau code. Pour atteindre ce but, une approche d’apprentissage machine a été élaborée, nommée TEchnical Debt IdentificatiOn System (TEDIOUS), utilisant comme variables indépendantes divers types de métriques et d’avertissements, de manière à pouvoir classifier des dettes techniques de conception au niveau des méthodes avec comme oracle des SATD connus.----------ABSTRACT: Technical debts are temporary solutions, or workarounds, introduced in portions of software systems in order to fix a problem rapidly at the expense of quality. Such practices are widespread for various reasons: rapidity of implementation, initial conception of components, lack of system’s knowledge, developer inexperience or deadline pressure. Even though technical debts can be useful on a short term basis, they can be excessively damaging and time consuming in the long run. Indeed, the time required to fix problems and design code is frequently not compatible with the development life cycle of a project. This is why the issue has been tackled in various studies, specifically in the aim of detecting these harmful debts. One recent and popular approach is to identify technical debts which are self-admitted (SATD). The particularity of these debts, in comparison to TD, is that they are explicitly documented with comments and that they are intentionally introduced in the source code. SATD are not uncommon in software projects and have already been extensively studied concerning their diffusion, their impact on software quality, their criticality, their evolution and the actors involved. Various detection methods are currently used to identify SATD but they are still subject to improvement. Therefore, this thesis investigates to what extent previously self-admitted technical debts can be used to provide recommendations to developers writing new source code. To achieve this goal, a machine learning approach was conceived, named TEDIOUS, using various types of method-level input features as independent variables, to classify design technical debts in methods using known self-admitted technical debts as an oracle.

Open Access document in PolyPublie
Department: Département de génie informatique et génie logiciel
Dissertation/thesis director: Giuliano Antoniol
Date Deposited: 23 Feb 2018 11:49
Last Modified: 27 Jun 2019 16:47
PolyPublie URL: https://publications.polymtl.ca/2826/

Statistics

Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only