{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,30]],"date-time":"2025-10-30T05:18:22Z","timestamp":1761801502454,"version":"build-2065373602"},"reference-count":30,"publisher":"MDPI AG","issue":"4","license":[{"start":{"date-parts":[[2025,10,28]],"date-time":"2025-10-28T00:00:00Z","timestamp":1761609600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"crossref","award":["HA 2038\/8-1\u2014425916241"],"award-info":[{"award-number":["HA 2038\/8-1\u2014425916241"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Software"],"abstract":"<jats:p>Our goal is to generate restructuring recommendations for research software systems based on software architecture descriptions that were obtained via reverse engineering. We reconstructed these software architectures via static and dynamic analysis methods in the reverse engineering process. To do this, we combined static and dynamic analysis for call relationships and dataflow into a hierarchy of six analysis methods. For generating optimal restructuring recommendations, we use genetic algorithms, which optimize the module structure. For optimizing the modularization, we use coupling and cohesion metrics as fitness functions. We applied these methods to Earth System Models to test their efficacy. In general, our results confirm the applicability of genetic algorithms for optimizing the module structure of research software. Our experiments show that the analysis methods have a significant impact on the optimization results. A specific observation from our experiments is that the pure dynamic analysis produces significantly better modularizations than the optimizations based on the other analysis methods that we used for reverse engineering. Furthermore, a guided, interactive optimization with a domain expert\u2019s feedback improves the modularization recommendations considerably. For instance, cohesion is improved by 57% with guided optimization.<\/jats:p>","DOI":"10.3390\/software4040026","type":"journal-article","created":{"date-parts":[[2025,10,28]],"date-time":"2025-10-28T11:47:19Z","timestamp":1761652039000},"page":"26","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Using Genetic Algorithms for Research Software Structure Optimization"],"prefix":"10.3390","volume":"4","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-7148-9590","authenticated-orcid":false,"given":"Henning","family":"Schnoor","sequence":"first","affiliation":[{"name":"Department of Computer Science, Kiel University, 24118 Kiel, Germany"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6625-4335","authenticated-orcid":false,"given":"Wilhelm","family":"Hasselbring","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Kiel University, 24118 Kiel, Germany"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5464-8561","authenticated-orcid":false,"given":"Reiner","family":"Jung","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Kiel University, 24118 Kiel, Germany"}]}],"member":"1968","published-online":{"date-parts":[[2025,10,28]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/2928268","article-title":"Using Cohesion and Coupling for Software Remodularization: Is It Enough?","volume":"25","author":"Candela","year":"2016","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"20","DOI":"10.1145\/3685265","article-title":"Investigating Research Software Engineering: Toward RSE Research","volume":"68","author":"Felderer","year":"2025","journal-title":"Commun. ACM"},{"key":"ref_3","doi-asserted-by":"crossref","first-page":"113","DOI":"10.4236\/jsea.2025.183008","article-title":"Software Architecture Evaluation of Earth System Models","volume":"18","author":"Hasselbring","year":"2025","journal-title":"J. Softw. Eng. Appl."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"361","DOI":"10.1080\/07055900.2001.9649686","article-title":"The UVic earth system climate model: Model description, climatology, and applications to past, present and future climates","volume":"39","author":"Weaver","year":"2001","journal-title":"Atmosphere-Ocean"},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"721","DOI":"10.1007\/s00382-009-0691-8","article-title":"An atmosphere-ocean regional climate model for the Mediterranean area: Assessment of a present climate simulation","volume":"35","author":"Artale","year":"2010","journal-title":"Clim. Dyn."},{"key":"ref_6","doi-asserted-by":"crossref","first-page":"59","DOI":"10.1109\/MCSE.2025.3555023","article-title":"Multi-Dimensional Research Software Categorization","volume":"27","author":"Hasselbring","year":"2025","journal-title":"Comput. Sci. Eng."},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"90","DOI":"10.1109\/MCSE.2018.021651343","article-title":"Software Engineering for Computational Science: Past, Present, Future","volume":"20","author":"Johanson","year":"2018","journal-title":"Comput. Sci. Eng."},{"key":"ref_8","doi-asserted-by":"crossref","first-page":"2230002","DOI":"10.1142\/S1793962322300023","article-title":"Software Development Processes in Ocean System Modeling","volume":"13","author":"Jung","year":"2022","journal-title":"Int. J. Model. Simul. Sci. Comput."},{"key":"ref_9","doi-asserted-by":"crossref","first-page":"54","DOI":"10.1016\/j.ancene.2015.11.001","article-title":"Surface ocean-lower atmosphere study: Scientific synthesis and contribution to Earth system science","volume":"12","author":"Bakker","year":"2015","journal-title":"Anthropocene"},{"key":"ref_10","doi-asserted-by":"crossref","first-page":"4663","DOI":"10.5194\/gmd-13-4663-2020","article-title":"Optimality-based non-Redfield plankton\u2013ecosystem model (OPEM v1. 1) in UVic-ESCM 2.9\u2013Part 1: Implementation and model behaviour","volume":"13","author":"Pahlow","year":"2020","journal-title":"Geosci. Model Dev."},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"4691","DOI":"10.5194\/gmd-13-4691-2020","article-title":"Optimality-based non-Redfield plankton\u2013ecosystem model (OPEM v1. 1) in UVic-ESCM 2.9\u2013Part 2: Sensitivity analysis and model calibration","volume":"13","author":"Chien","year":"2020","journal-title":"Geosci. Model Dev."},{"key":"ref_12","doi-asserted-by":"crossref","first-page":"4183","DOI":"10.5194\/gmd-13-4183-2020","article-title":"Evaluation of the University of Victoria Earth System Climate Model version 2.10 (UVic ESCM 2.10)","volume":"13","author":"Mengis","year":"2020","journal-title":"Geosci. Model Dev."},{"unstructured":"Stocker, T.F., Qin, D., Plattner, G., Tignor, M.M.B., Allen, S.K., Boschung, J., Nauels, A., Xia, Y., Bex, V., and Midgley, P.M. (2014). Climate Change 2013\u2014The Physical Science Basis: Working Group I Contribution to the Fifth Assessment Report of the Intergovernmental Panel on Climate Change, Cambridge University Press.","key":"ref_13"},{"doi-asserted-by":"crossref","unstructured":"Hasselbring, W. (2018). Software Architecture: Past, Present, Future. The Essence of Software Engineering, Springer.","key":"ref_14","DOI":"10.1007\/978-3-319-73897-0_10"},{"doi-asserted-by":"crossref","unstructured":"Reussner, R., Goedicke, M., Hasselbring, W., Vogel-Heuser, B., Keim, J., and M\u00e4rtin, L. (2019). Managed Software Evolution, Springer.","key":"ref_15","DOI":"10.1007\/978-3-030-13499-0"},{"doi-asserted-by":"crossref","unstructured":"Verdecchia, R., Kruchten, P., and Lago, P. (2020). Architectural Technical Debt: A Grounded Theory. Software Architecture, Springer.","key":"ref_16","DOI":"10.1007\/978-3-030-58923-3_14"},{"key":"ref_17","doi-asserted-by":"crossref","first-page":"45","DOI":"10.1109\/MCSE.2025.3573887","article-title":"Better Architecture, Better Software, Better Research","volume":"27","author":"Druskat","year":"2025","journal-title":"Comput. Sci. Eng."},{"doi-asserted-by":"crossref","unstructured":"Schnoor, H., and Hasselbring, W. (2020). Comparing Static and Dynamic Weighted Software Coupling Metrics. Computers, 9.","key":"ref_18","DOI":"10.3390\/computers9020024"},{"key":"ref_19","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."},{"doi-asserted-by":"crossref","unstructured":"Jung, R., Schnoor, H., and Hasselbring, W. (2025). Replication Package for: Software Architecture Evaluation of Earth System Models (Restructuring Part), Software Engineering Group-Kiel University.","key":"ref_20","DOI":"10.2139\/ssrn.4861146"},{"key":"ref_21","doi-asserted-by":"crossref","first-page":"264","DOI":"10.1109\/TSE.2010.26","article-title":"Software Module Clustering as a Multi-Objective Search Problem","volume":"37","author":"Praditwong","year":"2011","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_22","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/2729974","article-title":"Many-objective software remodularization using NSGA-III","volume":"24","author":"Mkaouer","year":"2015","journal-title":"ACM Trans. Softw. Eng. Methodol. (TOSEM)"},{"key":"ref_23","doi-asserted-by":"crossref","first-page":"23","DOI":"10.1049\/sfw2.12076","article-title":"DOOSRA\u2014Distributed Object-Oriented Software Restructuring Approach using DIM-K-means and MAD-based ENRNN classifier","volume":"17","author":"Sudhakar","year":"2023","journal-title":"IET Softw."},{"doi-asserted-by":"crossref","unstructured":"Maikantis, T., Tsintzira, A.A., Ampatzoglou, A., Arvanitou, E.M., Chatzigeorgiou, A., Stamelos, I., Bibi, S., and Deligiannis, I. (2020, January 20\u201322). Software architecture reconstruction via a genetic algorithm: Applying the move class refactoring. Proceedings of the 24th Pan-Hellenic Conference on Informatics, Athens, Greece.","key":"ref_24","DOI":"10.1145\/3437120.3437292"},{"key":"ref_25","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3712185","article-title":"Introducing Interactions in Multi-Objective Optimization of Software Architectures","volume":"34","author":"Cortellessa","year":"2025","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"ref_26","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3707452","article-title":"Beyond Cohesion and Coupling: Integrating Control Flow in Software Modularization Process for Better Code Comprehensibility","volume":"34","author":"Pourasghar","year":"2025","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"ref_27","first-page":"707","article-title":"Binary codes capable of correcting deletions, insertions and reversals","volume":"10","author":"Levenshtein","year":"1966","journal-title":"Sov. Phys. Dokl."},{"key":"ref_28","doi-asserted-by":"crossref","first-page":"49","DOI":"10.1145\/304181.304187","article-title":"OPTICS: Ordering points to identify the clustering structure","volume":"28","author":"Ankerst","year":"1999","journal-title":"SIGMOD Rec."},{"key":"ref_29","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1145\/375360.375365","article-title":"A guided tour to approximate string matching","volume":"33","author":"Navarro","year":"2001","journal-title":"ACM Comput. Surv."},{"doi-asserted-by":"crossref","unstructured":"Mancoridis, S., Mitchell, B., Chen, Y., and Gansner, E. (September, January 30). Bunch: A clustering tool for the recovery and maintenance of software system structures. Proceedings of the IEEE International Conference on Software Maintenance\u20141999 (ICSM\u201999), \u2018Software Maintenance for Business Change\u2019 (Cat. No.99CB36360), Oxford, UK.","key":"ref_30","DOI":"10.1109\/ICSM.1999.792498"}],"container-title":["Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2674-113X\/4\/4\/26\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,30]],"date-time":"2025-10-30T05:14:03Z","timestamp":1761801243000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2674-113X\/4\/4\/26"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,10,28]]},"references-count":30,"journal-issue":{"issue":"4","published-online":{"date-parts":[[2025,12]]}},"alternative-id":["software4040026"],"URL":"https:\/\/doi.org\/10.3390\/software4040026","relation":{},"ISSN":["2674-113X"],"issn-type":[{"type":"electronic","value":"2674-113X"}],"subject":[],"published":{"date-parts":[[2025,10,28]]}}}