- Moose (analysis)
-
Moose Developer(s) The Moose Team Stable release 4.4 / May 16, 2011 Written in Smalltalk Operating system Cross-platform Type Data analysis License BSD License Website moosetechnology.org Moose is a free and open source platform for software and data analysis built in Pharo.
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,[1] and it is currently supported by several research groups throughout the world. It is increasingly being adopted in industry.
Key Features
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.
To achieve this it offers multiple mechanisms and frameworks:
- Importing and meta-meta-modeling is achieved through a generic meta-described engine.[2][3] Any meta-model 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 tools.
- For parsing, Moose provides a novel framework [4] that makes use of several parsing technologies (like parsing expression grammar) and that provides a fluent interface for easy construction.
- 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 UML but it is focused on analysis. Furthermore, it provides rich interface for querying models.
- Visualization is supported through two different engines: one for expressing graph visualizations,[5] and one for expressing charts. They both provide a fluent interface for easy construction.
- 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 fluent interface.
References
- ^ 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 paper.
- ^ 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 2009.
- ^ Adrian Kuhn and Toon Verwaest. FAME, A Polyglot Library for Metamodeling at Runtime. In Workshop on Models at Runtime, p. 57—66, 2008
- ^ 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 2010
- ^ 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.
External links
- Moose homepage.
- The Moose Book is an open book describing the Moose platform.
- Humane assessment is a novel approach to software and data assessment enabled by Moose.
Categories:- Smalltalk programming language family
- Data analysis software
- Software engineering
- Infographics
Wikimedia Foundation. 2010.