Abstract :
Clustering, breaking a large system into multiple clusters is commonly used technique to scale static analysis tools to large systems. Sound static analysis of resulted clusters requires conservative approach for the inter-cluster communication implemented through shared variables. We observe, this approach adds to the large number of warnings generated due to imprecision of static analysis. Further, manual reviewing of warnings resulted due to shared variables takes much more efforts as compared to efforts required in reviewing of the other class of warnings. This paper aims to assist reviewing of such warnings impacted by the shared variables so that reviewing effort is reduced. This is achieved by identification and reporting of suitable information about the impacting shared variables. The reported information includes - 1) marked warnings affected due to shared variables, 2) shared variables present in the code (such as warning point, and code slice) traversed while reviewing a warning, 3) intelligently selected write-points of the involved shared variables, depending on the type of warning, and 4) characteristics of the shared variables extracted from the code, that could potentially help to reduce the efforts further. Our experiments on two embedded systems indicated that the review assisting information presented to the user is quite effective to improve reviewing of warnings affected due to shared variables. The overall reduction in manual efforts varied from 45-70% depending on code size and complexity, type of warnings, reviewer skills, tool support used, etc.
Keywords :
program diagnostics; software quality; clustering method; code slice; intercluster communication; shared variables; static analysis; warning point; Arrays; Conferences; Embedded systems; Indexes; Manuals; Software engineering; Clustering; False Positives; Manual Review of Warnings; Shared variables; Static Analysis;