Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

This project is now replaced by Moose2Model2. FAMIX metamodels will not be supported anymore. The new metamodel is currently named SMOIX (22 May 2022). Please open an issue to get support :-)


This is a software exploration tool to support developers during their work. It provides "Circuit Diagram for Software" (But not in the strict sense) that can be easily kept up do date.

See video Software Exploration with Moose2Model.

Please contact the developer by opening an issue when you plan to use it to get support.


Get Moose 7.0 by using the Pharo Launcher

Install the Pharo Launcher from When the installation is done, choose a Moose 7.0 image. You may find it by clicking on New under "Official distributions". Use Moose 6.1 or 6.0 when you want to display Smalltalk Models, see issue #91.

Download Moose 7.0 (Alternative to Pharo Launcher)

Use Moose 6.1 or 6.0 when you want to display Smalltalk Models, see issue #91. Go to Moose Analysis Installation and download an image for Moose 7.0. Extract the zip file, no installer is needed. Moose 7.0 is based on Pharo 7.0.

Add the logic for Moose2Model

Please follow this description carefully. The playground and Pharo have some different behaviour compared to other operation systems.

Execute the Pharo.exe in the extracted folder. Go to the menu under Tools and open the Playground. Paste the following code into the Playground:

Metacello new 
    repository: '';
    configuration: 'Moose2Model';
    version: #stable;

To get the development version use (You need it to install for experiments on Moose Suite 8):

Metacello new 
    repository: '';
    configuration: 'Moose2Model';
    version: #development;

Select the complete coding with the mouse. This is mandatory because the Playground will execute only the marked part of the coding. Make a click with the right mouse button and select Do It. You can use the same statements to get the most actual coding. This is due to the get statements which are not required when the coding is read the first time.

The stable version is release 1.4.0. Development is release 1.4.1 (Includes #102, option to display accesses as arrows).

Enable links to ABAP Eclipse

To use links to external application, OSProcess needs to be installed. Copy the following text into the same playground and execute in the same way:

Gofer new squeaksource: 
    'OSProcess'; package: 'OSProcess'; load.

First Steps

These are described in First Steps.

Older Moose releases

Moose2Model should also work on the following older releases: Moose 6.0 (based on Pharo 5.0) and Moose 6.1 (based on Pharo 6.0).

Check for updates

Follow Get-updates to see whether there are code improvements you want to install


The documentation is in the Wiki of this repository (Go to the tab "Wiki").


The intention of this tool is explained in this blogs: Legacy Code – Storing the mental model in diagrams and Software exploration tool for developers (ABAP, SAP, Java, C, Smalltalk, …) – Roadmap.

See also the most recent presentation Survive the Chaos - S4H151 - SAP TechED Barcelona 2017 - Lecture (Start with slide 51) and the training video of the presentation.

It can be used in projects. The tool is currently improved, see the Roadmap in the above blog. Feel free to open an issue if you find errors or if you would like to have certain functions.

It can generate diagrams like this:

An example for a dependency graph

It is build on top of Pharo, Roassal and Moose.


Runs on Moose 6 and 7. Smalltalk models can currently only be analyzed on Moose 6.

Supported languages

Modelinformations for Smalltalk can be extracted with the Moose Panel (See above).

For SAP applications the extractor SAP2Moose can be used. Moose2Model and SAP2Moose are developed in parallel, so this might give the best results.

For Java you can extract mse files with [jdt2famix(

Other computer languages can be extracted to Moose, please check whether there is already an extractor available. Feel free to open an issue to receive supports to make other lanugages working.

Where is the coding

The original coding is hosted in this repository. A copy is stored on Smalltalkhub!/~RainerWinkler/RW-Moose-Diagram (The link may work only in Firefox). This simplifies getting the code. See wiki under installation how to get and install (


I thank Alexandre Bergel for providing the initial coding, giving valuable tips and feedback to support the development of this tool.


CubeServ is encouraging and supporting this project.