Tagging and Impact Analysis#

Tags are names or labels that can be attached to a subsystem. There is no limit on the total number of tags in the system. There is also no limit on the number of tags that can be attached to a subsystem. All elements which have the same tag are said to be in a set named by that tag. For instance, an impact set is one that contains all elements which have been labeled impact.

Tags can be used for a variety of analysis of an arbitrary group of elements. A report can be generated with a tag as an input. The output of a report can often also be tagged. It is possible to filter the display to show only elements that have a specific tag or to show only the dependencies which are between tagged elements. You can bring up the Tag Filter Dialog from the Search/Tags pane.

There are three kinds of tags depending on how they are assigned: Manual Tags, Search Tags, or Impact Tags. Depending on the kind of tag, the Edit Tag button brings up the appropriate editor dialog.

Manual Tags#

These tags are simply labels that a user has manually attached to any subsystem. You can manually tag a subsystem, simply by selecting a subsystem, right clicking and selecting Tag Subsystem and then choosing an existing tag or a choosing New… to create a new tag.

You can also manually tag an entire branch in the Usage pane or the Tags subtree in the Navigator by selecting a subsystem in the display tree, right clicking and choosing the menu item Tag Branch. You can use this technique to tag all elements of a tag with another tag. Since the new tag is a manual tag, you can then add or delete subsystems from it.

You can also edit a manual tag by going to the Search/Tags pane and clicking on Edit Search. The editor dialog is a convenient list where you an conveniently select or unselect the subsystems that are associated with a manual tag.

Search Tags (or Tags with a Criteria)#

These Tags are recomputed if changes are made either to the project or to the criteria.

Create a Search Tag, by selecting Find… on the context menu on the Search/Tags node in the Navigator.

image0

You can create tags based on name (or wild card/regex), type of atom and dependency kind or a combination of their criteria. You can change a criteria associated with a Tag, by clicking on the Edit Tag button.

Note that sometimes the display name of a subsystem can be different from the full name of the subsystem. Search always uses the full name of a subsystem.

Examples of Perl Style Regular Expression#

Lattix uses the regular expression style of Perl and Java. The description of the full details is beyond the scope of this manual. However, here are a few illustrative examples:

  • The expression .*log.* matches any subsystem name that contains the string log.

  • The expression .*[lL]og.* matches any subsystem name that contains the string log and Log.

  • The expression log.* matches any subsystem name that starts with the string log.

Impact Tags#

The impact set is a group of subystems that are affected by change to another group of subsystems. You can tag any group of subsystems for change and then follow the impact chain to see how the change propagates. Impact tags are also recomputed if changes are made either to the project or to the elements in the Changed Set.

You can check the impact of change as follows:

  1. Tag all those subsystems whose impact-of-change is to be analyzed. For convenience, use the “Changed” tag. One shortcut is to select one or more subsystems in the row header and right click and select Mark Changed menu item. This will create the Changed tag and attach it to the selected subsystems.

  2. Go the Search/Tags node in the Navigator and select the context sensitive menu item New Impact to bring up the strong>Impact dialog.

image1

You can select the Impact For to be a subsystem or a tag. By default, it uses the Changed tag. You can also choose the impact level. By default, the impact set is computed to transitive closure. To see just the direct dependencies, set the impact level to 1. If transitive closure is selected, you will see all the indirect dependencies organized by various levels of indirection, with each level associated with a sub-tag.

Select Expand Dependencies for References if you want a change in a subsystem to include its parents in the impact set. This is useful, when you are setting dependencies only to the parents but when a child in the hierarchy is changed, then you want to consider the parent as changed.

The Impact Tag is also useful for following up call chains that can be useful for service/component extraction. Set up the Impact Type to Uses. Now the impact set will contain everything (down to transitive closure) of elements that are used by the service/component being extracted. In order to change the impact set, you can copy its elements into another tag using Tag Branch in the Tree Display. The new tag will be a manual tag which you can then edit. Once you have the list of tagged elements which constitute a service or a component, simply cut the entire branch and paste into a new subsystem for that service/component.

Compound Tags#

Compound Tags (or Super Tags) are the union of other tags created in Lattix. This feature allows you to run an impact report on any number of tags at once or filter by multiple tags to see all dependencies.

To use the compound tag, in the navigation pane on the left side of Lattix, expand “Search/Tags” (note: you will need to create tags first before you can use compound tags). Right click on “Search/Tags” and select “New Compound Tag”.
image2
This will open the compound tag dialog box which shows a list of tags which you can select to combine into a compound tag. At the bottom of the dialog use “Tag As” to create a new compound tag name.
image3
You can also edit an existing compound tag by right clicking on it and selecting “Edit”.
image4
Now you will be able to change the composition of the compound tag.
image5

Note: You cannot add a compound tag to another compound tag