{"title":"使用自定义编译的大型机遗留系统的高效平台迁移","authors":"Markus Schnappinger, Jonathan Streit","doi":"10.26226/morressier.613b5419842293c031b5b64a","DOIUrl":null,"url":null,"abstract":"Legacy software systems play an important role in the economy but are known to cause high operational and maintenance costs. To reduce these costs, such systems are often migrated to modern infrastructure or languages. There exists a variety of migration strategies, however choosing the best strategy or combination of strategies given technical, economical and business constraints remains a challenging task. We observe a lack of experience reports on industrial migration projects explaining their decisions in detail. In this report, we present the case of an insurance system with 1M Source Lines of Code, running on an expensive mainframe and featuring Natural, Cobol, and Assembler code as well as an Adabas database. We elaborate on why state-of-practice migration strategies were inadequate in this case and introduce an alternative methodology, taking into account the limited budget for the migration. In this project, we use custom transpilation to translate the legacy code automatically to another programming language. In contrast to off-the-shelf transpilers, we implement an iteratively refined transpiler that is fine-tuned to the legacy code at hand. The transpiler guides its own development by pointing out instructions in the legacy code it cannot yet translate. Manual adaptions to the legacy code allow circumventing the implementation of overly complicated translation rules. This ensures the transpiler and the generated code remain lean and efficient while being able to cope with specific challenges of the system at hand. In the presented industrial case, Natural and Assembler sources were transpiled to Cobol running on Linux, combined with some adapted and rewritten Cobol and Java. We illustrate our lessons learned and provide in-depth insights into testing and debugging activities. A comparison with alternative offers by other vendors validates the economic benefits of this approach.","PeriodicalId":205629,"journal":{"name":"2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Efficient Platform Migration of a Mainframe Legacy System Using Custom Transpilation\",\"authors\":\"Markus Schnappinger, Jonathan Streit\",\"doi\":\"10.26226/morressier.613b5419842293c031b5b64a\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Legacy software systems play an important role in the economy but are known to cause high operational and maintenance costs. To reduce these costs, such systems are often migrated to modern infrastructure or languages. There exists a variety of migration strategies, however choosing the best strategy or combination of strategies given technical, economical and business constraints remains a challenging task. We observe a lack of experience reports on industrial migration projects explaining their decisions in detail. In this report, we present the case of an insurance system with 1M Source Lines of Code, running on an expensive mainframe and featuring Natural, Cobol, and Assembler code as well as an Adabas database. We elaborate on why state-of-practice migration strategies were inadequate in this case and introduce an alternative methodology, taking into account the limited budget for the migration. In this project, we use custom transpilation to translate the legacy code automatically to another programming language. In contrast to off-the-shelf transpilers, we implement an iteratively refined transpiler that is fine-tuned to the legacy code at hand. The transpiler guides its own development by pointing out instructions in the legacy code it cannot yet translate. Manual adaptions to the legacy code allow circumventing the implementation of overly complicated translation rules. This ensures the transpiler and the generated code remain lean and efficient while being able to cope with specific challenges of the system at hand. In the presented industrial case, Natural and Assembler sources were transpiled to Cobol running on Linux, combined with some adapted and rewritten Cobol and Java. We illustrate our lessons learned and provide in-depth insights into testing and debugging activities. A comparison with alternative offers by other vendors validates the economic benefits of this approach.\",\"PeriodicalId\":205629,\"journal\":{\"name\":\"2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)\",\"volume\":\"12 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-09-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.26226/morressier.613b5419842293c031b5b64a\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.26226/morressier.613b5419842293c031b5b64a","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Efficient Platform Migration of a Mainframe Legacy System Using Custom Transpilation
Legacy software systems play an important role in the economy but are known to cause high operational and maintenance costs. To reduce these costs, such systems are often migrated to modern infrastructure or languages. There exists a variety of migration strategies, however choosing the best strategy or combination of strategies given technical, economical and business constraints remains a challenging task. We observe a lack of experience reports on industrial migration projects explaining their decisions in detail. In this report, we present the case of an insurance system with 1M Source Lines of Code, running on an expensive mainframe and featuring Natural, Cobol, and Assembler code as well as an Adabas database. We elaborate on why state-of-practice migration strategies were inadequate in this case and introduce an alternative methodology, taking into account the limited budget for the migration. In this project, we use custom transpilation to translate the legacy code automatically to another programming language. In contrast to off-the-shelf transpilers, we implement an iteratively refined transpiler that is fine-tuned to the legacy code at hand. The transpiler guides its own development by pointing out instructions in the legacy code it cannot yet translate. Manual adaptions to the legacy code allow circumventing the implementation of overly complicated translation rules. This ensures the transpiler and the generated code remain lean and efficient while being able to cope with specific challenges of the system at hand. In the presented industrial case, Natural and Assembler sources were transpiled to Cobol running on Linux, combined with some adapted and rewritten Cobol and Java. We illustrate our lessons learned and provide in-depth insights into testing and debugging activities. A comparison with alternative offers by other vendors validates the economic benefits of this approach.