Experience Report on Applying Program Analysis Techniques for Mainframe Application Understanding
Abstract
Most of the enterprises running Mainframes applications written in COBOL, PL/I languages are on a journey of modernization of these applications to make them maintainable and amenable to the more modular service based programming paradigms. Such enterprises are looking for tools and techniques to help their developers understand the application faster and better than what is possible through manual scanning of code. Towards this goal, we have developed a tool that automates a lot of the underlying analysis required to understand the mainframe applications in a manner that enables the users for modernization use cases of such applications. Notably, we have provided a novel mechanism to determine the conditional statements and paragraphs that are key functionality drivers in a COBOL program. We refer to these key statements and paragraphs as functional hotspot indicators (FHI). All the analysis in the tool works on static code analysis of the Mainframe application. We provide an experience report on how did we optimize the implementation of static analysis to scale and perform for real world applications that have hundreds of programs and millions of lines of code. The users have reported 2-5X productivity improvement through use of our tool in the modularization type refactoring use case.