Cost-effective engineering and evolution of complex software must involve the different stakeholders concurrently and collaboratively. The hard problem is providing computer suppo...
A typical approach to software maintenance is analyzing just the source code, applying some patches, releasing the new version, and then updating the documentation. This quick-fix...
Building reverse engineering or reengineering tools often requires parsers for many different programming languages. The diffusion of dialects and variants makes many available pa...
Even though the benefits of component-based software development are widely accepted, they are easily overestimated. To provide a firmer basis for the general discussion we descri...
Assessing software quality and understanding how events in its evolution have lead to anomalies are two important steps toward reducing costs in software maintenance. Unfortunatel...
Guillaume Langelier, Houari A. Sahraoui, Pierre Po...