Please use this identifier to cite or link to this item: https://hdl.handle.net/10216/89450
Author(s): André Tiago Oliveira da Silva Duarte
Title: Software Repository Mining Analytics to Estimate Software Component Reliability
Issue Date: 2016-07-08
Abstract: Given the rising necessity of identifying errors on the source code of software, in order to make the developers work easier and to speed up the development process, many progresses have been made in its automation.There are three main approaches: Program-spectra based (PSB), Model-based diagnosis (MDB) and Program slicing.Barinel, solution that integrates both PSB and MDB, is, until now, to our knowledge, the option that guarantees the best results. Despite this, the candidates (faulty components) set order doesn't take into account the real quality of the given component. With this thesis we want to fix this issue and contribute for a better candidates ordered set, classifying the quality and reliability of each component, using Machine Learning techniques such as Decision Trees, Support Vector Machines or Random Forests with the information extracted from Git, like: number of times it was modified, number of contributors, date of last change and size of those changes.The research revealed the existence of some software predictive analysis solutions, such as BugCache, FixCache and Change Classification, capable of identifying the components with a high probability of failure and of classifying the changes (commits) as faulty or clean. But none solves our issue.This work also aims to integrate with Crowbar and to contribute to its possible commercialization.
Description: Dada a crescente necessidade de identificar a localização dos erros no código fonte de software, de forma a facilitar o trabalho dos programadores e a acelerar o processo de desenvolvimento, muitos avanços têm sido feitos na sua automação.Existem três abordagens principais: Program-spectra based (PSB), Model-based diagnosis (MDB) e Program slicing.Barinel, solução que integra tanto o PSB como o MDB, é, até hoje, com base na investigação feita, a que apresenta melhores resultados. Contudo, a ordenação de conjuntos de candidatos (componentes faltosos) não tem em conta a verdadeira qualidade do componente em causa, mas sim o conjunto de valores que maximizam a probabilidade do conjunto (Maximum Likehood Estimation - MLE), devido à dificuldade da sua determinação.Com esta tese pretende-se colmatar esta falha e contribuir para uma melhor ordenação dos conjuntos, classificando, com recurso a técnicas de Machine Learning como Naive Bayes, Support Vector Machines (SVM) ou Random Forests, a qualidade e fiabilidade de cada componente, através das informações disponíveis no sistema de controlo de versões (Software Repository Mining), neste caso Git, como por exemplo: número de vezes que foi modificado, número de contribuidores, data de última alteração, nome de últimos contribuidores e tamanho das alterações.A investigação já feita, revelou a existência de algumas soluções de análise preditiva de software, como BugCache, FixCache e Change Classification, capazes de identificar componentes com grande probabilidade de falhar e de classificar as revisões (commits) como faltosas ou não, mas nenhuma soluciona o problema.Este trabalho visa também a integração com o Crowbar e a contribuição para a sua possível comercialização.
Subject: Engenharia electrotécnica, electrónica e informática
Electrical engineering, Electronic engineering, Information engineering
Scientific areas: Ciências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática
Engineering and technology::Electrical engineering, Electronic engineering, Information engineering
TID identifier: 201296896
URI: https://repositorio-aberto.up.pt/handle/10216/89450
Document Type: Dissertação
Rights: openAccess
Appears in Collections:FEUP - Dissertação

Files in This Item:
File Description SizeFormat 
139844.pdfSoftware Repository Mining for Estimating Software Component Reliability677.26 kBAdobe PDFThumbnail
View/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.