A program is reentrant if distinct executions of that program on distinct inputs cannot affect each other. Reentrant programs have the desirable property that they can be deployed...
Software repositories are rich sources of information about the software development process. Mining the information stored in them has been shown to provide interesting insights ...
When library APIs change, client code should change in response, in order to avoid erroneous behavior, compilation failures, or warnings. Previous research has introduced techniqu...
Aspect-oriented programming languages provide new composition mechanisms for improving the modularity of crosscutting concerns. Implementations of such language support use advanc...
Interface-based programming, i.e. the systematic use of interface types in variable declarations, serves the decoupling of classes and increases a program’s changeability. To ma...