Most software engineering techniques that deal with software products customization are based on anticipation: The software designer has to foresee, somehow, the future needs for ...
Source code on the web is a widely available and potentially rich learning resource for nonprogrammers. However, unfamiliar code can be daunting to end-users without programming e...
We study how constraint-based static analysis can be applied to the automated and systematic debugging of program errors. Strongly moding and constraint-based mode analysis are tur...
Interruptions are a daily reality for professional programmers. Unfortunately, the strategies programmers use to recover lost knowledge and resume work have not yet been well stud...
We use 810 versions of the Linux kernel, released over a period of 14 years, to characterize the system’s evolution, using Lehman’s laws of software evolution as a basis. We i...