CrocoPat: A Tool for Efficient Pattern Recognition in Large Object-Oriented Programs Dirk Beyer and Claus Lewerentz Software Systems Engineering Research Group Technical University Cottbus, Germany Computer Science Reports I-04/2003, January 2003 Abstract: Nowadays, software systems are too large to be understandable by reading the source code. For reengineering activities, methods and tools for automated design recovery are needed. CrocoPat is a tool for efficient pattern-based design analysis of object-oriented programs. Patterns can be flexibly specified by expressions based on standard mathematics. The software meta model is interpreted in terms of relations, and the patterns are described by relational expressions over these relations. The tool represents the abstract model of the program using a data structure based on binary decision diagrams for performance improvement. The representation is proved to allow for an efficient recognition also for large systems up to 10'000 classes comprising several MLOC source code.