Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/337180.337234acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article
Free access

Bandera: extracting finite-state models from Java source code

Published: 01 June 2000 Publication History
  • Get Citation Alerts
  • Abstract

    Finite-state verification techniques, such as model checking, have shown promise as a cost-effective means for finding defects in hardware designs. To date, the application of these techniques to software has been hindered by several obstacles. Chief among these is the problem of constructing a finite-state model that approximates the executable behavior of the software system of interest. Current best-practice involves hand-construction of models which is expensive (prohibitive for all but the smallest systems), prone to errors (which can result in misleading verification results), and difficult to optimize (which is necessary to combat the exponential complexity of verification algorithms).
    In this paper, we describe an integrated collection of program analysis and transformation components, called Bandera, that enables the automatic extraction of safe, compact finite-state models from program source code. Bandera takes as input Java source code and generates a program model in the input language of one of several existing verification tools; Bandera also maps verifier outputs back to the original source code. We discuss the major components of Bandera and give an overview of how it can be used to model check correctness properties of Java programs.

    References

    [1]
    J. C. Corbett. Ev aluating deadlock detection methods for concurrent softw are. IEEE Transactions on Software Engineering, 22(3), Mar. 1996.]]
    [2]
    J. C. Corbett. Constructing compact models of concurrent Java programs. In M. Young, editor, Pr oceedings of the 1998 International Symposium on Software Testing and Analysis (ISST A). ACM Press, March 1998.]]
    [3]
    P. Cousot and R. Cousot. Abstract interpretation: A uni edlattice model for static analysis of programs by construction or appro ximation of xpoints. In Confer ence Record ofthe Fourth A nnual ACM Symposium on Principles of Programming Languages, pages 238{252, 1977.]]
    [4]
    C. Demartini, R. Iosif, and R. Sisto. A deadlock detection tool for concurrent Java programs. Software -Practice and Exp erience, 29(7):577{603, July 1999.]]
    [5]
    D. L. Dill, A. J. Drexler, A. J. Hu, and C. H. Yang. Protocol verication as a hardware design aid. In IEEE International Conference on Computer Design, October 1992.]]
    [6]
    Y. Dong and C. Ramakrishnan. An optimizing compiler for ecien t model checking. In Proceedings FORTE/PSTV'99, Nov. 1999.]]
    [7]
    M. Dwyer, G. Avrunin, and J. Corbett. Patterns in propert speci cations for nite-state verication. In Pr oceedings the 21st International Conference on Software Engine ering, May 1999.]]
    [8]
    J. Hatcli, J. C. Corbett, M. B. Dwyer, S. Sokolowski, and H. Zheng. A formal study of slicing for multi-threaded programs with JVM concurrency primitives. In Pr oceedings of the 6th International Static Analysis Symposium (SAS'99), Sept. 1999.]]
    [9]
    J. Hatcli, M. B. Dwyer, and S. Laubach. Staging static analysis using abstraction-based program specialization. In LNCS 1490. Principles of Declarative Programming 10th International Symposium, PLILP'98, Sept. 1998.]]
    [10]
    J. Hatcli, M. B. Dwyer, S. Laubach, and N. Muhammad. Specializing congurable systems for nite-state veri cation.Technical Report 98-4, Kansas State University, Department of Computing and Information Sciences, 1998.]]
    [11]
    J. Hatcli, M. B. Dwyer, and H. Zheng. Slicing software for model construction. Higher-order and Symbolic Computation, 2000. to appear.]]
    [12]
    K. Havelund, M. Lowry, and J. Penix. Formal analysis of a space craft controller using SPIN. In Proceedings of the 4th International SPIN Workshop, Nov. 1997.]]
    [13]
    K. Havelund and T. Pressburger. Model checking Java programs using Java PathFinder. International Journal on Software Tools for T echnolo gy T ransfer, 1999. to appear.]]
    [14]
    G. J. Holzmann. The model checker SPIN. IEEE Transactions on Software Engine ering, 23(5):279{294, May 1997.]]
    [15]
    G. J. Holzmann. Engineering a model checker : The Gnu i-protocol case study revisited. In Theoretical and Applied Aspects of SPIN Model Che cking (LNCS 1680), Sept. 1999.]]
    [16]
    G. J. Holzmann and M. H. Smith. Softw are model checking : Extracting verication models from source code. In Pr oceedings of FORTE/PSTV'99, Nov. 1999.]]
    [17]
    S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems, 12(1):26{60, Jan. 1990.]]
    [18]
    F. Huch. V erication of Erlang programs using abstract interpretation and model checking. In Proceedings of the Fourth ACM SIGPLAN International Conference onFunctional Programming (ICFP'99), pages 261{272, Sept. 1999.]]
    [19]
    D. Jac kson and C. A. Damon. Elements of style: Analyzing a software design feature with a counterexample detector. IEEE Transactions on Software Engineering, 22(7):484{495, July 1996.]]
    [20]
    Z. Manna and A. Pnueli. The Temporal L ogic of Reactive and Concurr ent Systems:Specication. Springer-Verlag, 1991.]]
    [21]
    K. McMillan. Symbolic Model Che cking. Klu wer Academic Publishers, 1993.]]
    [22]
    S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verication system. In Proceedings of the 1th International Conference on Automated Deduction (LNCS 607), 1992.]]
    [23]
    R. V alle-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co. Soot - a Ja va optimization framew ork. InProceedings of CASCON'99, Nov. 1999.]]

    Cited By

    View all
    • (2024)SandTable: Scalable Distributed System Model Checking with Specification-Level State ExplorationProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3650077(736-753)Online publication date: 22-Apr-2024
    • (2023)PROSPERProceedings of the 22nd ACM Workshop on Hot Topics in Networks10.1145/3626111.3628205(41-47)Online publication date: 28-Nov-2023
    • (2023)CCT Principle of Error and Conflict Detection and PreventionSystems Collaboration and Integration10.1007/978-3-031-44373-2_8(132-144)Online publication date: 18-Oct-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICSE '00: Proceedings of the 22nd international conference on Software engineering
    June 2000
    843 pages
    ISBN:1581132069
    DOI:10.1145/337180
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 June 2000

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. abstract interpretation
    2. model checking
    3. model extraction
    4. program specialization
    5. program verification
    6. slicing

    Qualifiers

    • Article

    Conference

    ICSE00
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 276 of 1,856 submissions, 15%

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)223
    • Downloads (Last 6 weeks)26

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)SandTable: Scalable Distributed System Model Checking with Specification-Level State ExplorationProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3650077(736-753)Online publication date: 22-Apr-2024
    • (2023)PROSPERProceedings of the 22nd ACM Workshop on Hot Topics in Networks10.1145/3626111.3628205(41-47)Online publication date: 28-Nov-2023
    • (2023)CCT Principle of Error and Conflict Detection and PreventionSystems Collaboration and Integration10.1007/978-3-031-44373-2_8(132-144)Online publication date: 18-Oct-2023
    • (2022)Linear-time temporal logic guided greybox fuzzingProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510082(1343-1355)Online publication date: 21-May-2022
    • (2022)Automated Attack Synthesis by Extracting Finite State Machines from Protocol Specification Documents2022 IEEE Symposium on Security and Privacy (SP)10.1109/SP46214.2022.9833673(51-68)Online publication date: May-2022
    • (2022)Run-time Control Flow Model Extraction of Java ApplicationsEmerging Research in Computing, Information, Communication and Applications10.1007/978-981-19-5482-5_69(803-816)Online publication date: 13-Dec-2022
    • (2022)Transportation SystemsNetwork Science Models for Data Analytics Automation10.1007/978-3-030-96470-2_6(79-107)Online publication date: 22-Feb-2022
    • (2022)Bug detection in Java code: An extensive evaluation of static analysis tools using Juliet Test SuitesSoftware: Practice and Experience10.1002/spe.318153:5(1125-1143)Online publication date: 29-Dec-2022
    • (2021)Postmortem accurate IR-level state recovery for deployed concurrent programsACM SIGAPP Applied Computing Review10.1145/3493499.349350221:3(33-48)Online publication date: 20-Oct-2021
    • (2021)STRABProceedings of the 36th Annual ACM Symposium on Applied Computing10.1145/3412841.3442028(1532-1541)Online publication date: 22-Mar-2021
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media