The high cost of software maintenance could potentially be reduced by automatically improving the design of object-oriented programs without altering their behaviour. We have const...
The notion of refactoring —transforming the sourcecode of an object-oriented program without changing its external behaviour — has been studied intensively within the last dec...
Serge Demeyer, Filip Van Rysselberghe, Tudor G&ici...
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...
Aspect-oriented programming languages provide new composition mechanisms for improving the modularity of crosscutting concerns. Implementations of such language support use advanc...
Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and disrupts the development process. Although some tools and ideas have been propos...