Locating features in source code

被引:304
作者
Eisenbarth, T [1 ]
Koschke, R [1 ]
Simon, D [1 ]
机构
[1] Univ Stuttgart, Inst Comp Sci, D-70565 Stuttgart, Germany
关键词
program comprehension; formal concept analysis; feature location; program analysis; software architecture recovery;
D O I
10.1109/TSE.2003.1183929
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:210 / 224
页数:15
相关论文
共 44 条
[1]  
ANDERSEN LO, 1994, THESIS DIKU DANMARK
[2]   Impact of function pointers on the Call Graph [J].
Antoniol, G ;
Calzolari, F ;
Tonella, P .
PROCEEDINGS OF THE THIRD EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, 1999, :51-59
[3]  
Ball T, 1999, LECT NOTES COMPUT SC, V1687, P216, DOI 10.1145/318774.318944
[4]  
Beszédes A, 2001, FIFTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, P105, DOI 10.1109/CSMR.2001.914974
[5]  
Birkhoff G, 1940, LATTICE THEORY, V25
[6]   A case study of applying an eclectic approach to identify objects in code [J].
Canfora, G ;
Cimitile, A ;
De Lucia, A ;
Di Lucca, GA .
SEVENTH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 1999, :136-143
[7]   Case study of feature location using dependence graph [J].
Chen, KR ;
Rajlich, V .
8TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION (IWPC 2000), PROCEEDINGS, 2000, :241-249
[8]   Modular interprocedural pointer analysis using access paths: Design, implementation, and evaluation [J].
Cheng, BC ;
Hwu, WMW .
ACM SIGPLAN NOTICES, 2000, 35 (05) :57-69
[9]  
DAS M, 2000, P ACM SIGPLAN C PROG, P35
[10]   Using types to analyze and optimize object-oriented programs [J].
Diwan, A ;
McKinley, KS ;
Moss, JEB .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2001, 23 (01) :30-72