Software system analysis for extracting system functionality remains as a major problem in the reverse engineering literature and the early approaches mainly rely on static proper...
The milestones of the history of software development are paradigm shifts. Each paradigm brought its own features and new ways of composing them to assemble software systems. Unde...
Decomposing a software system into smaller, more manageable clusters is a common approach to support the comprehension of large systems. In recent years, researchers have focused ...
In this chapter, we explore the emerging research domain of modeldriven software refactoring. Program refactoring is a proven technique that aims at improving the quality of sourc...
Although they are helpful in many cases, state-of-the-art bug reporting systems may impose excessive overhead on users, leak private information, or provide little help to the dev...