Moose Wiki

Moose wiki

A wiki gathering documentation related to Moose project. The main Moose source code repository on GitHub is: https://github.com/moosetechnology

Contents

FOR BEGINNERS

FOR USERS

After installing and running Moose, one typically:

  1. loads a model of a software system to perform some analyses on it;
  2. performs some queries on the model
  3. builds some visualization of the model

Loading a model

You can find different Famix Model depending on the programming language. You’ll find here a first list of Famix model and generic tools ways to load Famix model

Famix Java

A popular meta-model is the Java meta-model:

Famix TypeScript

Famix SQL

Analyze Git Projects and organizations

Other programming languages

You may also use models for other programming languages (see also the Parsers section):

Famix AST (FAST)

  • FAST - Represent the AST in Famix
  • FAST-Java - Represent the Java AST in Famix
  • FAST-Pharo - Represent the Pharo AST in Famix

Performing queries

Moose IDE

Moose IDE is a group of tools that one can use to explore a model. In this section, we group the documentation for each tool.

Visualizing a model

Visualizations are built with the Roassal tool External documentation

Moose 8 documentation Moose 8

FOR DEVELOPERS

A typical development action in Moose is to add a new programming language to the ones already understood. To be able to take advantage of all the existing tools, this implies writing a parser for the language (see below) and creating a new meta-model. There are also other possible actions.

Parsers

Parsing source code to analyze is an important part of Moose. There are different (so-called) parsers already created at various stages of progress that you can use and/or contribute to.

Note: they do more than parsing since they also resolve names in the parsed code and this is not a small task.

  • Petit Parser - Write “easily” a Parser with Moose External documentation
  • VerveineJ - Generate an mse/json from a Java project
  • VerveineC-Cpp - Generate an mse/json from a C/C++ project
  • C# - A parser for C# (using Roselyn) that should be able to export a Moose model
  • PowerBuilderParser - Generate an mse from a Powerbuilder project Unfinished

Advanced developers

  • Fame — The meta-meta-model

OTHER DOCUMENTATION

Moose is an extensive platform for software and data analysis. It offers multiple services ranging from importing and parsing data, to modeling, to measuring, querying, mining, and to building interactive and visual analysis tools.

The following resources are also useful to understand Moose: