Abstract :
Feature identification is a technique to identify the source code constructs activated when exercising one of the features of a program. We propose new statistical analyses of static and dynamic data to accurately identify features in large multithreaded object-oriented programs. We draw inspiration from epidemiology to improve previous approaches to feature identification and develop an epidemiological metaphor. We build our metaphor on our previous approach to feature identification, in which we use processor emulation, knowledge-based filtering, probabilistic ranking, and metamodeling. We carry out three case studies to assess the usefulness of our metaphor, using the "save a bookmark" feature of Web browsers as an illustration. In the first case study, we compare our approach with three previous approaches (a naive approach, a concept analysis-based approach, and our previous probabilistic approach) in identifying the feature in MOZILLA, a large, real-life, multithreaded object-oriented program. In the second case study, we compare the implementation of the feature in the FIREFOX and MOZILLA Web browsers. In the third case study, we identify the same feature in two more Web browsers, Chimera (in C) and ICEBrowser (in Java), and another feature in JHOTDRAW and XFIG, to highlight the generalizability of our metaphor
Keywords :
multi-threading; object-oriented programming; program diagnostics; software maintenance; statistical analysis; Chimera; FIREFOX; ICEBrowser; JHOTDRAW; MOZILLA; Web browser; XFIG; concept analysis-based approach; dynamic program analysis; epidemiological metaphor; feature identification; knowledge-based filtering; legacy software; metamodeling; multithreaded object-oriented program; naive approach; probabilistic ranking; processor emulation; program understanding; software maintenance; source code identification; static program analysis; statistical analysis; Data structures; Documentation; Emulation; Filtering; Java; Metamodeling; Microarchitecture; Software maintenance; Statistical analysis; Uniform resource locators; Firefox and Mozilla Web browsers.; Program understanding; dynamic analysis; epidemiology; feature identification; static analysis;