913 research outputs found

    A Novel Framework for Model Checking UDP Network Interactions

    Get PDF
    This poster presents the first Java Pathfinder extension to model realistic User Datagram Protocol (UDP) networking communications, which is used to verify a UDP network software simulator, RF. Java Pathfinder is a model checking software system developed by NASA and used frequently for verifying that concurrent software systems avoid deadlock states and other errors. It does not natively support network modeling. NetIOCache is a Java Pathfinder extension for verifying TCP/IP networks, but no similar UDP extensions currently exist. NetStub, a Java Pathfinder extension, can simulate UDP behavior as a collection of threads, but it does not simulate important and common UDP properties such as packet loss and reordering that are often necessary to simulate in order to verify a UDP network model. I present a novel extension to Java Pathfinder to allow modeling of realistic UDP communications that includes simulated packet loss and reordering. This extension is then used to verify RF for up to four network processes. The RF model is verified accurate (it never encounters deadlocks or uncaught Java exceptions)

    Bounded Model Checking Using Java PathFinder

    Get PDF
    Diplomová práce je věnovaná aplikaci formální metody bounded model checking pro automatickou opravu chyb. Oprava se specializuje na chyby spojené se souběžností. Práce je zaměřena na programy napsané v jazyce Java, a proto pro verifikační metodu byl zvolen model checker Java Pathfinder, který je určen pro Java programy. Vlastní verifikační metoda spočívá v aplikaci strategie pro navigaci stavovým prostorem do místa verifikace. Z daného místa je spuštěn bounded model checking pro ověření opravy. Navigace stavovým prostorem je implementována pomocí strategie record&replay trace. Pro aplikaci bounded model checkingu jsou implementovány další parametry a moduly pro verifikaci speciálních vlastností systému, které ověřují koreknost opravy chyby. Bounded model checking se provádí v okolí opravy.This thesis deals with the application of bounded model checking method for self-healing assurance of concurrency related problems. The self-healing is currently interested in the Java programming language. Therefore, it concetrate mainly on the model checker Java PathFinder which is built for handling Java programs. The verification method is implemented like the Record&Replay trace strategy for navigation through a state space and performance bounded model checking from reached state through the use of Record&Replay trace strategy. Java PathFinder was extended by new moduls and interfaces in order to perform the bounded model checking for self-healing assurance. Bounded model checking is applied at the neighbourhood of self-healing.

    Comparing metaheuristic algorithms for error detection in Java programs

    Get PDF
    Chicano, F., Ferreira M., & Alba E. (2011). Comparing Metaheuristic Algorithms for Error Detection in Java Programs. In Proceedings of Search Based Software Engineering, Szeged, Hungary, September 10-12, 2011. pp. 82–96.Model checking is a fully automatic technique for checking concurrent software properties in which the states of a concurrent system are explored in an explicit or implicit way. The main drawback of this technique is the high memory consumption, which limits the size of the programs that can be checked. In the last years, some researchers have focused on the application of guided non-complete stochastic techniques to the search of the state space of such concurrent programs. In this paper, we compare five metaheuristic algorithms for this problem. The algorithms are Simulated Annealing, Ant Colony Optimization, Particle Swarm Optimization and two variants of Genetic Algorithm. To the best of our knowledge, it is the first time that Simulated Annealing has been applied to the problem. We use in the comparison a benchmark composed of 17 Java concurrent programs. We also compare the results of these algorithms with the ones of deterministic algorithms.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech. This research has been partially funded by the Spanish Ministry of Science and Innovation and FEDER under contract TIN2008-06491-C04-01 (the M∗ project) and the Andalusian Government under contract P07-TIC-03044 (DIRICOM project)

    Using Graph Transformations and Graph Abstractions for Software Verification

    Get PDF
    In this paper we describe our intended approach for the verification of software written in imperative programming languages. We base our approach on model checking of graph transition systems, where each state is a graph and the transitions are specified by graph transformation rules. We believe that graph transformation is a very suitable technique to model the execution semantics of languages with dynamic memory allocation. Furthermore, such representation allows us to investigate the use of graph abstractions, which can mitigate the combinatorial explosion inherent to model checking. In addition to presenting our planned approach, we reason about its feasibility, and, by providing a brief comparison to other existing methods, we highlight the benefits and drawbacks that are expected

    Debugger interface pro Java PathFinder model checker

    Get PDF
    Cílem této práce je začlenit Java PathFinder do architektury Java Platform Debugger Architecture, tedy umožnit debuggování Java Pathfinderu z jakéhokoliv moderního Java vývojového prostředí se všemi výhodami s tím spojenými stejně jako u běžných Java virtuálních strojů. Těmi jsou kupříkladu různé typy breakpointů, krokování v otevřených zdrojových souborech a inspekce zásobníku volání a objektů v programu. Výsledná práce dává uživatelům k dispozici plnohodnotnou škálu možností debugování jako u běžných Java programů, a to bez nutnosti použití dalších nástrojů, editorů a zejména bez nutnosti složitého nastavování prostředí pro debugování. Díky tomu mohou uživatelé zkoumat, debugovat a pochopit stav programu při procházení error trace vyhodnocené Java PathFinderem. Klíčovou části práce je implementace Java Debug Wire Protocol agenta jako doplněk Java PathFinderu. V důsledku tohoto se Java PathFinder stává kompletnějším Java virtuálním strojem jak v očích komunity tak i celé obce Java uživatelů. Powered by TCPDF (www.tcpdf.org)The aim of this work is to integrate Java PathFinder into Java Platform Debugger Architecture. That is, to allow using Java PathFinder instead of a common Java Virtual Machine for the purpose of debugging Java applications in any modern Java Integrated Development Environment with all its advantages such as various kinds of breakpoints, direct stepping in opened source files, and call stack and object inspection. The resulting work provides users with all the features they are used to while debugging Java applications. None of this requires any external tools, editors or a complicated setup. Therefore, users are able to view, debug and understand the program state while replaying an error trace in Java PathFinder. The key part of the study is an implementation of the Java Debug Wire Protocol Agent as an extension for Java PathFinder. That makes JPF more complete as a Virtual Machine in the eyes of the community and the Java users in general. Powered by TCPDF (www.tcpdf.org)Department of Distributed and Dependable SystemsKatedra distribuovaných a spolehlivých systémůFaculty of Mathematics and PhysicsMatematicko-fyzikální fakult

    Model Checking Real Time Java Using Java PathFinder

    Get PDF
    The Real Time Specification for Java (RTSJ) is an augmentation of Java for real time applications of various degrees of hardness. The central features of RTSJ are real time threads; user defined schedulers; asynchronous events, handlers, and control transfers; a priority inheritance based default scheduler; non-heap memory areas such as immortal and scoped, and non-heap real time threads whose execution is not impeded by garbage collection. The Robust Software Systems group at NASA Ames Research Center has JAVA PATHFINDER (JPF) under development, a Java model checker. JPF at its core is a state exploring JVM which can examine alternative paths in a Java program (e.g., via backtracking) by trying all nondeterministic choices, including thread scheduling order. This paper describes our implementation of an RTSJ profile (subset) in JPF, including requirements, design decisions, and current implementation status. Two examples are analyzed: jobs on a multiprogramming operating system, and a complex resource contention example involving autonomous vehicles crossing an intersection. The utility of JPF in finding logic and timing errors is illustrated, and the remaining challenges in supporting all of RTSJ are assessed
    corecore