Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
rainer_winkler
Contributor
1,924

Overview


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:

 

https://github.com/RainerWinkler/Moose-FAMIX-SAP-Extractor/wiki/figures/SAP_Extractor_dependency_all.png

 

The program is available on Github:


GitHub - RainerWinkler/Moose-FAMIX-SAP-Extractor: An project to extract model data from a SAP system...


 

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.

Tipps



  • 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.


Start



  • 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, ...

Thanks


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!


7 Comments
Labels in this area