Exploring the use of co-change clusters in software comprehension tasks

Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2015.

Main Author: Oliveira, Marcos César de
Other Authors: Almeida, Rodrigo Bonifácio de
Format: Dissertação
Language: Português
Published: 2017
Subjects:
Online Access: http://repositorio.unb.br/handle/10482/22533
http://dx.doi.org/10.26512/2015.09.D.22533
Tags: Add Tag
No Tags, Be the first to tag this record!
id ir-10482-22533
recordtype dspace
spelling ir-10482-225332018-10-02T16:06:12Z Exploring the use of co-change clusters in software comprehension tasks Oliveira, Marcos César de Almeida, Rodrigo Bonifácio de Ramos, Guilherme Novaes Desenvolvimento de software Engenharia reversa Mineração de dados (Computação) Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2015. O desenvolvimento de software orientado a características (FOSD) é um paradigma que pode ser usado, entre outros, para estruturar um sistema de software em torno de características que podem representar pequenas funcionalidades do software bem como requisitos não funcionais. Além do seu papel na estruturação do software, o uso de FOSD habilita a ativação e desativação de features individuais em uma dada configuração de software. Essa vantagem pode ser útil em cenários onde a variabilidade do software é necessária. Por outro lado, a adoção da abordagem FOSD pode ser feita em um sistema de software existente, torna-se necessária a aplicação de alguma técnica de engenharia reversa para extração de features de uma base de código legada, bem como o mapeamento dessas features para suas implementações. Essa dissertação apresenta uma nova abordagem para auxiliar nessa atividade de engenharia reversa, a qual relaciona dados históricos extraídos de sistemas de controle de tarefas de desenvolvimento e de mudanças em código-fonte. A abordagem se baseia em técnicas de Mineração de Repositórios de Software (MSR), especificamente o agrupamento baseado em dependências evolucionárias entre elementos do código-fonte, que leva ao descobrimento de grupos de co-mudança. Assim, o objetivo deste trabalho é descobrir as propriedades dos grupos de co-mudança que podem ser úteis no processo de extração de features. Especificamente, um conjunto de termos, associados com os grupos, que revelam conceitos que podem ajudar a identificar features. De acordo com os resultados obtidos, os grupos de co-mudança não possuem vantagem quando usa- dos como unidades de modularização, mas podem revelar novas dependências que são ocultas ao desenvolvedor. Também mostram que os grupos de co-mudança possuem coesão conceitual, e que podem ser usados para extrair conceitos e termos associados com eles. Por fim, os conceitos extraídos dos grupos de co-mudança podem ser usados para construir um mapeamento entre eles e o código-fonte, e que podem ser usados como uma lista de sementes de entrada para métodos de expansão de features. Feature-oriented software development (FOSD) is a paradigm that can be used, among others, to structure a software system around the feature concept that can represents small functionalities and non-functional requirements. Besides their role in software structure, FOSD enables the activation and deactivation of individual features in a given configuration of the software. This advantage can be useful in scenarios where the variability of the software is required. On the other hand, the adoption of FOSD can be done for an existing software system, thus, becomes necessary to apply some reverse engineering technique to extract features from a legacy code base, and also the mapping between these features and their implementations. This dissertation presents a new approach to aid in the reverse engineering activity, that relates historical data from issue tracking systems and source-code changes. The approach relies upon Mining Software Repositories (MSR) techniques, specifically the clustering based on co-evolutionary dependencies between source-code elements, which leads to the discover of co-change clusters. Thus, the goal of this work is to discover the properties of the co-change clusters that can be useful in a feature extraction process. Specifically, a set of terms, associated with the clusters, which reveal concepts that can help to identify features. According to the study results, co-change clusters have no advantage when used as a modular unit, but can reveal new dependencies that is hidden to the developer. They also show that the co-change clusters have conceptual cohesion, and can be used to extract concepts and the terms associated with them. In the end, the concepts extracted from co-change clusters can be used to build a mapping from them and the source-code, and that can be used as a input seed list to feature expansion methods. 2017-02-14T19:20:43Z 2017-02-14T19:20:43Z 2017-02-14T19:20:43Z 2015-09-03 Dissertação OLIVEIRA, Marcos César de. Exploring the use of co-change clusters in software comprehension tasks. 2015. xiii, 76 f., il. Dissertação (Mestrado Profissional em Computação Aplicada)—Universidade de Brasília, Brasília, 2015. http://repositorio.unb.br/handle/10482/22533 http://dx.doi.org/10.26512/2015.09.D.22533 Português Acesso Aberto A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor com as seguintes condições: Na qualidade de titular dos direitos de autor da publicação, autorizo a Universidade de Brasília e o IBICT a disponibilizar por meio dos sites www.bce.unb.br, www.ibict.br, http://hercules.vtls.com/cgi-bin/ndltd/chameleon?lng=pt&skin=ndltd sem ressarcimento dos direitos autorais, de acordo com a Lei nº 9610/98, o texto integral da obra disponibilizada, conforme permissões assinaladas, para fins de leitura, impressão e/ou download, a título de divulgação da produção científica brasileira, a partir desta data. application/pdf
institution REPOSITORIO UNB
collection REPOSITORIO UNB
language Português
topic Desenvolvimento de software
Engenharia reversa
Mineração de dados (Computação)
spellingShingle Desenvolvimento de software
Engenharia reversa
Mineração de dados (Computação)
Oliveira, Marcos César de
Exploring the use of co-change clusters in software comprehension tasks
description Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2015.
author2 Almeida, Rodrigo Bonifácio de
format Dissertação
author Oliveira, Marcos César de
author_sort Oliveira, Marcos César de
title Exploring the use of co-change clusters in software comprehension tasks
title_short Exploring the use of co-change clusters in software comprehension tasks
title_full Exploring the use of co-change clusters in software comprehension tasks
title_fullStr Exploring the use of co-change clusters in software comprehension tasks
title_full_unstemmed Exploring the use of co-change clusters in software comprehension tasks
title_sort exploring the use of co-change clusters in software comprehension tasks
publishDate 2017
url http://repositorio.unb.br/handle/10482/22533
http://dx.doi.org/10.26512/2015.09.D.22533
_version_ 1641988052178960384
score 13.657419