1
|
-
TIAGO OLIVEIRA MOTTA
-
Um Estudo de Caracterização de Mudanças Arquiteturais em Projetos de Software Livre
-
Orientador : RODRIGO ROCHA GOMES E SOUZA
-
MEMBROS DA BANCA :
-
CHRISTINA VON FLACH GARCIA CHAVEZ
-
MANOEL GOMES DE MENDONCA NETO
-
PAULO CESAR MASIERO
-
PAULO ROBERTO MIRANDA MEIRELLES
-
RODRIGO ROCHA GOMES E SOUZA
-
Data: 26/04/2021
-
-
Mostrar Resumo
-
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 causados 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 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 traços 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 versões 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 em outras três se manteve, quando comparadas a 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é aqui, é 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 os traços arquiteturais 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.
-
Mostrar Abstract
-
The current literature points out 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, and 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 retrieve other information about the architecture (nor its evolution), such as the objectives, restrictions and motivations, non-functional requirements, data access or communication mechanisms used in the project. Objective. 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 in comparison with other types of changes in which the architecture has not been modified. The hypotheses are that the commit messages record information about changes in the project architecture and this type of change impacts the project code differently compared to changes where the architecture has not been modified. Methodology. Initially, an empirical study was produced, from the mining of repositories, in which architectural traces were identified in records of information about changes contained in commit messages. From the data collected, an exploratory study was carried out that characterized such changes about when the project's evolution occurred, who are its authors, which architectural topics are modified, in addition to the characteristics of these messages and the group of modules affected by the change . After this study, a second empirical study was conducted, involving the extraction of metrics from source code of the versions of the project identified as having undergone modifications in their architecture. Finally, a study was carried out to evaluate the results obtained, considering the opinions of researchers in the field of Architecture and Software Engineering, as well as of developers regarding the characterization obtained in the face of architectural changes. Results. Among the discoveries made, it can be noted that periods of release of new versions are concentrators of architectural changes, the main collaborators of the project are also the collaborators who most modify the architecture and all the architectural topics of the project are subject to modifications, however in different scales. Other important aspects of architectural changes are that (i) the size of the code tends to increase; (ii) the complexity and cohesion of the code tends to remain; and (iii) the verified coupling increased to two metrics and in three others it was maintained, when compared to changes in the design where the architecture was not reached. Finally, during the third study of this thesis, developers and researchers confirmed the hypothesis that architectural documentation is scarce in Free Software projects, and the main way to retrieve information about architecture, until now, is by analyzing the source code of several shapes. Most research participants agree with the results obtained by this study in relation to the variation of code metrics, both as being generalizable and verifiable in the projects where they research and develop. Some developers showed slight disagreements as to the variations of metrics obtained. Regarding architectural features as sources of information about architecture, most developers and researchers claimed to be a promising source of information but made the reservation that an ideal scenario would be to combine them with other information from the project.
|
|