Aspect-oriented design needs to be systematically assessed with respect to modularity flaws caused by the realization of driving system concerns, such as tangling, scattering, and...
Effort to evolve and maintain a software system is likely to vary depending on the amount and frequency of change requests. This paper proposes to model change requests as time se...
With an ever-increasing amount of software in place, the importance and ubiquity of software maintenance is continuously growing. Another more recent trend is to “offshore” su...
Families of products are steadily emerging for distinct settings such as embedded systems, navigational systems, financial applications or even web applications. This shifts the a...
Gentzane Aldekoa, Salvador Trujillo, Goiuria Sagar...
Design anomalies, introduced during software evolution, are frequent causes of low maintainability and low flexibility to future changes. Because of the required knowledge, an im...
Many C++ extractors exist that produce syntax trees, call graphs, and metrics from C++ code, yet few offer integrated querying, navigation, and visualization of sourcecode-level f...
Databases are continuously evolving environments, where design constructs are added, removed or updated rather often. Small changes in the database configurations might impact a l...
George Papastefanatos, Fotini Anagnostou, Yannis V...
Legacy systems are often large and difficult to maintain, but rewriting them from scratch is usually not a viable option. Reenginering remains the only way to modernize them. We ...
Mariano Ceccato, Paolo Tonella, Cristina Matteotti
To understand the evolution of software researchers have developed a plethora of tools to parse, model, and analyze the history of systems. Despite their usefulness, a common down...