Architectural Category Tags and Risk Metric

Contents

Architectural Category Tags and Risk Metric#

The Architectural Category Tags can be created with the menu Tools ‣ Create Architectural Category Tags. This will create a tag named ArchitecturalCategories with 4 sub tags: core, peripheral, utility and control.

ArchitectualCategoriesTag

The tags are calculated by using the technique desribed in Daniel J. Sturtevant’s paper “System Design and the Cost of Architectural Complexity” [1]. The categories are determined by using two metrics called “Visibility Fan In” (VFI) and “Visibility Fan Out” (VFO).

Existing metrics in Lattix are used to represent the VFI and VFO metrics as follows:
VFI = Average Impact +1
VFO = Average Cumulative Dependency

In Sturtevant’s paper, a “cliff” in the VFI and VFO graphs is referenced, in which there is a sudden increase in the values of VFI and VFO. An example is represented in the following images:

vfo-graph

vfi-graph

In order to calculate if the VFO and VFI are low or high we determine the “cliff” value for each and name them cliffVFI and cliffVFO

A value of VFI < cliffVFI is low
A value of VFI >= cliffVFI is high
A value of VFO < cliffVFO is low
A value of VFO >= cliffVFO is high

VFI

VFO

Tag

Description

low

low

peripheral

Does not influence much of the system

high

low

utility

Relied on by much of the system

low

high

control

Coordinates the behavior of the system

high

high

core

Has large cycles and co-dependent code

Sometimes there are multiple cliffs in the graph (see below). We choose the cliff based on several heuristics, for instance: the biggest cliff or the cliff closest to the middle. If the cliff is too close to the end of the graph (as in the the above VFO graph) we will use a cliff value closer to the middle of the graph for better results.

vfo-alt1

vfi-alt1

Risk Metric#

Since the subsystems tagged as core have both high Fan In and Fan Out connections, they are considered higher risk. So we have created a metric named Risk that is calculated as follows:

The Risk metric will be calculated as 1.0 if VFI >= cliffVFI and VFO >= cliffVFO
The Risk metric will be calculated as 0.3 if VFI >= (cliffVFI * 70%) and VFO >= (cliffVFO * 50%)
The Risk metric will be calculated as 0.3 if VFI >= (cliffVFI * 50%) and VFO >= (cliffVFO * 70%)

The Risk Metric can be used in the heatmap.

RiskHeatmap