Abstract:
The purpose of this paper is to identify how gang of four design patterns impact the maintainability of micro services-based systems. Design patterns were introduced as solutions to common problems that occur in programming. These are supposed to improve the maintainability of a system by improving the code quality. But with modern programming languages, frameworks, and integrated development environments, whether these patterns serve their purpose is a question that is not fully addressed. This paper proposes a tool that can be used to identify whether use of a specific design pattern by a specific developer for a particular micro service-based project can improve its maintainability or not. To do this a model has been created by analyzing enterprise micro service-based applications and gathering data from developers who were involved in the development of those projects. This data is used to create models for maintainability metrices coupling, lack of cohesion, duplication and cyclomatic complexity. This tool will help to decide whether the system is more maintainable with or without the use of selected design patterns. This helps better decision making in deciding how to write new code or refactoring existing code. Results of this research have shown that lack of cohesion is not affected by developer experience, design patterns or the language used in enterprise micro service-based applications. Cyclomatic complexity was only affected by the language used. Also, use of certain design patterns decreased the coupling in the system. But some of the design patterns caused duplications to be increased. So, the results showed that use of design patterns can have a negative and positive impact on the maintainability of a microservice depending on the design pattern used. This research also emphasizes the importance of code review process and code quality analysis automation. Keywords: GOF design patterns, micro services, software maintainability
Citation:
Rathnayake, R.M.H.S.B. (2023). An Analysis of gof software design patterns on software maintainability in micro services [Master's theses, University of Moratuwa]. Institutional Repository University of Moratuwa. http://dl.lib.uom.lk/handle/123/23387