Use este identificador para citar ou linkar para este item:
https://repositorio.ufba.br/handle/ri/39102
Tipo: | Tese |
Título: | Um estudo de caracterização de mudanças arquiteturais em projetos de software livre |
Título(s) alternativo(s): | A study of architectural changes characterization in free software projects |
Autor(es): | Motta, Tiago Oliveira |
Primeiro Orientador: | 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 |
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. |
Palavras-chave: | 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 |
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 |
Idioma: | por |
País: | Brasil |
Editora / Evento / Instituição: | Universidade Federal da Bahia |
Sigla da Instituição: | 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) |
Citação: | 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 |
Data do documento: | 26-Abr-2021 |
Aparece nas coleções: | Tese (PGCOMP) |
Arquivos associados a este item:
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
teseTiagoMotta.pdf | Tese de Doutorado em Ciência da Computação - Tiago Oliveira Motta | 6,3 MB | Adobe PDF | Visualizar/Abrir |
Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.