Comprehending existing multi-threaded applications effectively is a challenge without proper assistance. Research has been proposed to mine programs to extract aspects of high-level design but not much to reverse-engineer the concurrent design from multi-threaded applications. To address the same, we develop a generic mathematical model to interpret run-time non-deterministic events and encode functional as well as thread-specific behaviour in form of quantifiable features, which can be fitted into a standard solver for automated inference of design aspects from multi-threaded applications. We build a tool Dcube based on the mathematical model and use various classifiers of a machine learning framework to infer design aspects related to concurrency and resource management. We collect a dataset of 480 projects from Github, CodeProject and Stack Overflow and 3 benchmark suites—CDAC Pthreads, Open POSIX Test Suites and PARSEC 3.0 and achieve an accuracy score of around 93.71% for all the design choices.
相似文献