• 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