{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,1]],"date-time":"2025-12-01T11:23:57Z","timestamp":1764588237162,"version":"build-2065373602"},"reference-count":41,"publisher":"MDPI AG","issue":"12","license":[{"start":{"date-parts":[[2021,12,6]],"date-time":"2021-12-06T00:00:00Z","timestamp":1638748800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Algorithms"],"abstract":"<jats:p>The underlying infrastructure paradigms behind the novel usage scenarios and services are becoming increasingly complex\u2014from everyday life in smart cities to industrial environments. Both the number of devices involved and their heterogeneity make the allocation of software components quite challenging. Despite the enormous flexibility enabled by component-based software engineering, finding the optimal allocation of software artifacts to the pool of available devices and computation units could bring many benefits, such as improved quality of service (QoS), reduced energy consumption, reduction of costs, and many others. Therefore, in this paper, we introduce a model-based framework that aims to solve the software component allocation problem (CAP). We formulate it as an optimization problem with either single or multiple objective functions and cover both cases in the proposed framework. Additionally, our framework also provides visualization and comparison of the optimal solutions in the case of multi-objective component allocation. The main contributions introduced in this paper are: (1) a novel methodology for tackling CAP-alike problems based on the usage of model-driven engineering (MDE) for both problem definition and solution representation; (2) a set of Python tools that enable the workflow starting from the CAP model interpretation, after that the generation of optimal allocations and, finally, result visualization. The proposed framework is compared to other similar works using either linear optimization, genetic algorithm (GA), and ant colony optimization (ACO) algorithm within the experiments based on notable papers on this topic, covering various usage scenarios\u2014from Cloud and Fog computing infrastructure management to embedded systems, robotics, and telecommunications. According to the achieved results, our framework performs much faster than GA and ACO-based solutions. Apart from various benefits of adopting a multi-objective approach in many cases, it also shows significant speedup compared to frameworks leveraging single-objective linear optimization, especially in the case of larger problem models.<\/jats:p>","DOI":"10.3390\/a14120354","type":"journal-article","created":{"date-parts":[[2021,12,6]],"date-time":"2021-12-06T22:18:42Z","timestamp":1638829122000},"page":"354","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":7,"title":["A Model-Driven Approach for Solving the Software Component Allocation Problem"],"prefix":"10.3390","volume":"14","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2758-8145","authenticated-orcid":false,"given":"Issam","family":"Al-Azzoni","sequence":"first","affiliation":[{"name":"College of Engineering, Al Ain University, Al Ain 64141, United Arab Emirates"}]},{"given":"Julian","family":"Blank","sequence":"additional","affiliation":[{"name":"Computer Science and Engineering, Michigan State University, East Lansing, MI 48824, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2264-7369","authenticated-orcid":false,"given":"Nenad","family":"Petrovi\u0107","sequence":"additional","affiliation":[{"name":"Faculty of Electronic Engineering, University of Nis, Aleksandra Medvedeva 14, 18000 Nis, Serbia"}]}],"member":"1968","published-online":{"date-parts":[[2021,12,6]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","first-page":"62","DOI":"10.1016\/j.sysarc.2018.09.007","article-title":"A survey on modeling and model-driven engineering practices in the embedded software industry","volume":"91","author":"Akdur","year":"2018","journal-title":"J. Syst. Archit."},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"233","DOI":"10.1007\/s10515-017-0215-4","article-title":"A survey on search-based model-driven engineering","volume":"24","author":"Siarry","year":"2017","journal-title":"Autom. Softw. Eng."},{"key":"ref_3","first-page":"139","article-title":"Model-driven engineering: A survey supported by the unified conceptual model","volume":"43","year":"2015","journal-title":"Comput. Lang. Syst. Struct."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"101021","DOI":"10.1016\/j.cola.2020.101021","article-title":"A survey of Model Driven Engineering in robotics","volume":"62","author":"Valentin","year":"2021","journal-title":"J. Comput. Lang."},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"106449","DOI":"10.1016\/j.infsof.2020.106449","article-title":"Understanding and addressing quality attributes of microservices architecture: A Systematic literature review","volume":"131","author":"Li","year":"2021","journal-title":"Inf. Softw. Technol."},{"key":"ref_6","doi-asserted-by":"crossref","first-page":"101491","DOI":"10.1016\/j.is.2020.101491","article-title":"Understanding Service-Oriented Architecture (SOA): A systematic literature review and directions for further investigation","volume":"91","author":"Niknejad","year":"2020","journal-title":"Inf. Syst."},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"989","DOI":"10.1109\/TCC.2017.2662226","article-title":"Link-Aware Virtual Machine Placement for Cloud Services based on Service-Oriented Architecture","volume":"8","author":"Tseng","year":"2020","journal-title":"IEEE Trans. Cloud Comput."},{"unstructured":"(2021, November 15). Eclipse Modeling Framework (EMF). Available online: https:\/\/www.eclipse.org\/modeling\/emf\/.","key":"ref_8"},{"unstructured":"Steinberg, D., Budinsky, F., Paternostro, M., and Merks, E. (2008). EMF: Eclipse Modeling Framework, Addison-Wesley Professional. Chapter 5.","key":"ref_9"},{"unstructured":"(2021, November 15). OMG\u2019s MetaObject Facility. Available online: http:\/\/www.omg.org\/mof\/.","key":"ref_10"},{"unstructured":"(2021, November 15). MDA. Available online: http:\/\/www.omg.org\/mda\/.","key":"ref_11"},{"unstructured":"(2021, November 15). ATL. Available online: https:\/\/www.eclipse.org\/atl\/.","key":"ref_12"},{"key":"ref_13","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1016\/j.scico.2007.08.002","article-title":"ATL: A model transformation tool","volume":"72","author":"Jouault","year":"2008","journal-title":"Sci. Comput. Program."},{"unstructured":"(2021, November 15). Eclipse Modeling Project. Available online: https:\/\/eclipse.org\/modeling\/.","key":"ref_14"},{"unstructured":"(2021, November 15). QVT. Available online: http:\/\/www.omg.org\/spec\/QVT\/.","key":"ref_15"},{"key":"ref_16","doi-asserted-by":"crossref","first-page":"211","DOI":"10.2498\/cit.1002284","article-title":"An Extended Model for Multi-Criteria Software Component Allocation on a Heterogeneous Embedded Platform","volume":"21","year":"2013","journal-title":"J. Comput. Inf. Technol."},{"key":"ref_17","doi-asserted-by":"crossref","first-page":"161","DOI":"10.1016\/0270-0255(87)90473-8","article-title":"The Analytic Hierarchy Process\u2014What it is and how it is used","volume":"9","author":"Saaty","year":"1987","journal-title":"Math. Model."},{"doi-asserted-by":"crossref","unstructured":"\u0160vogor, I., and Carlson, J. (2015, January 7). SCALL: Software Component Allocator for Heterogeneous Embedded Systems. Proceedings of the European Conference on Software Architecture Workshops, New York, NY, USA.","key":"ref_18","DOI":"10.1145\/2797433.2797501"},{"key":"ref_19","doi-asserted-by":"crossref","first-page":"153067","DOI":"10.1109\/ACCESS.2020.3015864","article-title":"Meta-Heuristics for Solving the Software Component Allocation Problem","volume":"8","author":"Iqbal","year":"2020","journal-title":"IEEE Access"},{"key":"ref_20","doi-asserted-by":"crossref","first-page":"73","DOI":"10.1109\/TSE.2011.3","article-title":"An Extensible Framework for Improving a Distributed Software System\u2019s Deployment Architecture","volume":"38","author":"Malek","year":"2012","journal-title":"IEEE Trans. Softw. Eng."},{"doi-asserted-by":"crossref","unstructured":"Koziolek, A., Koziolek, H., and Reussner, R.H. (2011, January 20\u201324). PerOpteryx: Automated application of tactics in multi-objective software architecture optimization. Proceedings of the International Conference on the Quality of Software Architectures and the International Symposium on Architecting Critical Systems, New York, NY, USA.","key":"ref_21","DOI":"10.1145\/2000259.2000267"},{"unstructured":"Deb, K., Agrawal, S., Pratap, A., and Meyarivan, T. (2020, January 5\u20139). A Fast Elitist Non-dominated Sorting Genetic Algorithm for Multi-objective Optimisation: NSGA-II. Proceedings of the International Conference on Parallel Problem Solving from Nature, Leiden, The Netherlands.","key":"ref_22"},{"key":"ref_23","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1016\/j.jss.2008.03.066","article-title":"The Palladio Component Model for Model-Driven Performance Prediction","volume":"82","author":"Becker","year":"2009","journal-title":"J. Syst. Softw."},{"key":"ref_24","doi-asserted-by":"crossref","first-page":"148","DOI":"10.1109\/TSE.2008.74","article-title":"Enhanced Modeling and Solution of Layered Queueing Networks","volume":"35","author":"Franks","year":"2009","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_25","doi-asserted-by":"crossref","first-page":"2542","DOI":"10.1016\/j.jss.2013.03.081","article-title":"Hybrid multi-attribute QoS optimization in component based software systems","volume":"86","author":"Koziolek","year":"2013","journal-title":"J. Syst. Softw."},{"doi-asserted-by":"crossref","unstructured":"Aleti, A., Bj\u00f6rnander, S., Grunske, L., and Meedeniya, I. (2009, January 16). ArcheOpterix: An extendable tool for architecture optimization of AADL models. Proceedings of the Workshop on Model-Based Methodologies for Pervasive and Embedded Software, Vancouver, BC, Canada.","key":"ref_26","DOI":"10.1109\/MOMPES.2009.5069138"},{"unstructured":"(2021, November 15). OSATE (Open Source AADL Tool Environment). Available online: https:\/\/osate.org.","key":"ref_27"},{"doi-asserted-by":"crossref","unstructured":"Feiler, P., Gluch, D., and Hudak, J. (2006). The Architecture Analysis and Design Language (AADL): An Introduction, Software Engineering Institute, Carnegie Mellon University. Technical Report CMU\/SEI-2006-TN-011.","key":"ref_28","DOI":"10.21236\/ADA455842"},{"doi-asserted-by":"crossref","unstructured":"Aleti, A., Grunske, L., Meedeniya, I., and Moser, I. (2009, January 16\u201320). Let the Ants Deploy Your Software\u2014An ACO Based Deployment Optimisation Strategy. Proceedings of the International Conference on Automated Software Engineering, Auckland, New Zealand.","key":"ref_29","DOI":"10.1109\/ASE.2009.59"},{"unstructured":"Li, R., Etemaadi, R., Emmerich, M.T.M., and Chaudron, M.R.V. An evolutionary multiobjective optimization approach to component-based software architecture design. Proceedings of the Congress of Evolutionary Computation, IEEE.","key":"ref_30"},{"doi-asserted-by":"crossref","unstructured":"Wichmann, A., Maschotta, R., Bedini, F., and Zimmermann, A. (2019, January 8\u201311). Model-Driven Development of UML-Based Domain-Specific Languages for System Architecture Variants. Proceedings of the International Systems Conference (SysCon), Orlando, FL, USA.","key":"ref_31","DOI":"10.1109\/SYSCON.2019.8836895"},{"key":"ref_32","doi-asserted-by":"crossref","first-page":"315","DOI":"10.1007\/s10515-018-0248-3","article-title":"Model-driven allocation engineering: Specifying and solving constraints based on the example of automotive systems","volume":"26","author":"Pohlmann","year":"2019","journal-title":"Autom. Softw. Eng."},{"unstructured":"(2021, November 15). PyEcore. Available online: https:\/\/pyecore.readthedocs.io\/en\/latest\/.","key":"ref_33"},{"unstructured":"(2021, November 15). ATL\/User Guide. Available online: https:\/\/wiki.eclipse.org\/ATL\/User_Guide_-_The_ATL_Language#Helpers.","key":"ref_34"},{"key":"ref_35","doi-asserted-by":"crossref","first-page":"631","DOI":"10.1137\/S1052623496307510","article-title":"Normal-Boundary Intersection: A New Method for Generating the Pareto Surface in Nonlinear Multicriteria Optimization Problems","volume":"8","author":"Das","year":"1998","journal-title":"SIAM J. Optim."},{"unstructured":"(2021, November 15). Component Allocation Problem GitHub Project. Available online: https:\/\/github.com\/ialazzon\/ComponentAllocationProblem.","key":"ref_36"},{"key":"ref_37","doi-asserted-by":"crossref","first-page":"89497","DOI":"10.1109\/ACCESS.2020.2990567","article-title":"Pymoo: Multi-Objective Optimization in Python","volume":"8","author":"Blank","year":"2020","journal-title":"IEEE Access"},{"key":"ref_38","doi-asserted-by":"crossref","first-page":"182","DOI":"10.1109\/4235.996017","article-title":"A fast and elitist multiobjective genetic algorithm: NSGA-II","volume":"6","author":"Deb","year":"2002","journal-title":"IEEE Trans. Evol. Comput."},{"key":"ref_39","doi-asserted-by":"crossref","first-page":"30","DOI":"10.1016\/j.infsof.2018.08.003","article-title":"An extensible framework for software configuration optimization on heterogeneous computing systems: Time and energy case study","volume":"105","year":"2019","journal-title":"Inf. Softw. Technol."},{"key":"ref_40","doi-asserted-by":"crossref","first-page":"102033","DOI":"10.1016\/j.simpat.2019.102033","article-title":"SMADA-Fog: Semantic model driven approach to deployment and adaptivity in fog computing","volume":"101","author":"Tosic","year":"2020","journal-title":"Simul. Model. Pract. Theory"},{"doi-asserted-by":"crossref","unstructured":"Petrovi\u0107, N., Koni\u010danin, S., Mili\u0107, D., Suljovi\u0107, S., and Pani\u0107, S. (2020, January 26\u201327). GPU-enabled Framework for Modelling, Simulation and Planning of Mobile Networks in Smart Cities. Proceedings of the Zooming Innovation in Consumer Technologies Conference, Novi Sad, Serbia.","key":"ref_41","DOI":"10.1109\/ZINC50678.2020.9161773"}],"container-title":["Algorithms"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1999-4893\/14\/12\/354\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T07:40:10Z","timestamp":1760168410000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1999-4893\/14\/12\/354"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,12,6]]},"references-count":41,"journal-issue":{"issue":"12","published-online":{"date-parts":[[2021,12]]}},"alternative-id":["a14120354"],"URL":"https:\/\/doi.org\/10.3390\/a14120354","relation":{},"ISSN":["1999-4893"],"issn-type":[{"type":"electronic","value":"1999-4893"}],"subject":[],"published":{"date-parts":[[2021,12,6]]}}}