{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T21:04:01Z","timestamp":1779829441195,"version":"3.53.1"},"reference-count":61,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2026,8,1]],"date-time":"2026-08-01T00:00:00Z","timestamp":1785542400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2026,8,1]],"date-time":"2026-08-01T00:00:00Z","timestamp":1785542400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/legal\/tdmrep-license"},{"start":{"date-parts":[[2026,3,31]],"date-time":"2026-03-31T00:00:00Z","timestamp":1774915200000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100010450","name":"Ministry of Higher Education and Scientific Research","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100010450","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Journal of Systems and Software"],"published-print":{"date-parts":[[2026,8]]},"DOI":"10.1016\/j.jss.2026.112874","type":"journal-article","created":{"date-parts":[[2026,4,2]],"date-time":"2026-04-02T13:08:09Z","timestamp":1775135289000},"page":"112874","update-policy":"https:\/\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":0,"special_numbering":"C","title":["Leveraging LLMs for abstracting UML and OCL representations from Java and Python programs"],"prefix":"10.1016","volume":"238","author":[{"ORCID":"https:\/\/orcid.org\/0009-0003-4693-8707","authenticated-orcid":false,"given":"Hanan Abdulwahab","family":"Siala","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9706-1410","authenticated-orcid":false,"given":"Kevin","family":"Lano","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"78","reference":[{"key":"10.1016\/j.jss.2026.112874_bib0001","unstructured":"Abukhalaf, S., Hamdaqa, M., Khomh, F., 2023. On codex prompt engineering for OCL generation: an empirical study. arXiv: 2303.16244v1."},{"key":"10.1016\/j.jss.2026.112874_bib0002","series-title":"Annual Meeting of the Association for Computational Linguistics","first-page":"2268","article-title":"AVATAR: a parallel corpus for Java-Python program translation","author":"Ahmad","year":"2021"},{"key":"10.1016\/j.jss.2026.112874_bib0003","series-title":"SAM\/MODELS","first-page":"286","article-title":"Trends and insights into the use of model-driven engineering: a survey","author":"Alfraihi","year":"2023"},{"issue":"2","key":"10.1016\/j.jss.2026.112874_bib0004","doi-asserted-by":"crossref","first-page":"430","DOI":"10.21533\/pen.v9.i2.752","article-title":"Designing and implementing a tool to transform source code to UML diagrams","volume":"9","author":"Alsarraj","year":"2021","journal-title":"Periodicals Eng. Nat. Sci."},{"key":"10.1016\/j.jss.2026.112874_bib0005","doi-asserted-by":"crossref","first-page":"80194","DOI":"10.1109\/ACCESS.2024.3409745","article-title":"Measuring and improving the energy efficiency of large language models inference","volume":"12","author":"Argerich","year":"2024","journal-title":"IEEE Access"},{"key":"10.1016\/j.jss.2026.112874_bib0006","doi-asserted-by":"crossref","unstructured":"Bogner, J., Verdecchia, R., Gerostathopoulos, I., 2021. Characterizing technical debt and antipatterns in AI-based systems: a systematic mapping study. arXiv: 2103.09783v1.","DOI":"10.1109\/TechDebt52882.2021.00016"},{"key":"10.1016\/j.jss.2026.112874_bib0007","series-title":"Proceedings of the IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER)","first-page":"850","article-title":"MDRE-LLM: a tool for analyzing and applying LLMs in software reverse engineering","author":"Boronat","year":"2025"},{"issue":"11\u201312","key":"10.1016\/j.jss.2026.112874_bib0008","doi-asserted-by":"crossref","first-page":"679","DOI":"10.1016\/0950-5849(93)90083-F","article-title":"Formal specifications in software maintenance: from code to Z++ and back again","volume":"35","author":"Bowen","year":"1993","journal-title":"Inf. Software Technol."},{"key":"10.1016\/j.jss.2026.112874_bib0009","doi-asserted-by":"crossref","first-page":"162","DOI":"10.1016\/j.scico.2013.10.003","article-title":"On OCL-based imperative languages","volume":"92","author":"Buttner","year":"2014","journal-title":"Sci. Comput. Program."},{"issue":"2","key":"10.1016\/j.jss.2026.112874_bib0010","doi-asserted-by":"crossref","first-page":"2:1","DOI":"10.5381\/jot.2025.24.2.a14","article-title":"On the use of GPT-4 in the reverse engineering of class diagrams","volume":"24","author":"Campanello","year":"2025","journal-title":"J. Object Technol."},{"key":"10.1016\/j.jss.2026.112874_bib0011","series-title":"SEKE 2012","first-page":"517","article-title":"Bridging KDM and ASTM for model-driven software modernization","author":"Deltombe","year":"2012"},{"key":"10.1016\/j.jss.2026.112874_bib0012","series-title":"Proceedings of the 37th International Conference on Neural Information Processing Systems","first-page":"10088","article-title":"QLoRA: efficient fine-tuning of quantized LLMs","author":"Dettmers","year":"2023"},{"key":"10.1016\/j.jss.2026.112874_bib0013","unstructured":"Eclipse, 2024. AgileUML project. https:\/\/projects.eclipse.org\/projects\/modeling.agileuml."},{"key":"10.1016\/j.jss.2026.112874_bib0014","doi-asserted-by":"crossref","first-page":"247","DOI":"10.1016\/j.scico.2011.04.003","article-title":"A model-driven process for the modernization of component-based systems","volume":"77","author":"Fuentes-Fernandez","year":"2012","journal-title":"Sci. Comput. Program."},{"key":"10.1016\/j.jss.2026.112874_bib0015","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1007\/s00450-011-0183-z","article-title":"Model-driven software migration into service-oriented architectures","volume":"28","author":"Fuhr","year":"2013","journal-title":"Comput. Sci. Res. Dev."},{"key":"10.1016\/j.jss.2026.112874_bib0016","series-title":"Proceedings of the 2004 Conference of the Centre for Advanced Studies on Collaborative Research","first-page":"28","article-title":"A reverse engineering tool for precise class diagrams","author":"Gu\u00e9h\u00e9neuc","year":"2004"},{"issue":"1","key":"10.1016\/j.jss.2026.112874_bib0017","doi-asserted-by":"crossref","first-page":"143","DOI":"10.5381\/jot.2004.3.1.a3","article-title":"On the contribution of UML diagrams to software system comprehension","volume":"3","author":"Hadar","year":"2004","journal-title":"Object Technol."},{"key":"10.1016\/j.jss.2026.112874_bib0018","unstructured":"Han, Z., Gao, C., Liu, J., Zhang, J., Zhang, S. Q., 2024. Parameter-efficient fine-tuning for large models: a comprehensive survey. https:\/\/arxiv.org\/abs\/2403.14608."},{"key":"10.1016\/j.jss.2026.112874_bib0019","doi-asserted-by":"crossref","first-page":"1","DOI":"10.3389\/fcomp.2025.1519437","article-title":"Research directions for using LLMs in software requirements engineering: a systematic review","volume":"7","author":"Hemmat","year":"2025","journal-title":"Front. Comput. Sci."},{"key":"10.1016\/j.jss.2026.112874_bib0020","doi-asserted-by":"crossref","unstructured":"Hou, X., Zhao, Y., Liu, Y., Yang, Z., Wang, K., Li, L., Luo, X., Lo, D., Grundy, J., Wang, H., 2024. Large language models for software engineering: a systematic literature review. 10.1145\/3695988.","DOI":"10.1145\/3695988"},{"key":"10.1016\/j.jss.2026.112874_bib0021","unstructured":"Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Wang, L., Chen, W., 2021. LoRA: low-rank adaptation of large language models. https:\/\/arxiv.org\/abs\/2106.09685."},{"key":"10.1016\/j.jss.2026.112874_bib0022","unstructured":"Jana, P., Jha, P., Ju, H., Kishore, G., Mahajan, A., Ganesh, V., 2023. Attention, compilation, and solver-based symbolic analysis are all you need. arXiv: 2306.06755."},{"key":"10.1016\/j.jss.2026.112874_bib0023","unstructured":"Jiang, A. Q., Sablayrolles, A., Mensch, A., Bamford, C., Chaplot, D. S., de las Casas, D., Bressand, F., Lengyel, G., Lample, G., Saulnier, L., Lavaud, L. R., Lachaux, M.-A., Stock, P., Scao, T. L., Lavril, T., Wang, T., Lacroix, T., Sayed, W. E., 2023. Mistral 7B. https:\/\/arxiv.org\/abs\/2310.06825."},{"key":"10.1016\/j.jss.2026.112874_bib0024","unstructured":"Jin, H., Huang, L., Cai, H., Yan, J., Li, B., Chen, H., 2025. From LLMs to LLM-based agents for software engineering: a survey of current, challenges and future. arXiv: 2408.02479v2."},{"key":"10.1016\/j.jss.2026.112874_bib0025","series-title":"ISEC\u201921","first-page":"1","article-title":"Generation of test cases from UML diagrams \u2014 a systematic literature review","author":"Jin","year":"2021"},{"key":"10.1016\/j.jss.2026.112874_bib0026","doi-asserted-by":"crossref","unstructured":"Jouault, F., Bezivin, J., 2006. KM3: a DSL for metamodel specification. ATLAS team, INRIA.","DOI":"10.1007\/11768869_14"},{"key":"10.1016\/j.jss.2026.112874_bib0027","series-title":"EESSMod 2013: Experiences and Empirical Studies in Software Modeling","first-page":"61","article-title":"Online Img2UML repository: an online repository for UML models","author":"Karasneh","year":"2013"},{"key":"10.1016\/j.jss.2026.112874_bib0028","series-title":"Integrated Formal Methods: Third International Conference, IFM 2002 Turku, Finland, May 15\u201318, 2002 Proceedings","first-page":"286","article-title":"Model driven engineering","author":"Kent","year":"2002"},{"key":"10.1016\/j.jss.2026.112874_bib0029","series-title":"Proceedings Eighth Working Conference on Reverse Engineering","first-page":"81","article-title":"Application of UML associations and their adornments in design recovery","author":"Kollmann","year":"2001"},{"key":"10.1016\/j.jss.2026.112874_bib0030","series-title":"ICIW 2013","first-page":"1","article-title":"Agile software modernization to the service cloud","author":"Krasteva","year":"2013"},{"key":"10.1016\/j.jss.2026.112874_bib0031","unstructured":"Lachaux, M.-A., Roziere, B., Chanussot, L., Lample, G., 2020. Unsupervised translation of programming languages. arXiv: 2006.03511v3."},{"key":"10.1016\/j.jss.2026.112874_bib0032","series-title":"Modelsward","article-title":"An operational semantics for extended OCL","author":"Lano","year":"2026"},{"issue":"4","key":"10.1016\/j.jss.2026.112874_bib0033","doi-asserted-by":"crossref","first-page":"559","DOI":"10.1007\/s11334-024-00568-z","article-title":"Agile model-driven re-engineering","volume":"20","author":"Lano","year":"2024","journal-title":"Innov. Syst. Software Eng."},{"key":"10.1016\/j.jss.2026.112874_bib0034","series-title":"ECMFA","article-title":"Using MDE to support sustainable software re-engineering","author":"Lano","year":"2025"},{"issue":"1","key":"10.1016\/j.jss.2026.112874_bib0035","doi-asserted-by":"crossref","first-page":"20","DOI":"10.1007\/s10515-024-00419-y","article-title":"Using model-driven engineering to automate software language translation","volume":"31","author":"Lano","year":"2024","journal-title":"Autom. Software Eng."},{"key":"10.1016\/j.jss.2026.112874_bib0036","unstructured":"London, K. C., 2024. King\u2019s computational research, engineering and technology environment (CREATE). Retrieved June 1, 2024, from10.18742\/rnvf-m076."},{"key":"10.1016\/j.jss.2026.112874_bib0037","unstructured":"Malyala, A., Zhou, K., Ray, B., Chakraborty, S., 2023. On ML-based program translation: perils and promises. arXiv: 2302.10812."},{"key":"10.1016\/j.jss.2026.112874_bib0038","series-title":"CRPIT \u201902","article-title":"Reveal: a tool to reverse engineer class diagrams","author":"Matzko","year":"2002"},{"issue":"2","key":"10.1016\/j.jss.2026.112874_bib0039","first-page":"179","article-title":"Composition inference for UML class diagrams","volume":"14","author":"Milanova","year":"2007","journal-title":"ASE"},{"key":"10.1016\/j.jss.2026.112874_bib0040","series-title":"Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering","first-page":"9","article-title":"Extracting UML class diagrams from object-oriented fortran: ForUML","author":"Nanthaamornphong","year":"2013"},{"key":"10.1016\/j.jss.2026.112874_bib0041","unstructured":"OMG, 2014. Object constraint language 2.4 specification, OMG document formal. https:\/\/www.omg.org\/spec\/OCL\/2.4\/About-OCL."},{"key":"10.1016\/j.jss.2026.112874_bib0042","unstructured":"OMG, 2017. OMG systems modeling language (UML), version 2.5.1. https:\/\/www.omg.org\/spec\/UML."},{"key":"10.1016\/j.jss.2026.112874_bib0043","unstructured":"Projects, E., 2022. MoDisco project, https:\/\/www.eclipse.org\/MoDisco\/, accessed: 26\/03\/2022."},{"key":"10.1016\/j.jss.2026.112874_bib0044","doi-asserted-by":"crossref","first-page":"14516","DOI":"10.1109\/ACCESS.2017.2733518","article-title":"Model-driven reverse engineering approaches: a systematic literature review","volume":"5","author":"Raibulet","year":"2017","journal-title":"IEEE Access"},{"key":"10.1016\/j.jss.2026.112874_bib0045","doi-asserted-by":"crossref","first-page":"158931","DOI":"10.1109\/ACCESS.2019.2950884","article-title":"A model driven reverse engineering framework for generating high level UML models from Java source code","volume":"7","author":"Sabir","year":"2019","journal-title":"IEEE Access"},{"key":"10.1016\/j.jss.2026.112874_bib0046","series-title":"IEEE\/ACM ICSE-NIER","first-page":"102","article-title":"Breaking the silence: the threats of using LLMs in software engineering","author":"Sallou","year":"2024"},{"key":"10.1016\/j.jss.2026.112874_bib0047","unstructured":"Sanders, J., 2019. https:\/\/www.techrepublic.com\/article\/jpmorgans-athena-has-35-million-lines-of-python-code-and-wont-be-updated-to-python-3-in-time."},{"key":"10.1016\/j.jss.2026.112874_bib0048","series-title":"Proceedings of the 2024 IEEE\/ACM 46th International Conference on Software Engineering: Companion Proceedings","first-page":"173","article-title":"Enhancing model-driven reverse engineering using machine learning","author":"Siala","year":"2024"},{"key":"10.1016\/j.jss.2026.112874_bib0049","doi-asserted-by":"crossref","unstructured":"Siala, H. A., Lano, K., 2025a. Leveraging large language models for abstracting UML class diagrams from Python programs. Under review.","DOI":"10.2139\/ssrn.5348203"},{"key":"10.1016\/j.jss.2026.112874_bib0050","series-title":"Proceedings of the IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER)","first-page":"1","article-title":"Towards using LLMs in the reverse engineering of software systems to object constraint language","author":"Siala","year":"2025"},{"key":"10.1016\/j.jss.2026.112874_bib0051","series-title":"Proceedings of the International Conference on Software and System Engineering (ICoSSE)","first-page":"70","article-title":"Using large language models to extract UML class diagrams from Java programs","author":"Siala","year":"2025"},{"key":"10.1016\/j.jss.2026.112874_bib0052","series-title":"Proceedings of the STAF 2025 Workshops: OCL 2025","article-title":"Using LLMs to extract OCL specifications from Java and Python programs: an empirical study","author":"Siala","year":"2025"},{"key":"10.1016\/j.jss.2026.112874_bib0053","series-title":"Proceedings of the STAF 2025 Workshops: AgileMDE 2025","article-title":"Using LLMs to extract UML class diagrams from Java and Python programs: an empirical study","author":"Siala","year":"2025"},{"key":"10.1016\/j.jss.2026.112874_bib0054","unstructured":"Siala, H. A., Lano, K., 2026. Online repository for abstract representations of Java and Python programs. Accessed: February 2026. 10.5281\/zenodo.18669129."},{"key":"10.1016\/j.jss.2026.112874_bib0055","doi-asserted-by":"crossref","DOI":"10.1109\/ACCESS.2024.3394732","article-title":"Model-driven approaches for reverse engineering \u2014 a systematic literature review","author":"Siala","year":"2024","journal-title":"IEEE Access"},{"key":"10.1016\/j.jss.2026.112874_bib0056","series-title":"IEEE Proc. of 26th ICSM","first-page":"1","article-title":"Migrating from COBOL to Java: a report from the field","author":"Sneed","year":"2011"},{"key":"10.1016\/j.jss.2026.112874_bib0057","unstructured":"G. D. Team, 2023. Graphviz - graph visualization software. https:\/\/www.graphviz.org\/."},{"key":"10.1016\/j.jss.2026.112874_bib0058","series-title":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","first-page":"376","article-title":"Reverse engineering of the UML class diagram from C++ code in presence of weakly typed containers","author":"Tonella","year":"2001"},{"key":"10.1016\/j.jss.2026.112874_bib0059","doi-asserted-by":"crossref","first-page":"233","DOI":"10.1007\/s11219-006-9218-2","article-title":"On evaluating the layout of UML diagrams for program comprehension","volume":"14","author":"Wong","year":"2006","journal-title":"Software Qual. J."},{"key":"10.1016\/j.jss.2026.112874_bib0060","series-title":"SANER 2025","first-page":"1","article-title":"How effective are LLMs in generating software specifications?","author":"Xie","year":"2025"},{"key":"10.1016\/j.jss.2026.112874_bib0061","doi-asserted-by":"crossref","unstructured":"Zhao, W. X., Zhou, K., Li, J., Tang, T., Wang, X., Hou, Y., Min, Y., Zhang, B., Zhang, J., Dong, Z., Du, Y., Yang, C., Chen, Y., Chen, Z., Jiang, J., Ren, R., Li, Y., Tang, X., Liu, Z., Liu, P., Nie, J.-Y., Wen, J.-R., 2025. A survey of large language models. https:\/\/arxiv.org\/abs\/2303.18223.","DOI":"10.1007\/s11704-026-60308-3"}],"container-title":["Journal of Systems and Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S016412122600107X?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S016412122600107X?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T20:27:43Z","timestamp":1779827263000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S016412122600107X"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,8]]},"references-count":61,"alternative-id":["S016412122600107X"],"URL":"https:\/\/doi.org\/10.1016\/j.jss.2026.112874","relation":{},"ISSN":["0164-1212"],"issn-type":[{"value":"0164-1212","type":"print"}],"subject":[],"published":{"date-parts":[[2026,8]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"Leveraging LLMs for abstracting UML and OCL representations from Java and Python programs","name":"articletitle","label":"Article Title"},{"value":"Journal of Systems and Software","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.jss.2026.112874","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2026 The Author(s). Published by Elsevier Inc.","name":"copyright","label":"Copyright"}],"article-number":"112874"}}