Marco Zanoni

Learn More
It is well known that software maintenance and evolution are expensive activities, both in terms of invested time and money. Reverse engineering activities support the obtainment of abstractions and views from a target system that should help the engineers to maintain, evolve and eventually re-engineer it. Two important tasks pursued by reverse engineering(More)
Several code smell detection tools have been developed providing different results, because smells can be subjectively interpreted, and hence detected, in different ways. In this paper, we perform the largest experiment of applying machine learning algorithms to code smells to the best of our knowledge. We experiment 16 different machine-learning algorithms(More)
—Design patterns detection is a useful activity in reverse engineering to gain knowledge on the design issues of an existing system, on its software architecture and design quality, improving in this way the comprehension of the system and hence its maintainability and evolution. Several tools have been developed, but they usually provide different results(More)
Several studies have been proposed in the literature on software clones, from different points of view and covering many correlated features and areas, which are particularly relevant for software maintenance and evolution. In this paper we describe our experience on clone detection through three different tools, and our investigation on the impact of clone(More)