Large-scale semi-automated migration of legacy C/C plus plus test code

被引:2
|
作者
Schuts, Mathijs T. W. [1 ,2 ]
Aarssen, Rodin T. A. [3 ,4 ]
Tielemans, Paul M. [1 ]
Vinju, Jurgen J. [3 ,4 ]
机构
[1] Philips, Best, Netherlands
[2] Radboud Univ Nijmegen, Software Sci, Nijmegen, Netherlands
[3] Ctr Wiskunde & Informat, Software Anal & Transformat, Amsterdam, Netherlands
[4] Eindhoven Univ Technol, Software Engn & Technol, Eindhoven, Netherlands
来源
SOFTWARE-PRACTICE & EXPERIENCE | 2022年 / 52卷 / 07期
关键词
parsers; pattern matching; program analysis; refactoring; source code generation;
D O I
10.1002/spe.3082
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This is an industrial experience report on a large semi-automated migration of legacy test code in C and C++. The particular migration was enabled by automating most of the maintenance steps. Without automation this particular large-scale migration would not have been conducted, due to the risks involved in manual maintenance (risk of introducing errors, risk of unexpected rework, and loss of productivity). We describe and evaluate the method of automation we used on this real-world case. The benefits were that by automating analysis, we could make sure that we understand all the relevant details for the envisioned maintenance, without having to manually read and check our theories. Furthermore, by automating transformations we could reiterate and improve over complex and large scale source code updates, until they were "just right." The drawbacks were that, first, we have had to learn new metaprogramming skills. Second, our automation scripts are not readily reusable for other contexts; they were necessarily developed for this ad-hoc maintenance task. Our analysis shows that automated software maintenance as compared to the (hypothetical) manual alternative method seems to be better both in terms of avoiding mistakes and avoiding rework because of such mistakes. It seems that necessary and beneficial source code maintenance need not to be avoided, if software engineers are enabled to create bespoke (and ad-hoc) analysis and transformation tools to support it.
引用
收藏
页码:1543 / 1580
页数:38
相关论文
共 50 条
  • [1] An Interactive Reverse Engineering Environment for Large-Scale C plus plus Code
    Telea, Alexandru
    Voinea, Lucian
    [J]. SOFTVIS 2008: PROCEEDINGS OF THE 4TH ACM SYMPOSIUM ON SOFTWARE VISUALIZATION, 2008, : 67 - 76
  • [2] Automated Fortran-C plus plus Bindings for Large-Scale Scientific Applications
    Johnson, Seth R.
    Prokopenko, Andrey
    Evans, Katherine J.
    [J]. COMPUTING IN SCIENCE & ENGINEERING, 2020, 22 (05) : 84 - 93
  • [3] Tool for Detecting Standardwise Differences in C plus plus Legacy Code
    Brunner, Tibor
    Pataki, Norbert
    Porkolab, Zoltan
    [J]. 2015 IEEE 13TH INTERNATIONAL SCIENTIFIC CONFERENCE ON INFORMATICS, 2015, : 51 - 56
  • [4] Semi-Automated, Large-Scale Evaluation of Public Displays
    Makela, Ville
    Heimonen, Tomi
    Turunen, Markku
    [J]. INTERNATIONAL JOURNAL OF HUMAN-COMPUTER INTERACTION, 2018, 34 (06) : 491 - 505
  • [5] Compiler-Assisted Instrumentation Selection for Large-Scale C plus plus Codes
    Kreutzer, Sebastian
    Iwainsky, Christian
    Lehr, Jan-Patrick
    Bischof, Christian
    [J]. HIGH PERFORMANCE COMPUTING, ISC HIGH PERFORMANCE 2022 INTERNATIONAL WORKSHOPS, 2022, 13387 : 5 - 19
  • [6] SEMI-AUTOMATED LARGE-SCALE EXPANSION OF INTRAHEPATIC CHOLANGIOCYTE ORGANOIDS
    ten Dam, M.
    Sam, J.
    Ne, E.
    van Uden, L.
    Das, R.
    Spee, B.
    [J]. CYTOTHERAPY, 2023, 25 (06) : S149 - S150
  • [7] Bridging Excel and C/C plus plus Code
    Punuru, Janardhana R.
    Knopf, F. Carl
    [J]. COMPUTER APPLICATIONS IN ENGINEERING EDUCATION, 2008, 16 (04) : 289 - 304
  • [8] Automated test data generation and stubbing method for C/C plus plus embedded projects
    Tung, Lam Nguyen
    Duong, Nguyen Vu Binh
    Le, Khoi Nguyen
    Hung, Pham Ngoc
    [J]. AUTOMATED SOFTWARE ENGINEERING, 2024, 31 (02)
  • [9] Analysis and Code Model Extraction for C/C plus plus Source Code
    Wagner, Christian
    Margaria, Tiziana
    Pagendarm, Hans-Georg
    [J]. 2009 14TH IEEE INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS), 2009, : 110 - +
  • [10] Flexible semi-automatic support for type migration of primitives for C/C plus plus programs
    Szalay, Richard
    Porkolab, Zoltan
    [J]. 2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2022), 2022, : 878 - 889