The use of modern programming paradigms and technologies, such as object orientation, inheritance, polymorphism and aspect orientation, facilitate a number of important software e...
Michael Desmond, Margaret-Anne D. Storey, Chris Ex...
Concurrency, as a useful feature of many modern programming languages and systems, is generally hard to reason about. Although existing work has explored the verification of concu...
Software maintenance costs dominate software engineering costs, partly because most such engineering is done manually. Program Transformation tools leverage an engineer-provided b...
In the last decades several tools and environments defined and introduced languages for querying, navigating sforming abstract syntax trees. These environments were meant to supp...
Giuliano Antoniol, Massimiliano Di Penta, Ettore M...
Software comprehension (understanding software structure and behavior) is essential for developing, maintaining, and improving software. This is particularly true of agent-based s...