• 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