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 :
بازگشت