As software systems evolve, they become more complex and harder to understand and maintain. Certain reverse engineering techniques attempt to reconstruct software models from sour...
— We present techniques for analyzing the source code of distributed Java applications, and building finite models of their behaviour. The models are labelled transition systems...
In modern systems, developers are often unable to modify the underlying operating system. To build services in such an environment, we advocate the use of gray-box techniques. Whe...
We demonstrate the use of a hyper-programming system in building persistent applications. This allows program representations to contain type-safe links to persistent objects embe...
Graham N. C. Kirby, Ronald Morrison, David S. Munr...
Formal, modular, and mechanized verification of realistic systems code is desirable but challenging. Verification of machine context management (a basis of multi-tasking) is one ...