An Eclipse Based Environment to Define and Execute Processes with Application to the Reverse Engineering 1 Andrea De Lucia + , Fausto Fasano + , Michele Risi + , and Giuseppe Scanniello * + Dipartimento di Matematica e Informatica, Università di Salerno, Via Ponte Don Melillo, 84084, Fisciano (SA), ITALY * Dipartimento di Matematica e Informatica, Università della Basilicata, Viale Dell'Ateneo, Macchia Romana, 85100, Potenza, ITALY {adelucia, ffasano, mrisi}@unisa.it, giuseppe.scanniello@unibas.it Abstract. In this paper we present an Eclipse plug-in for defining and executing processes to reverse engineering and comprehend traditional and web based information systems. Processes are defined in terms of UML activity diagrams, where predefined or newly developed software components can be associated to each activity. Components implemented using traditional programming languages and software environments for data analysis can be reused. Keywords: Program comprehension, reverse engineering, legacy systems, visual environment. 1. Introduction Maintenance is the largest and most expensive activity in the software engineering field [17]. In fact, during maintenance a software system will be continuously changed and enhanced for several reasons. Changes are needed to meet new user requirements, to adapt software to interact with external entities, including people, organizations, and artificial systems, to correct faults, to improve performances, etc... Technical and managerial problems contribute to the costs of software maintenance, which increases when documentation lacks. Supporting tools to reverse engineer existing or legacy systems could be used to support software engineers in the maintenance phase. These tools should generally support the comprehension of existing software systems, abstracting higher level models from lower level representations of a software system. Different software tools are available to reverse engineer and comprehend existing software systems, both freeware and commercial. Generally, all-in-one reverse engineering and comprehension tools often lack. Hence, in case a specific tool is needed a high effort is required to design and develop it from scratch. To ease the production of reverse engineering tools several software environments tools have been proposed in the literature[4][5][12]. Generally, these environments are based on domain specific or scripting language to prototype and/or generate reverse 1 This work has been supported by the project METAMORPHOS under grant PRIN-2006-2006098097.