Huge size and high complexity of legacy software are the main sources of today's software evolution problems. While we can ease software evolution with re-engineering tools, ...
This case study discusses two related aspects that are becoming increasingly important in today’s software development practice: re-engineering of a monolithic system into a com...
The increasing amount of data available about software systems poses new challenges for re- and reverse engineering research, as the proposed approaches need to scale. In this con...
We propose a high-level approach to software architecture that bridges the gap between system requirements (in the problem space) and the architectural design (in the solution spa...
A software system interacts with third-party libraries through various APIs. Using these library APIs often needs to follow certain usage patterns. Furthermore, ordering rules (sp...