Project
Project
Project
Syllabus
Projects
People
View
Edit
Dashboard > CS 527 Fall 2011 > Home > Projects > Guiding Programmers to Better Concurrent Code Through Dynamic Analysis
Premise
My proposal is to implement a tool which utilizes dynamic analysis to instrument code, monitor areas of interest with regard to concurrency, perform analysis, and return to the developer a list of potential issues they may wish to investigate further. The idea is this tool is to dynamic analysis of concurrent code what FindBugs is to static analysis of more general issues. Similar to the plugin based approach of FindBugs, this tool would utilize a plugin approach to detection of concurrency concerns. Each plugin would have the ability to put its finding inside a topic/category, and provide a severity level. For instance, one plugin may simply watch for data races among threads. This plugin would likely report a number of issues, but would categorize them appropriately and mark the severity level -- giving the developer the ability to quickly glance over the list or skip this portion of the analysis entirely. Another plugin, a potential deadlock detector, may watch for threads that at different times have acquired various locks in reverse order, and yield a result with an appropriate topic and a higher severity level.
Goals
The basic goals are as follows: Find or build an instrumentation layer so plugins can be notified of relevant operations (Using ReEx if it works out) Build a simple middle layer which: Looks for plugins and pulls them in Calls into plugins when instrumentation yields relevant operations Allows plugins to report a finding of interest, along with topic and severity Allows plugins to optionally report an example of the concurrency issue so the developer can more easily understand the topic Implement at least three plugins
One indicating potential violations of atomicity in the code One indicating data races in the code One indicating potential deadlock scenarios based on lock acquisition order Export the reported issues in XML format, along with a very basic viewer for the XML.
Adaptavist Theme Builder Adaptavist Theme Builder (4.2.2) Powered by Atlassian Confluence 3.4.9, the Enterprise Wiki