Formal specification and verification of Java']Java refactorings

被引:0
|
作者
Garrido, Alejandra [1 ]
Meseguer, Jose [1 ]
机构
[1] Univ Illinois, 201 N Goodwin Ave, Urbana, IL 61801 USA
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
There is an extensive literature about refactorings of object-oriented programs, and many refactoring tools for the Java programming language. However except for a few studies, in practice it is difficult to find precise formal specifications of the preconditions and mechanisms of automated refactorings. Moreover there is usually no formal proof that a refactoring is correct, i.e., that it preserves the behavior of the program. We present an equational semantics based approach to Java refactoring. Specifically, we use an executable Java formal semantics in the Maude language to: (i) formally specify three useful Java refactorings; and (ii) give detailed proofs of correctness for two of those refactorings, showing that they are behavior-preserving transformations. Besides the obvious benefits of providing rigorous specifications for refactoring tool builders and rigorous correctness guarantees, our approach has the additional advantage of its executability: our formal refactoring specifications can be used directly to refactor Java programs and yield a provably correct Java refactoring tool.
引用
收藏
页码:165 / +
页数:2
相关论文
共 50 条
  • [1] A formal specification of Java']Java™ class leading
    Qian, ZY
    Goldberg, A
    Coglio, A
    [J]. ACM SIGPLAN NOTICES, 2000, 35 (10) : 325 - 336
  • [2] Specification and verification of encapsulation in Java']Java programs
    Roth, A
    [J]. FORMAL METHODS FOR OPEN OBJECT-BASED DISTRIBUTED SYSTEMS, PROCEEDINGS, 2005, 3535 : 195 - 210
  • [3] Automated Refactorings in Java']Java
    Mahmood, Jeffrey
    Reddy, Y. Raghu
    [J]. SOUVENIR OF THE 2014 IEEE INTERNATIONAL ADVANCE COMPUTING CONFERENCE (IACC), 2014, : 1406 - 1414
  • [4] A formal specification in JML of Java']Java security package
    Agarwal, Poonam
    Rubio-Medrano, Carlos E.
    Cheon, Yoonsik
    Teller, Patricia. J.
    [J]. ADVANCES AND INNOVATIONS IN SYSTEMS, COMPUTING SCIENCES AND SOFTWARE ENGINEERING, 2007, : 363 - 368
  • [5] Improving the official specification of Java']Java bytecode verification
    Coglio, A
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2003, 15 (02): : 155 - 179
  • [6] A Formalisation of Java']Java Strings for Program Specification and Verification
    Bubel, Richard
    Hahnle, Reiner
    Geilmann, Ulrich
    [J]. SOFTWARE ENGINEERING AND FORMAL METHODS, 2011, 7041 : 90 - +
  • [7] Specification and Runtime Verification of Java']Java Card Programs
    da Costa, Umberto Souza
    Moreira, Anamaria Martins
    Musicante, Martin A.
    Souza Neto, Placido A.
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 240 : 61 - 78
  • [8] Java bytecode specification and verification
    Burdy, Lilian
    Pavlova, Mariela
    [J]. Proc ACM Symp Appl Computing, 1600, (1835-1839):
  • [9] Formal specification and verification of Java']JavaCard's application identifier class
    van den Berg, J
    Jacobs, B
    Poll, E
    [J]. JAVA ON SMART CARDS: PROGRAMMING AND SECURITY, 2001, 2041 : 137 - 150
  • [10] Discovering anomalies in access modifiers in Java']Java with a formal specification
    Yang, W
    [J]. JOOP-JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 2001, 13 (10): : 12 - 18