**Identifying Modules Via Concept Analysis**

*Michael Siff and Thomas Reps*

We describe a general technique for identifying modules in legacy code.
The method is based on *concept analysis*---a branch of lattice theory
that can be used to identify similarities among a set of *objects*
based on their *attributes*. We discuss how concept analysis can
identify potential modules using both ``positive'' and ``negative''
information. We present an algorithmic framework to construct a lattice of
concepts from a program, where each concept represents a potential
module. We define the notion of a concept partition, present an algorithm
for discovering all concept partitions of a given concept lattice, and
prove the algorithm correct.

(Click here to access the paper: paper, via IEEE Explore.)