Page tree
Skip to end of metadata
Go to start of metadata


On this page:

Glossary

TermDefinition
ResultAn assessment result of an application or a module.
Result DetailAdditional values, indicators, related to a result:
• intermediate calculation results
• breakdown of a measure
• related quantitative values
Quality Standard ReferenceA reference to a Quality Standard such as CWE-352



Assessment Result

URI Templates & Parameters

HTTP ActionMedia TypeURI TemplatesDescription
GET


application/json
{Domain}/results{?parameters}
Array of results of a domain split by snapshots, by applications


text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
PUTtext/csvCreate or update background facts values in a AED or AAD domain for several applications in the last snapshot
GETapplication/json
{Domain}/applications/{ApplicationID}/results{?parameters}
Array of results for a given application
text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
GET 


application/json
{Domain}/applications/{ApplicationID}/snapshots/{SnapshotID}/results{?parameters}
 


 


Array of results for a given application and snapshot 


text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
PUTtext/csvCreate or update background facts values in a AED or AAD domain for a given application and snapshot
GETapplication/json
{Domain}/modules/{ModuleID}/results{?parameters}
Array of results for a given module
text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
GET 


application/json
{Domain}/modules/{ModuleID}/snapshots/{SnapshotID}/results{?parameters}
 


Array of results for a given module and snapshot


 


text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
GETapplication/json
{Domain}/transactions/{TransactionID}/results{?parameters}
Array of results for a given transaction



URI ParameterDescriptionValuesValue ModifiersDefault value
quality-indicators



Specify a list of quality indicators

Quality Indicators identifiers or keywords, separated by a comma

Ex: .../results/?quality-indicators=(business-criteria)
Ex: .../results/?quality-indicators=(technical-criteria)
Ex: .../results/?quality-indicators=(quality-rules)
Ex: .../results/?quality-indicators=(quality-distributions)
Ex: .../results/?quality-indicators=(quality-measures)

use 'c:' modifier to specify direct grade contributors of a Quality Indicator or a Quality Stantard reference( aka tag)

Ex: c:61027

Ex: c:CISQ

Note: this list is based on the union set of targeted snapshots

60017 (Total Quality Index) is used if quality-indicators, sizing-measures and background-facts parameters are not set



use 'cc:' modifier to specify critical grade contributors of a Quality Indicator

Ex: cc:61027

Note: the critical contributors of a Business Criterion (eg. cc:61027) are the BC's critical children, union the TCs' critical children. A Quality Rule is said to be critical if it is critical for at least one of its parents. In the Assessment Model, some metrics have multiple parents therefore a Quality Rule can be critical for parent A, and non-critical for parent B. In other words, using the "cc" modifier can return non-critical Quality Rules.

use 'nc:' modifier to specify non-critical grade contributors of a Quality Indicator

Ex: nc:61027

Note: the non-critical contributors (nc) of a Business Criterion (eg. nc:61027) are the BC's non-critical children, union the TCs' non-critical children. A Quality Rule is said to be critical if it is critical for at least one of its parents. In the Assessment Model, some metrics have multiple parents therefore a Quality Rule can be critical for parent A, and non-critical for parent B.

quality-standardsSpecify a list of quality standards references

Quality Standards references, separated by a comma

Ex: .../results/?quality-standards=(CISQ,CISQ-Maintainability)

Must be requested with the option in URL: select=(evolutionSummary) to retrieve the counts of violationsNone
sizing-measuresSpecify a list of sizing measures

Sizing measures identifiers or keywords, separated by a comma

Ex: .../results/?sizing-measures=(technical-size-measures)
Ex: .../results/?sizing-measures=(functional-weight-measures)
Ex: .../results/?sizing-measures=(critical-violation-statistics)
  Ex:   .../results/ ?sizing-measures=(violation-statistics)
Ex: .../results/?sizing-measures=(technical-debt-statistics)
Ex: .../results/?sizing-measures=(run-time-statistics)

NoneNone
background-factsSpecify a list of background facts

Background Facts identifiers, separated by a comma

Ex: .../results/?background-facts=(66061)

NoneNone
metricsSpecify a list of metricsAny metric identifier (quality-indicator, sizing-measure or background-fact) or keyword, separated by a commac:
cc:
nc: 
60017
applicationsSpecify a list of applications

Keyword $all or application names separated by a comma

Ex: .../results/?applications=($all)
Ex: .../results/?applications=(name1,name with space 2) 

None$all (all applications)
modulesSpecify a list of modules

Keyword $all or module names separated by a comma

Ex: .../results/?modules=($all)
Ex: .../results/?modules=(name1,name with space 2) 

NoneNone
technologiesSpecify a list of technologies

Keyword $all or technology names separated by a comma

Ex: .../results/?technologies=($all)
Ex: .../results/?technologies=(name1,name with space 2) 

NoneNone
snapshotsSpecify a list of snapshotsThe input value can be one of the following:
  • a positive or negative integer
    Ex: .../results/?snapshots=(-1)
    Ex: .../results/?snapshots=(1)

    A negative number matches snapshots from the end (eg. -1 matches the last snapshot, -2 matches the last and previous snapshots).
    A positive number matches snapshots from the beginning (eg. 1 matches the first snapshot, 2 matches the first and second snapshots).
  • the keyword $all
    Ex: .../results/
    ?snapshots=($all)

    This means all snapshots.

  • a snapshot date
    Ex: .../results/?snapshots=(2012-10-01) 

    The date format is the standard W3C Date format: YYYY-MM-DD

    If there is a snapshot at this date, select this snapshot, otherwise select the oldest snapshot after this date, otherwise select the most recent snapshot before this date.
None-1 (last snapshot)
snapshot-idsspecify a list of snapshot ids

The input value is a list of snapshot ids separated by commas.

Ex: .../results/ ?snapshot-ids=(5,12,3)

NB. The 'snapshot-ids' and 'snapshots' parameters are exclusive. You cannot use both in the same request.

nonenone
selectspecify result options to be displayedThe input value can be one of the following:
  • violationRatio
    Ex .../results?quality-indicators=(quality-rules)&select=(violationRatio)
    It must be used along with a Quality Indicator parameter specifying Quality Rules.
    ViolationRatio can apply to applications, modules and technologies.
  • evolutionSummary
    Ex: .../results?quality-indicators=(business-criteria,technical-criteria,quality-rules)&select=(evolutionSummary)
    It must be used along with a Quality Indicator parameter specifying one or more Business Criteria, Technical Criteria or Quality Rule.
    EvolutionSummary can apply to applications, modules and technologies.
  • categories
    Ex: .../results?quality-indicators=(quality-distributions)&select=(categories)
    It must be used along with a Quality Indicator parameter specifying one or more Quality Distributions.
    Categories can apply to applications, modules and technologies.
  • aggregators
    Ex: .../results?sizing-measures=(c:10202)&select=aggregators 
    Add gradeAggregators on each result. An aggregator is an indicator impacted by the result.
  • improvementGap
    Ex .../results?quality-indicators=(quality-rules)&select=(improvementGap)
    It must be used along with a Quality Indicator parameter specifying Quality Rules.
  • omgTechnicalDebt
    Ex: .../results?metrics=c:1062100&select=omgTechnicalDebt
    It must be used along with a CISQ Quality Indicator (Business Criterion, Technical Criterion, or a rule). See also: The com.castsoftware.cisq-index documentation
Nonenone
unselectspecify result options to be hidden
  • grade
    Ex: .../results?quality-indicators=(business-criteria)&unselect=(grade)
    It prevents the grade parameter to be displayed for a Quality Indicator.
    It applies to applications, modules and technologies. 
nonenone
formatspecify output format options
  • snapshotsAsRows
    Ex: .../results?snapshots=(-2)&format=(snapshotsAsRows)
    For CSV and Excel output, this displays the values for different snapshots on new rows instead of new columns (default behaviour).  
nonenone
orderspecify result sorting options

Possible sorting parameters are:

  • improvementGap
  • rule-pattern-name
  • rule-id
order=(asc(param1),desc(param2))order=(asc(rule-id))


Excel/CSV Representation (Output)

ColumnsDescriptionType

Application Name

Application nameString

Module Name

Module name.

If specified then assessment results are in the scope of this module

String

Technology

Technology name.

If specified then assessment results are in the scope of this technology

String

Metric Name

Associated name of the metric keyArray

Snapshot Date #N

Date of the assessment result. Assessment results are ordered from the most recent (N=1), to the less recent (N > 1).

Effective selected snapshots depends on the snapshot query parameter.

Date
Result #NAssessment result as a grade for a quality indicator, or an integer for other resultsNumber

Violations (Result #N)

Number of failed checks when query parameter "select" is set with "violationRatio"Number

Total Checks (Result #N)

Number of total checks when query parameter "select" is set with "violationRatio"Number

Added Critical Violations (Result #N)

Number of added critical violations when query parameter "select" is set with "evolutionSummary"Number

Critical Violations in New and Modified Code (Result #N)

Number of critical violations in new and modified code when query parameter "select" is set with "evolutionSummary"Number
Removed Critical Violations (Result #N) Number of removed c ritical violations when query parameter "select" is set with "evolutionSummary"Number
Total Critical Violations (Result #N) Number of total c ritical violations when query parameter "select" is set with "evolutionSummary"Number
CategoryName (Result #N)Result for a category of a distribution when query parameter "select" is set with "categories"Number

CSV Representation (Input)

Columns TitlesTypePut Payload

ADG Database

StringIf AAD domain, the adgDatabase property of the application.
If AED domain, this value is optional. If set, it must match the adgDatabase property of the application.

Application Name

StringName of the application to set Background Facts to

Module Name

StringName of the application modules to set Background Facts to.
For a given background fact id and application name, this column must contain each application module, plus the empty value (referring to the application itself) 

Metric Id

IntegerA Background Fact id

Result

DoubleValue of the Background Fact for an application or one of its modules

CSV Examples

CSV payload for a AAD domain - Set Backgroud Fact values for a single application
ADG Database;Application Name;Module Name;Metric Id;Result
ADG_GACD;DIDD Diccionarios;;2666003;21
ADG_GACD;DIDD Diccionarios;DIDD_CAPP_ESQUEMAS;2666003;9
ADG_GACD;DIDD Diccionarios;DIDD_J2EE;2666003;12   
ADG_GACD;DIDD Diccionarios;;66061;2.0
ADG_GACD;DIDD Diccionarios;DIDD_CAPP_ESQUEMAS;66061;3.0
ADG_GACD;DIDD Diccionarios;DIDD_J2EE;66061;4.0
CSV payload for a AED domain - Set Backgroud Fact values for multiple applications
ADG Database;Application Name;Module Name;Metric Id;Result
;DIDD Diccionarios;;2666003;21
;DIDD Diccionarios;DIDD_CAPP_ESQUEMAS;2666003;9
;DIDD Diccionarios;DIDD_J2EE;2666003;12
;BO;;2666003;17
;BO;BO full content;2666003;17
;CastOld;;66061;4.83
;CastOld;Adg;66061;3.2
;CastOld;Central;66061;4.7
;CastOld;DssAdmin;66061;0.8
;CastOld;Pchit;66061;10.5
;DIDD Diccionarios;;66061;2.0
;DIDD Diccionarios;DIDD_CAPP_ESQUEMAS;66061;3.0
;DIDD Diccionarios;DIDD_J2EE;66061;4.0

JSON Representations & JSON Examples

Result Item

PropertiesDescriptionTypeOccurs
numberOrder number of the application snapshotInteger1
dateDate of the application snapshotDate1
applicationReferenceURI1
applicationSnapshotReference to get an application snapshotURI1
applicationResultsAll resultsArray1
applicationResults[ ]See application resultStructure0..*

Application Result

Case of a Business Criterion

Properties

Description

Type

Occurs

type

Value is "business-criterion"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result stuctureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundariesReservedStructure0..1

result.evolutionSummary

See Evolution Summary structure

Structure

0..1

modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Business Criterion






Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortNameString1
reference.keyInteger1
transactionResultsResults Breakdown by transactionArray0..1
transactionResults[ ]See Transaction Result stuctureStructure0..*
GET DEMO/applications/6/snapshots/5/results
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "business-criteria",
				"technologiesResults": [],
				"result": {
					"grade": 3.04528,
					"boundaries": null,
					"evolutionSummary": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/60017/snapshots/5",
					"name": "Total Quality Index",
					"shortName": "TQI",
					"key": "60017",
					"gradeAggregators": null
				},
                "transactionResults": []
			}
		]
	}
]

Case of a Technical Criterion

Properties

Description

Type

Occurs

type

Value is "technical-criterion"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result structureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundariesReservedStructure0..1
result.violationRatioReservedStructure0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result structureStructure0..*

reference

Reference to a Quality Indicator







Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName String

reference.key

Integer

1

reference.gradeAggregators

Indicators computed with this result

Array

1

reference.gradeAggregators[].key

A parent Quality Indicator key

String

0..*

reference.gradeAggregators[].weightContribution weightInteger1
reference.gradeAggregators[].criticity"N/A"String1
transactionResultsResults Breakdown by transactionArray0..1
transactionResults[ ]See Transaction Result stuctureStructure0..*
GET DEMO/applications/6/snapshots/5/results?quality-indicators=(61007)
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "technical-criteria",
				"technologiesResults": [],
				"result": {
					"grade": 4,
					"boundaries": null,
					"violationRatio": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/61007/snapshots/5",
					"name": "Documentation - Bad Comments",
					"shortName": null,
					"key": "61007",
					"gradeAggregators": null
				},
                "transactionResults": []
			}
		]
	}
]

Case of a Quality Rule

Properties

Description

Type

Occurs

type

Value is "quality-rules"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result structureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundaries Reserved Structure0..1
result.violationRatioSee Violation Ratio StructureStructure0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result structureStructure0..*

reference

Reference to a Quality Indicator







Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

reference.gradeAggregators

Indicators computed with this result

Array

1

reference.gradeAggregators[].key

A parent Quality Indicator key

String

0..*

reference.gradeAggregators[].weightContribution weightInteger1
reference.gradeAggregators[].criticityContribution criticityBoolean1
transactionResultsResults Breakdown by transactionArray0..1
transactionResults[ ]See Transaction Result stuctureStructure0..*
GET DEMO/applications/6/snapshots/5/results?quality-indicators=(5080)
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "quality-rules",
				"technologiesResults": [],
				"result": {
					"grade": 3.59457,
					"boundaries": null,
					"violationRatio": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/5080/snapshots/5",
					"name": "Avoid Procedure Paragraphs that contains no statements",
					"shortName": null,
					"key": "5080",
					"gradeAggregators": null
				},
                "transactionResults": []

			}
		]
	}
]

Case of a Quality Distribution

Properties

Description

Type

Occurs

type

Value is "quality-distributions"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result stuctureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundaries Reserved Structure0..1

result.categories

See Category Structure

Array

1

modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Quality Indicator







Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

reference.gradeAggregators

Indicators computed with this result

Array

1

reference.gradeAggregators[].key

A parent Quality Indicator key

String

0..*

reference.gradeAggregators[].weightContribution weightInteger1
reference.gradeAggregators[].criticityContribution criticityBoolean1

Note that when retrieving Cost Complexity data the information you receive will vary:

  • If you are querying the Measurement Service, then only the categories High and Very High will be available
  • If you are querying the Dashboard Service, then all categories (Low, Moderate, High and Very High) will be available.
GET DEMO/applications/6/snapshots/5/results?quality-indicators=(65105)
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "quality-distributions",
				"technologiesResults": [],
				"result": {
					"grade": 2.91687,
					"boundaries": null,
					"categories": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/65105/snapshots/5",
					"name": "Size Distribution",
					"shortName": null,
					"key": "65105",
					"gradeAggregators": null
				}
			}
		]
	}
]

Case of a Quality Measure

Properties

Description

Type

Occurs

type

Value is "quality-measures"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result stuctureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundariesSee Boundaries StructureStructure0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Qualilty Indicator







Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

reference.gradeAggregators

Indicators computed with this result

Array

1

reference.gradeAggregators[].key

A parent Quality Indicator key

String

0..*

reference.gradeAggregators[].weightContribution weightInteger1
reference.gradeAggregators[].criticityContribution criticityBoolean1
GET DEMO/applications/6/snapshots/5/results?quality-indicators=(66067)
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "quality-measures",
				"technologiesResults": [],
				"result": {
					"grade": 3.03494,
					"boundaries": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/66067/snapshots/5",
					"name": "Avoid High Volume of Copy Pasted Code",
					"shortName": null,
					"key": "66067",
					"gradeAggregators": null
				}
			}
		]
	}
]

Case of a Sizing Measure

Properties

Description

Type

Occurs

type

Value is among

  • technical-size-measures
  • functional-weight-measures
  • critical-violation-statistics
  • technical-debt-statistics
  • run-time-statistics
String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result stuctureStructure0..*

result

Application snapshot own result

Double

0..1

result.valueSizeDouble0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Sizing Measure




Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

GET DEMO/applications/6/snapshots/5/results?sizing-measures=(10151)
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "technical-size-measures",
				"technologiesResults": [],
				"result": {
					"value": 225727
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/sizing-measures/10151/snapshots/5",
					"name": "Number of Code Lines",
					"shortName": "kLOCs",
					"key": "10151",
					"gradeAggregators": null
				}
			}
		]
	}
]

Case of a Background Fact

Properties

Description

Type

Occurs

type

background-fact

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result structureStructure0..*

result

Application snapshot own result

Double

0..1

result.valueFactDouble0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Sizing Measure




Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

GET DEMO/applications/6/snapshots/5/results?background-facts=(66061)
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "background-facts",
				"technologiesResults": [],
				"result": {
					"value": 1
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/background-facts/66061/snapshots/5",
					"name": "Business Value",
					"shortName": "Biz Value",
					"key": "66061",
					"gradeAggregators": null
				}
			}
		]
	}
]

Optional Quality Indicator Result Detail

Violation Ratio (option coming with Quality Rules)

Properties

Description

Type

Occurs

violationRatio

For a quality rule, this ratio in an input value required
to compute the grade according to 4 thresholds.


Structure

0..1

violationRatio.totalChecks

Total number of checked items in the current scope

Integer

1

violationRatio.failedChecks

Total number of failed items in the current scope

Integer

1

violationRatio.successfulChecks

Result of totalChecks - failedChecks

Integer

1

violationRatio.ratio

Compliance Ratio, i.e. successfulChecks / totalChecks

Double

1

violationRatio.violationOccurrencesTotal number of violation occurrences (ex: number of bookmarks) 
Since AIP 8.3.33
Integer1
GET DEMO/applications/6/snapshots/5/results?quality-indicators=(5080)&select=(violationRatio)
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "quality-rules",
				"technologiesResults": [],
				"result": {
					"grade": 3.59457,
					"boundaries": null,
					"violationRatio": {
						"totalChecks": 267,
						"failedChecks": 7,
						"successfulChecks": 260,
						"ratio": 0.9737827715355806
					}
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/5080/snapshots/5",
					"name": "Avoid Procedure Paragraphs that contains no statements",
					"shortName": null,
					"key": "5080",
					"gradeAggregators": null
				}
			}
		]
	}
]

Evolution Summary (option coming with Business Criteria)

Properties

Description

type

Occurs

evolutionSummary

Evolution summary
between this snapshot and the previous one

Structure

0..1

evolutionSummary.removedCriticalViolations

Number of critical violations removed
since the previous snapshot

Integer

1

evolutionSummary.addedCriticalViolations

Number of critical violations added
since the previous snapshot

Integer

1

evolutionSummary.criticalViolationsInNew
AndModifiedCode

Number of critical violations in new and modified code
since the previous snapshot

Integer

1

evolutionSummary.totalCriticalViolations

Total Number of critical violations

Integer

1

evolutionSummary.addedViolationsNumber of violations added
since the previous snapshot
Integer1
evolutionSummary.removedViolationsNumber of violations removed
since the previous snapshot
Integer1
GET DEMO/applications/6/snapshots/5/results?quality-indicators=(60014)&select=(evolutionSummary)
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "business-criteria",
				"reference": {
					"href": "DEMO/quality-indicators/60014/snapshots/5",
					"name": "Efficiency",
					"shortName": "Effy",
					"key": "60014",
					"gradeAggregators": null
				},
				"result": {
					"grade": 2.67281,
					"evolutionSummary": {
						"criticalViolationsInNewAndModifiedCode": 5,
						"totalCriticalViolations": 5,
						"addedCriticalViolations": 5,
						"removedCriticalViolations": 0,
						"addedViolations": 13,
						"removedViolations": 280
					},
				},
				"technologyResults": [],
				"moduleResults": []
			}
		]
	}
]

OMG Technical Debt (option coming with Business Criteria, Technical Criteria, Quality Rules)

Properties

Description

Type

Occurs

total

Total Technical Debt

Integer

1

numberOccurrences

Number of violation occurrences (number of bookmarks for example)

Integer

1

addedTechnical Debt of added violationsInteger1

removed

Technical Debt of removed violations

Integer

1

GET DEMO/applications/6/snapshots/5/results?quality-indicators=(8216)&select=(omgTechnicalDebt)
...
                "result": {
                    "grade": 4,
                    "omgTechnicalDebt": {
                        "total": 11040,
                        "numberOccurrences": 176,
                        "added": 0,
                        "removed": 0
                    },
                    "violationRatio": {
                        "totalChecks": 7411,
                        "failedChecks": 33,
                        "successfulChecks": 7378,
                        "ratio": 0.9955471596275807
                    }
                },

Category (option coming with Quality Distributions)

Properties

Description

Type

Occurs

categories

Categories results

Array

1

categories[ ]

A category result

Structure

1..4

categories[ ].keyA category idString1

categories[ ].name

A category name

String

1

categories[ ].value

A category measure

Integer

1

GET wow7010/applications/12/results?quality-indicators=(66010)&select=(categories)
[
	{
		"number": 4,
		"date": {
			"time": 1279144800000
		},
		"application": {
			"href": "wow7010/applications/12",
			"name": "IFPUG"
		},
		"applicationSnapshot": {
			"href": "wow7010/applications/12/snapshots/15",
			"name": "IFPUG"
		},
		"applicationResults": [
			{
				"type": "quality-distributions",
				"reference": {
					"href": "wow7010/quality-indicators/66010/snapshots/15",
					"name": "Reuse by Call Distribution",
					"shortName": null,
					"key": "66010",
					"gradeAggregators": null
				},
				"result": {
					"grade": 1,
					"categories": [
						{
							"key": "66014",
							"name": "Low Reuse by Call",
							"value": 478
						},
						{
							"key": "66013",
							"name": "Average Reuse by Call",
							"value": 17
						},
						{
							"key": "66012",
							"name": "High Reuse by Call",
							"value": 3
						},
						{
							"key": "66011",
							"name": "Very High Reuse by Call",
							"value": 1
						}
					],
					"boundaries": null
				},
				"technologyResults": [],
				"moduleResults": []
			}
		]
	}
]

Technology Result Detail

Properties

Description

Type

Occurs

technology

Technology name

String

1

result

See result structure

Structure

1

Module Result Detail

Properties

Description

Type

Occurs

module

Reference to a module snapshot

Structure

1

module.href

Module snapshot URI

URI

1

module.name

Module snapshot name

String

1

module.number

Module snapshot number

Integer

1

result

See Result Item Stucture

Double

0..1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result DetailStructure0..*

Transaction Result Detail

Properties

Description

Type

Occurs

transaction

Reference to a transaction snapshot

Structure

1

transaction.href

Transaction snapshot URI

URI

1

transaction.name

Transaction snapshot name

String

1

result

See Result Item Stucture

Double

0..1

Quality Standards

URI Templates & Parameters

HTTP ActionMedia TypeURI TemplatesDescription
GET



application/json

{Domain}/quality-standards-categories/{QualityStandardCategory}
Array of all quality standard references (aka tags)  for a given category (OWASP-2017, STIG-V4R8-CAT1, etc.)
{Domain}/applications/{ID}/quality-standards

Array of quality standard references for an application. Only quality standard references with violations are reported.

{Domain}/applications/{ID}/snapshots/{SnapshotID}/quality-standards

JSON Representation

Properties

Description

Type

Occurs

standardQuality Standard nameString1
idReference name (aka tag)String1
name

Reference label

String1
descriptionreservedString1
applicableSpecify whether this Quality Standard is applicable to static code analysis.
Some Security Standards recommendations may be out of the scope of static code analysis.
Boolean1

JSON Example

[
  {
	"standard": "CISQ",
    "id": "ASCMM-MNT-6",
    "name": "Commented Code Element Excessive Volume"
   },
  {
	"standard": "CISQ",
    "id": "ASCSM-CWE-681",
    "name": "Numeric Types Incorrect Conversion"
   }
}

Custom Quality Tags

URI Templates & Parameters

HTTP ActionMedia TypeURI TemplatesDescription
GET


text/csv
{Domain}/custom-quality-tags

Download CUSTOM TAGS mapping

Example of curl command line:

C:\>curl --header "Accept: text/csv" http://localhost:8080/CAST-RESTAPI/rest/{Domain}/custom-quality-tags
PUTtext/csv{Domain}/custom-quality-tags

Add rule/CUSTOM TAGS mapping. If the mapping already exists, it is left unchanged.

The tag must begin with the 'CUSTOM' prefix, otherwise the web service raises an error.

All new TAGS are automatically assigned to the  'CUSTOM' standard. 


Example of curl command line:
C:\>curl -X PUT --header "Content-type: text/csv" --upload-file data.csv http://localhost:8080/CAST-RESTAPI/rest/{Domain}/custom-quality-tags
DELETEtext/csv{Domain}/custom-quality-tags

Remove rule/CUSTOM TAGS mapping

The tag must begin with the 'CUSTOM' prefix, otherwise the web service raises an error

All deleted TAGS are automatically removed from  'CUSTOM' standard. 

Example of curl command line:

C:\>curl -X DELETE --header "Content-type: text/csv" --upload-file data.csv http://localhost:8080/CAST-RESTAPI/rest/{Domain}/custom-quality-tags

CSV Representation

Columns

Description

Type

Occurs

Rule IDA rule IDInteger1
TagA label starting with "CUSTOM"String1

CSV Example

Rule ID;Tag
3626;CUSTOM-TOP-PRIORITY-RULES