When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of questions about code,...
Imagine some program and a number of changes. If none of these changes is applied (“yesterday”), the program works. If all changes are applied (“today”), the program does n...
Common programming practice grants excess authority for the sake of functionality; programming principles require least authority for the sake of security. If we practice our princ...
Modern applications such as Microsoft Word have many automatic features and hidden dependencies that are frequently helpful but can be mysterious to both novice and expert users. ...
Brad A. Myers, David A. Weitzman, Andrew Jensen Ko...