Automated workarounds from Java']Java program specifications based on SAT solving

被引:1
|
作者
Uva, Marcelo [1 ]
Ponzio, Pablo [1 ,3 ]
Regis, German [1 ]
Aguirre, Nazareno [1 ,3 ]
Frias, Marcelo F. [2 ,3 ]
机构
[1] Univ Nacl Rio Cuarto, Rio Cuarto, Argentina
[2] ITBA, Buenos Aires, DF, Argentina
[3] Consejo Nacl Invest Cient & Tecn, Consejo Nacl Invest Cient & Tecn, Buenos Aires, DF, Argentina
关键词
Runtime recovery; Workarounds; SAT Solving; VERIFICATION; DYNALLOY;
D O I
10.1007/s10009-018-0503-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:665 / 688
页数:24
相关论文
共 50 条
  • [1] Automated Workarounds from Java']Java Program Specifications Based on SAT Solving
    Uva, Marcelo
    Ponzio, Pablo
    Regis, German
    Aguirre, Nazareno
    Frias, Marcelo F.
    [J]. FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2017, 2017, 10202 : 356 - 373
  • [2] Automated workarounds from Java program specifications based on SAT solving
    Marcelo Uva
    Pablo Ponzio
    Germán Regis
    Nazareno Aguirre
    Marcelo F. Frias
    [J]. International Journal on Software Tools for Technology Transfer, 2018, 20 : 665 - 688
  • [3] Extracting Permission-based Specifications from a Sequential Java']Java Program
    Sadiq, Ayesha
    Li, Yuan-Fang
    Ling, Sea
    Ahmed, Ijaz
    [J]. 2016 21ST INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS 2016), 2016, : 215 - 218
  • [4] Automatic Construction of Java']Java Programs from Functional Program Specifications
    Kabir, Md. Humayun
    [J]. INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS, 2015, 6 (04) : 65 - 72
  • [5] Discovering algebraic specifications from Java']Java classes
    Henkel, J
    Diwan, A
    [J]. ECOOP 2003 - OBJECT-ORIENTED PROGRAMMING, PROCEEDINGS, 2003, 2743 : 431 - 456
  • [6] Checking Event-Based Specifications in Java']Java Systems
    Reiss, Steven P.
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2006, 144 (03) : 107 - 132
  • [7] Writing concurrent Java']Java programs based on CafeOBJ specifications
    Ha, Xuan-Linh
    Ogata, Kazuhiro
    [J]. 2017 24TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2017), 2017, : 618 - 623
  • [8] Java']Java card code generation from B specifications
    Tatibouët, B
    Requet, A
    Voisinet, JC
    Hammad, A
    [J]. FORMAL METHODS AND SOFTWARE ENGINEERING, PROCEEDINGS, 2003, 2885 : 306 - 318
  • [9] An automated refactoring approach to design pattern-based program transformations in java']java programs
    Jeon, SU
    Lee, JS
    Bae, DH
    [J]. APSEC 2002: NINTH ASIA PACIFIC SOFTWARE ENGINEERING CONFERENCE, 2002, : 337 - 345
  • [10] Applying CodeBERT for Automated Program Repair of Java']Java Simple Bugs
    Mashhadi, Ehsan
    Hemmati, Hadi
    [J]. 2021 IEEE/ACM 18TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2021), 2021, : 505 - 509