DocumentCode
1549625
Title
Apportioning: a technique for efficient reachability analysis of concurrent object-oriented programs
Author
Iyer, Sridhar ; Ramesh, S.
Author_Institution
Sch. of Inf. Technol., Indian Inst. of Technol., Mumbai, India
Volume
27
Issue
11
fYear
2001
fDate
11/1/2001 12:00:00 AM
Firstpage
1037
Lastpage
1056
Abstract
The object-oriented paradigm in software engineering provides support for the construction of modular and reusable program components and is attractive for the design of large and complex distributed systems. Reachability analysis is an important and well-known tool for static analysis of critical properties 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 synchronization structure in concurrent programs, such as formal verification. However, direct application of traditional reachability analysis to concurrent object-oriented programs has many problems, such as incomplete analysis for reusable classes (not safe) and increased computational complexity (not efficient). We propose a novel technique called apportioning, for safe and efficient reachability analysis of concurrent object-oriented programs, that is based upon a simple but powerful idea of classification of program analysis points as local (having influence within a class) and global (having possible influence outside a class). We have developed a number of apportioning-based algorithms, having different degrees of safety and efficiency. We present the details of one of these algorithms, formally show its safety for an appropriate class of programs, and present experimental results to demonstrate its efficiency for various examples
Keywords
object-oriented programming; parallel programming; program diagnostics; reachability analysis; software cost estimation; apportioning technique; apportioning-based algorithms; complex distributed systems; computational complexity; concurrent object-oriented programs; concurrent programs; deadlock freedom; direct application; experimental results; formal verification; global states; modular reusable program components; object-oriented paradigm; program analysis points; reachability analysis; reusable classes; software engineering; static analysis; synchronization structure; Algorithm design and analysis; Computational complexity; Formal verification; Libraries; Modular construction; Object oriented programming; Reachability analysis; Safety; Software engineering; System recovery;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/32.965343
Filename
965343
Link To Document