When modeling the architecture of an existing software system, developers often find inconsistencies between the conceptual and the as-built architecture. To impose the conceptual view on the code often involves large refactoring to remediate architectural violations. This paper reports our experience applying large refactoring to remediate an architectural violation in LogicBlox, a large, multi-language multi-platform system. We used DSM-based analysis in conjunction with a suite of code analysis tools to identify and effect large refactorings. A key insight of this experience is the value of automatically generated proto-interfaces, which may help experts identify standard abstractions around which to structure the refactoring effort. We contribute a process for refactoring that includes the generation of proto-interfaces and the explicit inclusion of expert review.
Published in:
Software Engineering - Companion Volume, 2009. ICSE-Companion 2009. 31st International Conference on
Date of Conference: 16-24 May 2009