On this page:

Glossary

TermDefinition
Background FactAn external information that can be related to Quality Indicators or Sizing Measures
Business CriterionA Quality Criterion which grade is based upon contributing technical criteria grades and critical violations
CategoryA Quality Distribution slot. There are 4 categories defined for each Quality Distribution. A category measure is an input value to compute the Quality Distribution grade.
Configuration ItemA Quality Indicator, Sizing Measure of Background Fact, implemented as calculation rule to measure an application or a module.
Distribution PatternThe Distribution Pattern is the definition of the Object property to use to decide in which distribution category to assign Objects.
It also includes the associated documentation: description, rationale, reference, remediation, …
Grade AggregatorAn impacted Quality Indicator (see Grade Contributor)
Grade ContributorA Quality Indicator which measure is used to compute another Quality Indicator (see Grade Aggregator)
Indirect Contributing Quality IndicatorA Quality Rule, Quality Distribution or Quality Measure contributing to a Business Criterion
Measure PatternThe Measure Pattern is the definition of the measure to perform on each Module.
It also includes the associated documentation: description, rationale, reference, remediation, …
Quality IndicatorAn calculation measure which unit is a grade between 1.0 (very high risk) and 4.0 (low risk) to assess a source code quality.
Quality DistributionA Quality Criterion based on a distribution pattern
Quality RuleA Quality Criterion to assess compliance of a source code with a Rule Pattern.
Quality MeasureA Quality Criterion based on a measure pattern
Rule PatternThe Rule Pattern is the pattern that is searched for in the analysis results (source code, cartography, etc.) to pinpoint Violations.
It also includes the associated documentation: description, rationale, reference, remediation, …
Sizing MeasureA quantitative measure
Technical CriterionA Quality Indicator which grade is based upon contributing Quality Rule , Quality Distribution and Quality Measures grades.

Configuration Snapshot

URI Templates 

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/configuration/snapshots              
Array of Configurations snapshots
GETapplication/json
{Domain}/configuration/snapshots/{snapshotID}              
A configuration snapshot content


JSON Representation

PropertiesDescriptionTypeOccurs
hrefAuto referenceURI1
nameConfiguration nameString1
numberSnapshot order number.Snapshots are ordered according to the annotation.dateInteger1
annotationUser annotations describing this snapshotStructure1
annotation.versionAssessment point numberString1
annotation.dateApplication dateDate1
annotation.descriptionSnapshot descriptionString1
annotation.nameSnapshot nameString1
annotation.enhancementMeasureComputation mode of enhancement data. It has one of the following values : "EFP" or "AEP"String1
qualityIndicators.hrefReference to get a group of indicatorsURI1
sizingMeasures.hrefReference to get a group of sizing measuresURI1
backgroundFacts.hrefReference to get background factsURI1


JSON Example

GET DEMO/configuration/snapshots/5
{
	"href": "DEMO/configuration/snapshots/5",
	"name": "Configuration Snapshot #1",
	"number": 1,
	"annotation": {
		"version": "1.0",
		"date": {
			"time": 1338328800000
		},
		"description": null,
		"name": "GM_DRAS_201206180516",
		"enhancementMeasure": "EFP"
	},
	"qualityIndicators": {
		"href": "DEMO/configuration/snapshots/5/quality-indicators",
		"name": "All Quality Indicators"
	},
	"sizingMeasures": {
		"href": "DEMO/configuration/snapshots/5/sizing-measures",
		"name": "All Sizing Measures"
	},
	"backgroundFacts": {
		"href": "DEMO/configuration/snapshots/5/background-facts",
		"name": "All Background Facts"
	}
}



Remediation Efforts

URI Templates 

HTTP Action

Media Type

URI Templates

Description

GETapplication/json
{Domain}/configuration/remediation-efforts              

Array of Remediation Efforts.

If the web service does not exist the response status is 400.

If the web service targets a schema prior to AIP 8.3.33, the response status is 404.

PUTapplication/json
{Domain}/configuration/remediation-efforts

Replace the remediation effort for some rules

Payload must contain at least the rule "key" and the new "remediationEffort" value

JSON Representation

Properties

Description

Type

Occurs

keyRule KeyString1
rulePatternReference to the rule patternURI1
rulePattern.hrefURI to the rule patternString1
rulePattern.nameRule NameString1
remediationEffort

A workload in Man x Minutes of a violation occurrence remediation.

This value is selected as follow with a priority order:

  •  a specific remediation effort for this rule
  • a CISQ Default effort, deduced from the attachment of the rule to the CISQ Assessment model extension
  • a CISQ Default effort deduced from the CISQ tagging of the rule by the Quality Standard Mapping extension
  • a AIP Default effort deduced from attachment of the rule to a technical criterion.
Number1
applicableTrue if the rule is applicable for the latest snapshot of this domain.Boolean1


Configuration Models

URI Templates 

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/configuration/snapshots/{snapshotID}/quality-indicators
        
Quality Model
GETapplication/json
{Domain}/configuration/snapshots/{snapshotID}/sizing-measures
        
Sizing Model

JSON Representation

Quality Model
Properties
Description
Type
Occurs
businessCriteria.hrefAll Business criteriaURI1
technicalCriteria.hrefAll Technical criteria.URI1
qualityRules.hrefAll Quality RulesURI1
qualityDistributions.hrefAll Quality DistributionsURI1
qualityMeasures.hrefAll Quality MeasuresURI1
Sizing Model
Properties
Description
Type
Occurs
technicalSizeMeasures.hrefAll Technical Size MeasuresURI1
functionalWeightMeasures.hrefAll Functional Weight MeasuresURI1
criticalViolationStatistics.hrefAll Critical Violation StatisticsURI1
violationStatistics.hrefAll Violation StatisticsURI1
technicalDebtStatistics.hrefAll Technical Debt StatisticsURI1
runtimeStatistics.hrefAll Run-time StatisticsURI1


JSON Example

GET DEMO/configuration/snapshots/5/quality-indicators
{
	"businessCriteria": {
		"href": "DEMO/configuration/snapshots/5/business-criteria",
		"name": "All Business Criteria"
	},
	"technicalCriteria": {
		"href": "DEMO/configuration/snapshots/5/technical-criteria",
		"name": "All Technical Criteria"
	},
	"qualityRules": {
		"href": "DEMO/configuration/snapshots/5/quality-rules",
		"name": "All Quality Rules"
	},
	"qualityDistributions": {
		"href": "DEMO/configuration/snapshots/5/quality-distributions",
		"name": "All Quality Distributions"
	},
	"qualityMeasures": {
		"href": "DEMO/configuration/snapshots/5/quality-measures",
		"name": "All Quality Measures"
	}
}



Collection of Configuration Items

URI Templates 

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/business-criteria
        
Array of references to Quality Indicators definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/technical-criteria 
        
Array of references to Quality Indicators definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/quality-rules 
        
Array of references to Quality Indicators definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/quality-distributions 
        
Array of references to Quality Indicators definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/quality-measures 
        
Array of references to Quality Indicators definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/technical-size-measures 
        
Array of references to Sizing Measures definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/functional-weight-measures 
        
Array of references to Sizing Measures definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/critical-violation-statistics 
        
Array of references to Sizing Measures definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/violation-statistics 

Array of references to Sizing Measures definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/technical-debt-statistics 
        
Array of references to Sizing Measures definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/run-time-statistics 
        
Array of references to Sizing Measures definitions
GETapplication/json
          {Domain}/configuration/snapshots/{snapshotID}/background-facts
              
Array of references to Background Facts definitions



Business Criterion

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/quality-indicators/{metricID}/snapshots/{snapshotID}  
A snapshoted Quality Indicator definition

JSON Representation

PropertiesDescriptionTypeOccurs
hrefAuto referenceURI1
keyMetric IdString1
nameBusiness Criterion nameString1
descriptionMetric descriptionString0..1
typeTypeString1
annotationUser annotation describing this snapshotStructure1
annotation.versionAssessment point numberString1
annotation.dateApplication dateDate1
annotation.descriptionSnapshot descriptionString1
annotation.nameSnapshot nameString1
annotation.enhancementMeasureComputation mode of enhancement data. It has one of the following values : "EFP" or "AEP"String1
numberSnapshot order numberInteger1
gradeAggregatorsAn empty arrayArray1
gradeContributorsAn array of contributing Technical CriteriaArray1
gradeContributors[].hrefA contributing technical criteriaURI1
baseQualityIndicators.hrefReference to get an array of indirect contributing quality indicatorsURI1

JSON Example

GET DEMO/quality-indicators/66032/snapshots/5 (Business Criterion)
{
	"href": "DEMO/quality-indicators/66032/snapshots/5",
	"key": "66032",
	"name": "Architectural Design",
	"description": "Architectural Design",
	"type": "business-criteria",
	"annotation": {
		"version": "1.0",
		"date": {
			"time": 1338328800000
		},
		"description": null,
		"name": "GM_DRAS_201206180516",
		"enhancementMeasure": "EFP"
	},
	"number": 1,
	"gradeAggregators": [],
	"gradeContributors": [
		{
			"href": "DEMO/quality-indicators/66070/snapshots/5",
			"key": "66070",
			"name": "Architecture - Architecture Models Automated Checks",
			"weight": 1,
			"critical": false
		},...
	],
	"baseQualityIndicators": {
		"href": "DEMO/quality-indicators/66032/snapshots/5/base-quality-indicators",
		"name": "All indirect grade contributors"
	}
}



Technical Criterion

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/quality-indicators/{metricID}/snapshots/{snapshotID}  
A snapshoted Quality Indicator definition

JSON Representation

PropertiesDescriptionTypeOccurs
hrefAuto referenceURI1
nameQuality indicator nameString1
shortNameAbbreviationString0..1
numberSnapshot order numberInteger1
typeTypeString1
gradeAggregatorsIndicators depending on this indicatorArray0..1
gradeAggregators[].hrefGrade Aggregator referenceURI1
gradeAggregators[].nameGrade Aggregator nameString1
gradeAggregators[].keyGrade Aggregator keyString1
gradeContributors.hrefReference to get an array of contributing Quality IndicatorsURI1
rationaleTextString0..1
descriptionTexString0..1
snapshots.hrefReference to get history of this itemURI1
annotationUser annotation describing this snapshotStructure1
annotation.versionAssessment point numberString1
annotation.dateApplication dateDate1
annotation.descriptionSnapshot descriptionString1
annotation.nameSnapshot nameString1
annotation.enhancementMeasureComputation mode of enhancement data. It has one of the following values : "EFP" or "AEP"String1

JSON Example

GET DEMO/quality-indicators/61029/snapshots/5 (Technical Criterion)
{
	"href": "DEMO/quality-indicators/61029/snapshots/5",
	"key": "61029",
	"name": "Complexity - Dynamic Instantiation",
	"description": "Respect of practices regarding dynamic instantiation",
	"type": "technical-criteria",
	"annotation": {
		"version": "1.0",
		"date": {
			"time": 1338328800000
		},
		"description": null,
		"name": "GM_DRAS_201206180516",
		"enhancementMeasure": "EFP"
	},
	"number": 1,
	"gradeAggregators": [
		{
			"href": "DEMO/quality-indicators/60012/snapshots/5",
			"key": "60012",
			"name": "Changeability"
		},
		{
			"href": "DEMO/quality-indicators/60014/snapshots/5",
			"key": "60014",
			"name": "Efficiency "
		},...
	],
	"gradeContributors": [
		{
			"href": "DEMO/quality-indicators/2572/snapshots/5",
			"key": "2572",
			"name": "Avoid declaring VB Variables without typing them"
		},...
	]
}



Indirect Grade Contributors

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
          {Domain}/quality-indicators/{metricID}/snapshots/{snapshotID}/base-quality-indicators
        
Array of Indirect Contributing Quality Indicators

JSON Representation

PropertiesDescriptionTypeOccurs
hrefQuality Indicator referenceURI1
keyQuality Indicator keyString1
nameQuality Indicator nameString1
compoundedWeightA contributing weight of a quality indicator is the sum 
of all contributing path weights from the quality indicator to the business criterion.
A contributing path weight is the product: contributing weight from the quality indicator to the technical criterion x contributing weight of the technical criterion to the business criterion
Integer1
compoundedWeightFormulaExplicit formula used to calculate the compounded weight Ex: "(8x4)+(4x5)"String1
criticalBoolean if the quality indicator is critical for at least one technical criterionBoolean1

JSON Example

GET DEMO/quality-indicators/66032/snapshots/5/base-quality-indicators
[
	{
		"href": "DEMO/quality-indicators/7140/snapshots/5",
		"key": "7140",
		"name": "Action artifacts should not directly call a JSP page",
		"compoundedWeight": 3,
		"compoundedWeightFormula": "(1x3)",
		"critical": true
	},
	{
		"href": "DEMO/quality-indicators/7144/snapshots/5",
		"key": "7144",
		"name": "Action Artifacts should not directly use database objects",
		"compoundedWeight": 7,
		"compoundedWeightFormula": "(1x7)",
		"critical": true
	},...
]



Quality Rule

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/quality-indicators/{metricID}/snapshots/{snapshotID}  
A snapshoted Quality Indicator definition

JSON Representation

PropertiesDescriptionTypeOccurs
hrefAuto referenceURI1
nameQuality rule nameString1
shortNameAbbreviationString0..1
numberSnapshot order numberInteger1
typeTypeString1
rulePatternPatternURI1
gradeAggregatorsIndicators depending on this indicatorArray0..1
gradeAggregators[].hrefGrade Aggregator referenceURI1
gradeAggregators[].nameGrade Aggregator nameString1
gradeAggregators[].keyGrade Aggregator keyString1
gradeSettings.thresholdsThresholds used in grade formula to transform a quality rule compliance ratio into a grade. Array1
gradeSettings
.thresholds[ ]
A percentage thresholdInteger4
snapshots.hrefReference to get history of this itemURI1
annotationUser annotation describing this snapshotStructure1
annotation.versionAssessment point numberString1
annotation.dateApplication dateDate1
annotation.descriptionSnapshot descriptionString1
annotation.nameSnapshot nameString1
annotation.enhancementMeasureComputation mode of enhancement data. It has one of the following values : "EFP" or "AEP"String1
parameters[ ]
Array1
parameters[ ].nameParameter name; a threshold to distribute objects into categoriesString1
parameters[ ].technologyApplicable technologyString1
parameters[ ].valueThe threshold valueNumber or String1

JSON Example

GET DEMO/quality-indicators/7298/snapshots/5 (Quality Rule)
{
	"href": "DEMO/quality-indicators/7298/snapshots/5",
	"key": "7298",
	"name": "A class that has pointer data members must provide a copy constructor",
	"description": "The report list...",
	"type": "quality-rules",
	"annotation": {
		"version": "1.0",
		"date": {
			"time": 1338328800000
		},
		"description": null,
		"name": "GM_DRAS_201206180516",
		"enhancementMeasure": "EFP"
	},
	"number": 1,
	"gradeAggregators": [
		{
			"href": "DEMO/quality-indicators/66069/snapshots/5",
			"key": "66069",
			"name": "Programming Practices - Unexpected Behavior"
		}
	],
	"gradeContributors": [],
	"thresholds": [
		98,
		99,
		99.5,
		99.99
	],
	"rulePattern": {
		"href": "DEMO/rule-patterns/7298",
		"name": "A class that has pointer data members must provide a copy constructor"
	},
	"parameters": [
        {
            "name": "Maximum Line Count",
            "technology": "HTML5",
            "value": 100
        },
        {
            "name": "Maximum Line Count",
            "technology": "JEE",
            "value": 100
        },
        {
            "name": "Maximum Line Count",
            "technology": "PL/SQL",
            "value": 50
        }
    ]
}



Quality Distribution

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/quality-indicators/{metricID}/snapshots/{snapshotID}  
A snapshoted Quality Indicator definition

JSON Representation

PropertiesDescriptionTypeOccurs
hrefAuto referenceURI1
nameQuality rule nameString1
shortNameAbbreviationString0..1
numberSnapshot order numberInteger1
typeTypeString1
distributionPatternPatternURI1
gradeAggregatorsIndicators depending on this indicatorArray0..1
gradeAggregators[].hrefGrade Aggregator referenceURI1
gradeAggregators[].nameGrade Aggregator nameString1
gradeAggregators[].keyGrade Aggregator keyString1
gradeSettings.categories4 ordered categoriesArray1
gradeSettings.
categories[ ]
A category (a distribution slot)Structure0..*
gradeSettings.
categories[ ].
name
Category nameString1
gradeSettings.
categories[ ].
thresholds
4 thresholdsArray1
gradeSettings.
categories[ ].
thresholds[ ]
A thresholds used in grade formula to transform a category measure into a category gradeDouble0..4
snapshots.hrefReference to get history of this itemURI1
annotationUser annotation describing this snapshotStructure1
annotation.versionAssessment point numberString1
annotation.dateApplication dateDate1
annotation.descriptionSnapshot descriptionString1
annotation.nameSnapshot nameString1
annotation.enhancementMeasureComputation mode of enhancement data. It has one of the following values : "EFP" or "AEP"String1
parameters[ ]-Array1
parameters[ ].nameParameter name; a threshold to distribute objects into catageroriesString1
parameters[ ].technologyApplicable technologyString1
parameters[ ].valueThe threshold valueNumber1

JSON Example

GET DEMO/quality-indicators/65601/snapshots/5 (Quality Distribution)
{
	"href": "DEMO/quality-indicators/65601/snapshots/5",
	"key": "65601",
	"name": "4GL Complexity Distribution",
	"description": "Distribution of Forms regarding their complexity",
	"type": "quality-distributions",
	"annotation": {
		"version": "1.0",
		"date": {
			"time": 1338328800000
		},
		"description": null,
		"name": "GM_DRAS_201206180516",
		"enhancementMeasure": "EFP"
	},
	"number": 1,
	"gradeAggregators": [
		{
			"href": "DEMO/quality-indicators/61009/snapshots/5",
			"key": "61009",
			"name": "Complexity - Algorithmic and Control Structure Complexity"
		},
		{
			"href": "DEMO/quality-indicators/61026/snapshots/5",
			"key": "61026",
			"name": "Complexity - Technical Complexity"
		}
	],
	"gradeContributors": [],
	"categories": [
		{
			"name": "Very High 4GL Complexity Forms",
			"thresholds": [
				5,
				4,
				2,
				0
			]
		},...
	],
	"distributionPattern": {
		"href": "DEMO/distribution-patterns/65601",
		"name": "4GL Complexity Distribution"
	},
	"parameters": [
		{
			"name": "Heavy Forms threshold",
			"technology": ".Net",
			"value": 20
		},
		{
			"name": "Heavy Forms threshold",
			"technology": "C#",
			"value": 20
		},
        ...
    ]
}



Quality Measure

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/quality-indicators/{metricID}/snapshots/{snapshotID}  
A snapshoted Quality Indicator definition

JSON Representation

PropertiesDescriptionTypeOccurs
hrefAuto referenceURI1
nameQuality rule nameString1
shortNameAbbreviationString0..1
numberSnapshot order numberInteger1
typeTypeString1
measurePatternPatternURI1
gradeAggregatorsIndicators depending on this indicatorArray0..1
gradeAggregators[].hrefGrade Aggregator referenceURI1
gradeAggregators[].nameGrade Aggregator nameString1
gradeAggregators[].keyGrade Aggregator keyString1
snapshots.hrefReference to get history of this itemURI1
annotationUser annotation describing this snapshotStructure1
annotation.versionAssessment point numberString1
annotation.dateApplication dateDate1
annotation.descriptionSnapshot descriptionString1
annotation.nameSnapshot nameString1
annotation.enhancementMeasureComputation mode of enhancement data. It has one of the following values : "EFP" or "AEP"String1

JSON Example

DEMO/quality-indicators/66067/snapshots/5 (Quality Measure)
{
	"href": "DEMO/quality-indicators/66067/snapshots/5",
	"key": "66067",
	"name": "Avoid High Volume of Copy Pasted Code",
	"description": "This metric is based...",
	"type": "quality-measures",
	"annotation": {
		"version": "1.0",
		"date": {
			"time": 1338328800000
		},
		"description": null,
		"name": "GM_DRAS_201206180516",
		"enhancementMeasure": "EFP"
	},
	"number": 1,
	"gradeAggregators": [
		{
			"href": "DEMO/quality-indicators/66009/snapshots/5",
			"key": "66009",
			"name": "Architecture - Reuse"
		}
	],
	"gradeContributors": [],
	"measurePattern": {
		"href": "DEMO/measure-patterns/66067",
		"name": "Avoid High Volume of Copy Pasted Code"
	}
}



Sizing Measure

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/sizing-measures/{metricID}/snapshots/{snapshotID}  
A snapshoted Sizing Measure definition


JSON Representation

Properties
Description
Type
Occurs
hrefAuto referenceURI1
nameQuality rule nameString1
descriptionTextString1
typeTypeString1
annotationUser annotation describing this snapshotStructure1
annotation.dateSnapshot dateDate1
annotation.versionAssessment version numberString1
annotation.descriptionSnapshot descriptionString1
annotation.nameSnapshot nameString1
annotation.enhancementMeasureComputation mode of enhancement data. It has one of the following values : "EFP" or "AEP"String1
numberSnapshot order numberInteger1

JSON Example

GET DEMO/sizing-measures/68001/snapshots/5
{
	"href": "DEMO/sizing-measures/68001/snapshots/5",
	"key": "68001",
	"name": "Technical Debt",
	"description": "Technical Debt estimates...",
	"type": "technical-debt-statistics",
	"annotation": {
		"version": "1.0",
		"date": {
			"time": 1338328800000
		},
		"description": null,
		"name": "GM_DRAS_201206180516",
		"enhancementMeasure": "EFP"
	},
	"number": 1,
}



Background Fact

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/background-facts/{metricID}/snapshots/{snapshotID}
        
A snapshoted Background Fact definition


JSON Representation

Properties
Description
Type
Occurs
hrefAuto referenceURI1
nameQuality rule nameString1
shortNameAbbreviationString0..1
numberSnapshot order numberInteger1
type Always "background-facts"String1
descriptionTextString0..1
snapshots.hrefReference to get history of this itemURI1
annotationUser annotation describing this snapshotStructure1
annotation.versionAssessment point version numberString1
annotation.dateApplication dateDate1
annotation.descriptionSnapshot descriptionString1
annotation.nameSnapshot nameString1
annotation.enhancementMeasureComputation mode of enhancement data. It has one of the following values : "EFP" or "AEP"String1

JSON Example

GET DEMO/background-facts/66061/snapshots/5
{
	"href": "DEMO/background-facts/66061/snapshots/5",
	"key": "66061",
	"name": "Business Value",
	"description": "description",
	"type": "background-facts",
	"annotation": {
		"version": "1.0",
		"date": {
			"time": 1338328800000
		},
		"description": null,
		"name": "GM_DRAS_201206180516",
		"enhancementMeasure": "EFP"
	},
	"number": 1,
}



Rule Pattern

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/rule-patterns/{metricID}
        
A Rule Pattern definition

JSON Representation

Properties
Description
Type
Occurs
hrefAuto referenceURI1
namePattern nameString1
keyPattern public identifierString1
rationaleTextString1
descriptionTextString1
remediationTextString1
referenceText: External referenceString0..1
sampleText: Code snippet of a bad practiceString0..1
remediationSampleText: Code snippet of a remediationString0..1
outputDiagnosis findings reportString0..1
associatedValueNameDiagnosis findings nameString0..1
totalText: definition of the tested componentsString0..1
technologiesApplicable technologiesArray1
technologies[ ]An applicable technologyString1..*
qualityStandardsQuality Standard ReferencesArray1
qualityStandards[ ]A Quality Standard ReferenceStruct0..1
qualityStandards[ ].standardQuality Standard nameString1
qualityStandards[ ].idQuality Standard reference IDString1
qualityStandards[ ].referenceURL to get an external documentationString1
qualityStandards[ ].descriptionRESERVEDString1

JSON Example

GET DEMO/rule-patterns/7298
{
	"href": "DEMO/rule-patterns/7298",
	"key": "7298",
	"name": "A class that has pointer data members must provide a copy constructor",
	"description": "The report list all...",
	"technologies": [
		"C++"
	],
	"rationale": "If you don't define a copy constructor...",
	"reference": null,
	"remediation": "Define a copy constructor to properly manage pointer data members.",
	"output": null,
	"associatedValueName": null,
	"total": null,
	"sample": "class MyClass {\n   char * apointermember;\n};",
	"remediationSample": "class MyClass...",
    "qualityStandards": [
        {
        	"standard": "CISQ"
            "id": "ASCMM-MNT-15"
            "name": "Public Member Element"
            "reference": null
            "description": null
        }
    ]
}



Distribution Pattern

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/distribution-patterns/{metricID}
        
A Distribution Pattern definition

JSON Representation

Properties
Description
Type
Occurs
hrefAuto referenceURI1
namePattern nameString1
keyPattern public identifierString1
rationaleTextString1
descriptionTextString1
remediationTextString1
referenceText: External referenceString0..1
outputDiagnosis findings reportString0..1
associatedValueNameDiagnosis findings nameString0..1
technologiesApplicable technologiesArray1
technologies[ ]An applicable technologyString1..*

JSON Example

GET DEMO/distribution-patterns/65601
{
	"href": "DEMO/distribution-patterns/65601",
	"key": "65601",
	"name": "4GL Complexity Distribution",
	"description": "Distribution of Forms regarding their complexity",
	"technologies": [],
	"rationale": null,
	"reference": null,
	"remediation": null,
	"output": null,
	"associatedValueName": null
}



Measure Pattern

URI Templates

HTTP ActionMedia TypeURI TemplatesDescription
GETapplication/json
{Domain}/measure-patterns/{metricID}
        
A Measure Pattern definition

JSON Representation

Properties
Description
Type
Occurs
hrefAuto referenceURI1
namePattern nameString1
keyPattern public identifierString1
rationaleTextString1
descriptionTextString1
remediationTextString1
referenceText: External referenceString0..1
outputdeprecated String0..1
associatedValueNameDiagnosis findings nameString0..1
totalText: definition of the tested componentsString0..1
technologiesApplicable technologiesArray1
technologies[ ]An applicable technologyString1..*

JSON Example

GET DEMO/measure-patterns/66067
{
	"href": "DEMO/measure-patterns/66067",
	"key": "66067",
	"name": "Avoid High Volume of Copy Pasted Code",
	"description": "This metric is based on the ratio...",
	"technologies": [],
	"rationale": "A program with a lot of duplication...",
	"reference": null,
	"remediation": null,
	"output": null,
	"associatedValueName": null,
	"total": "Artifacts larger than 10 lines of code ( default value of the CODELINE parameter ) "
}