Moose (analysis)
Encyclopedia
Moose is a free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 and open source platform for software and data analysis
Data analysis
Analysis of data is a process of inspecting, cleaning, transforming, and modeling data with the goal of highlighting useful information, suggesting conclusions, and supporting decision making...

 built in Pharo
Pharo
Pharo is a fork of Squeak, an implementation of the object-oriented, dynamically typed, reflective programming language Smalltalk.Appearing in 2008, Pharo focuses on removing unessential code from Squeak and serves as the reference implementation of Seaside, a web application framework for...

.

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 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. Any meta-model
    Meta model
    A meta-model typically defines the language and processes from which to form a model. It has many uses:-Computing:*Metamodeling a modeling methodology used in software engineering*MODAF 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 that makes use of several parsing technologies (like parsing expression grammar
    Parsing expression grammar
    A parsing expression grammar, or PEG, is a type of analytic formal grammar, i.e. it describes a formal language in terms of a set of rules for recognizing strings in the language...

    ) and that provides a fluent interface
    Fluent interface
    In software engineering, a fluent interface is an implementation of an object oriented API that aims to provide for more readable code....

     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
    UML
    UML may refer to:* Unified Modeling Language, an object modeling and specification language used in software engineering* User-mode Linux, an architectural port of the Linux kernel* University of Massachusetts Lowell, in the United States...

     but it is focused on analysis. Furthermore, it provides rich interface for querying models.
  • Visualization
    Information visualization
    Information visualization is the interdisciplinary study of "the visual representation of large-scale collections of non-numerical information, such as files and lines of code in software systems, library and bibliographic databases, networks of relations on the internet, and so forth".- Overview...

     is supported through two different engines: one for expressing graph visualizations, and one for expressing charts. They both provide a fluent interface
    Fluent interface
    In software engineering, a fluent interface is an implementation of an object oriented API that aims to provide for more readable code....

     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
    Fluent interface
    In software engineering, a fluent interface is an implementation of an object oriented API that aims to provide for more readable code....

    .

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK