SOLID AS A SYSTEM OF CONSTRUCTIVE CONSTRAINTS IN SOFTWARE ARCHITECTURE DESIGN
DOI:
https://doi.org/10.31548/itees.2025.01.020Keywords:
SOLID, Object-Oriented Programming, Software Architecture, Design Patterns, Cohesion, Coupling, Code Quality Metrics, Dependency Inversion (DI/IoC)Abstract
The article presents SOLID as a system of constructive constraints that disciplines the degrees of freedom in design and transforms the evolution of software systems into a controlled process. It explains the relationship of the principles with the foundations of object-oriented programming, design patterns, and architectural styles. Non-obvious effects are examined, including premature abstractions under OCP, hidden configuration coupling under DIP/DI, class explosion and responsibility fragmentation under SRP/ISP, and semantic violations of LSP that are not captured by type signatures. An operational approach to decision validation is proposed through metrics, contract-based tests, and threshold controls for introducing abstractions, along with practical decision-making protocols.
References
1. Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), 476–493. https://doi.org/10.1109/32.295895.
2. Basili, V. R., Briand, L. C., & Melo, W. L. (1996). A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering, 22(10), 751–761. https://doi.org/10.1109/32.489317.
3. Briand, L. C., Daly, J. W., & Wüst, J. (1999). A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering, 25(1), 91–121. https://doi.org/10.1109/32.748920.
4. Zhou, Y., & Leung, H. (2006). Empirical analysis of object-oriented design metrics for predicting high and low severity faults. IEEE Transactions on Software Engineering, 32(10), 771–789. https://doi.org/10.1109/TSE.2006.102.
5. Arisholm, E., Briand, L. C., & Føyen, A. (2004). Dynamic coupling measurement for object-oriented software. IEEE Transactions on Software Engineering, 30(8), 491–506. https://doi.org/10.1109/TSE.2004.41.
6. Marcus, A., Poshyvanyk, D., & Ferenc, R. (2008). Using the conceptual cohesion of classes for fault prediction. IEEE Transactions on Software Engineering, 34(2), 287–300. https://doi.org/10.1109/TSE.2007.70768.
7. Revelle, M., Gethers, M. & Poshyvanyk, D. (2011). Using structural and textual information to capture feature coupling in object-oriented software. Empir Software Eng, 16, 773–811. https://doi.org/10.1007/s10664-011-9159-7.
8. Ajienka, N., & Capiluppi, A. (2017). Understanding the interplay between logical and structural coupling of software classes. Journal of Systems and Software, 134, 120–137. https://doi.org/10.1016/j.jss.2017.08.042.
9. Ajienka, N., Capiluppi, A., & Counsell, S. (2018). An empirical study on the interplay between semantic coupling and co-change. Empirical Software Engineering, 23(4), 1799–1836. https://doi.org/10.1007/s10664-017-9569-2.
10. Kagdi, H., Gethers, M. & Poshyvanyk, D. (2013). Integrating conceptual and logical couplings for change impact analysis in software. Empir Software Eng, 18, 933–969. https://doi.org/10.1007/s10664-012-9233-9.
11. Ampatzoglou, A., Frantzeskou, G., & Stamelos, I. (2012). A methodology to assess the impact of design patterns on software quality. Information and Software Technology, 54(4), 331-346. https://doi.org/10.1016/j.infsof.2011.10.006.
12. Yamashita, A., & Moonen, L. (2013). AiOLoS: A model for assessing organizational learning in software development organizations, 55(11), 1904-1924. https://doi.org/10.1016/j.infsof.2013.05.004.
13. Alfadel, M., Aljasser, K., & Alshayeb M. (2020). Empirical study of the relationship between design patterns and code smells. PLoS ONE, 15(4): e0231731. https://doi.org/10.1371/journal.pone.0231731.
14. Gnoyke, P., Schulze, S., & Krüger, J. (2024). Evolution patterns of software-architecture smells. Journal of Systems and Software, 213, 112170. https://doi.org/10.1016/j.jss.2024.112170.
15. Arisholm, E., Sjøberg, D. I. K., & Jørgensen, M. (2001). Assessing the changeability of two object-oriented design alternatives: A controlled experiment. Empirical Software Engineering, 6(3), 231–277. https://doi.org/10.1023/A:1011439416657.
16. Chae, H. S., Kwon, Y. R., & Bae, D. H. (2004). Improving cohesion metrics for classes. IEEE Transactions on Software Engineering, 30(8), 548–564. https://doi.org/10.1109/TSE.2004.88.
17. Liskov, B., & Wing, J. (1994). A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6), 1811–1841. https://doi.org/10.1145/197320.197383.
18. Meyer, B. (1992). Applying “design by contract.” Computer, 25(10), 40–51. https://doi.org/10.1109/2.161279.
19. Waseem, M., Liang, P., Shahin, M., Di Salle, A., & Márquez, G. (2021). Design, monitoring, and testing of microservices systems: The practitioners’ perspective. Journal of Systems and Software, 182, 111061. https://doi.org/10.1016/j.jss.2021.111061.
20. Fregnan, E., Palomba, F., Bavota, G., Di Penta, M., Oliveto, R., & Lucia, A. D. (2019). On nonlinear Schrödinger equations with attractive inverse-power potentials. Information and Software Technology, 107, 159-178. https://doi.org/10.48550/arXiv.1903.04636.
21. Lampón, J. F., Cabanelas, P., & González-Benito, J. (2017). The impact of modular platforms on automobile manufacturing networks. Production Planning & Control, 28(4), 335–348. https://doi.org/10.1080/09537287.2017.1287442.
22. Pandremenos, J., Paralikas, J., Salonitis, K., & Chryssolouris, G. (2009). Modularity concepts for the automotive industry: A critical review. CIRP Journal of Manufacturing Science and Technology, 1(3), 148–152. https://doi.org/10.1016/j.cirpj.2008.09.012.
23. Bao, Z., Laovisutthichai, V., Tan, T., Wang, Q., & Lu, W. (2022). Design for manufacture and assembly (DfMA) enablers for offsite interior design and construction. Building Research & Information, 50(3), 325–338. https://doi.org/10.1080/09613218.2021.1966734.
Downloads
Published
Issue
Section
License
Copyright (c) 2025 Information technologies in economics and environmental sciences

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.