Title :
Contract-Based Verification for Aspect-Oriented Refactoring
Author :
Ubayashi, N. ; Jinji Piao ; Shinotsuka, S. ; University, T.
Author_Institution :
Kyushu Inst. of Technol., Fukuoka
Abstract :
Refactoring is a method for improving a program´s structure without changing its external behavior. Refactoring is a promising approach to assist reliable and safe software evolution. However, in aspect-oriented programming (AOP), it is not necessarily easy for a programmer to understand the overall behavior of a woven program because the weaving modifies the behavior. Unexpected bugs can be embedded in a program if the programmer does not modify the program carefully. In order to deal with this problem, we propose the notion of RbC (refactoring by contract), a technique to verify refactoring based on contracts. Contracts in RbC consist of preconditions, postconditions, and invariants. A precondition states under which conditions refactoring can be applied. A postcondition states what condition should be verified after refactoring has been accomplished, and an invariant states what conditions refactoring should preserve. After introducing RbC, we check whether refactoring preserves behavior and whether it actually improves internal structure. A contract is described in COW (contract writing language), a language for describing a predicate based on first-order logic. COW provides a set of primitive predicates that represent program structure and behavior. Adopting our approach, software evolution in AOP becomes reliable and safe.
Keywords :
formal logic; formal verification; object-oriented programming; software reliability; aspect-oriented refactoring; contract writing language; contract-based verification; first-order logic; primitive predicates; program behavior; program structure; refactoring by contract; software evolution reliability; Computer bugs; Contracts; Data mining; Logic programming; Program processors; Programming profession; Software safety; Software testing; Weaving; Writing; AOP; Contract; Refactoring; Verification;
Conference_Titel :
Software Testing, Verification, and Validation, 2008 1st International Conference on
Conference_Location :
Lillehammer
Print_ISBN :
978-0-7695-3127-4
DOI :
10.1109/ICST.2008.36