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.
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.
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.
Enable the toolbar icon 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:
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.
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.
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.
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.
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.