Allowing Overlapping Boundaries in Source Code using a Search Based Approach to Concept Binding

Abstract

One approach to supporting program comprehension involves
binding concepts to source code. Previously proposed
approaches to concept binding have enforced nonoverlapping
boundaries. However, real-world programs
may contain overlapping concepts. This paper presents
techniques to allow boundary overlap in the binding of
concepts to source code. In order to allow boundaries to
overlap, the concept binding problem is reformulated as a
search problem.
It is shown that the search space of overlapping concept
bindings is exponentially large, indicating the suitability of
sampling-based search algorithms. Hill climbing and genetic
algorithms are introduced for sampling the space. The
paper reports on experiments that apply these algorithms to
21 COBOL II programs taken from the commercial financial
services sector. The results show that the genetic algorithm
produces significantly better solutions than both the
hill climber and random search.