Skip to main content

Improving a Software Modernisation Process by Differencing Migration Logs

  • Conference paper
  • First Online:
Product-Focused Software Process Improvement (PROFES 2020)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12562))

Abstract

Software written in legacy programming languages is notoriously ubiquitous and often comprises business-critical portions of codebases and portfolios. Some of these languages, like COBOL, mature, grow, and acquire modern tooling that makes maintenance activities more bearable. Others, like many fourth generation languages (4GLs), stagnate and become obsolete and unmaintained, which first urges and eventually forces migrating to other languages, if the software needs to be kept in production. In this paper, we dissect a software modernisation process endorsed by Raincode Labs, utilised in particular to migrate software from a 4GL called PACBASE, to pure COBOL. Having migrated upwards of 500 MLOC of production code to COBOL using this process, the company has ample experience with this process. Nevertheless, we identify some improvement points and explain the technical side of a possible solution, based on migration log differencing, that is currently being put to the test by Raincode migration engineers.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Acher, M., Heymans, P., Collet, P., Quinton, C., Lahire, P., Merle, P.: Feature model differences. In: Ralyté, J., Franch, X., Brinkkemper, S., Wrycza, S. (eds.) CAiSE 2012. LNCS, vol. 7328, pp. 629–645. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-31095-9_41

    Chapter  Google Scholar 

  2. Alper, A.: Users say Pacbase worth effort. Computerworld 21 (1987)

    Google Scholar 

  3. Apiwattanapong, T., Orso, A., Harrold, M.J.: A differencing algorithm for object-oriented programs. In ASE, pp. 2–13. IEEE (2004)

    Google Scholar 

  4. Bernardy, J.-P.: Reviving Pacbase COBOL-generated code. In: Proceedings of the 26th Annual International Computer Software and Applications. IEEE (2002)

    Google Scholar 

  5. Blasband, D.: The Rise and Fall of Software Recipes. Reality Bites (2016)

    Google Scholar 

  6. CODASYL. Initial Specifications for a Common Business Oriented Language (COBOL) for Programming Electronic Digital Computers. Technical report, Department of Defense, April 1960

    Google Scholar 

  7. Decker, M., Collard, M., Volkert, L., Maletic, J.: srcDiff: a syntactic differencing approach to improve the understandability of deltas. J. Softw. Evol. Process 32, 10 (2019)

    Google Scholar 

  8. Falleri, J.-R., Morandat, F., Blanc, X., Martinez, M., Monperrus, M.: Fine-grained and accurate source code differencing. In: ASE. ACM (2014)

    Google Scholar 

  9. Feathers, M.: Working Effectively with Legacy Code. Prentice-Hall, Upper Saddle River (2004)

    Book  Google Scholar 

  10. Goldstein, M., Raz, D., Segall, I.: Experience report: log-based behavioral differencing. In: ISSRE, pp. 282–293 (2017). https://doi.org/10.1109/ISSRE.2017.14

  11. Hewlett-Packard. Survival guide to PACBASE\(^ {tm}\) end-of-life, October 2012. https://www8.hp.com/uk/en/pdf/Survival_guide_tcm_183_1316432.pdf

  12. Hunt, J.J., Vo, K.-P., Tichy, W.F.: An empirical study of delta algorithms. In: Sommerville, I. (ed.) SCM 1996. LNCS, vol. 1167, pp. 49–66. Springer, Heidelberg (1996). https://doi.org/10.1007/BFb0023080

    Chapter  Google Scholar 

  13. Hunt, J.W., McIlroy, M.D.: An algorithm for differential file comparison. CSTR #41, Bell Telephone Laboratories (1976)

    Google Scholar 

  14. IBM. PACBASE documentation page (2020). https://www.ibm.com/support/pages/documentation-visualage-pacbase

  15. Kennedy van Dam, J., Zaytsev, V.: Software language identification with natural language classifiers. In: SANER ERA, pp. 624–628. IEEE (2016)

    Google Scholar 

  16. Kim, M., Notkin, D.: Discovering and representing systematic code changes. In: ICSE, pp. 309–319. IEEE (2009)

    Google Scholar 

  17. Kim, M., Notkin, D., Grossman, D.: Automatic inference of structural changes for matching across program versions. In: ICSE, pp. 333–343. IEEE (2007)

    Google Scholar 

  18. Lämmel, R.: Software Languages: Syntax, Semantics, and Metaprogramming. Springer, Heidelberg (2018)

    Google Scholar 

  19. Laski, J.W., Szermer, W.: Identification of program modifications and its applications in software maintenance. In: ICSM, pp. 282–290. IEEE (1992)

    Google Scholar 

  20. Maletic, J.I., Collard, M.L.: Supporting source code difference analysis. In: ICSM, pp. 210–219. IEEE (2004)

    Google Scholar 

  21. Maoz, S., Ringert, J.O., Rumpe, B.: ADDiff: semantic differencing for activity diagrams. In: FSE, pp. 179–189. ACM (2011)

    Google Scholar 

  22. Martin, J.: Applications Development Without Programmers. Prentice-Hall, Upper Saddle River (1981)

    Google Scholar 

  23. Mens, T.: A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28(5), 449–462 (2002)

    Article  Google Scholar 

  24. Min, H., Li Ping, Z.: Survey on Software Clone Detection Research. In: ICMSS, pp. 9–16. ACM (2019)

    Google Scholar 

  25. Raincode Labs. https://www.raincodelabs.com

  26. Raincode Labs. PACBASE Migration: More than 200 Million Lines Migrated (2018). https://www.raincodelabs.com/pacbase

  27. Reuters Graphics. COBOL blues, April 2017. http://fingfx.thomsonreuters.com/gfx/rngs/USA-BANKS-COBOL/010040KH18J/

  28. Rémy, C.: Un nouveau PacBase, entièrement Java. 01net, July 2000. https://www.01net.com/actualites/un-nouveau-pacbase-entierement-java-114108.html

  29. Schlueter, L.: User-Designed Computing: The Next Generation. Lexington, Lanham (1988)

    Google Scholar 

  30. Terekhov, A.A., Verhoef, C.: The realities of language conversions. IEEE Softw. 17(6), 111–124 (2000)

    Article  Google Scholar 

  31. Völter, M., et al.: DSL engineering: designing, implementing and using domain-specific languages (2013)

    Google Scholar 

  32. Z. Wang, K.P., Mcfarling, S.: BMAT - a binary matching tool for stale profile propagation. J. Instr. Level Parallelism 2, 1–20 (2000)

    Google Scholar 

  33. Xing, Z.: Model Comparison with GenericDiff. In: ASE, pp. 135–138. ACM (2010)

    Google Scholar 

  34. Xing, Z., Stroulia, E.: UMLDiff: an algorithm for object-oriented design differencing. In: ASE, pp. 54–65. ACM (2005)

    Google Scholar 

  35. Xing, Z., Stroulia, E.: API-evolution support with diff-catchup. IEEE Trans. Softw. Eng. 33(12), 818–836 (2007)

    Article  Google Scholar 

  36. Xue, Y., Xing, Z., Jarzabek, S.: Clonediff: semantic differencing of clones. In: IWSC, pp. 83–84. ACM (2011)

    Google Scholar 

  37. Yang, W.: Identifying syntactic differences between two programs. Softw. Pract. Exp. 21(7), 739–755 (1991)

    Google Scholar 

  38. Zaytsev, V.: Language convergence infrastructure. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2009. LNCS, vol. 6491, pp. 481–497. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-18023-1_16

    Chapter  Google Scholar 

  39. Zaytsev, V., et al.: CodeDiffNG: Advanced Source Code Diffing (2020). https://grammarware.github.io/codediffng

  40. Zimmermann, T., Weisgerber, P., Diehl, S., Zeller, A.: Mining version histories to guide software changes. In: ICSE, pp. 563–572. IEEE (2004)

    Google Scholar 

Download references

Acknowledgements

We thank the Raincode migration engineers Boris Pereira and Yannick Barthol for their collaboration, as well as the participants of the seminar SATToSE 2020, where an early version of this work was presented in June, for their feedback.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Céline Deknop .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Deknop, C., Fabry, J., Mens, K., Zaytsev, V. (2020). Improving a Software Modernisation Process by Differencing Migration Logs. In: Morisio, M., Torchiano, M., Jedlitschka, A. (eds) Product-Focused Software Process Improvement. PROFES 2020. Lecture Notes in Computer Science(), vol 12562. Springer, Cham. https://doi.org/10.1007/978-3-030-64148-1_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-64148-1_17

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-64147-4

  • Online ISBN: 978-3-030-64148-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics