117 research outputs found

    Automated Workarounds from Java Program Specifications based on SAT Solving

    Get PDF
    The failures that bugs in software lead to can sometimes be bypassed by the so-called workarounds: when a (faulty) routine fails, alternative routines that the system offers can be used in place of the failing one, to circumvent the failure. Existing approaches to workaround-based system recovery consider workarounds that are produced from equivalent method sequences, automatically computed from user-provided abstract models, or directly produced from user-provided equivalent sequences of operations. In this paper, we present two techniques for computing workarounds from Java code equipped with formal specifications, that improve previous approaches in two respects. First, the particular state where the failure originated is actively involved in computing workarounds, thus leading to repairs that are more state specific. Second, our techniques automatically compute workarounds on concrete program state characterizations, avoiding abstract software models and user-provided equivalences. The first technique uses SAT solving to compute a sequence of methods that is equivalent to a failing method on a specific failing state, but which can also be generalized to schemas for workaround reuse. The second technique directly exploits SAT to circumvent a failing method, building a state that mimics the (correct) behaviour of a failing routine, from a specific program state too. We perform an experimental evaluation based on case studies involving implementations of collections and a library for date arithmetic, showing that the techniques can effectively compute workarounds from complex contracts in an important number of cases, in time that makes them feasible to be used for run-time repairs. Our results also show that our state-specific workarounds enable us to produce repairs in many cases where previous workaround-based approaches are inapplicable.Fil: Uva, Marcelo Ariel. Universidad Nacional de Río Cuarto; ArgentinaFil: Ponzio, Pablo Daniel. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Córdoba; Argentina. Universidad Nacional de Río Cuarto; ArgentinaFil: Regis, Germán. Universidad Nacional de Río Cuarto; ArgentinaFil: Aguirre, Nazareno Matias. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Córdoba; Argentina. Universidad Nacional de Río Cuarto; ArgentinaFil: Frias, Marcelo Fabian. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Córdoba; Argentina. Instituto Tecnológico de Buenos Aires; Argentin

    HeteroGenius: A Framework for Hybrid Analysis of Heterogeneous Software Specifications

    Get PDF
    Nowadays, software artifacts are ubiquitous in our lives being an essential part of home appliances, cars, cell phones, and even in more critical activities like aeronautics and health sciences. In this context software failures may produce enormous losses, either economical or, in the worst case, in human lives. Software analysis is an area in software engineering concerned with the application of diverse techniques in order to prove the absence of errors in software pieces. In many cases different analysis techniques are applied by following specific methodological combinations that ensure better results. These interactions between tools are usually carried out at the user level and it is not supported by the tools. In this work we present HeteroGenius, a framework conceived to develop tools that allow users to perform hybrid analysis of heterogeneous software specifications. HeteroGenius was designed prioritising the possibility of adding new specification languages and analysis tools and enabling a synergic relation of the techniques under a graphical interface satisfying several well-known usability enhancement criteria. As a case-study we implemented the functionality of Dynamite on top of HeteroGenius.Comment: In Proceedings LAFM 2013, arXiv:1401.056

    Completeness of a relational calculus for program schemes

    Get PDF
    AbstractThe relational calculus MU was presented in Willem-Paul de Roever's dissertation as a framework for describing and proving properties of programs. MU is axiomatized by de Roever in stages. The next-to-last stage is the calculus MU2, namely MU without the recursive μ-operator. Its axioms include typed versions of Tarski's axioms for the calculus of relations, together with axioms for the projection functions. For MU there is, in addition, an axiom expressing the least-fixed-point property of terms containing the μ-operator, and Scott's induction rule. Thus MU2 is a calculus for nonrecursive program schemes. Around 1976 David Park conjectured that de Roever's axiomatization for MU2 is complete. In this paper, we confirm Park's conjecture

    A proof of the interpretability of P/PML in a relational setting

    Get PDF
    In [1] we presented the logic P=PML, a formalism suitable for the speci cation and construction of Real-Time systems. The main algebraic result, namely, the interpretability of P/PML into an equa- tional calculus based on w-closure fork algebras (which allows to reason about Real-Time systems in an equational calculus) was stated but not proved because of the lack of space. In this paper we present a detailed proof of the interpretability theorem, as well as the proof of the representation theorem for w-closure fork alge- bras which provides a very natural semantics based on binary relations for the equational calculus.Eje: TeoríaRed de Universidades con Carreras en Informática (RedUNCI

    How to say greedy in fork algebras

    Get PDF
    Because of their expressive power, binary relations are widely used in program specification and development within formal calculi. The existence of a finite equational axiomatization for algebras of binary relations with a fork operation guarantees that the heuristic power coming from binary relations is captured inside an abstract equational calculus. In this paper we show how to express the greedy program design strategy into the first order theory of fork algebras.Eje: TeoríaRed de Universidades con Carreras en Informática (RedUNCI

    How to say greedy in fork algebras

    Get PDF
    Because of their expressive power, binary relations are widely used in program specification and development within formal calculi. The existence of a finite equational axiomatization for algebras of binary relations with a fork operation guarantees that the heuristic power coming from binary relations is captured inside an abstract equational calculus. In this paper we show how to express the greedy program design strategy into the first order theory of fork algebras.Eje: TeoríaRed de Universidades con Carreras en Informática (RedUNCI

    On the construction of explosive relation algebras

    Full text link
    Fork algebras are an extension of relation algebras obtained by extending the set of logical symbols with a binary operator called fork. This class of algebras was introduced by Haeberer and Veloso in the early 90's aiming at enriching relation algebra, an already successful language for program specification, with the capability of expressing some form of parallel computation. The further study of this class of algebras led to many meaningful results linked to interesting properties of relation algebras such as representability and finite axiomatizability, among others. Also in the 90's, Veloso introduced a subclass of relation algebras that are expansible to fork algebras, admitting a large number of non-isomorphic expansions, referred to as explosive relation algebras. In this work we discuss some general techniques for constructing algebras of this type
    • …
    corecore