This is an archived version of the documentation for SonarQube-7.3.
See the Latest Documentation for current functionality.

Concepts

Table of Contents

Architecture

Concept

Definition

Related Topics

Analyzer

A client application that analyzes the source code to compute snapshots.

See the SonarQube Platform Overview.

Database

Stores:

  • configuration

  • snapshots

See the SonarQube Platform Overview.

Server

Web interface that is used to browse snapshot data and make configuration changes

See the SonarQube Platform Overview.

Quality

Concept

Definition

Related Topics

Bug

An issue that represents something wrong in the code. If this has not broken yet, it will, and probably at the worst possible moment. This needs to be fixed. Yesterday.

Check

Check = Coding Rule.

Code Smell

A maintainability-related issue in the code. Leaving it as-is means that at best maintainers will have a harder time than they should making changes to the code. At worst, they'll be so confused by the state of the code that they'll introduce additional errors as they make changes.

Coding Rule

A good coding practice. Not complying to coding rules leads to quality flaws and creation of issues in SonarQube.

Coding rules can check quality on files, unit tests or packages.

See Viewing Unit Tests > Issues Perspective

Component

A piece of software (project, module/package, file) or a view or a developer.

Cost

See Remediation Cost

Debt

See Technical Debt

Issue

When a component does not comply with a coding rule, an issue is logged (was violation prior to SonarQube 3.6) on the snapshot.

An issue can be logged on a source file or a unit test file. There are 3 types of issue:

  • Code Smell : an issue affecting your maintainability rating, preventing you to inject changes as fast as when you start from scratch

  • Bug : an issue highlighting a real or potential point of failure in your software

  • Vulnerability : an issue highlighting a security hole that can be used to attack your software

Leak Period

The period for which you're keeping a close watch on the introduction of new problems in the code. Typically this is since the previous_version, but if you don't use a Maven-like versioning scheme you may need to set a relatively arbitrary time period such as 21 days or since a specific date.

Measure

The value of a metric for a given component at a given time.

Examples:

  • 125 lines of code on class MyClass

  • Density of duplicated lines of 30.5% on project myProject

Metric

A type of measurement. Metrics can have varying values, or measures , over time. Examples: number of lines of code, complexity, etc.

A metric may be either:

  • qualitative: gives a quality indication on the component (ex: density of duplicated lines, line coverage by tests, etc.)

  • or quantitative: does not give a quality indication on the component(ex: number of lines of code, complexity, etc.)

See detailed documentation on metrics.

Non-functional requirement

Non-functional requirement = coding rule

Quality Profile

A set of coding rules.

Each snapshot is based on a single quality profile.

See Quality Profiles.

Remediation Cost

The estimated time required to fix Vulnerability and Reliability Issues.

Snapshot

A set of measures and issues on a given component at a given time.

A snapshot is generated for each analysis.

Security Hotspot

A security-related issue highlighting a piece of code that uses a security-sensitive API (ex: use of a weak algorithm, connection to a database without a password, ...). Security hotspots must be reviewed by a security auditor who may determine that the APIs are used in ways that introduce Vulnerabilities.

See Security Audit and Reports.

Technical Debt

The estimated time required to fix all Maintainability Issues / code smells

Vulnerability

A security-related issue which represents a backdoor for attackers. See also Security-related rules.