Filtering and Configuring Dependencies and Subsystems#

It is possible to configure the way dependencies are computed. It is also possible to filter and hide subsystems and dependencies. Lattix algorithms apply to subsystems and dependencies that are not hidden. As a result, you can do a what if analysis by hiding certain dependencies and subsystems to see its impact on the resulting system.

Filtering Dependencies#

You can filter the dependencies based on types of source/consumer and target/provider atoms as well as the kind of dependency. Bring up the filter dependencies dialog by View –> Filter Dependencies.

image0

This figure shows dependencies for Java. Every module supports different types of atoms and different kinds of dependencies. The types of atoms and dependency kinds are documented in the Module Guide.

For instance, to see only the dependencies from classes to interfaces, set the source type to ‘Class’ and a target type to ‘Interface’. To exclude static method dependencies, simply unselect ‘Static Invocation’ check box.

You can also hide dependencies associated with selected cells or use tags to hide specific dependencies.

Enable the toolbar icon image1 to create a grey background in any cell in the DSM that has hidden dependencies.

Configuring Dependency Strength#

In DSM any symbol or number or mark is used to denote dependencies. The symbol ‘X’ often been used to denote dependencies - this is the binary representation of dependencies. In Lattix, you show this representation by turning off the display of dependency strengths View –> Dependency Options –> Show Dependency Strength.

In CAD a line between boxes represents the presence of a dependency. You can turn on or off the display of lines by View –> CAD Lines –> Show CAD Dependency Lines.

In addition, you can also configure how Dependency Strength is computed. This is set by Project –> Project Properties –> Dependency Options –> Dependency Strength Type. You can also set it by View –> Dependency Options –> Dependency Strength Type.

The following configuration options are available:

  1. Knowledge Based Dependency Strength: The dependencies are computed between the leaf elements and then aggregated up. The computation of dependency strength between leaf elements is binary. If there is a dependency, the strength is assigned as 1; otherwise, it is zero.

  2. Usage Based Dependency Strength: The dependencies are computed between leaf elements and then aggregated up. The computation of the dependency strength between leaf elements is the number of actual references.

  3. Knowledge Based Subsystem Dependency Strength: The dependencies are computed by counting the number of unique dependent leaf subsystems in the target/provider system.

Hiding Subsystems and Dependencies#

You can hide any subsystem or dependency.

In order to hide a subsystem, simply select it, right click to bring up the pop up menu and select Hide Subsystem.

In order to unhide, select View –> Hidden Subsystems …. A list of all the hidden subsystems is displayed. Unselect any of the hidden subsystems to display them.

You can hide the dependencies in a cell of the DSM by selecting the cell, right click to bring up the pop up menu, and select Hide Dependencies…. A list of all the dependencies that will be hidden will be displayed.

You can unselect any dependency that you do not want to be hidden by bring View –> Hidden Dependencies… and unselecting any dependency that you don’t want hidden.

Using Tags to Hide Subsystems and Dependencies#

You can set a project to display only the elements that have a specific tag. You can also set the project to filter out all dependencies that are involved in that generation of the tag. For instance, if you create an impact set, you can show only the dependencies that were used to generate the impact set. You can bring up the Tag Filter Dialog from View –> Tag Filtering.

image2

To clear the tag filter, select View –> Clear Tag Filtering.

Active Filter Visibility#

You can see at a glance when you have filtered subsystems or dependencies.

When you have filtered either subsystems or dependencies, an icon image6 will appear in the cell with $root, indicating that you have filters active (i.e. you are hiding subsystems or dependencies). In addition, the menu item, View -> Active Filters…, will also become active.

image4

By pressing the Active Filters icon in the $root cell or choosing the View -> Active Filters… menu item, this will bring up the Active Filters dialog.

image5

In the Active Filters dialog, you can see at a glance what categories of filters you currently have active in your project, and you can click on the links to these filter categories to explore further the filters you have active

Note for Lattix Web users: You will see only the Active Filters icon in the $root cell, and when clicked you can see an Active Filters dialog with only the status of the filtering categories.

Adding and Deleting Manual Dependencies#

You can create manual dependencies between subsystems.

In order to create a manual dependency, select a cell of the DSM, right click to bring up the pop-up menu and select Create Manual Dependency.

image3

In the pop-up box you can specify the strength of the dependency and the kind of dependency. You can also specify properties associated with a dependency. Note that the DSM will show the strength number that you entered only if your Dependency Strength Type is set to Usage Based Dependency. If the Dependency Strength Type is set to Knowledge Based Dependency then you will see a ‘1’ in the DSM.

To edit the strength or delete the manual dependency select the cell, right click to bring up the pop-up menu and select Edit Manual Dependency or Delete Manual Dependency.