Gaining an understanding of software systems is an important discipline in many software engineering contexts. It is essential that software engineers are assisted as much as poss...
It is well known that software maintenance and evolution are expensive activities, both in terms of invested time and money. Reverse engineering activities support the obtainment ...
The need for software architecture evaluation has drawn considerable attention in recent years. In practice, this is a challenging exercise for two main reasons. First, in deploye...
Learning from software failures is an essential step towards the development of more reliable software systems and processes. However, as more intricate software systems are devel...
During software evolution, adaptive, and corrective maintenance are common reasons for changes. Often such changes cluster around key components. It is therefore important to anal...
James M. Bieman, Anneliese Amschler Andrews, Helen...