Using model-driven engineering to automate software language translation

被引:0
|
作者
Kevin Lano
Hanan Siala
机构
[1] King’s College London,Department of Informatics
来源
Automated Software Engineering | 2024年 / 31卷
关键词
Program translation; Model-driven engineering; Re-engineering; Reverse engineering;
D O I
暂无
中图分类号
学科分类号
摘要
The porting or translation of software applications from one programming language to another is a common requirement of organisations that utilise software, and the increasing number and diversity of programming languages makes this capability as relevant today as in previous decades. Several approaches have been used to address this challenge, including machine learning and the manual definition of direct language-to-language translation rules, however the accuracy of these approaches remains unsatisfactory. In this paper we describe a new approach to program translation using model-driven engineering techniques: reverse-engineering source programs into specifications in the UML and OCL formalisms, and then forward-engineering the specifications to the required target language. This approach can provide assurance of semantic preservation, and additionally has the advantage of extracting precise specifications of software from code. We provide an evaluation based on a comprehensive dataset of examples, including industrial cases, and compare our results to those of other approaches and tools. Our specific contributions are: (1) Reverse-engineering source programs to detailed semantic models of software behaviour, to enable semantically-correct translations and reduce re-testing costs; (2) Program abstraction processes defined by precise and explicit rules, which can be edited and configured by users; (3) A set of reusable OCL library components appropriate for representing program semantics, and which can also be used for OCL specification of new applications; (4) A systematic procedure for building program abstractors based on language grammars and semantics.
引用
收藏
相关论文
共 50 条
  • [31] Scalable model exploration for model-driven engineering
    Jimenez-Pastor, Antonio
    Garmendia, Antonio
    de Lara, Juan
    JOURNAL OF SYSTEMS AND SOFTWARE, 2017, 132 : 204 - 225
  • [32] Modelling language quality evaluation in model-driven information systems engineering: a roadmap
    Giraldo, Faber D.
    Espana, Sergio
    Giraldo, William J.
    Pastor, Oscar
    2015 IEEE 9TH INTERNATIONAL CONFERENCE ON RESEARCH CHALLENGES IN INFORMATION SCIENCE (RCIS), 2015, : 64 - 69
  • [33] Coupled Evolution in Model-Driven Engineering
    Di Ruscio, Davide
    Iovino, Ludovico
    Pierantonio, Alfonso
    IEEE SOFTWARE, 2012, 29 (06) : 78 - 84
  • [34] Model-Driven Engineering Practices in Industry
    Hutchinson, John
    Rouncefield, Mark
    Whittle, Jon
    2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 633 - 642
  • [35] Promises and Challenges of Model-Driven Engineering
    Vangheluwe, Hans
    2011 15TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR), 2011, : 3 - 4
  • [36] A multi-view and programming language agnostic framework for model-driven engineering
    Jordao, Rodolfo
    Bahrami, Fahimeh
    Chen, Rui
    Sander, Ingo
    PROCEEDINGS OF THE 2022 FORUM ON SPECIFICATION & DESIGN LANGUAGES (FDL), 2022,
  • [37] The human in model-driven engineering loop: A case study on integrating handwritten code in model-driven engineering repositories
    Rahad, Khandoker
    Badreddin, Omar
    Mohsin Reza, Sayed
    SOFTWARE-PRACTICE & EXPERIENCE, 2021, 51 (06) : 1308 - 1321
  • [38] Model-Driven Engineering for Augmented Reality
    Campos-Lopez, Ruben
    Guerra, Esther
    de Lara, Juan
    Colantoni, Alessandro
    Garmendia, Antonio
    JOURNAL OF OBJECT TECHNOLOGY, 2023, 22 (02):
  • [39] On Watermarking for Collaborative Model-Driven Engineering
    Martinez, Salvador
    Gerard, Sebastien
    Cabot, Jordi
    IEEE ACCESS, 2018, 6 : 29715 - 29728
  • [40] Purpose-driven Model-Driven Engineering education
    Calegari, Daniel
    Delgado, Andrea
    ACM/IEEE 25TH INTERNATIONAL CONFERENCE ON MODEL DRIVEN ENGINEERING LANGUAGES AND SYSTEMS, MODELS 2022 COMPANION, 2022, : 103 - 106