Moose is a language-independent environment for reverseand re-engineering complex software systems. Moose provides a set of services including a common meta-model, metrics evaluation and visualization, a model repository, and generic GUI support for querying, browsing and grouping. The development effort invested in Moose has paid off in precisely those research activities that benefit from applying a combination of complementary techniques. We describe how Moose has evolved over the years, we draw a number of lessons learned from our experience, and we outline the present and future of Moose. Categories and Subject Descriptors D.2.7 [Software Engineering]: Maintenance--Restructuring, reverse engineering, and reengineering General Terms Measurement, Design, Experimentation Keywords Reverse engineering, Reengineering, Metrics, Visualization