If you didn't yet receive your Softagram credentials or don't know how to login with Softagram Desktop, please read this short Getting Started guide first.
Once you're ready, open Softagram Desktop and continue with this guide.
We'll cover the following topics:
- Selecting a model
- Basic navigation
- Controlling the Detail Level
- Showing dependencies.
Selecting a model
After the login dialog you'll be shown a list of one or more analysis models, depending on which of your codebases are included in Softagram. If you don't see the project or repository you expected, please contact us with the chat here or by sending email to firstname.lastname@example.org.
Select a model and branch/target from the list by clicking it or selecting "Open Selected" (You can search it with free text search or use drop down menus)
Here are the basic controls that you need to know:
You can easily navigate the model by double-clicking its elements and by using the back/forward/home buttons.
Search and Scope field by default shows your current position in the model. Once you know the basic navigation, you can also use it for basic and advanced searching. More about search here.
Back button always takes you back to the previous view. Forward obviously does the same but opposite direction.
In case you need to quickly get back to the beginning, press the Home button.
Fullscreen Mode button at right is good for viewing very large graphs, hiding most of the controls aside.
You can adjust the amount of details shown in any view by using the Detail Level controls.
A small amount of details is often good for huge models when you need to understand the big picture. More details works best in smaller subsets of the models, with a limited amount of elements and dependencies.
When drilling down in the model by double-clicking an element, the level of detail is automatically increased. Alternatively you can increase the detail level in the current view by clicking the Plus button in the toolbar (above).
You can get back to higher level by double-clicking a parent element, or with the Minus button.
In each view, one of the following Dependency Modes is always active:
First mode, No Dependencies just shows the filtered elements without showing any dependencies between them.
The second mode, Dependencies Within the Scope let's you see if the are dependencies between the elements in current scope. Here is an example of internal dependencies within a folder named gamesys:
The next button in the toolbar, probably the most used dependency view, is the Inbound View. You can use it for change impact analysis and understanding the role of the current component within the system. For detailed elements like functions, the view might be very simple, like in the example below: the Save() function in idEvent class of Doom3 is called by SaveGame()-function in idGameLocal class.
This view uses Left to right layout that is useful especially at function level, with deep structures.
The opposite of Inbound View is Outbound View, which shows the elements that are used by the current component. In the example below, we can see the outgoing dependencies for the same Save()-function:
Finally the rightmost button combines both inbound and outbound dependency views to provide you a complete overview of how a component lies in the system.
Lookup level buttons are used to increase or decrease the level of dependencies for inbound and outbound dependencies.
Below is an example where we see the incoming dependencies for function realpath from four levels. That way it is easy to see and understand e.g. function call paths.
Please see a video of how you can learn any codebase utilising Softagram:
Congrats! You are now good to go with the basic Softagram usage. Next up is how to use the Search.