Apportioning: A technique for efficient reachability analysis of concurrent object-oriented programs

Authors
Citation
S. Iyer et S. Ramesh, Apportioning: A technique for efficient reachability analysis of concurrent object-oriented programs, IEEE SOFT E, 27(11), 2001, pp. 1037-1056
Citations number
34
Categorie Soggetti
Computer Science & Engineering
Journal title
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
ISSN journal
00985589 → ACNP
Volume
27
Issue
11
Year of publication
2001
Pages
1037 - 1056
Database
ISI
SICI code
0098-5589(200111)27:11<1037:AATFER>2.0.ZU;2-J
Abstract
The object-oriented paradigm in software engineering provides support for t he construction of modular and reusable program components and is attractiv e for the design of large and complex distributed systems. Reachability ana lysis is an important and well-known tool for static analysis of critical p roperties in concurrent programs, such as deadlock freedom. It involves the systematic enumeration of all possible global states of program execution and provides the same level of assurance for properties of the synchronizat ion structure in concurrent programs, such as formal verification. However, direct application of traditional reachability analysis to concurrent obje ct-oriented programs has many problems, such as incomplete analysis for reu sable classes (not safe) and increased computational complexity (not effici ent). We have proposed a novel technique called apportioning, for safe and efficient reachability analysis of concurrent object-oriented programs, tha t is based upon a simple but powerful idea of classification of program ana lysis points as local (having influence within a class) and global (having possible influence outside a class). Given a program and a classification o f its analysis points, reachability graphs are generated for 1) an abstract version of each class in the program having only local analysis points and 2) an abstract version of the whole program having only global analysis po ints. The error to be checked is decomposed into a number of subproperties, which are checked in the appropriate, reachability graphs. Different choic es for the classification of analysis points, provide the flexibility to ha ve many algorithms that are safe and efficient for different subclasses of programs. We have developed a number of apportioning-based algorithms, havi ng different degrees of safety and efficiency. In this paper, we present th e details of one of these algorithms, formally show its safety for an appro priate class of programs, and present experimental results to demonstrate i ts efficiency for various examples.