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
- For Developers
- Other Documentation
FOR BEGINNERS
FOR USERS
After installing and running Moose, one typically:
- loads a model of a software system to perform some analyses on it;
- performs some queries on the model
- 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
- Typical Queries - presents how to perform typical queries
- Moose Query
- Tree Query
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
Moose 8 documentation
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.
- Library of pre- defined entites/traits
- Creating a meta-model
- Dealing with a new language
- Define baseline loading moose for your own projects
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
- 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
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:
- Moose Technology - the main web site for Moose.
- The Moose Book - a tutorial for using Moose to analyze Java source code (Moose 6).