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 CONICET, Buenos Aires, DF, Argentina
关键词
VERIFICATION;
D O I
10.1007/978-3-662-54494-5_20
中图分类号
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. Previous works have exploited this workarounds notion to automatically recover from runtime failures in some application domains. However, existing approaches that compute workarounds automatically either require the user to manually build an abstract model of the software under consideration, or to provide equivalent sequences of operations from which workarounds are computed, diminishing the automation of workaround-based system recovery. In this paper, we present two techniques that automatically compute workarounds from Java code equipped with formal specifications, avoiding abstract software models and user provided equivalences. These techniques employ SAT solving to compute workarounds on concrete program state characterizations. The first employs SAT solving to compute traditional workarounds, while the second directly exploits SAT solving to circumvent a failing method, building a state that mimics the (correct) behaviour of this failing routine. Our experiments, based on case studies involving implementations of collections and a library for date arithmetic, enable us to show 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.
引用
收藏
页码:356 / 373
页数:18
相关论文
共 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]. INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2018, 20 (06) : 665 - 688
  • [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