Summary: information about the Project Structure scope introduced in CAST Imaging ≥ 2.17.

Introduction

Only available if the application has been analyzed in CAST Console with the inclusion of the com.castsoftware.architecture extension (≥ 1.0.0-beta3).

Insufficient understanding of the project structure can impede collaboration, introduce conflicting dependencies, and complicate code integration within the project. Modifying or updating the codebase without a clear understanding of the structure can result in errors, conflicts, and development delays.

Access to the project structure scope enables software developers to easily explore and navigate the project structure, locate files, and comprehend the overall architecture. This facilitates effective teamwork, allowing team members to collaborate on shared files, easily identify project-specific files, and comprehend the impact of their changes on other project components. Additionally, projects can be organized based on features or business areas, and this view assists architects in evaluating adherence to other projects, identifying potential bottlenecks, and making informed decisions regarding project restructuring or refactoring.

The Project Structure scope displays the projects within an application in a dedicated scope. Each project file identified in the application during the analysis by the com.castsoftware.architecture extension (for example a Visual Studio project file such as a .csproj file, or a Maven pom.xml project file) is represented by a node in this Project Structure scope. You can find more technical details about the project files that are supported in the extension documentation.

Click to enlarge

Accessing the Project Structure scope

To access the Project Structure scope, click the Project Structure scope entry in the Perimeter section of the Investigation panel - if the entry is greyed out then the application has not been analyzed with the required release of the com.castsoftware.architecture extension:

The Welcome page in CAST Imaging also includes a dedicated tile which will open the Project Structure scope - see User Guide - GUI - Welcome Page:

In 2.19.0, the Project Structure is not displayed in Custom Aggregation. This update is visible only when you reimport the application.

Choose a specific Project to display. Projects are listed in alphabetical order in the Select Project Structure dropdown - by default the first in the list is displayed in the view:

Perspective selection

By default, the perspective (how the data is displayed) will be set to CAST Taxonomy (the default layout configured by CAST Imaging and the only layout available) and Level 4 - you can find out more about the Perspective options in User Guide - GUI - Investigate panel.

Global view by Project (aggregated by)

You can get a global view of all Projects in the application by using the Application scope and then choosing the Project Structure mode in the Aggregated by drop down:

Click to enlarge

Properties panel for a selected node (i.e. a project), showing the project type (Maven in this example):

Source code can also be viewed for a specific project:

900

Scope of caller/callees

This option (available when the Project Structure scope is selected and when working at objects level) allows you to change the scope of objects that are considered for the Add Caller/Callees/Add Linked Objects options. See Perspective options in User Guide - GUI - Investigate panel:

Actions

In ≥ 2.18, Vignettes are replaced by Multiple Tabs (new tab/s).


ActionLocationResult/Behavior
Double click on nodeLevel 4

Transition to level 5

Level 5

Drill down to Vignette mode i.e.:  Objects level + drill mode Children + Caller/Callee + Group by communities (depending on the object selected). See also User Guide - GUI - Investigate panel for more information on Drill and Communities modes.

Click to expand

Within Vignette

Expand and investigate the selected object.

A popup message is displayed when drilling down on the selected object when there are no more sub-objects to display - this is to ensure that users are aware that there are no further sub-objects for the selected object:

ObjectsExpand and investigate the selected object.
Right click on node

Level 4

If the object properties cannot be retrieved in a timely manner, a retry button will be displayed:

  • Show > Annotations > Displays any annotations associated with the object in the legend panel:

Level 5

Objects and Vignette mode

  • Add >
    • Callers/callees > Retrieves all caller/called objects. Links are added to the selected object and to any other objects present where a link exists. The number in square brackets in the contextual menu indicates the number of items available.
    • Add linked objects > See User Guide - Using the Add Linked Objects feature for more information.

  • Show >
  • Hide node/object > Use this to hide selected nodes. To unhide, either use the "Undo" option or refresh the page. It is not possible to hide a concept node or a group node, in which case the option will not be available.
  • Remove object > Use this option to remove the object from the current view. When you reload the view the object will be re-displayed.
Single click on edgeLevel 4N/A
Level 5 and Objects level
Displays all the methods that are linked between classes and provides additional actions such as:
  • view source code
  • method information
  • add caller/callees

See User Guide - Using the Method view for more information.

Double click on edgeLevel 4 

Drill down to level 5.

Level 5 and Objects levelN/A