OPTIMIZATION OF THE DEVELOPMENT PROCESS OF MONOLITHIC MULTI-MODULE PROJECTS IN JAVA
Abstract
In recent years, there has been an increase in the complexity of Java software development and a change in the scope of projects, including an increase in the number of modules in projects. The multi-modularity of projects, although it improves manageability to a certain extent, but often creates a number of problems that can complicate development and, a problem that will appear in the future, require more resources to support. This article will analyze the main problems of monolithic multi-module Java projects and will try to consider a number of possible solutions to overcome the above problems. The article discusses the peculiarities of working with multi-module monolithic projects using Java as the main programming language. The purpose of this article is to identify features and obstacles using the above architectural approach of the software, analysis of the main possible issues of working with the monolithic multi-module Java projects, as well as providing recommendations for eliminating these obstacles or describing the features of the process that could help engineers in supporting this kind of projects. In other word the main goal of this work is to create recommendations, provide modern best practices for working with monolithic multi-modular software architecture and the most popular modern technological solutions used in corporate development. The proposed recommendations allow the team, primarily developers and the engineering side, to avoid possible obstacles that lead to the loss of efficiency of the monolithic software development process. The most important advantage, from the recommendations given in the article, is the optimization of resource costs (time, money and labor) for the development process. As a result of the article, a general list of recommendations was obtained, which allows the developer to better analyze what changes in the project should (if necessary) be made to optimize the development, assembly and deployment processes of a monolithic Java project, as well as advice before designing new software to avoid the main obstacles of monolithic architecture in the future.
Keywords