Architecture Recovery and Evaluation Aiming at Program Understanding and Reuse

Organizations use to have implemented systems that represent a large effort and budget invested in the past. These systems are evolved and adapted over time in order to accommodate technological and business changes. Moreover, big companies often develop

  • PDF / 326,393 Bytes
  • 18 Pages / 430 x 660 pts Page_size
  • 17 Downloads / 187 Views

DOWNLOAD

REPORT


Federal University of Rio de Janeiro COPPE/UFRJ – Systems Engineering and Computer Science Program P.O. Box 68511 – ZIP 21945-970 – Rio de Janeiro – RJ – Brazil 2 CEFET Campos - Federal Center for Technological Education of Campos Dr. Siqueira, 273 – ZIP 28030-130 – Campos dos Goytacazes – RJ- Brazil {aline, werner}@cos.ufrj.br

Abstract. Organizations use to have implemented systems that represent a large effort and budget invested in the past. These systems are evolved and adapted over time in order to accommodate technological and business changes. Moreover, big companies often develop similar systems within the same domain. This has been motivating them to migrate to reuse approaches, such as domain engineering and product line. However, existing systems in general don't have up-to-date architectural documentation that can help in their maintenance and reuse. Considering this scenario, this paper presents an approach to architecture recovery and evaluation that aims at extracting knowledge from existing systems to help in their understanding and reuse. This extracted knowledge is represented through a recovered application architectural model composed by architectural elements that represent domain concepts traced to implemented functional requirements, which may help in generating reusable artifacts. In order to evaluate the approach feasibility, an experimental study was performed. Keywords: Architecture recovery, dynamic analysis, data mining, architecture evaluation, software inspection, program understanding, software reuse.

1 Introduction There is a large number of reverse engineering approaches in the literature to recover documentation from existing systems. Many approaches of software clustering and remodularization [2, 16], or more specifically of architecture recovery [3, 7, 13, 20] reconstruct documentation from system available artifacts, such as source code and executable. These approaches are motivated by the fact that existing systems, which have been developed many years ago (i.e. legacy systems), usually don't have up-todate documentation that can help in their understanding. These systems represent a great investment made by the organizations and incorporate business knowledge that sometimes cannot be obtained in any other source of information. Moreover, big organizations tend to develop applications in the same or similar domains along the years. This motivates the reuse of the whole or parts of existing systems in new developments, mainly in domain engineering and product line approaches. However, S. Overhage et al. (Eds.): QoSA 2007, LNCS 4880, pp. 72 – 89, 2007. © Springer-Verlag Berlin Heidelberg 2007

Architecture Recovery and Evaluation Aiming at Program Understanding and Reuse

73

existent reverse engineering approaches, in general, are not focused on reuse and on the generation of abstractions that can be mapped to domain concepts. Moreover, they use to be based on criteria that are domain or implementation specific. In the last years, architecture recovery approaches have been re