Using a concept lattice of decomposition slices for program understanding and impact analysis

被引:111
作者
Tonella, P [1 ]
机构
[1] IRST, Ctr Ric Sci & Tecnol, ITC, I-38050 Trento, Italy
关键词
program slicing; concept analysis; program comprehension; impact analysis; software maintenance;
D O I
10.1109/TSE.2003.1205178
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Decomposition slice graph and concept lattice are two program representations used to abstract the details of the code into a higher-level view of the program. The decomposition slice graph partitions the program into computations performed on different variables and shows the dependence relation between computations, holding when a computation needs another computation as a building block. The concept lattice groups program entities which share common attributes and organize such groupings into a hierarchy of concepts, which are related through generalizations/specializations. This paper investigates the relationship existing between these two program representations. The main result of this paper is a novel program representation, called concept lattice of decomposition slices, which is shown to be an extension of the decomposition slice graph, and is obtained by means of concept analysis, with additional nodes associated to weak interferences between computations, i.e., shared statements which are not decomposition slices. The concept lattice of decomposition slices can be used in support to software maintenance by providing relevant information about the computations performed by a program and the related dependences/interferences, as well as by representing a natural data structure on which to conduct impact analysis. Preliminary results on small to medium size code support the applicability of this method at the intraprocedural level or when investigating the dependences among small groups of procedures.
引用
收藏
页码:495 / 509
页数:15
相关论文
共 38 条
  • [1] ANERSON P, 2001, P 1 WORKSH INSP SOFT, P4
  • [2] [Anonymous], 1996, FORMAL CONCEPT ANAL
  • [3] Ball T, 1999, LECT NOTES COMPUT SC, V1687, P216, DOI 10.1145/318774.318944
  • [4] Binkley D., 1996, Advances in Computers, V43, P1
  • [5] Conditioned program slicing
    Canfora, G
    Cimitile, A
    De Lucia, A
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 1998, 40 (11-12) : 595 - 607
  • [6] STATIC SLICING IN THE PRESENCE OF GOTO STATEMENTS
    CHOI, JD
    FERRANTE, J
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1994, 16 (04): : 1097 - 1113
  • [7] Cimitile A, 1995, INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 1995 PROCEEDINGS, P124, DOI 10.1109/ICSM.1995.526534
  • [8] Danicic S, 2000, PROC IEEE INT CONF S, P216, DOI 10.1109/ICSM.2000.883049
  • [9] Aiding program comprehension by static and dynamic feature analysis
    Eisenbarth, T
    Koschke, R
    Simon, D
    [J]. IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS: SYSTEMS AND SOFTWARE EVOLUTION IN THE ERA OF THE INTERNET, 2001, : 602 - 611
  • [10] Feature-driven program understanding using concept analysis of execution traces
    Eisenbarth, T
    Koschke, R
    Simon, D
    [J]. 9TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 2001, : 300 - 309