Software systems should consist of simple, conceptually clean software components interacting along narrow, well-defined paths. All too often, this is not reality: complex compon...
with existing analysis tools. Modular reasoning principles such as abstraction, compositional refinement, and assume-guarantee reasoning are well understood for architectural hiera...
An aspect observes the execution of a base program; when certain actions occur, the aspect runs some extra code of its own. In the AspectJ language, the observations that an aspec...
Chris Allan, Pavel Avgustinov, Aske Simon Christen...
Faults that occur in production systems are the most important faults to fix, but most production systems lack the debugging facilities present in development environments. TraceB...
Andrew Ayers, Richard Schooler, Chris Metcalf, Ana...
This paper describes how to reduce the burden of parallel programming by utilizing relevant parallel programs. Parallel algorithms are divided into four classes and a case base fo...