• DocumentCode
    1157091
  • Title

    Locating features in source code

  • Author

    Eisenbarth, Thomas ; Koschke, Rainer ; Simon, Daniel

  • Author_Institution
    Inst. of Comput. Sci., Stuttgart Univ., Germany
  • Volume
    29
  • Issue
    3
  • fYear
    2003
  • fDate
    3/1/2003 12:00:00 AM
  • Firstpage
    210
  • Lastpage
    224
  • Abstract
    Understanding the implementation of a certain feature of a system requires identification of the computational units of the system that contribute to this feature. In many cases, the mapping of features to the source code is poorly documented. In this paper, we present a semiautomatic technique that reconstructs the mapping for features that are triggered by the user and exhibit an observable behavior. The mapping is in general not injective; that is, a computational unit may contribute to several features. Our technique allows for the distinction between general and specific computational units with respect to a given set of features. For a set of features, it also identifies jointly and distinctly required computational units. The presented technique combines dynamic and static analyses to rapidly focus on the system\´s parts that relate to a specific set of features. Dynamic information is gathered based on a set of scenarios invoking the features. Rather than assuming a one-to-one correspondence between features and scenarios as in earlier work, we can now handle scenarios that invoke many features. Furthermore, we show how our method allows incremental exploration of features while preserving the "mental map" the analyst has gained through the analysis.
  • Keywords
    program diagnostics; reverse engineering; software architecture; feature location; formal concept analysis; identification; program analysis; program comprehension; software architecture recovery; Computer Society; Degradation; Documentation; Instruction sets; Reverse engineering; Software architecture; Terminology;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2003.1183929
  • Filename
    1183929