Verification of Architectural Refactorings: Rule Extraction and Tool Support - Bisztray, Dénes; Heckel, Reiko; Ehrig, Hartmut (Electronic Communications of the EASST, 2009)
Software in use needs to be adapted to changing requirements, otherwise it becomes obsolete. Often, this involves changing the architecture of the system. To avoid the introduction of unwanted or removal of desired behaviour, these changes need verification. While verifying large systems consumes considerable resources, the verification of only the changed parts can, under certain conditions, give the required assurance. This opens the possibility of creating formally verified, reusable refactoring patterns. However, a mechanism for extracting such patterns is needed. To address this problem, a theoretical framework is presented that allow to formally reason about the rule extraction process. In order to harness the theoretical results, a visual editor and tool chain are introduced to aid developers in extracting refactoring rules and prove their behavioural correctness.