One recent change in software development is developers starting to take responsibility for the quality of their work by writing and executing automated tests. As with any new act...
DigitalAssets Discoverer is a tool that implements a group of indicators for automatic identification of software components that can be reused in the development of new applicati...
Adaptive Programming allows developers to write structureshy programs. However, in Adaptive Programming, recursive computations are known to require a good deal of boiler plate co...
Various issues make framework development harder than regular development. Building product lines and frameworks requires increased coordination and communication between stakehol...
Custom House's new currency exchange system is integrated with a legacy system. After a few years of growth, the two systems were so intricately tangled that even small chang...
In runtime monitoring, a programmer specifies a piece of code to execute when a trace of events occurs during program execution. Previous and related work has shown that runtime m...
Unit testing frameworks like JUnit are a popular and effective way to prevent developer bugs. We are investigating two ways of building on these frameworks to prevent more bugs wi...
We apply speculative multithreading to sequential Java programs in software to achieve speedup on existing multiprocessors. A common speculation library supports both Java bytecod...
s Refactoring tools promise to increase the speed at which programmers write code, but programmers report that contemporary tools sometimes slow them down. Some of that slowdown ca...
It is difficult to determine the cost effectiveness of program analysis tools because we cannot evaluate them in the same environment where we will be using the tool. Tool evalua...