Reengineering existing (large-scale) applications to the web is a complex and highly challenging task. This is due to a variety of mostly demanding requirements for interactive we...
Design patterns have been widely adopted and well investigated by the software engineering community over the past decade. However, their primary use is still associated with forw...
With the growing popularity of the Java programming language for both client and server side applications in network-centric computing, there is a rising need for programming libr...
The evolution of complex software systems is promoted by software engineering principles and techniques like separation of concerns, encapsulation, stepwise refinement, and reusab...
Static analysis aims at recovering the structure of a software system, while dynamic analysis focuses on its run time behaviour. We propose a technique for combining the analysis ...
The reverse and reengineering research communities have a strong tradition of collecting, organizing, and unifying research results. Typical examples include an explicit taxonomy,...
It is shown how software metrics and architectural patterns can be used for the management of software evolution. In the presented architecture-centric software evolutionmethod th...
Juha Gustafsson, Jukka Paakki, Lilli Nenonen, A. I...
To successfully carry out a software maintenance or reengineering task, a suitably assembled set of tools is required, which interoperate seaminglessly. To achieve this goal, an e...
A critical point for developing successful information systems for distributed organisations is the need for integrating heterogeneous technologies and tools. This paper reports a...
Lerina Aversano, Gerardo Canfora, Andrea De Lucia,...
Maintaining software is very difficult, not only because of the number of software artifacts, but also because of the large variety of artifacts. Software includes programs, but a...