Modular Architecture Based on Service Locator for Refactoring a Monolithic Native Software System
Abstract
Monolithic native software systems, characterized by high component coupling and dependency on proprietary technologies, pose significant challenges for modernization and migration to new platforms. This work is dedicated to developing an approach to incremental refactoring of such a system, ensuring loose coupling and cross-platform compatibility. The proposed solution is based on the use of a service locator and code generation to create modular components with clear interfaces. The proposed architectural implementation of the service locator employs principles of separation of concerns and inversion of control, combining object-oriented programming patterns to ensure runtime type safety, as well as proper management of object lifecycles and their initialization sequence. The approach supports three goals: adding new functionality, reducing technical debt, and migrating to new tools and platforms to decrease vendor dependency. The developed architecture enables refactoring without halting development, simplifying integration, and reducing risks. Empirical validation on a real-world case of migrating software from the Embarcadero (Borland) C++ Builder and VCL technology stack to Microsoft Visual Studio and Qt, with subsequent porting to the Linux operating system, confirmed the applicability of the solution, which can be used for other systems with similar constraints.

This work is licensed under a Creative Commons Attribution 4.0 International License.
Publication policy of the journal is based on traditional ethical principles of the Russian scientific periodicals and is built in terms of ethical norms of editors and publishers work stated in Code of Conduct and Best Practice Guidelines for Journal Editors and Code of Conduct for Journal Publishers, developed by the Committee on Publication Ethics (COPE). In the course of publishing editorial board of the journal is led by international rules for copyright protection, statutory regulations of the Russian Federation as well as international standards of publishing.
Authors publishing articles in this journal agree to the following: They retain copyright and grant the journal right of first publication of the work, which is automatically licensed under the Creative Commons Attribution License (CC BY license). Users can use, reuse and build upon the material published in this journal provided that such uses are fully attributed.
