We describe an architecture modeling and code generation framework called Bamboo. Using Bamboo, engineers design SCM repository and feature models, and then generate a running SCM...
In earlier work we have argued that formal process definitions can be useful in improving our understanding and performance of software development processes. There has, however,...
Combinatorial approaches to testing are used in several fields, and have recently gained momentum in the field of software testing through software interaction testing. One-test...
Concurrent programs are notorious for containing errors that are difficult to reproduce and diagnose. Two common kinds of concurrency errors are data races and atomicity violation...
Rahul Agarwal, Amit Sasturkar, Liqiang Wang, Scott...
The Nix software deployment system is based on the paradigm of transparent source/binary deployment: distributors deploy descriptors that build components from source, while clien...
Visualizing software evolution is essential for identifying design erosions that have occurred over the past releases. Making evolutionary aspects explicit via visual representati...
Comprehension is a key activity that underpins a variety of software maintenance and engineering tasks. The task of understanding object-oriented systems is hampered by the fact t...
Program comprehension research can be characterized by both the theories that provide rich explanations about how programmers comprehend software, as well as the tools that are us...