John Erickson

Learn More
Data races are an important class of concurrency errors where two threads erroneously access a shared memory location without appropriate synchronization. This paper presents DataCollider, a lightweight and effective technique for dynamically detecting data races in kernel modules. Unlike existing data-race detection techniques, DataCollider is oblivious to(More)
While there are many claims for the successful use of extreme programming (XP) and agile modeling (AM), and the proponents can often be vocal in the extreme regarding their supposed benefits, research evidence supporting proponents‘ claims is somewhat lacking. Currently, the only research appearing to investigate the phenomena consists of two prominent(More)
We present Preach, an industrial strength distributed explicit state model checker based on Murphi. The goal of this project was to develop a reliable, easy to maintain, scalable model checker that was compatible with the Murphi specification language. Preach is implemented in the concurrent functional language Erlang, chosen for its parallel programming(More)
Graphical models are used to depict relevant aspects of real-world domains intended to be supported by an information system. Various approaches for modeling exist and approaches such as object-oriented and process-oriented modeling methods are in widespread use. These modeling methods differ in their expressive power as well as in their complexity of use,(More)
In order to demonstrate the correctness of a system, developers today must resort to either exhaustive testing or some combination of testing and formal verification following the use of appropriate methods in the development process. While formal methods have afforded numerous successes, their application today presents serious issues, e.g., costs to gear(More)