Speaker: Chenxing Zhong
When: September 11, 2024, 11:00 - 12:00
Where: Hybrid

Abstract With the development of Internet technology and the expansion of market demand, rapid software evolution becomes a decisive factor in enterprise business competitions. As a result, a software design style “evolutionary design” which supports rapid changes through small and frequent refactorings, is embraced by most practitioners. Although microservices is the mainstream architectural style supporting evolutionary design, microservices-based systems may still exhibit arbitrary evolvability. A lack of appropriate microservice boundaries, considered a serious challenge by over 60% practitioners in a survey, can hinder the rapid evolution of the software and affect its overall evolvability. Despite many approaches to determining microservice boundaries, they are insufficient for identifying evolvable microservices that follow an evolutionary design, exhibiting three specific deficiencies. First, as for measuring the evolvability of microservices to answer where to refactor, most of the existing approaches use metrics from the object-oriented or service-oriented fields, ignoring microservice architecture concerns. Second, as for answering how to refactor, most approaches use a one-step approach to determine the microservice boundaries of the entire system, which does not support well the mainstream evolutionary design practice. Third, regarding the question of how to ensure refactoring quality, existing approaches often ignore the integrity of the software evolution process, which can lead to inconsistencies between architectural implementations and refactoring decisions. Aiming to bridge the aforementioned deficiencies in supporting evolutionary microservice design, my research proposes three innovative methodological supports: microservice evolvability metrics, a microservice boundary refactoring approach, and a consistency checking approach for microservice implementation and design. The research results can be integrated into an automated tool system to determine evolutionary microservice boundaries, enabling microservice systems to rapidly change and evolve, thereby enhancing the competitiveness of software companies.