Charts for Trend Visualisation

Temporal Evolution Chart

The Temporal Evolution Chart shows the evolution of one or measures over time. The measure representation is defined by a renderer attribute (as explained in the section called “Datasets” for more details). It replaces the deprecated Temporal Evolution Bar and Temporal Evolution Line charts, and allows representing more than one data sets on the one chart.

Temporal Evolution Chart using an AREA renderer

<chart type="TemporalEvolution" id="TEMPORAL_EVOLUTION_AREA" width="400" height="400" onlyLast="5" renderer="AREA">
	<measure color="40,81,245" label="Source Line of Code">SLOC</measure>
	<measure color="0,81,0" label="Line of Code">LC</measure>
</chart>

The Temporal Evolution Chart can also be used to draw a bar chart or a line chart, as shown below:

Temporal Evolution Chart using a BAR renderer

<chart type="TemporalEvolution" id="TEMPORAL_EVOLUTION_BAR_ID" renderer="BAR">
	<measure color="0,81,0" label="Technical Debt">TECH_DEBT</measure>
</chart>

Temporal Evolution Chart using a LINE renderer

<chart type="TemporalEvolution" id="TEMPORAL_EVOLUTION_LINE_ID" renderer="LINE"
  isCChart="true" coeff="2" onlyLast="20">
	<measure label="Maintainability">MAINTAINABILITY</measure>
	<measure color="0,81,0">TESTABILITY</measure>
</chart>

The chart above is a normal Temporal Evolution Chart where the x-axis uses a regular gap between all versions and uses the version name as the label.

Below is an example of the difference in representation when using the x-axis as a chronological marker.

Temporal Evolution Chart with versions distributed evenly on the x-axis, using the version name as the label (left),

or distributed on the x-axis according to the date at which the analysis was carried out.

Labels on the x-axis do to not correspond to the version name this time. (right).

<chart type="TemporalEvolution" id="TEMPORAL_EVOLUTION_LINE_ID" renderer="LINE 
  dateFormat="MMM d" byTime="true|false"
  isCChart="true" coeff="2" onlyLast="20">
	<measure color="123,10,12" label="Source Line Of Code">SLOC</measure>
</chart>

The chart element may have the following attributes:

  • isCChart (optional, default: false) transforms the chart in a C-Chart if set to true. This draws three extra lines to the chart at the following values on the y-axis:

    • mean

    • mean + (coefficient * standard deviation)

    • mean - (coefficient * standard deviation)

  • coeff (optional, default: 0) sets the value of the coefficient used to draw the control lines either side of the mean line when isCChart is set to true.

  • onlyLast (optional, default: no limit) defines the number of versions to be displayed, starting from the one that is currently selected.

  • byTime (optional, default: false) defines whether versions are placed on the x-axis according to their analysis date. When activating this mode, you can use the advanced options for the x-axis defined in the section called “Time Axis Configuration”.

  • breakOnMissingData (optional, default: false) specifies whether the line is interrupted (true) when a value is missing.

  • timeMeasure (optional) is the measure ID (of type DATE) to use as the analysis date for a chart where byTime is true. If not specified, the real analysis date of the version is used.

  • displayDate (optional, default: false) for all charts that display information about several versions. When set to false, the version name is displayed in the chart. When set to true, the version date is displayed instead.

  • dateFormat (optional, default: yyMM) allows formatting the version date when displayDate is set to true according to the Java Simple Date Format described at http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html.

  • dateStyle (optional, default: DEFAULT): the date formatting style, used when the displayType is one of DATE or DATETIME.

    • SHORT is completely numeric, such as 12.13.52 or 3:30pm.
    • MEDIUM is longer, such as Jan 12, 1952.
    • DEFAULT is MEDIUM.
    • LONG is longer, such as January 12, 1952 or 3:30:32pm.
    • FULL is pretty completely specified, such as Tuesday, April 12, 1952 AD or 3:30:42pm PST.

  • timeStyle (optional, default: DEFAULT): the time formatting style, used when the displayType is one of DATETIME or TIME. See above for available styles.

Temporal Optimised Stacked Bar Chart

This chart represents the evolution of several measures across several versions. It takes a a minimum of two measures as elements. The labels on the bars can be displayed as values or a percentage, as shown below:

Temporal Optimised Stacked Bar Chart

Temporal Optimised Stacked Bar Chart using percentages

<chart type="OptimizedTemporalEvolutionStackedBar"
			id="OptimizedTemporalEvolutionStackedBar_BAR_ID" 
  targetArtefactTypes="FILE" asPercentage="false">
	<measure color="0,81,0" label="A">A_FILE</measure>
	<measure color="3,127,3" label="B">B_FILE</measure>
	<measure color="133,182,2" label="C">C_FILE</measure>
	<measure color="255,255,0" label="D">D_FILE</measure>
	<measure color="255,150,0" label="E">E_FILE</measure>
	<measure color="255,80,0" label="F">F_FILE</measure>
	<measure color="255,0,0" label="G">G_FILE</measure>
</chart>

The chart element may have the following attributes:

  • targetArtefactTypes allows to filter descendants according to their type. You can use one or more types. Concrete and abstract types are supported, so it is possible to use an alias, as described in the section called “Artefact Types”. There are some limitations to what is supported:

    1. Measures associated to an indicator must have the same measureId for all types and be of the same kind (base or derived)

    2. For Stacked Bar Chart, Simple Temporal Evolution Stacked Bar Chart, Simple Pie and Simple Bar the scale associated to the indicator must be the same for be the same for all types

  • asPercentage (default: false) displays the values as percentages when set to true.

Temporal Evolution Line Chart Including Goal

A chart that shows the evolution of one or more measures over time including an objective.

Temporal Evolution Line Chart Including Goal

<chart type="TELIGoal" id="TELIGOAL_ID" 
  versionStart="V2" direction="down">
  <target defaultValue="500" version="start" >INIT_TASKS</target>
  <nbStep defaultValue="5" ></nbStep>
  <measure color="0,109,126">LEFT_TASKS</measure>
</chart>

The chart element may have the following attributes:

  • versionStart (mandatory) the first version present in the chart.

  • displayAllVersions (optional, default: false) defines whether values are shown on the chart for versions prior to versionStart .

  • direction (optional default: down) is the direction of the Goal line (up or down). Up: From 0 to the target. Down: From the target to 0.

  • target (mandatory) the measure used for draw the goal line with a default value and an attribute if we get the current value or the value present in the version specified by the versionStart attribute.

  • nbStep (mandatory) the measure used for draw the future versions with a default value.

Temporal Evolution Bar Chart Including Goal

A chart that shows the evolution of one or more measures over time including an objective i.e. the different versions analysed by the Squore engine.

Temporal Evolution Bar Chart Including Goal

<chart type="TEBIGoal" id="NB_OPEN_TASKS_CHART" 
  versionStart="V2" direction="down">
  <target defaultValue="400" version="start" >NB_OPEN_TASKS</target>
  <nbStep defaultValue="30" >DAYS_LEFT</nbStep>
  <measure>NB_OPEN_TASKS</measure>
</chart>

The chart element may have the following attributes:

  • versionStart (mandatory) the first version present in the chart.

  • displayAllVersions (optional, default: false) defines whether values are shown on the chart for versions prior to versionStart .

  • direction (optional default: down) is the direction of the Goal line (up or down). Up: From 0 to the target. Down: From the target to 0.

  • target (mandatory) the measure used for draw the goal line with a default value and an attribute if we get the current value or the value present in the version specified by the versionStart attribute.

  • nbStep (mandatory) the measure used for draw the future versions with a default value.

Simple Temporal Evolution Stacked Bar Chart

This chart represents the evolution of an indicator across the versions. It takes a single indicator as sub element. The values displayed are calculated on the fly. It is therefore sometimes recommended to use an Temporal Optimised Stacked Bar Chart for performance reasons.

Simple Temporal Evolution Stacked Bar

Simple Temporal Evolution Stacked Bar (bars represented as percentages)

<chart type="SimpleTemporalEvolutionStackedBar" 
  id="SimpleTemporalEvolutionStackedBar_BAR_ID" 
  targetArtefactTypes="FILE"
  asPercentage="false">
  <indicator>MAINTAINABILITY</indicator>
</chart>

The chart element has the following attributes:

  • targetArtefactTypes allows to filter descendants according to their type. You can use one or more types. Concrete and abstract types are supported, so it is possible to use an alias, as described in the section called “Artefact Types”. There are some limitations to what is supported:

    1. Measures associated to an indicator must have the same measureId for all types and be of the same kind (base or derived)

    2. For Stacked Bar Chart, Simple Temporal Evolution Stacked Bar Chart, Simple Pie and Simple Bar the scale associated to the indicator must be the same for be the same for all types

  • asPercentage (optional, default: false) indicates if the values should be displayed as percentages.

If the asPercentage attribute is set to true, the chart will look like this:

The indicator element supports hiding or excluding certain levels from the chart by using the hideLevels excludeLevels attribute. The difference between hiding and excluding a level is that hidden levels are taken into account when displaying percentages while excluded levels are not. For example:

<indicator excludeLevels="UNKNOWN">LEVEL</indicator>

or

<indicator hideLevels="LEVELA;LEVELB">LEVEL</indicator>