Knowledge

Moose (analysis)

Source đź“ť

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:.

Index

references
inline citations
improve
introducing
Learn how and when to remove this message


Developer(s)
The Moose Team
Stable release
Smalltalk
Operating system
Cross-platform
Type
Data analysis
License
BSD License
modularmoose.org
Free and open-source software portal
free
open source
data analysis
Pharo
meta-model
parsing expression grammar
fluent interface
UML
Visualization
fluent interface
fluent interface

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑