This tutorial describes tools and techniques for extracting information from large software code bases. Applications described include: Reverse engineering, abstracting design information from the code. Metrics for portability, maintainability, etc. Checking how effectively tests exercise the code Change impact analysis Automated translations, between languages and libraries Checking compliance to industry or project guidelines Refactorings, that translate high-level design changes into existing code. Tools and techniques used cover a range from Perl to the use of reflexive language features. The emphasis will be put on how does OO technology contribute to these techniques, and even more importantly, how do these techniques apply to OO code.