Identifying Modules Via Concept Analysis

Michael Siff and Thomas Reps
University of Wisconsin

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.

Key Words and Phrases: Concept analysis, modularization, software migration, software restructuring, reverse engineering, design recovery.

(Click here to access the paper: PostScript, PDF.)