Software architecture is the cornerstone of the development and maintenance of software systems, and an important research field of software engineering. In this field, DevOps+ Laboratory focuses on the guidance on migrating to microservices architecture especially the determination of microservices boundaries based on data-driven methods and domain-driven design, and the evolution of microservices architecture through identifying and refactoring architectural smells in microservices. We have achieved important research results in the aspects of microservice decomposition and the supports for domain-driven design, which provides a solid theoretical and technological basis for high-quality microservices architecture design.

Microservice architecture: Compared with monolithic architecture, microservice architecture is adopted by many software projects thanks to its agility, flexibility and extensibility. However, one of our industrial surveys shows that microservice architecture decomposition is still a severe challenge faced by microservices-based applications. DevOps+ laboratory aims to provide theoretical basis and decision supports for designing microservice architecture, through our research on “microservices-oriented decomposition”, “microservices-oriented architecture evaluation”, and “software quality attribute in microservices”. Based on these research works, our laboratory has published a number of papers on top conferences and top journals, arousing widespread concern in the community.

Domain-driven design: As a widely accepted design method for microservice architecture, domain-driven design organizes software design activities around domain models, aiming to solve the complexity of domain business in software development. For a long time, DevOps+ laboratory has paid close attention to the application of domain-driven design in the microservice community. We conducted a set of preliminary investigations on the status-of-the-practice of domain-driven design and especially the benefits and challenges it brings to software development. At the same time, the laboratory is committed to solving the specific problems that domain-driven design faces in practice, including the application process of domain-driven design, domain modeling language, and tool support for modeling and reverse modeling. Many research results have been published and widely recognized by the academic community.

List of Outcomes

Publication

Chen, Rui, Shanshan Li, and Zheng Li. “From monolith to microservices: A dataflow-driven approach.” 2017 24th Asia-Pacific Software Engineering Conference (APSEC). IEEE, 2017.

Li, Shanshan, et al. “A dataflow-driven approach to identifying microservices from monolithic applications.” Journal of Systems and Software 157 (2019): 110380.

Zhang, He, et al. “Microservice architecture in reality: An industrial inquiry.” 2019 IEEE international conference on software architecture (ICSA). IEEE, 2019.

Li, Shanshan, et al. “Understanding and addressing quality attributes of microservices architecture: a systematic literature review.” Information and Software Technology (2020): 106449.

钟陈星, et al. “限界上下文视角下的微服务粒度评估.” 软件学报  10 (2019): 3227-3241.

贾子甲, et al. “领域驱动设计模式的收益与挑战: 系统综述.” 软件学报 32.9 (2021): 2642-2664.

李杉杉, et al. “一种优化的数据流驱动的微服务化拆分方法.” 软件学报 32.5 (2021): 1284-1301.

钟陈星, et al. “一种面向领域驱动设计的逆向建模支持方法.” 软件学报 (in press).