O impacto do uso de micro serviços na evolução de uma linha de produto de software - Becker, Alex Malmann (2019)
Due to the high demand for software as a service, more and more companies are forced to modernize their applications to the digital world. However, this modernization needs to be very well designed to be able to follow the customers needs and also to have low operation cost, especially in applications that have a great deal of functionality variability for their customers. In this context, one of the faced problems is related to the management of multiple versions of ``similar'' systems and software evolution. To solve this issue, the SPL approach is used, while the Micro Services architectural style is a way to make the evolution process lighter, since it can be performed only in the specific micro-services being updated. However, despite being an important subject and widely used by the software industry, in the academy we did not find a large number of papers dealing with micro services and SPL. In the survey carried out in this work, only two papers were found that used micro services and SPL, one of them directly related to this work, applying the micro-services architecture and a SPL process, and the other work which used micro services and SPL to improve the flexibility of product family variability. However, the articles briefly discuss the process of how services were designed, and so this point needs more research. In addition, the main focus of the evaluation was on maintenance tasks, not evolution, as we investigated in this research. Therefore, this work aims to evaluate the evolution (both in the addition of new features and in the maintenance of existing features) of a SPL through the use of micro services in order to be able to affirm if the impact of micro services really improved the task of evolution. In order to reach the expected objective, this work had the partnership of a company based in Rio Grande do Sul, which has a ERP in its product portfolio, implemented as a product line. Based on this, a case study was carried out in two scenarios (one with micro services and the other without micro services), which allowed us to evaluate that the use of micro services brings great benefits in the evolution of a software product line, mainly in adaptive maintenance tasks. Finally, in addition to evaluating the impact of the use of micro services in the evolution of a product line, this work contributes with the lessons learned from the migration of a project developed in the traditional approach to the use of micro services, using data from a real experiment with focus on software engineering.