ThreadSafe identifies insidious concurrency problems in code, avoiding costly software bugs and helping to reduce technical debt and operational risk. It is built on Contemplate’s Core Analysis Toolkit (CAT), and is designed to integrate analysis seamlessly with developer workflow, including desktop tools such as Eclipse, and build server environments.
ThreadSafe also provides metrics on concurrency, visualisations of concurrent code and data flow, and can identify performance bottlenecks.
ThreadSafe uses static analysis, which is the generic term given to examining a piece of software without executing it. Its key advantage is that it can look at all the possibilities within the software, including every possible execution path and data value. This is impossible to accomplish with testing
Core Analysis Toolkit
The Core Analysis Toolkit (CAT) is a collection of frameworks and techniques focused on delivering analysis as close to the developer as possible. It embodies our belief that analysis technology should be no more complicated than is required to provide the high quality results that developers need. This ensures that analysis can be run quickly and often, supporting contemporary agile development practices and delivering results while a developer is still working on the code wherever possible.
Emerging Analysis Lab
Contemplate is continuing to build new analysis techniques and continue the work of the original research project, and over time this work augments the capability of the CAT.
One example of the work of the Emerging Analysis Lab is a static analysis engine that examines the interactions of all the threads in a program, and models all of the data flow. It works by creating an abstract model of the heap for all possible executions.
The engine is built using advanced techniques in program analysis such as context sensitive dataflow analysis and deductive database technology. In capability it far surpasses any other documented implementation, commercial or academic.

