Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Striving for a compromise between precision, recall, speed, or just for the sake of simplicity, existing DPD tools deliberately do not implement all known pattern detection techniques or do not implement them to their full extent. Therefore, they often render different, contradictory results on the same code.
Instead of striving for the ideal DPD tool it appears more promising to combine the decisions of existing tools implementing different DPD approaches. Each tool, analyzing certain aspects of a pattern, contributes its estimates of which program elements are likely to form a particular pattern instance.
We call this the data fusion approach to DPD. It builds on the synergy of proven techniques without requiring any expensive reimplementation of what is already available and has proven effective. In addition, it can benefit from future advances in the detection quality of any of the basic tools, no matter by which techniques they are achieved.
In order to verify our claim, we evaluated several pattern detection tools and developed the witness-based approach for combining their results.
@inproceedings{kniesel:icpc:2009, title = {Standing on the Shoulders of Giants − A Data Fusion Approach to Design Pattern Detection}, author = {G{\"u}nter Kniesel and Alexander Binun}, editor = {Andrian Marcus and Rainer Koschke}, booktitle = {{:17th international conference on program comprehension (icpc' 2009)}}, pages = {208-217}, isbn = {978-1-4244-3997}, address = {vancouver, canada}, day = {17-19}, month = {may}, year = {2009}, publisher = {ieee computer society press}, note = {https:::sewiki.iai.uni-bonn.de:research:dpd:fusion:}, }
@TECHREPORT{kniesel:tr:2009-fusion, AUTHOR = {Alexander Binun and G\"{u}nter Kniesel }, TITLE = {Witnessing Patterns: A Data Fusion Approach to Design Pattern Detection}, INSTITUTION = {CS Department III, Uni.Bonn, Germany}, YEAR = {2009}, type = {Technical report}, number = {IAI-TR-2009-02, ISSN 0944-8535}, month = jan, url = {https://sewiki.iai.uni-bonn.de/research/dpd/fusion/}, }