212:
22:
1003:
993:
86:
100:
379:
In 2006, Meta was created as a self-described implementation of EMOF (Essential Meta Object
Facility) and it replaced the meta-meta-model of Moose. Together with Meta, the new MSE file format was created. Because Meta is self described, Moose is now able to load both externals models and meta-models
358:
It became apparent that the meta-descriptions are a powerful way of separating the data representation (i.e., the meta-model) from the different techniques to manipulate this data. Consequently, the team started to implement a MOF-like meta-meta-model (2002) and replaced the original one. It offers
354:
Because the evolution analysis requires large amounts of data to be manipulated, it was not feasible anymore to manipulate all the model information all the time. Also, the computation of the metrics beforehand for all entities in the model was another bottleneck. As a consequence, several services
330:
Later on, as the meta-model evolved, it became apparent that the import/export service should be orthogonal to the meta-model and most important that the environment should support meta-model extension. As a consequence, a first, extremely simple meta-meta-model was implemented, which, at the time,
367:
As an application of the meta-description, the development of a generic GUI was started to provide basic services such as navigation, querying, and introspection (2003). An important role in the caching mechanism and in the querying is played by the notion of a group as a first-class entity: every
322:
in the context of FAMOOS, a
European project that took place between Sept. 1996-Sept. 1999. FAMOOS focussed on methods and tools to analyse and detect design problems in object-oriented legacy systems, and to migrate these systems towards more flexible architectures. The main results of FAMOOS are
346:
In parallel, the visualization development led to the extension of the set of metrics computed. At the time, CodeCrawler was the flagship application of Moose, and for a significant period CodeCrawler influenced the architecture of Moose (1999). For example, the metrics had to be computed for all
371:
To ease tool development, a plug-in mechanism was needed. Thus, based on meta-description, each tool can register itself to the menu attached to each entity in the meta-model. This simple mechanism allows these tools to complement each other without imposing a hard-coded dependency between them.
350:
The interest in researching the evolution of systems led to the implementation of the meta-model repository. As such, the first application was the
Evolution Matrix (2001). Later on, more research was invested in understanding the evolution of systems, resulting in the development of Van (2002).
326:
In the beginning of the FAMOOS project Moose was merely the implementation of a language independent meta-model known as FAMIX. The parsing of C/C++ code was done through Sniff+, and the produced models were imported via the CDIF standard. Initially, Moose provided for a hard-coded importer and
246:
Moose offers multiple services ranging from importing and parsing data, to modeling, to measuring, querying, mining, and to building interactive and visual analysis tools. Moose was born in a research context, and it is currently supported by several research groups throughout the world. It is
299:
Browsing is an important principle in Moose, and it is supported in multiple ways as well. A generic interface enables the analyst to browse any model. To be able to specify specific browsers, Moose offers a generic engine that eases the specification through a specific
383:
To provide support for fast prototyping of interactive visual tools, Mondrian was built. Mondrian uses
Smalltalk as an underlying scripting language and adds support for graph based visualizations. Mondrian received 2nd prize at the ESUG 2006 Innovation Awards.
395:
In 2008, Meta was replaced by Fame that implements a new meta-meta-model (FM3) that is simpler and more flexible than EMOF. The effort for building Fame is correlated with the development of FAMIX 3.0, a family of meta-models for software analysis.
420:
Oscar
Nierstrasz, Stéphane Ducasse, and Tudor Gîrba. The Story of Moose: an Agile Reengineering Environment. In Proceedings of the European Software Engineering Conference (ESEC/FSE'05), p. 1—10, ACM Press, New York NY, 2005. Invited
375:
The combination of menus and groups meant that complex analyses could be broken down into multiple steps, each of which may make use of a different tool. Combining and composing tools thereby becomes natural and transparent.
430:
Stéphane
Ducasse, Tudor Gîrba, Adrian Kuhn, and Lukas Renggli. Meta-Environment and Executable Meta-Language using Smalltalk: an Experience Report. In Journal of Software and Systems Modeling (SOSYM) 8(1) p. 5—19, February
267:
is described in terms of a self-described meta-meta-model, and based on this description, the import/export is provided through the MSE file format. Through this file format, Moose can exchange data with external
255:
The philosophy of Moose is to enable the analyst to produce new dedicated analysis tools, and to customize the flow of analysis. While Moose is mainly used in software analysis, it is built to work for any data.
449:
Lukas
Renggli, Stéphane Ducasse, Tudor Gîrba, and Oscar Nierstrasz. Practical Dynamic Grammars for Dynamic Languages. In 4th Workshop on Dynamic Languages and Applications (DYLA 2010), Malaga, Spain, June
459:
Michael Meyer, Tudor Gîrba, and Mircea Lungu. Mondrian: An Agile
Visualization Framework. In ACM Symposium on Software Visualization (SoftVis'06), p. 135—144, ACM Press, New York, NY, USA, 2006.
399:
Starting with the end of 2008, a large effort was started to move Moose from VisualWorks to Pharo, an open source
Smalltalk. The first alpha version under Pharo was released in August 2009.
343:
meta-model was implemented and CDIF meta-models were transformed into MOF meta-models for the XMI model generation. However, MOF was not used as the underlying Moose meta-meta-model.
538:
387:
In 2007, a new engine, called EyeSee, grew up around Moose to allow for scripting Excel-like charts. EyeSee received 2nd prize at the ESUG 2007 Innovation Awards.
282:
Software analysis is specifically supported through the FAMIX family of meta-models. The core of FAMIX is a language independent meta-model that is similar to
402:
During this time
Glamour was developed, an engine for scripting interactive browsers. Glamour received the 3rd prize at the ESUG 2009 Innovation Awards.
1028:
1007:
531:
292:
is supported through two different engines: one for expressing graph visualizations, and one for expressing charts. They both provide a
440:
Adrian Kuhn and Toon Verwaest. FAME, A Polyglot Library for Metamodeling at Runtime. In Workshop on Models at Runtime, p. 57—66, 2008
524:
468:
Serge Demeyer, Stéphane Ducasse, and Oscar Nierstrasz. Object-Oriented Reengineering Patterns, Square Bracket Associates, 2008.
327:
served as basis for simple visualization and program fact extractor (1997). Then it started to be used to compute metrics.
217:
957:
876:
565:
65:
43:
36:
173:
1033:
662:
917:
751:
355:
were implemented: partial loading of the models, lazy computation of the properties, and caching of results.
513:– a moldable development environment that evolved over some ideas of Moose and share some of its originators
997:
682:
128:
405:
PetitParser was added to the Moose Suite. PetitParser is a novel engine for creating dedicated parsers.
272:
289:
283:
368:
query or selection in Moose yields a group, and any group can be manipulated in the Browser (2003).
271:
For parsing, Moose provides a novel framework that makes use of several parsing technologies (like
743:
30:
47:
362:
1038:
815:
992:
986:
340:
286:
but it is focused on analysis. Furthermore, it provides rich interface for querying models.
232:
323:
summarized in the FAMOOS Handbook and in the Object-Oriented Reengineering Patterns book.
263:
Importing and meta-meta-modeling is achieved through a generic meta-described engine. Any
8:
835:
775:
640:
592:
786:
756:
716:
319:
586:
952:
937:
871:
655:
301:
293:
276:
185:
161:
390:
932:
725:
713:
580:
516:
848:
830:
166:
380:
using the same mechanism. In the same time, XMI and CDIF support was dropped.
1022:
947:
598:
236:
228:
178:
927:
962:
942:
922:
363:
2003-2007: Generic UI, custom interchange format, scriptable visualizations
264:
669:
901:
896:
886:
881:
797:
731:
630:
359:
an architecture similar to that of the Eclipse Modeling Framework (EMF).
190:
805:
697:
112:
623:
547:
469:
154:
891:
769:
689:
556:
507:– a novel approach to software and data assessment enabled by Moose
104:
Screenshot of the default Moose user interface for browsing models
334:
117:
504:
608:
391:
2008-2011: FAMIX 3.0, scriptable browsers and the move to Pharo
492:
313:
259:
To achieve this it offers multiple mechanisms and frameworks:
99:
614:
240:
85:
200:
498:
485:
840:
510:
207:
339:With the introduction of the XMI standard, a first
331:could represent entities and relationships (1998).
546:
1020:
347:entities before the views could be generated.
335:1999-2003: Interchange formats, visualizations
532:
501:– an open book describing the Moose platform
314:1996-1999: First infrastructure, meta-model
539:
525:
84:
66:Learn how and when to remove this message
864:
247:increasingly being adopted in industry.
29:This article includes a list of general
1021:
1029:Smalltalk programming language family
520:
134:8.0.1 / February 5, 2021
218:Free and open-source software portal
15:
13:
35:it lacks sufficient corresponding
14:
1050:
477:
1002:
1001:
991:
210:
98:
20:
250:
462:
453:
443:
434:
424:
414:
1:
408:
7:
10:
1055:
308:
273:parsing expression grammar
235:platform for software and
975:
857:
823:
814:
796:
744:Graphical user interfaces
742:
712:
639:
573:
564:
555:
196:
184:
172:
160:
150:
146:
127:
123:
111:
92:
83:
50:more precise citations.
1034:Data analysis software
318:Moose was born at the
296:for easy construction.
279:for easy construction.
275:) and that provides a
752:Model–view–controller
987:Open-source software
550:programming language
341:Meta-Object Facility
80:
320:University of Bern
78:
1016:
1015:
971:
970:
913:
912:
765:
764:
708:
707:
587:Dolphin Smalltalk
511:Glamorous Toolkit
505:Humane assessment
206:
205:
76:
75:
68:
1046:
1005:
1004:
995:
953:Trygve Reenskaug
938:Mark P. McCahill
872:L. Peter Deutsch
862:
861:
821:
820:
677:Pocket Smalltalk
656:Little Smalltalk
571:
570:
562:
561:
541:
534:
527:
518:
517:
489:
488:
486:Official website
472:
466:
460:
457:
451:
447:
441:
438:
432:
428:
422:
418:
302:fluent interface
294:fluent interface
277:fluent interface
220:
215:
214:
213:
201:modularmoose.org
162:Operating system
141:
139:
102:
88:
81:
77:
71:
64:
60:
57:
51:
46:this article by
37:inline citations
24:
23:
16:
1054:
1053:
1049:
1048:
1047:
1045:
1044:
1043:
1019:
1018:
1017:
1012:
990:
967:
933:Julian Lombardi
909:
853:
810:
792:
761:
738:
726:Croquet Project
714:Virtual reality
704:
635:
566:Implementations
551:
545:
484:
483:
480:
475:
467:
463:
458:
454:
448:
444:
439:
435:
429:
425:
419:
415:
411:
393:
365:
337:
316:
311:
253:
216:
211:
209:
142:
137:
135:
107:
106:
105:
96:
72:
61:
55:
52:
42:Please help to
41:
25:
21:
12:
11:
5:
1052:
1042:
1041:
1036:
1031:
1014:
1013:
1011:
981:= discontinued
976:
973:
972:
969:
968:
966:
965:
960:
955:
950:
945:
940:
935:
930:
925:
920:
914:
911:
910:
908:
907:
904:
899:
894:
889:
884:
879:
877:Adele Goldberg
874:
868:
866:
859:
855:
854:
852:
851:
846:
843:
838:
833:
831:Cincom Systems
827:
825:
818:
812:
811:
809:
802:
800:
794:
793:
791:
790:
784:
778:
773:
766:
763:
762:
760:
759:
754:
748:
746:
740:
739:
737:
736:
721:
719:
710:
709:
706:
705:
703:
702:
694:
686:
680:
674:
666:
660:
652:
645:
643:
637:
636:
634:
633:
628:
620:
619:
618:
606:
603:
595:
590:
584:
577:
575:
568:
559:
553:
552:
544:
543:
536:
529:
521:
515:
514:
508:
502:
499:The Moose Book
496:
490:
479:
478:External links
476:
474:
473:
461:
452:
442:
433:
423:
412:
410:
407:
392:
389:
364:
361:
336:
333:
315:
312:
310:
307:
306:
305:
297:
287:
280:
269:
252:
249:
222:
221:
204:
203:
198:
194:
193:
188:
182:
181:
176:
170:
169:
167:Cross-platform
164:
158:
157:
152:
148:
147:
144:
143:
133:
131:
129:Stable release
125:
124:
121:
120:
118:The Moose Team
115:
109:
108:
103:
97:
94:
93:
90:
89:
74:
73:
28:
26:
19:
9:
6:
4:
3:
2:
1051:
1040:
1037:
1035:
1032:
1030:
1027:
1026:
1024:
1010:
1009:
1000:
999:
994:
989:
988:
983:
982:
979:
974:
964:
961:
959:
956:
954:
951:
949:
948:David P. Reed
946:
944:
941:
939:
936:
934:
931:
929:
926:
924:
921:
919:
916:
915:
906:Scott Wallace
905:
903:
900:
898:
895:
893:
890:
888:
885:
883:
880:
878:
875:
873:
870:
869:
867:
863:
860:
856:
850:
847:
844:
842:
839:
837:
834:
832:
829:
828:
826:
822:
819:
817:
813:
808:
807:
803:
801:
799:
795:
788:
785:
782:
779:
777:
774:
771:
768:
767:
758:
755:
753:
750:
749:
747:
745:
741:
734:
733:
728:
727:
723:
722:
720:
718:
715:
711:
700:
699:
695:
692:
691:
687:
684:
681:
678:
675:
672:
671:
667:
664:
661:
658:
657:
653:
650:
647:
646:
644:
642:
638:
632:
629:
627:
625:
621:
616:
613:
612:
610:
607:
604:
601:
600:
599:GNU Smalltalk
596:
594:
591:
588:
585:
582:
579:
578:
576:
572:
569:
567:
563:
560:
558:
554:
549:
542:
537:
535:
530:
528:
523:
522:
519:
512:
509:
506:
503:
500:
497:
494:
491:
487:
482:
481:
471:
465:
456:
446:
437:
427:
417:
413:
406:
403:
400:
397:
388:
385:
381:
377:
373:
369:
360:
356:
352:
348:
344:
342:
332:
328:
324:
321:
303:
298:
295:
291:
290:Visualization
288:
285:
281:
278:
274:
270:
266:
262:
261:
260:
257:
248:
244:
242:
238:
237:data analysis
234:
230:
226:
219:
208:
202:
199:
195:
192:
189:
187:
183:
180:
179:Data analysis
177:
175:
171:
168:
165:
163:
159:
156:
153:
149:
145:
132:
130:
126:
122:
119:
116:
114:
110:
101:
91:
87:
82:
70:
67:
59:
49:
45:
39:
38:
32:
27:
18:
17:
1039:Infographics
1006:
996:
984:
980:
977:
963:Larry Tesler
943:Andreas Raab
923:Gilad Bracha
804:
780:
730:
724:
696:
688:
676:
670:OMeta/Squeak
668:
654:
648:
622:
597:
464:
455:
445:
436:
426:
416:
404:
401:
398:
394:
386:
382:
378:
374:
370:
366:
357:
353:
349:
345:
338:
329:
325:
317:
258:
254:
251:Key Features
245:
224:
223:
113:Developer(s)
62:
53:
34:
958:David Smith
902:David Ungar
897:Diana Merry
887:Ted Kaehler
882:Dan Ingalls
845:Object Arts
798:Workstation
732:Open Cobalt
631:VisualWorks
605:Smalltalk/X
493:Prior Moose
233:open source
191:BSD License
48:introducing
1023:Categories
928:Urs Hölzle
849:Xerox PARC
806:Xerox Alto
776:GemStone/S
698:Strongtalk
593:GemStone/S
409:References
265:meta-model
151:Written in
138:2021-02-05
95:Screenshot
31:references
865:Designers
816:Community
717:platforms
626:Smalltalk
624:VisualAge
548:Smalltalk
239:built in
155:Smalltalk
1008:Category
918:Lars Bak
892:Alan Kay
836:Gemstone
824:Business
770:AIDA/Web
690:StepTalk
663:Newspeak
649:F-Script
641:Dialects
557:Software
56:May 2011
978:Italics
787:Seaside
757:Morphic
495:website
309:History
197:Website
186:License
136: (
44:improve
858:People
609:Squeak
421:paper.
268:tools.
33:, but
781:Moose
615:Pharo
581:Amber
574:Major
431:2009.
241:Pharo
227:is a
225:Moose
79:Moose
998:Book
985:° =
729:° →
683:Self
450:2010
231:and
229:free
174:Type
841:IBM
470:URL
284:UML
1025::
611:°
243:.
789:°
783:°
772:°
735:°
701:°
693:°
685:°
679:°
673:°
665:°
659:°
651:°
617:°
602:°
589:°
583:°
540:e
533:t
526:v
304:.
140:)
69:)
63:(
58:)
54:(
40:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.