DocumentCode
781776
Title
Feature Identification: An Epidemiological Metaphor
Author
Antoniol, Giuliano ; Gueheneuc, Yann-Gael
Author_Institution
Dept. d´´Informatique, Ecole Polytech. de Montreal, Que.
Volume
32
Issue
9
fYear
2006
Firstpage
627
Lastpage
641
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;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2006.88
Filename
1707664
Link To Document