EvolTrack: A Plug-in-Based Infrastructure for Visualizing Software Evolution Cláudia Werner 1 , Leonardo Murta 2 , Marcelo Schots 1 , Andréa M. Magdaleno 1,3 , Marlon Silva 1 , Rafael Cepêda 1 , Caio Vahia 1 1 Programa de Engenharia de Sistemas e Computação (PESC) – COPPE/UFRJ Caixa Postal 68.511 – 21945-970 – Rio de Janeiro, RJ – Brasil 2 Instituto de Computação – Universidade Federal Fluminense Rua Passo da Pátria 156 – 24210-240 – Niterói, RJ – Brasil 3 Núcleo de Pesquisa e Prática em Tecnologia (NP2Tec) –– Universidade Federal do Estado do Rio de Janeiro (UNIRIO) – 22290-240 – Rio de Janeiro, RJ – Brasil {werner,schots,andrea,marlon,rcepeda}@cos.ufrj.br, leomurta@ic.uff.br, caiovahia@poli.ufrj.br Abstract. Researchers and practitioners have looked for technologies and methodologies to help monitoring and controlling software development. As software evolves and becomes more complex, it needs to deal with more complex and abundant data. This work provides an overview of EvolTrack, an infrastructure that exploits the Software Visualization discipline for supporting software evolution control and monitoring activities. 1. Introduction Software maintenance and evolution control activities emerge as two major areas of a computer system lifecycle. The former concerns day-to-day changes implemented into a software system; the latter refers to what happens to software in long-term, during its entire life span [Jarzabek 2007]. In short, the main focus of both is on changes that occur during the system lifecycle. However, as stated by Parnas (2001), managing the inherent and continuous software changes becomes difficult in the course of time due to several reasons, including the comprehension of those changes. For a proper monitoring of these activities, a significant amount of data must be collected, processed, and stored over time. Nevertheless, the value of such data for an organization depends, amongst others, on the possibilities to extract and understand the underlying information from these data, so that it can be used to control and improve the development process. To achieve this goal, data must be presented in an intuitive way, and unnecessary information overloading must be avoided. In order to understand changes that occur during software maintenance and evolution, software visualization techniques have been pointed out as a promising solution for supporting better comprehension of complex systems. This field seeks to investigate and develop abstractions and computational methods for representing various software aspects, such as its structure, behavior, and evolution [Diehl 2007]. Visualization tools provide ways to convert data into visualizations, focusing on