Decomposition slice graph and concept lattice are two program representation 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 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, by setting a framework in which they become comparable. 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 supporto to software maintenance by providing relevant informatin about the computations performed by a program and the related dependeces/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

Using a Concept Lattice of Decomposition Slices for Program Understanding and Impact Analysis

Tonella, Paolo
2003-01-01

Abstract

Decomposition slice graph and concept lattice are two program representation 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 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, by setting a framework in which they become comparable. 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 supporto to software maintenance by providing relevant informatin about the computations performed by a program and the related dependeces/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
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11582/2084
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
social impact