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.)
University of Wisconsin