Off-campus UMass Amherst users: To download dissertations, please use the following link to log into our proxy server with your UMass Amherst user name and password.

Non-UMass Amherst users, please click the view more button below to purchase a copy of this dissertation from Proquest.

(Some titles may also be available free of charge in our Open Access Dissertation Collection, so please check there first.)

Data flow analysis for verification of application-specific properties of concurrent software

Gleb N Naumovich, University of Massachusetts Amherst


With the proliferation of concurrent software systems, automated finite state verification techniques for checking that a software system conforms to a behavior specification become extremely important in improving software quality. Such techniques can be used both for detecting faults of certain kinds and proving that such faults are absent from the given software system. In this thesis, we adapt the promising approach of FLAVERS, a data flow analysis-based finite state verification technique, to the analysis of concurrent Java programs. We investigate two alternative approaches to modeling Java concurrency with FLAVERS and demonstrate experimentally that one of these two approaches is more efficient. In addition, we present three general optimizations of the general approach of FLAVERS. One of these optimizations improves the space requirements of the FLAVERS analysis by about an order of magnitude and all three optimizations combined reduce the analysis time approximately in half. Finally, we describe three case studies evaluating the applicability of FLAVERS to several application domains: communication protocols, high-level software architectures, and user interfaces. We demonstrate that FLAVERS is an efficient tool for detecting faults or proving the absence of faults of certain kind in these domains. We also describe two polynomial data flow algorithms for computing a conservative estimate of which pairs of statements may execute in parallel in concurrent programs. One of these algorithms computes such pairs for concurrent Ada programs and the other algorithm computes such pairs for concurrent Java programs. The empirical comparison of each of the algorithms with a precise exponential-time algorithm shows that our algorithms are very precise in practice. In addition, we compare our algorithm for Ada with the most precise of the previously proposed approaches. It turns out that our algorithm tends to be more precise in practice.

Subject Area

Computer science|Electrical engineering

Recommended Citation

Naumovich, Gleb N, "Data flow analysis for verification of application-specific properties of concurrent software" (1999). Doctoral Dissertations Available from Proquest. AAI9950192.