Title :
Precise detection of un-initialized variables in large, real-life COBOL programs in presence of unrealizable paths
Author :
Jiresal, Rahul ; Contractor, Adnan ; Naik, Ravindra
Author_Institution :
Tata Res. Dev. & Design Centre, Pune, India
Abstract :
Using variables before assigning any values to them are known to result in critical failures in an application. Few compilers warn about the use of some, but not all uses of un-initialized variables. The problem persists, especially in COBOL systems, due to lack of reliable program analysis tools. A critical reason is the presence of large number of control flow paths due to the use of un-structured constructs of the language. We present the problems faced by one of our big clients in his large, COBOL based software system due to the use of un-initialized variables. Using static data and control-flow analysis to detect them, we observed large number of false positives (imprecision) introduced due to the unrealizable paths in the un-structured COBOL code. We propose a solution to address the realizability issue. The solution is based on the summary based function analysis, which is adapted for COBOL Paragraphs and Sections, to handle the perform-through and fall-through control-flow, and is significantly engineered to scale for large programs (single COBOL program extending to tens of thousands of lines). Using this technique, we noted very large reduction, 45% on an average, in the number of false positives for the un-initialized variables.
Keywords :
COBOL; data analysis; data flow analysis; program compilers; software reliability; COBOL based software system; COBOL paragraphs; COBOL sections; compilers; control flow paths; control-flow analysis; fall-through control-flow; large real-life COBOL programs; perform-through control-flow; program failure; reliable program analysis tool; static data analysis; summary based function analysis; uninitialized variable detection; unrealizable paths; unstructured language constructs; Algorithms; Arrays; Banking; Context; Equations; Flow graphs; Software systems; defect detection; program analysis; un-initialzed variables;
Conference_Titel :
Software Maintenance (ICSM), 2011 27th IEEE International Conference on
Conference_Location :
Williamsburg, VI
Print_ISBN :
978-1-4577-0663-9
Electronic_ISBN :
1063-6773
DOI :
10.1109/ICSM.2011.6080812