• DocumentCode
    1219552
  • Title

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

  • Author

    Tonella, Paolo

  • Author_Institution
    Centro per la Ricerca Sci. e Tecnologica, Trento, Italy
  • Volume
    29
  • Issue
    6
  • fYear
    2003
  • fDate
    6/1/2003 12:00:00 AM
  • Firstpage
    495
  • Lastpage
    509
  • Abstract
    The decomposition slice graph and concept lattice are two program representations used to abstract the details of 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 organizes 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 with weak interferences between computations, i.e., shared statements which are not decomposition slices. The concept lattice of decomposition slices can be used to support 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.
  • Keywords
    program slicing; reverse engineering; software maintenance; common attributes; concept lattice; data structure; decomposition slice graph; dependence relation; generalizations; impact analysis; intraprocedural level; program representations; program understanding; shared statements; software maintenance; specializations; weak interferences; Application software; Data structures; Information analysis; Interference; Lattices; Performance analysis; Software maintenance;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2003.1205178
  • Filename
    1205178