Skip to main content
— Presentation at IWoR 2016 —
October 14, 2016
Photo 1 Presentation scene
1st International Workshop on Refactoring (IWoR 2016) was held at Singapore in conjunction with the 31st IEEE/ACM Automated Software Engineering Conference (ASE 2016), which was held from 24 to 27, 2016, to discuss about advanced approaches and experiences on software refactoring. One full research paper is accepted to the workshop from Hitachi's Research and Development Group. I made a presentation titled "Refactoring Verification using Model Transformation" that proposes a verification approach and tool for software refactoring (Photo 1).
Fig. 1 Example of verification using proposal method
Embedded software is typically developed with the manner where a previous product is enhanced to develop a new product. Such software products need refactoring, a technique by which to clean up software structure, because repeated enhancement complicates software structure, which results in decay of productivity or quality. However, developers of industrial products, especially legacy ones, of which refactoring is typically wanted, tend to hesitate refactoring because they consider refactoring as unnecessary modification that increase regression risk.
In order to encourage developers to refactor their code, we propose a program equivalence checking approach to verify the behavior of software is not changed before and after refactoring (Fig. 1). Our approach first extracts structure models from source code before and after refactoring, respectively, and then transforms the latter model so that the structural modification that is intended by the refactoring is cancelled. Finally, the equivalence is evaluated by comparing the transformed model and the one before refactoring to evaluate the equivalence. We also built an equivalence-checking tool named POM/EQ for source code written in the C/C++ language. As a result of the case study using the tool, we successfully checked 56% of the refactoring modifications that are performed on an industrial product.
(By ICHI Makoto)