Logo

1.2.1 1996-1999: First infrastructure, meta-model

Moose was born in the context of FAMOOS, a European research project that took place between September 1996 and September 1999. FAMOOS focussed on methods and tools to analyze and detect design problems in object-oriented legacy systems, and to migrate these systems towards more flexible architectures.

The starting team consisted of Serge Demeyer, Stéphane Ducasse (both postdocs at the time) and Sander Tichelaar.

The main results of FAMOOS are summarized in the FAMOOS Handbook and in the “Object-Oriented Reengineering Patterns” book by Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz.

One of the main drives behind Moose, was FAMIX, one of the first meta-models that modeled object-oriented programs in a language independent manner (see Section 11.1). As a curiosity, FAMIX appeared before the creation of the Unified Modeling Language (UML). In fact, in the very beginning, Moose was merely an implementation of FAMIX, one of its goals being to support language-independent refactorings.

The parsing of C/C++ code was done through Sniff+, and the produced models were imported via the CDIF standard. Initially, Moose provided a hard-coded importer and served as basis for simple visualizations, metrics and program facts extractors (1997).

Later on, as the meta-model evolved, it became apparent that the import/export service should be orthogonal to the meta-model. Even more important was the lesson that the environment should support meta-model extensions. As a consequence, a first, simple meta-meta-model was implemented which could represent entities and relationships (1998).

User Contributed Notes

tudor.girba (28 March 2010, 12:25 am)

Thanks.

nspies (26 March 2010, 12:42 am)

One of the main drives behind Moose, was FAMIX one of the first meta-models...

                    -->behind Moose was FAMIX---one of the first...

nspies (26 March 2010, 12:40 am)

goals being to support language independent refactorings.

                    -->language-independent

Add a Note