User Guide - Application to Application dependencies scope

Introduction

The Application to Application Dependencies scope is a specific view made available for a specific use case: the requirement to view interactions between any of the Applications that have been imported into CAST Imaging:

Each Application is represented by a circular node, the larger the node, the larger the Application (based on the number of lines of code):

Configuring the Application to Application Dependencies scope

By default this scope is empty: before you can use it, links between applications must first be generated. This can be done by a user with the ADMIN role - see Admin Center - Application to Application Dependencies management for more information about this:

Where do the links come from?

When the links between applications in the Application to Application Dependencies scope are generated, the information is taken from different locations: see Where do the links come from? in Admin Center - Application to Application Dependencies management for more detailed information.

Accessing the Application to Application Dependencies scope

When the links have been generated (see Admin Center - Application to Application Dependencies management), you can access the scope from the main application entry point:

Accessing the Application to Application Dependencies scope from 'Welcome page'. It does not show all apps (or allow you to select applications as introduced in versions 2.14)- instead it only displays the identified interactions between the selected application and other linked applications.

In versions  2.14

Clicking on App to App from either the main application entry point/page, Welcome page or from the application dropdown from the header, a sidebar is displayed with the list of applications (selected by admin user in the admin centre). You may select any single application, multiple applications or all the applications to view their App to App dependencies. Your selection will remain persistent (even if you logout and login).  

Interactions

During the link generation process, the imported Applications are scanned to check for specific objects that potentially interact with another object in a different application. Where an interaction exists, a green dotted line between the two applications will be displayed in the view, together with information about the type of interaction that exists (i.e. the specific mechanism used in the source code):

Clicking an interaction between two applications will display the following popup:

  • the total number of interactions (in the top right corner)
  • a clickable list of the interaction types - clicking the type will drill down into the view and show the objects that are interacting, for example (clicking anywhere else in the popup will drill down and show all interactions):

Interaction grouping

Where two applications are linked with more then one type of interaction (in the same direction) as shown in the example below, the interactions will not be grouped together by default:

You can use the Group/UnGroup Links option available in the left hand menu to toggle this display:

Legend

A clickable legend is available that lists all the available interactions in the view - these interactions are available in the Relationships section:

You can click use this to filter the interactions that are displayed in the view:

In ≥ 2.19, Tags comes with Technology option which lets you to select a technology and view the nodes associated with the selected technology.

Drill down into an Application

Drilling down into an Application (double-click the circular node) will display the specific objects from all other Applications together with the objects from the selected Application that they interact with:

Application details

Use the Properties panel to find out more information about a selected application:

Right click options

Node

Right clicking a node will show a contextual menu:

Highlight Callees

Highlights all the nodes that are called by the selected node (arrow out). See User Guide - Using the Highlight options.
Highlight CallersHighlights all the nodes that are calling the selected node (arrow in). See User Guide - Using the Highlight options.
Highlight Path Highlights all the paths between selected nodes - if a path exists. See User Guide - Using the Highlight options.
View ApplicationWill take you direct to the selected Application for further investigation.
View orphans

This option displays any potential app-to-app items, which are not linked to any other app-to-app items. All orphans are displayed in a custom view, together with the parent Application:

 

The objects that form the link can be viewed by clicking the link between the application and the orphan:

The objects in the orphan itself can be viewed by double clicking the orphan item:

An option is available in the legend on the right hand side, which, when clicked, will highlight all applications in the App to App Dependencies view which contain potential orphan items:

When viewing the content of a link between an Application and potential orphaned items, clicking the orphan option in the legend will highlight all the orphaned items:

View External Libraries

This option functions in a similar manner to the View orphans option. When clicked, all nodes in the selected application that contain External Library related code (i.e. third party API libraries such as Log4j, jExcelAPI etc.) will be displayed in a custom view, together with the parent Application:

Click to enlarge

The objects that form the link can be viewed by clicking the link between the application and the External Library Node:

An option is available in the legend on the right hand side, which, when clicked, will highlight all applications in the App to App Dependencies view which contain potential External Library node items:

When viewing the content of a link between an Application and potential External Library node items, clicking the External Library option in the legend will highlight all the External Library node items:

Hide objectUse this to hide the selected object. To unhide, either use the "Undo" option or refresh the page.
Remove objectUse this option to remove the node from the view. When you reload the view, the object will be re-displayed.
Properties

Displays information about the Application in the right hand slide in panel:

Node in Custom scope

Right click menu available only when working in the Custom scope within the Application to Application Dependencies scope:


Add callers/callees

Retrieves all caller/called applications. Links are added to the selected application 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 apps

See User Guide - Using the Add Linked Objects feature for more information (instead of objects, this option functions on applications)

Add 2 levels of Callers/CalleesSame principal as the Add Callers/Callees options, but instead displays two levels of applications

Highlight Callee/Highlight Callers/Highlight path 

See User Guide - Using the Highlight options
View ApplicationWill take you direct to the selected Application for further investigation.
View orphans

This option displays any potential app-to-app items, which are not linked to any other app-to-app items. All orphans are displayed in a custom view, together with the parent Application:

 

The objects that form the link can be viewed by clicking the link between the application and the orphan:

The objects in the orphan itself can be viewed by double clicking the orphan item:

An option is available in the legend on the right hand side, which, when clicked, will highlight all applications in the App to App Dependencies view which contain potential orphan items:

When viewing the content of a link between an Application and potential orphaned items, clicking the orphan option in the legend will highlight all the orphaned items:

Hide objectUse this to hide the selected object. To unhide, either use the "Undo" option or refresh the page.
Remove objectUse this option to remove the node from the view. When you reload the view, the object will be re-displayed.
Properties

Displays information about the Application in the right hand slide in panel:

Right clicking a link between two applications will show a contextual menu:

Hide Link

Enables you to temporarily hide the link between the two applications if required. When a link is hidden, it will be listed in the Admin Center - Application to Application Dependencies management page:

Click to enlarge

To unhide a hidden link, select the check box next to the link and return to the Application to Application Dependencies scope - the link will be restored and removed from the hidden links list.

Note that if you re-run an Application to Application Dependencies scope scan in Admin Center - Application to Application Dependencies management all hidden links will be lost. This behaviour is expected to changed in the future.

Custom scope

Available in CAST Imaging ≥ 2.7.0.

It is possible to create a Custom scope based on the Applications available in your Application to Application Dependencies scope:

See User Guide - Custom scope for more information.

Application search option

It is possible to use the Application search option to search for specific applications within the scope (see also User Guide - Search for items for more information):

In ≥ 2.20

Application to Application search is consistent with the global search.

In ≤ 2.19

Searching for objects in the Application to Application Dependencies scope is not possible.

Search for Apps

The standard search popup will be displayed. To search for an App, enter the App name:

Enter the string to search for - i.e. the string to match specific App names. You can choose more advanced search options if required:

Regex pattern

Enable this option to search via a regular expression (disabled by default).

In ≥ 2.19

To optimize regex, a new full-text index based search query is introduced. This search query expects the regex keyword expression in a different pattern from generic regular expression. To get the desired results, you need to create regex keyword expressions using the following ways.

  1. Digits matching - "[0-9]", "[0,6]"
  2. Wildcard matching for single character for multiple-characters - ".", ".*"
  3. Alphabet matching - "[a-z]","[A-Z]"
  4. Matching case-sensitive words - "keyword"
  5. Matching case-insensitive words - "[kK]eyword" 
  6. Matching Special Characters - "Code_[0-9]{5}"
  7. Optional Characters and Quanitifiers - "?", "+"
  8. Matching Repetitions - "{n}"
  9. Excluding character - "[^asd]"

The "AND/OR" between filters will work between the advanced filters. The combination of advanced filters will be applied to the regex search result, leading to an "AND" case result between the filter combination and regex search result.

Case sensitiveEnable this option to do a case sensitive search (disabled by default).
Search by: Name/FullnameSelect as appropriate. The search string will be applied to the options you choose.
Search by positionSelect as appropriate to specify where in the string the match should occur. By default this is set to Start.
These filter settings are persistent for the duration of the user session (i.e. until a log out occurs), therefore you will not need to re-enter them when you perform a new search.
Filter by

You can filter the search results to narrow down the number of items that will be returned. Use the Filter By slider to do so:

Between filters

You can use this option to configure whether you want to filter:

  • On strings (content of Search only for objects) AND specific object types/tags/object properties
  • On strings (content of Search only for objects) OR specific object types/tags/object properties

Search a tag / External Library

Tags (those created in CAST Imaging) and External Libraries can also be specifically searched in the App to App Dependencies view:

See User Guide - Working with tags for more information about Tags

Note that if you include a search for an External Library, the External Library will be displayed in the resulting view, alongside the matching Application(s). For example:

Select a property type(s)

In versions ≥ 2.16, you may search the applications, for visualization of the app, based on the following properties:

  • Number of Decision Points
  • Lines of code
  • Number of Artifacts

Select a property/properties if you want to limit the search results to specific property type(s):

Export options

The export action functions in this scope, as in other scopes:

  • by default the information about all the applications in the view and their interaction protocol and technology are exported for CSV, XML and JSON formats.
  • from ≥ 2.8.0-funcrel, it is possible to select multiple applications and view only the information pertaining to the selected applications for CSV, XML and JSON formats. In older releases, the number of applications that can be selected is limited to 2.
  • For image exports (JPG/SVG), all applications are always included.

Working with tags

Tags can be associated to Applications from 2.8.0-funcrel, however, these tags are kept separate to tags added at Objects level (see also User Guide - Working with tags). Tags can be exploited in the same way as tags added at Objects level when performing an application search:

Click to enlarge

Finding objects belonging to multiple applications

Available in CAST Imaging ≥ 2.13.

If you want to find out whether an object belongs to more than one application, a specific badge will indicate this. For example, when working at Object level (in any scope) the following badge indicates that the object is also present in another application:

Clicking the object will update the right hand panel under the Properties tab, allowing you to view the other application(s) that the object is present in: