Mainframe Application Discovery
Let’s start this blog on a lighter note.
Imagine you are a programmer assigned with analysis of legacy code. You start with the task and, to your surprise, see the below comment(Image)
Even though it’s humorous, it is the reality of maintaining old legacy code with little or no documentation available around the applications built a few decades ago.
It is true that ‘ You cannot change what you don’t understand ’
This is where the Application discovery tools come into play, Discovery tool allows mainframe staff (developers, analysts, etc) to learn complex applications in a short span of time.
Why it’s important now? With Baby Boomers(architects of mainframe application) on the verge of retirement or already retired, mainframe shops require Discovery tools to assist their new talent to analyze applications to understand interdependencies and effects of change.
Discovery tool usage(at high-level):
1. Analyze a broad range of zOS application language, databases, workload schedulers, and environments
2. Mitigate the risk of change through understanding code, application flow, and schedule interdependencies
3. Identify code quality concerns, including dead code, to improve reliability and maintainability
4. Identify API candidates in Mainframe application to participate in the API economy ( Ex: Which module can be readily exposed as API using tools like zOS Connect)
5. The tool is supported by leading IDE’s and provides visual analysis. When changing complex applications, you need to quickly navigate the dependencies between application components and drill down to see relevant details
There are multiple reports which Discovery tool can generate and they all play a crucial role in understanding the application. Highlighting important ones below :
1. Impact Analysis Report: One of the most beneficial and powerful reports. If the requirement is to analyze the codebase to identify variable usage in programs, all you need is to provide the variable name to be searched and the tool provides a comprehensive report(In pdf format as default) with all its occurances.
The report also drills down to program/statement-level and lists statements where the variable is used. Example: Report will say CUSTOMER-NUMBER variable is used in MOVE statement of the program LOANPROG, and is moved to variable CUSTOMERNUM-DB2
2. Dead (Unreferenced) Programs report: If you are maintaining applications written decades ago and want to verify if there are any unreferenced programs, you can use the Dead programs report to identify those. This report lists programs that are not referenced by any of the existing application programs
3.SQL Tables Usage in Programs: This report provides a view of DB2 tables usage in an application. The report will provide SQL statement usage at the application level. Example: SQL SELECT is used at 20 places and SQL DELETE at 5 places. If the analysis was towards identifying programs that are deleting data from DB2 tables then those are the 5 programs to analyze.
4. Inventory report: Inventory Reports provide high-level statistics for source file types(Cobol, JCL, Procs, etc) for a given application, report also provides the number of files of each type, number of lines of source code, etc. This report will be a good starting point for shops that want to modernize their mainframe applications.
I am listing discovery tools that I have worked on, ADDI ( Application Discovery and Delivery Intelligence) from IBM, Enterprise Analyzer from MicroFocus, and CAST Analysis tool from CAST Software. ( Note this is not an exhaustive list of discovery tools available in the market)
Conclusion :
In this digital world, mainframe shops push to transform applications, to best serve their customers. They need to minimize the risk of changes to these critical mainframe systems while improving productivity. That’s where customers would require robust application discovery and analysis tools. Discovery tools are powerful collaborative analysis products that visualize applications, help maintain and develop mainframe applications with minimal risk.