8.11.1.  Exploration View

The Exploration view shows a tree-like structure of the software system. The elements contained in the software system are represented as nodes that can be expanded/collapsed if they contain other elements. Dependencies between the elements are represented as arcs, that have to be read counter clockwise. Left-hand side dependencies are downward and right-hand side dependencies are upward. The number of upward dependencies is minimized to show the construction order of the software system.

The Exploration view performs ad-hoc level and cycle analysis for elements underneath the same parent, shows cyclic elements with a red background and visualizes the levels by showing horizontal grey lines.

The Exploration view aims to show a very compact presentation even for very big software systems. If there is limited space vertically and a lot of interconnected nodes to be shown the arcs are squeezed to occupy less space.

The Exploration view offers focus operations to reduce the amount of visible elements/dependencies allowing the user to "focus" on specific aspects.

The Exploration view supports forward/backward navigation recalling different visibility states via the main tool bar's yellow back and forth arrows ( ). Use that mechanism if you want to go backward or forward to a specific state of the Exploration view. The 'Home' tool bar button ( ) resets the Exploration view to it's initial state and clears all navigation states. The different visibility states include focus, expand/collapse and selection state of the view.

Structure Modes

The Exploration view supports 4 different structure modes:

  • Physical: Shows the physical structure as shown in the Navigation view including root directories.

  • Physical w/o Root Directories: Shows the physical structure as shown in the Navigation view excluding root directories for a more compact presentation.

  • Logical System Scope: Shows the logical structure as shown in the Namespaces view using system scope.

  • Logical Module Scope: Shows the logical structure as shown in the Namespaces view using module scope.

Creating an Exploration View

Once you have a successfully parsed the software system the 2 most straightforward ways to create an Exploration view are:

  • Use the quick access tool item in the main tool bar showing the Exploration view icon: The quick access tool item offers a drop-down box where you can choose 1 of the 4 structure modes.

  • Select any number of elements in the Navigation or Namespaces view and use the context menu entry 'Show In Exploration View'.

    • Select and Reveal : Create an Exploration view without focus, selecting the input elements and revealing the first input element.

    • No Additional : Focus only the input elements. Only the input elements and the dependencies between them are going to be part of the displayed content.

    • In and Out : Focus the input elements and the ones directly connected with incoming/outgoing dependencies. The input elements plus the ones which they depend on and the ones that directly depend on them will be part of the displayed content along with all the dependencies involved.

    • In Incoming Dependencies : Focus the input elements and the ones directly connected with incoming dependencies. The selected elements plus the ones that directly depend on them will be part of the displayed content along with the dependencies between all of them.

    • Out : Focus the input elements and the ones directly connected with outgoing dependencies. The selected elements plus the ones which they depend on will be part of the displayed content along with the dependencies between all of them.

    • Advanced... : This will open an advanced Exploration view creation dialog.

In general an Exploration view can be created via the context menu by selecting different elements throughout the user interface, some of them are:

  • A checked architecture DSL file creating an Exploration view including the corresponding artifacts.

  • A cycle group creating an Exploration view including only the corresponding dependencies (i.e. using a focus on the dependencies).

  • Elements or dependencies from script result previews.

  • Issues.

Exploration View
Figure 8.20. Example of Created Exploration View without Focus


Questions that can be answered using the Exploration view are:

  • What are the dependencies between some layers, subsystems, packages or types?

  • What is the reason for some unexpected dependency?

  • How is it possible to decouple a given pair of package trees?

  • Where is package X or file Y located in the package tree?

The exploration view provides a number of means supporting you to:

  • Get an overview of your software system on a high abstraction level.

  • Drill-down to answer specific questions.

  • Zoom in and out of the Sonargraph model tree by expanding and collapsing element nodes.

  • Use the focus operations so that irrelevant information is hidden.