Font Size: a A A

The Design And Implementation Of CBFinder Based On JDT

Posted on:2012-08-10Degree:MasterType:Thesis
Country:ChinaCandidate:Y J FengFull Text:PDF
GTID:2178330335463019Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Conccurent program is a program that has collections of interacting threads which can be excuted in parallel., While Java is designed to support the concurrent program at the very first which has multithreading and cocurency as its core features. In nowadays, multicore processors has become mainstream, many software systems are implemented as concurrent programs to take the advantage of the hardware. However, it is very hard to write a correct concurrent program and the error prone of the concurrent program is extreamly difficult due to the uncertainty of the execution.Till now, there are two main approaches to find the concurrent bugs, dynamic checking and static checking. We need to excute the programs in order to do the dynamic checking. And meanwhile, it will cost more resources to watche the runtime states than merely run the programs. Even so, it still not sure if the program has more concurrent bugs after all the test cases. Static checking is much more thorough without involving executing the program, and it can find bugs in the early age of the development. Static checking includes static analysis, model checking, bug pattern matching, etc.In this thesis, we provide a static checking approach, which use concurrent bug patterns to find a match in the program. Concurrent bug patterns are caused by the unproper programmings and misunderstandings to the multithread mechanism of Java which are proved to be related to the concurrency bugs. In this thesis, we conclude some concurrent bug patterns, and implement them as rules in CBFinder. There are 22 rules in all, and they are implements based on the Abstract Syntax Tree (AST) provided by JDT. CBFinder is implemented under the framework of IBM Rational Software Analyzer and also has been dilevered as a part of it.Bug pattern matching can find a bug quickly but lack of accuracy. CBFinder broughted by this thesis has been devoted to provide a quick and accurate way finding concurrency bugs which is a field that little work has been done yet.
Keywords/Search Tags:Concurrent Proggram, Concurrency Bugs, Static Checing, Concurrent Bug Pattern Matching, Bug Pattern Matching
PDF Full Text Request
Related items