1
|
-
TIAGO OLIVEIRA MOTTA
-
A Study of Characterization of Architectural Changes in Free Software Projects
-
Advisor : RODRIGO ROCHA GOMES E SOUZA
-
COMMITTEE MEMBERS :
-
CHRISTINA VON FLACH GARCIA CHAVEZ
-
MANOEL GOMES DE MENDONCA NETO
-
PAULO CESAR MASIERO
-
PAULO ROBERTO MIRANDA MEIRELLES
-
RODRIGO ROCHA GOMES E SOUZA
-
Data: Apr 26, 2021
-
-
Show 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.
|
|