DynaSchema: uma biblioteca para evolução de banco de dados relacional para o domínio de software autoadaptativo - Campos, Gabriel Nagassaki [UNESP] (Universidade Estadual Paulista (Unesp), 2024)
Vários problemas podem surgir quando a adaptação de software é realizada de maneira manual, principalmente com relação à inserção involuntária de incertezas por parte dos desenvolvedores. Portanto, a adaptação manual é um tipo de atividade propensa a erros que pode consumir muito tempo, esforço e dinheiro. Nesse contexto, o Software Autoadaptativo (em inglês, Self-adaptive Software - SaS) é um tipo especial de sistema de software que é capaz de se modificar em tempo de execução para lidar com as mudanças no seu ambiente operacional. De acordo com essa característica, o SaS pode ser adotado com uma solução para lidar com a automação da adaptação de software ao mesmo tempo que minimiza o envolvimento dos desenvolvedores. Na literatura científica podem ser encontrados vários exemplos de SaS relacionados com diferentes domínios de software, porém os tipos de SaS associados com a persistência de dados ainda são pouco investigados. Tais tipos de SaS abordam um cenário de execução em que os ciclos de autoadaptação estrutural do sistema quebram a compatibilidade com o esquema de banco de dados que foi estabelecido na etapa de projeto. Tendo em vista esse problema, foi conduzido um mapeamento sistemático da literatura (em inglês, Systematic Mapping Study - SMS) para estabelecer um panorama abrangente sobre a evolução do esquema de dados no domínio de SaS. A partir dos resultados desse SMS, foram levantadas as evidências sobre a importância desse tema de pesquisa, porém não aplicadas de maneira direta no domínio de SaS. Assim, o principal objetivo deste projeto de mestrado acadêmico é contribuir com a área de SaS através da proposição da biblioteca DynaSchema, que consiste em uma nova solução para lidar com a evolução do esquema de dados nesse domínio de software. Em síntese, essa solução atua como uma camada intermediária entre o SaS e seu banco de dados relacional, permitindo que o SaS possa adaptar seu esquema de dados ao mesmo tempo que a biblioteca gerencia as mudanças necessárias no banco de dados. Além disso, vale destacar que o SMS conduzido nesta dissertação de mestrado pode ser utilizado como um norte para o desenvolvimento de soluções que lidam com a evolução do esquema de dados. Por fim, foi elaborado um estudo de caso para avaliar a biblioteca DynaSchema, onde foram explorados cenários de adaptação que lidam com a evolução do esquema de dados do SaS.

Several problems can arise when software adaptation is performed manually, mainly regarding developers' involuntary insertion of uncertainties. Therefore, manual adaptation is an error-prone activity that consumes time, effort, and money. In this context, Self-adaptive Software (SaS) is a special type of software system capable of modifying itself at runtime to deal with changes in its operating environment. According to this feature, SaS can be adopted as a solution to handle the automation of software adaptation while minimizing developer involvement. Several examples of SaS related to different software domains can be found in the scientific literature, but the SaS types associated with data persistence are still slightly investigated. Such systems address an execution scenario in which the system's structural self-adaptation cycles break up compatibility with the database schema established in the design stage. Because of this problem, a Systematic Mapping Study (SMS) was conducted to establish a comprehensive overview of the evolution of the data schema in the SaS domain. Based on the results of this SMS, evidence was retrieved about the importance of this research topic, but not directly applied in the SaS domain. Thus, the main goal of this academic master's project is to contribute to the SaS area by proposing the DynaSchema library, which consists of a new solution to deal with the evolution of the data schema in this software domain. In short, this solution acts as an intermediate layer between SaS and its relational database, enabling SaS to adapt its data schema at the same time as the library manages the necessary changes in the database. Furthermore, it is worth highlighting that the SMS conducted in this master's dissertation can be used as a guide to support the development of solutions that deal with the evolution of the data schema. Finally, a case study was developed to evaluate the DynaSchema library, where adaptation scenarios that deal with the evolution of the SaS data schema were explored.
DynaSchema: a library for relational database evolution for the self-adaptive software domain
Keywords: Evolução do esquema de dados; Software autoadaptativo; Biblioteca; Dynaschema; Data schema evolution; Self-adaptive; Library