Well-designed object-oriented programs typically consist of a few key classes that work tightly together to provide the bulk of the functionality. As such, these key classes are e...
Andy Zaidman, Toon Calders, Serge Demeyer, Jan Par...
Real world software systems undergo, during their lifetime, to repeated maintenance activities. Due to the market pressure and to the need for having back the system operational i...
Wrapping databases allows them to be reused in formerly unplanned contexts, such as web-based applications or federated systems. Indeed, a wrapper can provide external clients of ...
Philippe Thiran, Jean-Luc Hainaut, Geert-Jan Hoube...
Data mining is a technology recently used in support of software maintenance in various contexts. Our works focuses on achieving a high level understanding of Java systems without...
Building reverse engineering or reengineering tools often requires parsers for many different programming languages. The diffusion of dialects and variants makes many available pa...
Product software is constantly evolving through extensions, maintenance, changing requirements, changes in configuration settings, and changing licensing information. Managing ev...
In complex systems, it is difficult to identify which system element is involved in which requirement. In this article, we present a new approach for expressing and validating a ...
Impact analysis is the process of determining the effect, or impact, of a change to a software system. Dynamic impact analysis uses data obtained from executing a program to perfo...
Software developers are constantly required to modify and adapt application features in response to changing requirements. The problem is that just by reading the source code, it ...
In this paper, we discuss experiences gained during evaluation of the maintainability of a reference architecture in use at Oc´e, one of the world’s leading copier manufacturer...