Distributed Charts

Distributed charts are a type of chart that allows to display data grouped by categories.

By default, the displayed data is the artefact count for each category. But it is also possible to display aggregated values instead of the default count, refer to the Aggregating Data section to know more.

Distributed charts are the following: pivot table.

Grouping Data

When using distributed charts, it is possible to group data according to measures/information values, indicators levels, or findings scales categories.

When using measures, an additional grouping technique called data binning is also available.

Measures

By default, results will be grouped according to the measure distinct values. However, it is possible to group them using the data binning technique.

Data binning (or bucketing) allows you to group values in intervals, when displaying a measure’s data. For example, you can build a chart showing tickets created by quarter, based on each ticket’s creation date:

CFG binningTickets
Figure 1. A Simple Bar chart showing ticket creation dates grouped by quarter
<chart id="TICKET_BINNING_EXAMPLE" type="SimpleBar" targetArtefactTypes="TICKET">
	<measure binningType="DATE" stepDate="QUARTER">CREATION_DATE</measure>
</chart>

It is defined using the binningType attribute on the measure element which supports the following values:

  • STEP_VALUE for metrics representing numerical values. When defined, the following additional attribute is required:

    • stepValue to define the range of each interval to be created.

  • DATE for metrics representing dates. When defined, the following additional attribute is required:

    • stepDate to define the period covered by each data bin. Accepted values are:

      • SECOND

      • MINUTE

      • HOUR

      • DAY

      • WEEK

      • MONTH

      • QUARTER

      • YEAR

  • DURATION for metrics representing durations. When defined, the following additional attribute is required:

    • stepDuration to define the time covered by each data bin. Accepted values are:

      • SECONDS

      • MINUTES

      • HOURS

      • DAYS

      • WEEKS

      • DAYS_30

      • DAYS_90

      • DAYS_365

Indicators

Results will be grouped according to the indicator levels. It is defined using the indicator element.

It is also possible to hide or exclude certain indicator levels from charts using the following attributes:

  • hideLevels (optional, default: empty) to hide levels on the chart, while still consider them in chart computations.

  • excludeLevels (optional, default: empty) to hide levels and exclude them from chart computations.

Hiding levels A and B while entirely excluding un-relevant data
<indicator hideLevels="LEVELA;LEVELB" excludeLevels="UNKNOWN">LEVEL</indicator>
Information

Results will be grouped according to the information distinct values. It is defined using the info element.

It is also possible to hide or exclude certain information values from charts using the following attributes:

  • hideInfos (optional, default: empty) to hide information on the chart while keeping it in the legend so that users can manually click to activate it.

  • excludeInfos (optional, default: empty) to hide information on the chart and exclude them from chart computations.

Hiding un-relevant data and excluding invalid data from chart
<info hideInfos="UNKNOWN;UNSURE;N/A" excludeInfos="INVALID_DATA">CODE_TYPE</info>
Findings scales

Results will be grouped according to the rule categories of the specified scale. Only the findings of type OPEN and CONFIRMED will be considered. It is defined using the findingScale element.

It is also possible to hide or exclude certain finding scale levels from charts using the following attributes:

  • hideLevels (optional, default: empty) to hide levels on the chart, while still consider them in chart computations.

  • excludeLevels (optional, default: empty) to hide levels and exclude them from chart computations.

Excluding MINOR level from chart
<findingScale excludeLevels="MINOR">SCALE_SEVERITY</findingScale>

Aggregating Data

By default, data is aggregated following the artefacts count for each category. Some alternatives like the findings count, an aggregated measure value or an aggregated finding scale value can also be configured.

Each of these aggregation operation accepts a number of attributes, allowing to configure and refine the computation.

Artefact Count

The artefactCount element allows to display the number of artefacts contained in the category. Accepted attributes are the following:

  • label (optional, default: the measure’s name) defines or overrides the label used for the measure. Note that the chart thumbnail will always show the mnemonic no matter what the value of label is.

  • countBounds (optional, default: none) allows to restrict the considered values to a specific interval. If the value is outside the defined interval, it is not included in the computation.

Displaying languages that contain between 8 and 10 artefacts
<chart ... >
  <paths>
    ...
  </paths>
  <info>LANGUAGE</info>
  <value>
    <artefactCount label="Number of artefacts" countBounds="[8;10]" />
  </value>
</chart>
Findings Count

The findingCount element allows to display the number of findings related to the artefacts contained in the category. Only the findings of type OPEN and CONFIRMED are considered. Accepted attributes are the following:

  • label (optional, default: the measure’s name) defines or overrides the label used for the measure. Note that the chart thumbnail will always show the mnemonic no matter what the value of label is.

  • countBounds (optional, default: none) allows to restrict the considered values to a specific interval. If the value is outside the defined interval, it is not included in the computation.

Displaying languages that contain more than 5 findings
<chart ... >
  <paths>
    ...
  </paths>
  <info>LANGUAGE</info>
  <value>
    <findingCount label="Number of findings" countBounds="[5;]" />
  </value>
</chart>
Aggregated Measure

The measureValue element allows to display a single result computed using each artefact defined measure value as a set of inputs. Several types of computation are available. Accepted attributes are the following:

  • measureId is the ID of the measure the computation will be based on

  • aggregationType (optional, default: SUM) defines how the values are aggregated. Supported values are:

    • MIN: minimal value

    • MAX: maximal value

    • OCC: number of data points

    • AVG: average value

    • DEV: standard deviation

    • SUM: sum of values

    • MED: median value

    • MOD: modal value

  • valueType (optional, default: VALUE) allows changing the value that is displayed, using one of the following:

    • VALUE displays the measure’s value in the current version

    • REFERENCE displays the measure’s value in the selected reference version

    • DELTA displays the measure’s delta value based on the selected reference version

  • label (optional, default: the measure’s name) defines or overrides the label used for the measure. Note that the chart thumbnail will always show the mnemonic no matter what the value of label is.

  • countBounds (optional, default: none) allows to restrict the considered values to a specific interval. If the value is outside the defined interval, it is not included in the computation.

Displaying languages that contain between 10 and 500 lines of code across all related artefacts
<chart ... >
  <paths>
    ...
  </paths>
  <info>LANGUAGE</info>
  <value>
    <measureValue measureId="LC" aggregationType="SUM" valueType="VALUE" label="Line count" countBounds="[10;500]" />
  </value>
</chart>
Aggregated Findings

The findingScaleValue element allows to display the sum of the findings defined scale ranks. Only the findings of type OPEN and CONFIRMED and related to the artefacts contained in the category are considered.

Accepted attributes are the following:

  • scaleId is the ID of the scale the computation will be based on

  • label (optional, default: the measure’s name) defines or overrides the label used for the measure. Note that the chart thumbnail will always show the mnemonic no matter what the value of label is.

  • countBounds (optional, default: none) allows to restrict the considered values to a specific interval. If the value is outside the defined interval, it is not included in the computation.

Displaying languages that contain a findings ranks sum between 10 and 500
<chart ... >
  <paths>
    ...
  </paths>
  <info>LANGUAGE</info>
  <value>
    <findingScaleValue scaleId="CHARACTERISTIC" label="Ranks sum" countBounds="[10;500]" />
  </value>
</chart>