An extensible software architecture for modeling complex object-oriented multicomponent systems

##plugins.themes.bootstrap3.article.main##

Михайло Петрик
Dmytro Mykhalyk
Микола Заярний
Олексій Цебрій

Анотація

This article presents a modular, object-oriented architecture for the PBM (Porous Media Modeling) library, a Java-based system designed to model consolidation filtering kinetics in hierarchical porous media with two- and three-level porosity structures. Developing extensible software architectures for scientific computing remains a persistent challenge, particularly for complex, multi-component systems with multi-level relationships. Current software modeling tools are tightly coupled with specific object-oriented domains and the mathematical models of physical processes, such as consolidation filtering in porous media. Consequently, these tools must satisfy strict engineering requirements regarding architectural stability, feature expansion, and the seamless integration of new numerical schemes and physical models. The proposed architecture consists of four decoupled modules: Process, Direct, GUI, and Extra. These modules are interconnected through well-defined interfaces and governed by the Factory, Strategy, and Template Method design patterns. Specifically, the Process, Direct, and Extra modules encapsulate simulation parameters and implement diverse methods for computer modeling and parameter identification. These components control the spatiotemporal distributions of key process variables across various macro- and micro-porous scales. Concurrently, the GUI module provides polymorphic visualization via the drawable interface. Ultimately, we demonstrate that this architectural design enables the seamless integration of new mathematical models, numerical schemes for high-performance computing, and analytical methods without modifying the existing codebase, thereby satisfying the open-closed principle.

##plugins.themes.bootstrap3.article.details##

Номер

Розділ

Статті

Посилання

[1] B. Cao, T. Zhang, W. Zhang, D. Wang, Enhanced technology based for sewage sludge deep dewatering: A critical review, Water Res. 189 (2021) 116650. https://doi.org/10.1016/j.watres.2020.116650.

[2] Y. Jiang, F. Gao, N. Zhang, J. Li, M. Xu, Y. Jiang, Dehydration performance of municipal sludge and its dewatering conditioning methods: a review, Ind. Eng. Chem. Res. 62 (2023)11337–11357. https://doi.org/10.1021/acs.iecr.3c01553

[3] Z. Liu, F. Luo, L. He, S. Wang, Y. Wu, Z. Chen, Physical conditioning methods for sludge deep dewatering: A critical review, J. Environ. Manage. 360 (2024) 121207.https://doi.org/10.1016/j.jenvman.2024.121207

[4] J. Hou, C. Hong, W. Ling, J. Hu, W. Feng, Y. Xing, Y. Wang, C. Zhao, L. Feng, Research progress in improving sludge dewaterability: sludge characteristics, chemical conditioning and influencing factors, J. Environ. Manage. 351 (2024) 119863. https://doi.org/10.1016/j.jenvman.2023.119863

[5] L. Shi, X. Yin, H. Sun, X. Pan, Z. Yuan, Y. Cai, A new approach for determining compressibility and permeability characteristics of dredged slurries with high water content, Can. Geotech. J. 59 (2022) 965–977. https://doi.org/10.1139/cgj-2020-0676.

[6] E. Vorobiev, Dewatering of non-uniformly structured wet compacts under additional compressive pressure: Predictive model, Powder Technol. 404 (2022) 117469. https://doi.org/10.1016/j.powtec.2022.117469

[7] E. Vorobiev, Analytical and numerical modelling of the effect of filter medium resistance on the mechanical dewatering of wastes and industrial filter cakes, Chem. Eng. Res. Des. 201 (2024) 108–119. https://doi.org/10.1016/j.cherd.2023.11.017

[8] M. Petryk, E. Vorobiev, Numerical and analytical modeling of solid--liquid expression from soft plant materials, AIChE J. 59 (2013) 4762–4771. https://doi.org/10.1002/aic.14213

[9] A. Logg, K.-A. Mardal, G.N. Wells (Eds.), Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book, Springer, Berlin, 2012. https://doi.org/10.1007/978-3-642-23099-8

[10] H.G. Weller, G. Tabor, H. Jasak, C. Fureby, A tensorial approach to computational continuum mechanics using object-oriented techniques, Computers in Physics 12 (1998) 620–631. https://doi.org/10.1063/1.168744

[11] MATLAB Documentation: Toolbox Development Guidelines, The MathWorks Inc., Natick, MA, 2023. https://www.mathworks.com/help/matlab/matlab_oop/

[12] C. Kelley, Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia, SIAM, Philadelphia, 2022. https://doi.org/10.1137/1.9781611977271

[13] Petryk, M., Lebovka, N., Mykhalyk, D., & Vorobiev, E. (2026). Mechanical dewatering of wet compacts containing binary system of microporous particles. Separation and Purification Technology, Vol. 382, Part 3, 135775. https://doi.org/10.1016/j.seppur.2025.135775

[14] Lebovka N., Petyk M., Vorobiev E. Monte Carlo simulation of dead-end diafiltration of bidispersed particle suspensions. Physical Review E. Vol.106. 064610 (2022) DOI 10.1103/PhysRevE.106.064610

[15] D. Kelly, C. Sanders, The Challenge of Testing Scientific Software, in: Proceedings of the Testing Academic and Industrial Conference – Practice and Research Techniques, Windsor, UK, 2008, 95–98.

[16] J. Carver, N.P.C. Hong, G.K. Thiruvathukal (Eds.), Software Engineering for Science, CRC Press, Boca Raton, 2016.

[17] M. Heroux, J. Willenbring, Barely sufficient software engineering: 10 practices to improve your CSE software, in: Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering, Vancouver, 2009, pp. 15–21.

[18] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA, 1994.

[19] W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes: The Art of Scientific Computing, 3rd ed., Cambridge University Press, Cambridge, 2007.

[20] R.C. Martin, Clean Architecture: A Craftsman's Guide to Software Structure and Design, Prentice Hall, Upper Saddle River, NJ, 2017.

[21] M. Fowler, Inversion of Control Containers and the Dependency Injection Pattern, martinfowler.com, 2004. https://martinfowler.com/articles/injection.html (Accessed: May 2026).

[22] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 4th ed., Addison-Wesley, Boston, 2021.

[23] M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley, Boston, 2002.

[24] P. Bourque, R.E. Fairley (Eds.), SWEBOK: Guide to the Software Engineering Body of Knowledge, Version 3.0, IEEE Computer Society, 2014. https://www.computer.org/education/bodies-of-knowledge/software-engineering

[25] M. Petryk, D. Mykhalyk, Nonlinear Mathematical Model of Two-Level Transfer of the "Filtration–Consolidation" Type, Journal of Automation and Information Sciences 42 (2010) 59–68. https://doi.org/10.1615/JAutomatInfScien.v42.i3.60

[26] D. Mykhalyk, Mathematical modeling of diffusion mass transfer in catalytic media of microporous structure particles (PhD Thesis), Ternopil National Technical University, Ternopil, 2011. http://elartu.tntu.edu.ua/handle/123456789/1381

[27] M. Petryk, D. Mykhalyk, Mathematical modeling of adsorption nonlinear mass transfer in catalytic porous media, Bulletin of TNTU 14 (2009) 136–145. http://elartu.tntu.edu.ua/handle/123456789/514

[28] J. Crank, The Mathematics of Diffusion, 2nd ed., Oxford University Press, Oxford, 1975.

[29] A. Logg, K.-A. Mardal, G.N. Wells (Eds.), Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book, Springer, Berlin, 2012. https://doi.org/10.1007/978-3-642-23099-8

[30] H.G. Weller, G. Tabor, H. Jasak, C. Fureby, A tensorial approach to computational continuum mechanics using object-oriented techniques, Computers in Physics 12 (1998) 620–631. https://doi.org/10.1063/1.168744

[31] MATLAB Documentation: Toolbox Development Guidelines, The MathWorks Inc., Natick, MA, 2023. https://www.mathworks.com/help/matlab/matlab_oop/

[32] C. Kelley, Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia, SIAM, Philadelphia, 2022. https://doi.org/10.1137/1.9781611977271

[33] D. Kelly, C. Sanders, The Challenge of Testing Scientific Software, in: Proceedings of the Testing Academic and Industrial Conference – Practice and Research Techniques, Windsor, UK, 2008, pp. 95–98.

[34] J. Carver, N.P.C. Hong, G.K. Thiruvathukal (Eds.), Software Engineering for Science, CRC Press, Boca Raton, 2016.

[35] M. Heroux, J. Willenbring, Barely sufficient software engineering: 10 practices to improve your CSE software, in: Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering, Vancouver, 2009, pp. 15–21.

[36] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA, 1994.

[37] W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes: The Art of Scientific Computing, 3rd ed., Cambridge University Press, Cambridge, 2007.

[38] R.C. Martin, Clean Architecture: A Craftsman's Guide to Software Structure and Design, Prentice Hall, Upper Saddle River, NJ, 2017.

[39] M. Fowler, Inversion of Control Containers and the Dependency Injection Pattern, martinfowler.com, 2004. https://martinfowler.com/articles/injection.html (Accessed: May 2026).

[40] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 4th ed., Addison-Wesley, Boston, 2021.

[41] M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley, Boston, 2002.

[42] P. Bourque, R.E. Fairley (Eds.), SWEBOK: Guide to the Software Engineering Body of Knowledge, Version 3.0, IEEE Computer Society, 2014. https://www.computer.org/education/bodies-of-knowledge/software-engineering