software reengineering with architecture decomposition
Software reengineering involves the activities of studying target system's architecture. However, enterprise legacy software systems tend to be large and complex. The analysis of system architecture therefore becomes a difficult task. To solve the problem, we propose an approach that decomposes software architecture to reduce the complexity associated with analyzing large scale architecture artifacts. Our study has shown that architecture decomposition is an efficient way to limit the complexity and risk associated with the re-engineering activities of a large legacy system. It divides the system into a collection of meaningful modular parts with low coupling, high cohesion, and minimizes the interface, thus to facilitate the incremental approach to implement the progressive software re-engineering process. To fulfill this goal, we have developed two major techniques to decompose legacy system architecture. In this paper, we present them in detail. The approach is also supported by our automated reverse engineering tools, and the preliminary experimental result shows our approach is very promising.
architecture software re-engineering dynamic analysis