Skip navigation
Universidade Federal da Bahia |
Repositório Institucional da UFBA
Please use this identifier to cite or link to this item: https://repositorio.ufba.br/handle/ri/39102
metadata.dc.type: Tese
Title: Um estudo de caracterização de mudanças arquiteturais em projetos de software livre
Other Titles: A study of architectural changes characterization in free software projects
metadata.dc.creator: Motta, Tiago Oliveira
metadata.dc.contributor.advisor1: Souza, Rodrigo Rocha Gomes e
metadata.dc.contributor.advisor-co1: Sant'Anna, Cláudio Nogueira
metadata.dc.contributor.referee1: Souza, Rodrigo Rocha Gomes e
metadata.dc.contributor.referee2: Mendonça Neto, Manoel Gomes de
metadata.dc.contributor.referee3: Chavez, Christina von Flach Garcia
metadata.dc.contributor.referee4: Masiero, Paulo Cesar
metadata.dc.contributor.referee5: Meirelles, Paulo Roberto Miranda
metadata.dc.description.resumo: Contexto. A literatura em vigor aponta que a escassez de documentação arquitetural predomina em projetos de software livre. Nesse sentido, diversas técnicas têm sido propostas para recuperar informações sobre a arquitetura, e a maioria delas se concentra em aspectos estruturais a partir do código-fonte, um elemento que acompanha a evolução do produto de software. Problema. No entanto, essas técnicas não recuperam outras informações sobre a arquitetura (tampouco a sua evolução), tais como os objetivos, restrições e motivações, requisitos não-funcionais, mecanismos de acesso a dados ou de comunicação utilizados no projeto. Objetivo. A proposta desse trabalho é caracterizar mudanças arquiteturais em projetos de Software Livre, apresentando os impactos por elas causadas no código-fonte do projeto em comparação com outros tipos de mudança em que a arquitetura não foi modificada. As hipóteses são que as mensagens de commit registram informações sobre mudanças na arquitetura do projeto e que esse tipo de mudança impacta o código do projeto de forma diferente em comparação com mudanças onde a arquitetura não foi modificada. Metodologia. Inicialmente, foi produzido um estudo empírico, a partir da mineração de repositórios, no qual identificaram-se informações arquiteturais em registros de informações sobre mudanças que constam em mensagens de commit. A partir dos dados coletados, foi realizado um estudo exploratório que caracterizou tais mudanças sobre em que momento da evolução do projeto ocorreram, quem são os seus autores, quais tópicos arquiteturais são modificados, além das características dessas mensagens e do grupo de módulos atingidos pela mudança. Após esse estudo, foi conduzido um segundo estudo empírico, envolvendo a extração de métricas de código-fonte das versões do projeto identificadas como tendo sofrido modificações em sua arquitetura. Por fim, foi realizado um estudo para avaliar os resultados obtidos, considerando as opiniões de pesquisadores da área de Arquitetura e Engenharia de Software, assim como de desenvolvedores frente à caracterização obtida perante as mudanças arquiteturais. Resultados. Dentre as descobertas realizadas, pode-se destacar que períodos de lançamento de novas releases são concentradores de mudanças arquiteturais, os principais colaboradores do projeto também são os colaboradores que mais modificam a arquitetura e todos os tópicos arquiteturais do projeto são alvo de modificações, porém em escalas diferentes. Outros aspectos importantes sobre as mudanças arquiteturais são que (i) o tamanho do código tende a aumentar; (ii) a complexidade e a coesão do código tendem a se manter; e (iii) o acoplamento verificado aumentou para duas métricas e manteve-se em outras três, quando comparadas à mudanças no projeto onde a arquitetura não foi atingida. Por fim, durante o terceiro estudo desta tese, desenvolvedores e pesquisadores confirmaram a hipótese que a documentação arquitetural é escassa em projetos de Software Livre, e a principal forma de recuperar informações sobre a arquitetura, até o momento, é analisando o código-fonte de diversas formas. A maioria dos participantes da pesquisa concordam com os resultados obtidos por este estudo em relação à variação das métricas de código, tanto como sendo generalizáveis, como sendo verificáveis nos projetos onde pesquisam e desenvolvem. Alguns desenvolvedores apresentaram pequenas discordâncias quanto às variações de métricas obtidas. Sobre as mensagens de commit como fontes de informação sobre a arquitetura, a maioria de desenvolvedores e pesquisadores afirmaram ser uma fonte promissora de informações, mas fizeram a ressalva de que um cenário ideal seria combiná-las com outras informações do projeto.
Abstract: Context. The literature background indicates that the scarcity of architectural documentation predominates in free software projects. In this sense, several techniques have been proposed to retrieve information about the architecture; most of them focus on structural aspects from the source code, an element that accompanies the evolution of the software product. Problem. However, these techniques do not recover other information about the architecture (nor its evolution), such as the goals, constraints, and motivations, non-functional requirements, data access mechanisms, or communication mechanisms used in the project. Goal. The purpose of this work is to characterize architectural changes in Free Software projects, presenting the impacts caused by them in the project's source code compared with other types of changes without architectural implication. The hypotheses are that the commits messages record information about changes in the architectural project. This type of change impacts the project code differently compared to changes that affect architecture. Methodology. Initially, we conducted a study where, from repository mining, we identified information about architectural changes contained in commit messages. From the data collected, we conducted an exploratory study that characterized such changes regarding (i) the moment in the project's evolution when they took place, (ii) who their authors are, (iii) which architectural topics are modified, besides (iv) the characteristics of these messages and (v) the group of modules affected by the change. After this study, we conducted a second empirical study involving the extraction of metrics from the source code of the versions of the project identified as having undergone modifications in its architecture. Finally, we conducted a study to evaluate the results obtained, considering the feedback of both developers and researchers in Architecture and Software Engineering regarding the characterization of architectural changes. Results. Among the results, we can highlight that periods encompassing the release of new versions are concentrators of architectural changes; the main collaborators of the project are also the collaborators who modify the architecture the most; all the architectural topics of the project are subject to modifications but at different scales. About the second study, we highlight three results. The size of the code tends to increase. The complexity and cohesion of the code tend to remain constant. The coupling of the code tends to increase for two metrics and to remain constant in three others. Finally, in the third study, we hear developers and researchers about the results of the previous two studies. They confirmed the hypothesis that architectural documentation is scarce in Open Source projects. They claim that the main strategy to retrieve information about architecture is by analyzing the source code in several ways. Most research participants agree with the results obtained by this study about the variation of code metrics. They believe that the variations are generalizable and are recurrent in the projects that they research and develop. Some developers showed slight disagreements from the variations of metrics obtained. Regarding commit messages as sources of information about architecture, most developers and researchers agree that it is a promising source of information, although the ideal scenario would be to combine them with other information from the project.
Keywords: Modificações arquiteturais
Traços arquiteturais
Compreensão de software
Análise estática de código
Estudos empı́ricos
Software livre
Arquitetura de software
metadata.dc.subject.cnpq: CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE
metadata.dc.language: por
metadata.dc.publisher.country: Brasil
Publisher: Universidade Federal da Bahia
metadata.dc.publisher.initials: UFBA
metadata.dc.publisher.department: Instituto de Computação - IC
metadata.dc.publisher.program: Doutorado Multiinstitucional de Pós-graduação em Ciência da Computação (DMCC) 
Citation: MOTTA, Tiago Oliveira. Um estudo de caracterização de mudanças arquiteturais em projetos de software livre. 2021. 262 f. Tese (Doutorado em Ciência da Computação) Instituto de Computação, Universidade Federal da Bahia, Salvador, Ba, 2021.
URI: https://repositorio.ufba.br/handle/ri/39102
Issue Date: 26-Apr-2021
Appears in Collections:Tese (PGCOMP)

Files in This Item:
File Description SizeFormat 
teseTiagoMotta.pdfTese de Doutorado em Ciência da Computação - Tiago Oliveira Motta6,3 MBAdobe PDFView/Open
Show full item record


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