{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,12]],"date-time":"2025-10-12T01:07:08Z","timestamp":1760231228686,"version":"build-2065373602"},"reference-count":62,"publisher":"MDPI AG","issue":"9","license":[{"start":{"date-parts":[[2022,9,2]],"date-time":"2022-09-02T00:00:00Z","timestamp":1662076800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Symmetry"],"abstract":"<jats:p>Various architectures can be applied in software design. The aim of this research is to examine a typical implementation of Jakarta EE monolithic and microservice software architectures in the context of software quality attributes. Software quality standards are used to define quality models, as well as quality characteristics and sub-characteristics, i.e., software quality attributes. This paper evaluates monolithic and microservice architectures in the context of Coupling, Testability, Security, Complexity, Deployability, and Availability quality attributes. The performed examinations yielded a quality-based mixed integer goal programming mathematical model for software architecture optimization. The model incorporates various software metrics and considers their maximal, minimal or targeted values, as well as upper and lower deviations. The objective is the sum of all deviations, which should be minimal. Considering the presented model, a solution which incorporated multiple monoliths and microservices was defined. This way, the internal structure of the software is defined in a consistent and symmetrical context, while the external software behavior remains unchanged. In addition, an intersection point of monolithic and microservice software architectures, where software metrics obtain the same values, was introduced. Within the intersection point, either one of the architectures can be applied. With the exception of some metrics, an increase in the number of features leads to a value increase of software metrics in microservice software architecture, whilst these values are constant in monolithic software architecture. An increase in the number of features indicated a quality attribute\u2019s importance for the software system should be examined and an appropriate architecture should be selected accordingly. Finally, practical recommendations regarding software architectures in terms of software quality were given. Since each software system needs to meet non-functional in addition to functional requirements, a quality-driven software engineering can be established.<\/jats:p>","DOI":"10.3390\/sym14091824","type":"journal-article","created":{"date-parts":[[2022,9,8]],"date-time":"2022-09-08T09:51:09Z","timestamp":1662630669000},"page":"1824","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["Development of a Quality-Based Model for Software Architecture Optimization: A Case Study of Monolith and Microservice Architectures"],"prefix":"10.3390","volume":"14","author":[{"given":"Milo\u0161","family":"Mili\u0107","sequence":"first","affiliation":[{"name":"Department of Software Engineering, Faculty of Organizational Sciences, University of Belgrade, Jove Ili\u0107a 154, 11000 Belgrade, Serbia"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0790-6791","authenticated-orcid":false,"given":"Dragana","family":"Makaji\u0107-Nikoli\u0107","sequence":"additional","affiliation":[{"name":"Department of Operation Research and Statistics, Faculty of Organizational Sciences, University of Belgrade, Jove Ili\u0107a 154, 11000 Belgrade, Serbia"}]}],"member":"1968","published-online":{"date-parts":[[2022,9,2]]},"reference":[{"key":"ref_1","unstructured":"Pressman, R.S., and Maxim, B.R. (2019). Software Engineering: A Practitioner\u2019s Approach, McGraw-Hill Education. [9th ed.]."},{"key":"ref_2","unstructured":"Sommerville, I. (2015). Software Engineering, Addison-Wesley Publishing. [9th ed.]."},{"key":"ref_3","doi-asserted-by":"crossref","unstructured":"Kumar, G., and Bhatia, P.K. (2014, January 8\u20139). Comparative analysis of software engineering models from traditional to modern methodologies. Proceedings of the 2014 Fourth International Conference on Advanced Computing & Communication Technologies, Rohtak, India.","DOI":"10.1109\/ACCT.2014.73"},{"key":"ref_4","unstructured":"Bourque, P., and Fairley, R.E. (2014). Guide to the Software Engineering Body of Knowledge (SWEBOK (R)): Version 3.0, IEEE Computer Society Press."},{"key":"ref_5","doi-asserted-by":"crossref","unstructured":"Medvidovic, N., and Taylor, R.N. (2010, January 2\u20138). Software architecture: Foundations, theory, and practice. Proceedings of the 32nd ACM\/IEEE International Conference on Software Engineering-Volume 2, Cape Town, South Africa.","DOI":"10.1145\/1810295.1810435"},{"key":"ref_6","doi-asserted-by":"crossref","first-page":"70","DOI":"10.1109\/32.825767","article-title":"A classification and comparison framework for software architecture description languages","volume":"26","author":"Medvidovic","year":"2000","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_7","unstructured":"Bass, L., Clements, P., and Kazman, R. (2003). Software Architecture in Practice, Addison-Wesley Professional."},{"key":"ref_8","doi-asserted-by":"crossref","first-page":"145","DOI":"10.1109\/TSC.2010.21","article-title":"From Software Architecture Analysis to Service Engineering: An Empirical Study of Methodology Development for Enterprise SOA Implementation","volume":"3","author":"Chen","year":"2010","journal-title":"IEEE Trans. Serv. Comput."},{"key":"ref_9","unstructured":"(2022, July 31). ISO\/IEC\/IEEE 24765:2017 Systems and Software Engineering\u2014Vocabulary. Available online: http:\/\/www.iso.org."},{"key":"ref_10","doi-asserted-by":"crossref","unstructured":"Clements, P., Garlan, D., Bass, L., Stafford, J., Nord, R., Ivers, J., and Little, R. (2002). Documenting Software Architectures: Views and Beyond, Pearson Education.","DOI":"10.1109\/ICSE.2003.1201264"},{"key":"ref_11","doi-asserted-by":"crossref","unstructured":"Mazzara, M., and Meyer, B. (2017). Present and Ulterior Software Engineering, Springer.","DOI":"10.1007\/978-3-319-67425-4"},{"key":"ref_12","unstructured":"Martin, R.C., and Martin, M. (2006). Agile Principles, Patterns, and Practices in C#, Prentice Hall."},{"key":"ref_13","doi-asserted-by":"crossref","first-page":"81","DOI":"10.1109\/MCC.2016.112","article-title":"Open Issues in Scheduling Microservices in the Cloud","volume":"3","author":"Fazio","year":"2016","journal-title":"IEEE Cloud Comput."},{"key":"ref_14","unstructured":"Newman, S. (2015). Building Microservices: Designing Fine-Grained Systems, O\u2019Reilly Media, Inc."},{"key":"ref_15","doi-asserted-by":"crossref","first-page":"4","DOI":"10.1109\/32.979986","article-title":"A hierarchical model for object-oriented design quality assessment","volume":"28","author":"Bansiya","year":"2002","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_16","unstructured":"Crosby, P.B. (1980). Quality is Free, Signet Book."},{"key":"ref_17","unstructured":"(2022, July 31). ISO\/IEC 25010:2011 Systems and Software Engineering\u2014Systems and Software Quality Requirements and Evaluation (SQuaRE)\u2014System and Software Quality Models. Available online: http:\/\/www.iso.org."},{"key":"ref_18","unstructured":"(2022, July 31). ISO\/IEC 9126:2001 Software Engineering\u2014Product Quality\u2014Part 1: Quality Model. Available online: http:\/\/www.iso.org."},{"key":"ref_19","doi-asserted-by":"crossref","first-page":"34","DOI":"10.1109\/MS.2003.1159027","article-title":"Using quality models in software package selection","volume":"20","author":"Franch","year":"2003","journal-title":"IEEE Softw."},{"key":"ref_20","doi-asserted-by":"crossref","first-page":"420","DOI":"10.1016\/j.protcy.2012.10.050","article-title":"Effectiveness of Software Metrics for Object-oriented System","volume":"6","author":"Suresh","year":"2012","journal-title":"Procedia Technol."},{"key":"ref_21","unstructured":"Kan, S.H. (2002). Metrics and Models in Software Quality Engineering, Addison-Wesley Longman Publishing Co., Inc."},{"key":"ref_22","doi-asserted-by":"crossref","unstructured":"Balogun, A., Basri, S., Mahamad, S., Abdulkadir, S., Almomani, M., Adeyemo, V., Al-Tashi, Q., Mojeed, H., Imam, A., and Bajeh, A. (2020). Impact of Feature Selection Methods on the Predictive Performance of Software Defect Prediction Models: An Extensive Empirical Study. Symmetry, 12.","DOI":"10.3390\/sym12071147"},{"key":"ref_23","doi-asserted-by":"crossref","unstructured":"Alshuqayran, N., Ali, N., and Evans, R. (2016, January 4\u20136). A systematic mapping study in microservice architecture. Proceedings of the 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA), Macau, China.","DOI":"10.1109\/SOCA.2016.15"},{"key":"ref_24","doi-asserted-by":"crossref","unstructured":"Borgida, A.T., Chaudhri, V.K., Giorgini, P., and Yu, E.S. (2009). Conceptual Modeling: Foundations and Applications, Springer.","DOI":"10.1007\/978-3-642-02463-4"},{"key":"ref_25","doi-asserted-by":"crossref","unstructured":"Chen, L. (May, January 30). Microservices: Architecting for continuous delivery and DevOps. Proceedings of the 2018 IEEE International Conference on Software Architecture (ICSA), Seattle, WA, USA.","DOI":"10.1109\/ICSA.2018.00013"},{"key":"ref_26","doi-asserted-by":"crossref","first-page":"42","DOI":"10.1109\/MS.2016.64","article-title":"Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture","volume":"33","author":"Balalaie","year":"2016","journal-title":"IEEE Softw."},{"key":"ref_27","unstructured":"Palmer, S.R., and Felsing, M. (2001). A Practical Guide to Feature-Driven Development, Pearson Education."},{"key":"ref_28","unstructured":"(2022, July 31). ISO\/IEC 26550:2015 Software and Systems Engineering\u2014Reference Model for Product Line Engineering and Management. Available online: http:\/\/www.iso.org."},{"key":"ref_29","doi-asserted-by":"crossref","unstructured":"Taibi, D., Lenarduzzi, V., and Pahl, C. (2018, January 19\u201321). Architectural Patterns for Microservices: A Systematic Mapping Study. Proceedings of the International Conference on Cloud Computing and Services Science (CLOSER), Funchal, Portugal.","DOI":"10.5220\/0006798302210232"},{"key":"ref_30","unstructured":"Hasselbring, W., Reussner, R., Jaekel, H., Schlegelmilch, J., Teschke, T., and Krieghoff, S. (2004, January 28\u201328). The dublo architecture pattern for smooth migration of business information systems: An experience report. Proceedings of the 26th IEEE International Conference on Software Engineering (ICSE), Edinburgh, UK."},{"key":"ref_31","doi-asserted-by":"crossref","unstructured":"Campbell, G.A. (2018, January 27\u201328). Cognitive complexity: An overview and evaluation. Proceedings of the 2018 International Conference on Technical Debt, Gothenburg, Sweden.","DOI":"10.1145\/3194164.3194186"},{"key":"ref_32","doi-asserted-by":"crossref","unstructured":"Atkinson, C., Bostan, P., Hummel, O., and Stoll, D. (2007, January 9\u201313). A practical approach to web service discovery and retrieval. Proceedings of the IEEE International Conference on Web Services (ICWS 2007), Salt Lake City, UT, USA.","DOI":"10.1109\/ICWS.2007.12"},{"key":"ref_33","doi-asserted-by":"crossref","unstructured":"Cardarelli, M., Iovino, L., Di Francesco, P., Di Salle, A., Malavolta, I., and Lago, P. (2019, January 8\u201312). An extensible data-driven approach for evaluating the quality of microservice architectures. Proceedings of the 34th ACM\/SIGAPP Symposium on Applied Computing, Limassol, Cyprus.","DOI":"10.1145\/3297280.3297400"},{"key":"ref_34","doi-asserted-by":"crossref","first-page":"301","DOI":"10.1007\/s00450-016-0337-0","article-title":"Microservices tenets","volume":"32","author":"Zimmermann","year":"2017","journal-title":"Comput. Sci. Res. Dev."},{"key":"ref_35","doi-asserted-by":"crossref","unstructured":"Calder\u00f3n-G\u00f3mez, H., Mendoza-Pitt\u00ed, L., Vargas-Lombardo, M., G\u00f3mez-Pulido, J., Rodr\u00edguez-Puyol, D., Senci\u00f3n, G., and Polo-Luque, M.-L. (2021). Evaluating Service-Oriented and Microservice Architecture Patterns to Deploy eHealth Applications in Cloud Computing Environment. Appl. Sci., 11.","DOI":"10.3390\/app11104350"},{"key":"ref_36","doi-asserted-by":"crossref","unstructured":"Al-Naeem, T., Gorton, I., Babar, M.A., Rabhi, F., and Benatallah, B. (2005, January 15\u201321). A quality-driven systematic approach for architecting distributed software applications. Proceedings of the 27th International Conference on Software Engineering, St. Louis, MO, USA.","DOI":"10.1145\/1062455.1062508"},{"key":"ref_37","doi-asserted-by":"crossref","first-page":"225","DOI":"10.1016\/S0164-1212(02)00082-1","article-title":"Quality-driven software re-engineering","volume":"66","author":"Tahvildari","year":"2003","journal-title":"J. Syst. Softw."},{"key":"ref_38","doi-asserted-by":"crossref","unstructured":"Villegas, N.M., M\u00fcller, H.A., Tamura, G., Duchien, L., and Casallas, R. (2011, January 23\u201324). A framework for evaluating quality-driven self-adaptive software systems. Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, Honolulu, HI, USA.","DOI":"10.1145\/1988008.1988020"},{"key":"ref_39","doi-asserted-by":"crossref","first-page":"97","DOI":"10.1023\/A:1008900825849","article-title":"A Critical Analysis of Current OO Design Metrics","volume":"8","author":"Mayer","year":"1999","journal-title":"Softw. Qual. J."},{"key":"ref_40","doi-asserted-by":"crossref","first-page":"24","DOI":"10.1109\/MS.2018.2141039","article-title":"Microservices: The Journey So Far and Challenges Ahead","volume":"35","author":"Jamshidi","year":"2018","journal-title":"IEEE Softw."},{"key":"ref_41","unstructured":"Hitz, M., and Montazeri, B. (1995, January 4\u20136). Measuring coupling and cohesion in object-oriented systems. Proceedings of the International Symposium on Applied Corporate Computing (ISACC), Cairns, Australia."},{"key":"ref_42","doi-asserted-by":"crossref","first-page":"1119","DOI":"10.1007\/s11219-017-9369-3","article-title":"Dynamic structure measurement for distributed software","volume":"26","author":"Jin","year":"2017","journal-title":"Softw. Qual. J."},{"key":"ref_43","unstructured":"Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley."},{"key":"ref_44","doi-asserted-by":"crossref","first-page":"105","DOI":"10.1109\/MS.2007.176","article-title":"Ruby on rails","volume":"24","author":"Kirchberg","year":"2007","journal-title":"IEEE Softw."},{"key":"ref_45","doi-asserted-by":"crossref","unstructured":"Pahl, C., and Jamshidi, P. (2016, January 23\u201325). Microservices: A Systematic Mapping Study. Proceedings of the 6th International Conference on Cloud Computing and Services Science (CLOSER 2016), Rome, Italy.","DOI":"10.5220\/0005785501370146"},{"key":"ref_46","doi-asserted-by":"crossref","unstructured":"Hasselbring, W., and Steinacker, G. (2017, January 5\u20137). Microservice architectures for scalability, agility and reliability in e-commerce. Proceedings of the 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), Gothenburg, Sweden.","DOI":"10.1109\/ICSAW.2017.11"},{"key":"ref_47","doi-asserted-by":"crossref","first-page":"233","DOI":"10.1007\/s11761-017-0208-y","article-title":"Cost comparison of running web applications in the cloud using monolithic, microservice, and AWS Lambda architectures","volume":"11","author":"Villamizar","year":"2017","journal-title":"Serv. Oriented Comput. Appl."},{"key":"ref_48","doi-asserted-by":"crossref","first-page":"35","DOI":"10.1145\/570907.570928","article-title":"Specification, implementation, and deployment of components","volume":"45","author":"Crnkovic","year":"2002","journal-title":"Commun. ACM"},{"key":"ref_49","unstructured":"Burns, B., and Oppenheimer, D. (2016, January 20\u201321). Design patterns for container-based distributed systems. Proceedings of the 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 16), Denver, CO, USA."},{"key":"ref_50","unstructured":"Fowler, M. (2002). Patterns of Enterprise Application Architecture, Addison-Wesley Longman Publishing Co., Inc."},{"key":"ref_51","doi-asserted-by":"crossref","first-page":"331","DOI":"10.1016\/j.infsof.2011.10.006","article-title":"A methodology to assess the impact of design patterns on software quality","volume":"54","author":"Ampatzoglou","year":"2012","journal-title":"Inf. Softw. Technol."},{"key":"ref_52","doi-asserted-by":"crossref","unstructured":"Khomh, F., and Gueheneuce, Y.G. (2008, January 1\u20134). Do design patterns impact software quality positively?. Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering, Athens, Greece.","DOI":"10.1109\/CSMR.2008.4493325"},{"key":"ref_53","unstructured":"Levcovitz, A., Terra, R., and Valente, M.T. (2015, January 23). Towards a technique for extracting microservices from monolithic enterprise systems. Proceedings of the 3rd Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM), Belo Horizonte, Brazil."},{"key":"ref_54","doi-asserted-by":"crossref","unstructured":"Carrasco, A., Bladel, B.V., and Demeyer, S. (2018, January 4). Migrating towards microservices: Migration and architecture smells. Proceedings of the 2nd International Workshop on Refactoring, Montpellier, France.","DOI":"10.1145\/3242163.3242164"},{"key":"ref_55","doi-asserted-by":"crossref","unstructured":"Sneed, H.M. (2006, January 22\u201324). Integrating legacy software into a service oriented architecture. Proceedings of the Conference on Software Maintenance and Reengineering (CSMR\u203206), Bari, Italy.","DOI":"10.1109\/CSMR.2006.28"},{"key":"ref_56","doi-asserted-by":"crossref","unstructured":"Bogner, J., Fritzsch, J., Wagner, S., and Zimmermann, A. (2019, January 25\u201326). Microservices in Industry: Insights into Technologies, Characteristics, and Software Quality. Proceedings of the 2019 IEEE International Conference on Software Architecture Companion (ICSA-C), Hamburg, Germany.","DOI":"10.1109\/ICSA-C.2019.00041"},{"key":"ref_57","doi-asserted-by":"crossref","first-page":"22","DOI":"10.1109\/MCC.2017.4250931","article-title":"Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation","volume":"4","author":"Taibi","year":"2017","journal-title":"IEEE Cloud Comput."},{"key":"ref_58","unstructured":"Fowler, M. (2018). Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional."},{"key":"ref_59","doi-asserted-by":"crossref","first-page":"126","DOI":"10.1109\/TSE.2004.1265817","article-title":"A survey of software refactoring","volume":"30","author":"Mens","year":"2004","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_60","doi-asserted-by":"crossref","first-page":"1319","DOI":"10.1016\/j.infsof.2009.04.002","article-title":"Empirical investigation of refactoring effect on software quality","volume":"51","author":"Alshayeb","year":"2009","journal-title":"Inf. Softw. Technol."},{"key":"ref_61","doi-asserted-by":"crossref","unstructured":"Fontana, F.A., and Spinelli, S. (2011, January 22). Impact of refactoring on quality code evaluation. Proceedings of the 4th Workshop on Refactoring Tools, Honolulu, HI, USA.","DOI":"10.1145\/1984732.1984741"},{"key":"ref_62","doi-asserted-by":"crossref","unstructured":"Hassan, S., and Bahsoon, R. (July, January 27). Microservices and their design trade-offs: A self-adaptive roadmap. Proceedings of the 2016 IEEE International Conference on Services Computing (SCC), San Francisco, CA, USA.","DOI":"10.1109\/SCC.2016.113"}],"container-title":["Symmetry"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2073-8994\/14\/9\/1824\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T00:22:19Z","timestamp":1760142139000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2073-8994\/14\/9\/1824"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,9,2]]},"references-count":62,"journal-issue":{"issue":"9","published-online":{"date-parts":[[2022,9]]}},"alternative-id":["sym14091824"],"URL":"https:\/\/doi.org\/10.3390\/sym14091824","relation":{},"ISSN":["2073-8994"],"issn-type":[{"type":"electronic","value":"2073-8994"}],"subject":[],"published":{"date-parts":[[2022,9,2]]}}}