Without rigorous software development and maintenance, software tends to lose its original architectural structure and become difficult to understand and modify. ArchJava, a recen...
Marwan Abi-Antoun, Jonathan Aldrich, Wesley Coelho
Avoiding architectural erosion helps extend the lifetime of an evolving software system. Erosion can be reduced by ensuring that (i) developers share a good understanding of a sys...
Ciaran O'Reilly, Philip J. Morrow, David W. Bustar...
Understanding complex component-based systems often requires getting insight in how certain system properties, such as performance, trust, reliability, or structural attributes, c...
Traceability helps stakeholders to understand the relationships that exist between software artifacts created during a software development project. For example, the evolution of ...
Program comprehension tools are a valuable resource for navigating and understanding large software systems. Package explorers, fan-in / fan-out views, dependency graphs and cover...
R. Ian Bull, Margaret-Anne D. Storey, Jean-Marie F...