The Impact of Microservices on the Evolution of a Software Product Line - Becker, Alex Malmann; Lucrédio, Daniel (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS); 2020: Anais do XIV Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, 2020)
Sharing a software product among multiple customers requires dealing with common and variable features. A Software Product Line approach may be used to manage these issues both during initial development and evolution. Many technologies can be used to implement a product line, and the micro services architectural style is a way to make the evolution process easier, since it can contain the impact of changes within smaller units, which are individually developed and deployed. Although this is an important subject, widely used in the industry, not many research papers investigate the impact of micro services in a real software product line, specially during evolution, when they are supposed to bring the most benefits. This research evaluated how the evolution of a software product line can benefit from the use of micro services. The study was based on a real software product line for the Enterprise Resource Planning domain, involving two versions of the product line: one without micro services, which was the original architecture and one with micro services, obtained after a migration from the original architecture to a micro services architecture. The results show that micro services brought benefits to the evolution of the software product line, but only in adaptive maintenance tasks. In evolutive tasks, where new services had to be created, the developers had to spend extra effort. The paper also describes some lessons learned during the migration. These may serve as guidance for researchers and practitioners interested in using micro services in a software product line.