Analisando as relações entre mudanças do código fonte e bugs no software
Analisando as relações entre mudanças do código fonte e bugs no software
Com a evolução dos sistemas de software, alguns serviços, outrora realizados de maneira manual, têm migrado para aplicações computadorizadas, tais como:software complexas para controle financeiro ou sistemas que controlam vôos em aeronaves. Embora estes serviços tenham sido facilitados pelo auxílio da tecnologia, mantê-los disponíveis requer cuidados, seja durante a fase de desenvolvimento da aplicação que provê serviços ou pelos usuários que fazem uso destas aplicações. Um problema ainda predominante em sistemas é a ocorrência de bugs no software. Estes que, comumente, são associados a anomalias em unidades elementares dos sistemas,tais como arquivos, classes, funções ou métodos, podem ser demasiadamente longas ou complexas, o que pode comprometer as tarefas de inspeções e correções de bugs. Para tanto, este trabalho descreve o uso de um mecanismo de coleta e análise a cerca das mudanças em códigos fonte que, comumente, podem estar associada sao surgimento de bugs no software.Tal mecanismo baseia-se em modificações feitas ao longo do tempo em estruturas atômicas, e que são mudadas com frequência dentro do software, tais como: funções, métodos e classes. Utilizando-se da coleta e análise sobre dados de projetos, obteve-se um data set contendo o histórico de mudanças de quatorze projetos open-source,sendo três projetos desenvolvidos nas linguagens de programação C e C++, e onze projetos em JAVA. Foram realizadas também duas análises para avaliar o uso dos dados coletados, dos quais, sendo que a primeira foi uma análise acerca do histórico de mudanças associadas à vulnerabilidades de software (bugs de segurança)para os projetos C, C++,e a segunda a cerca das relações entre mudanças e bugs em projetos JAVA. A partir das análises feitas,é possível afirmar que histórico de mudanças pode servir como referência a diversas estratégias que buscam o aprimoramento do processo de desenvolvimento de software, seja na criação de modelos para predição ou detecção de bugs, ou na geração de códigos de maneira automática.
Considering the evolution of software systems, some services that were performed manually have migrated to computer applications such as complex software for financial controlor systems that control air craft flights. Although these services have been facilitated by the help of the technology, keeping them available requires care, either during the development phase of the program that provides these services or by the users who make use of these application. A still prevalent problem in systems is the occurrence of bugs in the software. These are commonly associated with anomalies in elementary units in systems, such as files, classes, functions, or methods. These parts of source code can often be too long or complex, which can compromise the bugs inspection sand fixes. In order to do so, this work describes the use of a collection and analysis mechanism, about the changes in source codes that, commonly, can be associated to the appearance of bugs in the software. Such a mechanism is based on modifications made overtime in atomic structures, which are often changed within the software, such as functions, methods and classes.As a result of the collection and analysis engine applications, we obtained a data set containing information for the change history of fourteen open-source projects, three of which were developedin C and C + programming languages, and eleven projects in JAVA. Two analysis were also carried out to evaluate the use of the collected data, of which the first was ananalysis of the history of changes associated with software vulnerabilities (security bugs) for C, C++ projects, and the second about the relationships between changes and bugs in JAVA projects. From the analysis made, it is possible to affirm that history of changes can serve as reference to several strategies that seek to improve the process of software development, be it in the creation of models for prediction or detection of bugs, or in the generation automatically of source codes.
Dr.ª Moraes, Regina Lúcia de Oliveira.
Bugs de software.
Código fonte - Mudanças.
Software.