Many automatic testing, analysis, and verification techniques for programs can be effectively reduced to a constraint-generation phase followed by a constraint-solving phase. Th...
Adam Kiezun, Vijay Ganesh, Philip J. Guo, Pieter H...
The starting point for software evolution is usually a change request, expressing the new or updated requirements on the delivered system. The requirements specified in a change ...
Filippo Ricca, Marco Torchiano, Mariano Ceccato, P...
Programs written in languages that provide direct access to memory through pointers often contain memory-related faults, which may cause non-deterministic failures and even securi...
James A. Clause, Ioannis Doudalis, Alessandro Orso...
When modifying or debugging a software system, among other tasks, developers must often understand and manipulate source code that crosscuts the system’s structure. These tasks ...
Usually, aspects enhance a software product by being composed - or woven - into it. Here, on the other hand, we use aspects to support the software development process itself. The...