Ð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.
Michael Siff, Thomas W. Reps