Continuous evolution towards very large, heterogeneous, highly dynamic computing systems entails the need for sound and flexible approaches to deal with system modification and re-engineering. The approach proposed in this paper combines an analysis stage, to identify concrete patterns of interaction in legacy code, with an iterative re-engineering process at a higher level of abstraction. Both stages are supported by the tools CoordPat and Archery, respectively. Bi-directional model transformations connecting code level and design level architectural models are defined. The approach is demonstrated in a (fragment of a) case study.
Sanchez, A., Oliveira, N., Barbosa, L. S., & Henriques, P. (2015). A perspective on architectural re-engineering. Science of Computer Programming, 98, 764–784. https://doi.org/10.1016/j.scico.2014.02.026