Skip to Content
Author's profile photo Rainer Winkler

Solving SAP problems without reading code – Extract a FAMIX model to Moose


There is now an open source project started to extract code information for analysis using Moose. It was first presented at the SAP Inside Track 2016 Frankfurt.


It can be used to draw diagrams like this:


The program is available on Github:

GitHub – RainerWinkler/Moose-FAMIX-SAP-Extractor: An project to extract model data from a SAP system with FAMIX and Moos…


A complete description on how to use it is given in the wiki.


Moose is a free open source platform for software and data analysis built in Pharo.


Extraction is done using FAMIX. FAMIX is optimized to support multiple languages and can contain detailed information needed for software analysis and refactoring (See for instance this article to explain why: Why FAMIX and not UML ?).


For an overview over Moose see Moose.


You may also check Agile Visualization and Humane assessment .

Open Roassal examples for lots of examples for diagrams together with sources.

Open Moose -> Meta Browse for details on FAMIX.


The extractor is implemented in a single ABAP program that reads only informations about the code, but not the code itself.



Moose is implemented in Pharo. Pharo is an open source implementation of the programming language and environment Smalltalk. See the official project homepage Pharo – Welcome to Pharo! for further informations.


It is recommended to download Moose 6 and run it using Pharo 5 as there are more visualization options able than in Moose 5.


  • Plan to invest some time in learning Pharo. It is cool software, but also different. I like to say “It is software developed by Aliens for Aliens”. Many thinks work, but not always the way I expect.
  • Smalltalk uses three mouse buttons, left, right and middle. To start moose perform a left mouse click on the desktop and choose the Moose Panel.
  • To execute code, select the whole code and choose right mouse click “Do it and go”. If not only the selected line is executed, this is in most cases leading to an error.
  • If part of a script are red: add declarations for small talk variables enclosed in | | at the start of a script. Example “methods := ” methods is read. Add | methods | at the top. Small talk variables are not typed so stating the variable is sufficient.


  • Install the program found on github.
  • Install Pharo 5 (Add the 4.0 Sources to the folder)
  • Download an Image of Moose 6 (You may store it at some other place)
  • Start the Pharo exe and choose the Moose image.
  • Click on the desktop with the left mouse button and choose the Moose Panel.
  • Import the MSE file with the icon in the upper right.
  • Click on the model. Click on all classes choose visualization -> Blueprint complexity.

What can be done?

The extractor is not yet in a status where it is sufficiently complete for most productive usages.See the requirement and issues on github for the actual situation.But basic information on methods, classes, interfaces and packages can now be extracted from SAP to Moose to learn and experiment.


Report issues on bugs or requests for improvements.


Fork the repository and start to improve the extractor.

What is planned?

Extract also non ABAP programs, like SAP BW data flows, …


I would like to thank especially:

Damir Majer for many helpfull discussing and especially for inviting Tudor Girba to the SAP Inside Track Munich 2015

Tudor Girba for many valuable informations and tips on how to use Moose and FAMIX

Enno Wulff for making a 7.31 version available and many discussions to improve the extractor and to give hints on what can be done

And all colleagues that made this tool possible!

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Richard Harper
      Richard Harper


      This interests me very much as I think visual stuff can add a huge amount of understanding.  However....

      I am having problems downloading the Pharo/smalltalk whatever portion.  On top of that if it's in any type of installer I will not be able to install because of authorisations on this laptop.  Do you have a plain pre-compiled exe version ?



      Author's profile photo Rainer Winkler
      Rainer Winkler
      Blog Post Author

      Hi Richard,

      on the Github page of the project I inserted a link t a YouTube video:

      Here I describe how to install it using Pharo Launcher. This is to me very convenient, but there is an installer, so it may not work on your laptop.

      I improved the description of the installation on

      I propose you try the new chapter "By downloading Moose 6" :Go to Moose Analysis Installation and download an image for Moose 6.0. Extract the zip file, no installer is needed.

      Lars Hvam opened Issues on Github to inform me about problems. And a documentation that is not explaining well how to install the tool is a major issue.

      So the prefered communication would be to open issues on . If the problem is related to the Smalltalk application, please open an issue on .

      And you can well post a comment here.

      Best regards,


      PS: I did just activate Email Notifications for new comments, sorry for not having done this yet


      Author's profile photo Rainer Winkler
      Rainer Winkler
      Blog Post Author

      The description on regarding the first steps should be sufficient. Please open an issue or post a comment if this is not so.

      Author's profile photo Richard Harper
      Richard Harper

      Hi Rainer,

      Thanks for this - I shall give it a go next week.


      Author's profile photo Rainer Winkler
      Rainer Winkler
      Blog Post Author

      Hi Richard,

      on you find now precompiled images (You are forwarded to Github, there go to the tab Wiki and look for installation)

      Author's profile photo Richard Harper
      Richard Harper


      I actively want to use your code.  Are you asleep or something ????

      Author's profile photo Rainer Winkler
      Rainer Winkler
      Blog Post Author

      Hi Richard,

      I understand the frustration you had. As the problem is now solved, we do not need the comment from 8 June 2017 anymore, so I propose you just delete it.

      Best regards