A key difficulty in the maintenance and evolution of complex software systems is to recognize and understand the implicit dependencies that define contracts that must be respecte...
Building software systems with reusable components brings many advantages. The development becomes more efficient, the reliability of the products is enhanced, and the maintenance...
Current software systems contain increasingly more elements that have not usually been considered in software engineering research and studies. Source artifacts, understood as the...
Software is typically improved and modified in small increments (we refer to each of these increments as a modification record--MR). MRs are usually stored in a configuration manag...
The understanding of the structure of a software system can be improved by analyzing the system’s evolution during development. Visualizations of software history that provide o...