Preface

© 2021 Vector Informatik GmbH - All rights reserved - https://www.vector.com/ - This material may not be reproduced, displayed, modified or distributed without the express prior written permission of the copyright holder. Squore is protected by an Interdeposit Certification registered with Agence pour la Protection des Programmes under the Inter Deposit Digital Number IDDN.FR.001.390035.001.S.P.2013.000.10600.

Foreword

This edition of the Reference Manual was released by Vector Informatik GmbH.

It is part of the user documentation of the Squore software product edited and distributed by Vector Informatik GmbH.

For information on how to use and configure Squore, the full suite of manuals includes:

User Manual

Target Audience

Squore Installation Checklist

New users before their first installation

Squore Installation and Administration Guide

IT personnel and Squore administrators

Squore Getting Started Guide

End users, new users wanting to discover Squore features

Squore Command Line Interface

Continuous Integration Managers

Squore Configuration Guide

Squore configuration maintainers, Quality Assurance personnel

Squore Eclipse Plugin Guide

Eclipse IDE users

Squore Reference Manual

End Users, Squore configuration maintainers

Squore API Guide

End Users, Continuous Integration Managers

Squore GroovyDoc

End Users, Squore configuration maintainers

Squore Software Analytics Handbook

End Users, Quality Assurance personnel

Licence

No part of this publication may be reproduced, transmitted, stored in a retrieval system, nor translated into any human or computer language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical, manual or otherwise, without the prior written permission of the copyright owner, Vector Informatik GmbH. Vector Informatik GmbH reserves the right to revise this publication and to make changes from time to time without obligation to notify authorised users of such changes. Consult Vector Informatik GmbH to determine whether any such changes have been made. The terms and conditions governing the licensing of Vector Informatik GmbH software consist solely of those set forth in the written contracts between Vector Informatik GmbH and its customers. All third-party products are trademarks or registered trademarks of their respective companies.

Warranty

Vector Informatik GmbH makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Vector Informatik GmbH shall not be liable for errors contained herein nor for incidental or consequential damages in connection with the furnishing, performance or use of this material.

This edition of the Reference Manual applies to Squore 21.1.0 and to all subsequent releases and modifications until otherwise indicated in new editions.

Responsabilities

Approval of this version of the document and any further updates are the responsibility of Vector Informatik GmbH.

Contacting Vector Informatik GmbH Product Support

If the information provided in this manual is erroneous or inaccurate, or if you encounter problems during your installation, contact Vector Informatik GmbH Product Support: https://portal.vector.com/

You will need a valid customer account to submit a support request. You can create an account on the support website if you do not have one already.

For any communication:

  • support@vector.com

  • Vector Informatik GmbH Product Support

    Vector Informatik GmbH - Holderäckerstr. 36 / 70499 Stuttgart - Germany

Getting the Latest Version of this Manual

The version of this manual included in your Squore installation may have been updated. If you would like to check for updated user guides, consult the Vector Informatik GmbH documentation site to consult or download the latest Squore manuals at https://support.squoring.com/documentation/latest. Manuals are constantly updated and published as soon as they are available.

1. Introduction

The Reference Manual provides a complete reference for the metrics, glossary and standards used in Squore 21.1.0.

This manual is intended for Squore administrators and end-users. It gives useful information about the technical background of Squore and important knowledge basis to understand what is measured and how.

2. Coding Standards

This chapter describes the list of metrics and rules for each language supported by &squan_sources;. Note that this is not the complete list of metrics and rules in Squore, only the ones generated by our source code parser. Some of the rules may also be disabled by default in your configuration. For more information about your analysis model, consult Squore’s Model Viewer and Analysis Model Editor, which provide more information about each metric and rule.

ABAP

ABAP Metrics

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Number of Check instruction

  • Mnemonic CHECK

  • Description Number of Check instruction

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Public Constant

  • Mnemonic CPBL

  • Description Public Constant

Protected Constant

  • Mnemonic CPRT

  • Description Protected Constant

Private Constant

  • Mnemonic CPRV

  • Description Private Constant

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Call to exit

  • Mnemonic EXIT

  • Description Number of calls to the exit function

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

File Type Count

  • Mnemonic FTYP

  • Description File Type Count

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

ABAP Ruleset

Avoid using APPEND statements in loops

  • Mnemonic AVOIDAPPENDINLOOP

  • Description Avoid using COMMIT WORK statements in loops.

Avoid using APPEND in SQL SELECT statements

  • Mnemonic AVOIDAPPENDINSELECT

  • Description Avoid using APPEND in SQL SELECT statements.

Avoid using BREAK-POINT

  • Mnemonic AVOIDBREAKPOINT

  • Description Avoid using BREAK-POINT

Avoid using CHECK in SQL SELECT statements

  • Mnemonic AVOIDCHECKINSELECT

  • Description Avoid using CHECK in SQL SELECT statements

Avoid using COMMIT WORK statements in loops

  • Mnemonic AVOIDCOMMITWORKINLOOP

  • Description Avoid using COMMIT WORK statements in loops.

Avoid obsolete DATA BEGIN OF OCCURS statement

  • Mnemonic AVOIDDATAOCCURS

  • Description Avoid obsolete DATA BEGIN OF OCCURS statement

Avoid using INSERT statements in loops

  • Mnemonic AVOIDINSERTINLOOP

  • Description Avoid using INSERT statements in loops. Querying in a loop can lead to performance issues.

Avoid using INSERT in SQL SELECT statements

  • Mnemonic AVOIDINSERTINSELECT

  • Description Avoid using INSERT in SQL SELECT statements

Avoid using SQL INTO statements in loops

  • Mnemonic AVOIDINTOINLOOP

  • Description Avoid using SQL INTO statements in loops.

Avoid using SELECT *

  • Mnemonic AVOIDSELECTALL

  • Description SELECT * should be avoided as it does not enable to keep control on the flow return and could therefore be error prone and potentially lead to performance issues.

Avoid using the SQL "BYPASSING BUFFER" clause

  • Mnemonic AVOIDSELECTBYPASS

  • Description The BYPASSING BUFFER clause causes the SELECT statement to avoid the SAP buffering and to read directly from the database and not from the buffer on the application server.

Avoid using SELECT DISTINCT Statement

  • Mnemonic AVOIDSELECTDISTINCT

  • Description The SQL DISTINCT clause causes the SELECT statement to avoid the SAP buffering and to read directly from the database and not from the buffer on the application server.

Avoid SELECT SQL statement without a WHERE clause

  • Mnemonic AVOIDSELECTNOWHERE

  • Description Avoid SELECT SQL statement without a WHERE clause

Avoid SELECT SQL statement with a WHERE clause containing the NOT EQUAL operator

  • Mnemonic AVOIDSELECTWHERENOTEQ

  • Description Avoid SELECT SQL statement with a WHERE clause containing the NOT EQUAL operator.

Avoid using SQL Aggregate Functions

  • Mnemonic AVOIDSQLAGGREGATEFUNC

  • Description SQL COUNT(..) , MIN(..), MAX(..), SUM(..), AVG(..) functions cause the SAP table buffer to be bypassed and so usage of such functions can lead to some performance issues.

Avoid using SUBMIT statements in loops

  • Mnemonic AVOIDSUBMITINLOOP

  • Description Avoid using SUBMIT statements in loops.

Avoid using UPDATE, MODIFY, DELETE statements in loops

  • Mnemonic AVOIDUPDELINLOOP

  • Description Avoid using UPDATE, MODIFY, DELETE statements in loops. Querying in a loop can lead to performance issues.

Avoid UPDATE or DELETE SQL Statement without a WHERE clause

  • Mnemonic AVOIDUPDELNOWHERE

  • Description Avoid UPDATE or DELETE SQL Statement without a WHERE clause

Avoid using GROUP BY in queries

  • Mnemonic AVOIDUSINGSQLGROUPBY

  • Description Using GROUP BY in SQL queries can lead to performance issues.

Avoid using the JOIN SQL clause

  • Mnemonic AVOIDUSINGSQLJOIN

  • Description Using the SQL JOIN clause leads to bypass the SAP table buffer.

Avoid using LIKE in SQL queries

  • Mnemonic AVOIDUSINGSQLLIKE

  • Description Using LIKE in SQL queries can lead to performance issues.

Avoid using the WAIT statement

  • Mnemonic AVOIDWAIT

  • Description Avoid using the WAIT statement.

The class name should conform to the defined standard

  • Mnemonic CLASSNAMINGCONVENTION

  • Description The class name should conform to the defined standard

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Forbid call to a system function

  • Mnemonic FORBIDCALLCFUNC

  • Description Call of a System Function: CALL 'cfunc' is only intended for internal usage. Incompatible changes and further development is possible at any time and without warning or notice.

Forbid calls to dialog transactions

  • Mnemonic FORBIDCALLDIALTRANS

  • Description Forbid calls to dialog transactions.

Forbid use of GENERATE REPORT / SUBROUTINE POOL / DYNPRO

  • Mnemonic FORBIDGENERATEPROG

  • Description This statement is exclusively for internal use within SAP Technology Development. Incompatible changes or developments are possible at any time without prior warning or notes.

Forbid calls to GET RUN TIME.

  • Mnemonic FORBIDGETRUNTIME

  • Description Forbid calls to GET RUN TIME.

Forbid use of INSERT/DELETE REPORT/TEXTPOOL

  • Mnemonic FORBIDINSERTPROG

  • Description This statement is exclusively for internal use within SAP Technology Development. Incompatible changes or developments are possible at any time without prior warning or notice.

Forbid uses of OFFSET in ASSIGN

  • Mnemonic FORBIDOFFSETINASSIGN

  • Description Forbid uses of OFFSET in ASSIGN.

Forbid use of SYSTEM-CALL

  • Mnemonic FORBIDSYSTEMCALL

  • Description This statement is only for !Internal use in SAP Basis development!. Its use is subject to various restrictions, not all of which may be listed in the documentation. Changes and further development, which may be incompatible, may occur at any time, without warning or notice!

The form name should conform to the defined standard

  • Mnemonic FORMNAMINGCONVENTION

  • Description The form name should conform to the defined standard

The function name should conform to the defined standard

  • Mnemonic FUNCTIONNAMINGCONVENTION

  • Description The function name should conform to the defined standard

Avoid calling a function module without handling exceptions

  • Mnemonic HANDLEERRORCALLFUNC

  • Description Handling the exceptions when calling a function module is optional but should be mandatory to correctly handle errors in production.

The macro name should conform to the defined standard

  • Mnemonic MACRONAMINGCONVENTION

  • Description The macro name should conform to the defined standard

The method name should conform to the defined standard

  • Mnemonic METHODNAMINGCONVENTION

  • Description The method name should conform to the defined standard

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Do not use "Native SQL" instructions

  • Mnemonic NONATIVESQL

  • Description Native SQL should not be used.

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Prevent use of EDITOR-CALLS

  • Mnemonic PREVENTEDITORCALL

  • Description This statement bypasses the authority checks that are performed when calling the ABAP editor via transaction code.

The program or report name should conform to the defined standard

  • Mnemonic PROGREPORTNAMINGCONVENTION

  • Description The program or report name should conform to the defined standard

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

ADA

ADA Metrics

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Declare operators

  • Mnemonic DECBL

  • Description Number of Declare operators

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Entry Statements

  • Mnemonic ENTRY

  • Description Number of Entry statements

Exception When blocks

  • Mnemonic EXBL

  • Description Number of 'when' blocks in 'exception handler'.

Exception handlers

  • Mnemonic EXGR

  • Description Number of Exception handlers

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Generic object

  • Mnemonic ISGEN

  • Description The object is declared generic

Label Statements

  • Mnemonic LABEL

  • Description Number of Label statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

AND operators

  • Mnemonic NBAND

  • Description Number of AND operators

Constants

  • Mnemonic NBCONST

  • Description Number of Constants

Private constant

  • Mnemonic NBCONSTPRIV

  • Description Number of Private constants

Public constants

  • Mnemonic NBCONSTPUB

  • Description Number of Public constants

Declared functions

  • Mnemonic NBDFUNC

  • Description Number of Declared functions/procedures

Private functions/Procedures

  • Mnemonic NBDFUNCPRIV

  • Description Number of Private function/Procedure

Public functions

  • Mnemonic NBDFUNCPUB

  • Description Number of Public functions/procedures

Exceptions

  • Mnemonic NBEXCEPT

  • Description Number of Declared Exceptions

Private exceptions

  • Mnemonic NBEXCEPTPRIV

  • Description Number of Private exceptions

Public exceptions

  • Mnemonic NBEXCEPTPUB

  • Description Number of Public exceptions

Separate functions/procedures

  • Mnemonic NBFUNCDSEP

  • Description Number of Separate functions/procedures

OR operators

  • Mnemonic NBOR

  • Description Number of OR operators

Separate packages

  • Mnemonic NBPACKDSEP

  • Description Number of package declared Separate

Protected objects

  • Mnemonic NBPROTOBJDSEP

  • Description Number of Declred Protected objects

Renamed objects

  • Mnemonic NBRENA

  • Description Number of Renamed object

Subtypes

  • Mnemonic NBSTYP

  • Description Number of Subtypes

Separate tasks

  • Mnemonic NBTASKDSEP

  • Description Number of task declared Separate

Types

  • Mnemonic NBTYP

  • Description Number of Types

Derived types

  • Mnemonic NBTYPDRV

  • Description Number of Derived types

Private types

  • Mnemonic NBTYPPRIV

  • Description Number of Private types

Public types

  • Mnemonic NBTYPPUB

  • Description Number of Public types

Variables

  • Mnemonic NBVAR

  • Description Number of Variables

Private variables

  • Mnemonic NBVARPRIV

  • Description Number of Private variables

Public variables

  • Mnemonic NBVARPUB

  • Description Number of Public variables

With statements

  • Mnemonic NBWITH

  • Description Number of With statements

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Raise statements

  • Mnemonic RAISE

  • Description Number of Raise statementts

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

ADA Ruleset

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Exit Label shall be named

  • Mnemonic EXTLABEL

  • Description Each exit label shall be named.

Use 'exit when' instead of if…​ exit syntax

  • Mnemonic EXTWHEN

  • Description Use 'exit when' instead of if…​ exit syntax.

Each loop shall be named

  • Mnemonic LOOPNAMED

  • Description Each loop shall be named.

Abort shall not be used

  • Mnemonic NOABORT

  • Description Use of 'abort'

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Delay shall not be used

  • Mnemonic NODELAY

  • Description Use of 'delay'

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

There shall be no 'when others' in exception handler

  • Mnemonic NOWHEN_OTHERS

  • Description There shall be no 'when others' in exception handler.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Parameters shall be ordered: 'IN', 'OUT', 'IN OUT'.

  • Mnemonic PARAMORDER

  • Description Parameters shall be ordered: 'IN', 'OUT', 'IN OUT'.

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Multiple Exit in loop

  • Mnemonic SGLEXT

  • Description There shall be a single exit by loop.

©

C

C Metrics

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Assignment Operators

  • Mnemonic ASOP

  • Description Number of assignment operators used in the source file

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Calls To

  • Mnemonic CAL2

  • Description Number of explicit calls to the function.

Called Functions

  • Mnemonic CALD

  • Description Number of distinct functions defined in the project source file and called by the function.

Calls From

  • Mnemonic CALF

  • Description Number of explicit calls from the function.

Calling Functions

  • Mnemonic CALI

  • Description Number of distinct functions calling the function.

Called External Functions

  • Mnemonic CALX

  • Description Number of distinct external functions called by the function - external i.e. not defined in the project

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Recursive Calls

  • Mnemonic CDRI

  • Description Number of directly recursive calls in the function.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Called Depth

  • Mnemonic CGDD

  • Description Maximum depth of called functions.

Calling Depth

  • Mnemonic CGDI

  • Description Maximum depth of calling functions.

Call Graph Depth

  • Mnemonic CGDM

  • Description Maximum depth of the call graph.

Minimum Number of Indirect Cycles

  • Mnemonic CIRI

  • Description Minimum number of indirect call graph cycles in which the function is involved (excluding recursive calls).

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Comparison Operators

  • Mnemonic CPOP

  • Description Number of comparison operators used in the source file

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Minimum Number of Cycles

  • Mnemonic CYCL

  • Description Minimum number of call graph cycles in which the function is involved (including recursivity).

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Use of longjump

  • Mnemonic LONGJMP

  • Description Use of longjump

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Memory Allocation

  • Mnemonic MEMALLOC

  • Description Memory Allocation

Memory Freeing

  • Mnemonic MEMFREE

  • Description Memory Freeing

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Use of offsetof

  • Mnemonic OFFSETOF

  • Description Use of offsetof

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Number of #DEFINE

  • Mnemonic P_DEFINE

  • Description Number of #DEFINE

Number of #ELIF

  • Mnemonic P_ELIF

  • Description Number of #ELIF

Number of #ELSE

  • Mnemonic P_ELSE

  • Description Number of #ELSE

Number of #ENDIF

  • Mnemonic P_ENDIF

  • Description Number of #ENDIF

Number of #ERROR

  • Mnemonic P_ERROR

  • Description Number of #ERROR

Number of #IF

  • Mnemonic P_IF

  • Description Number of #IF

Number of #IFDEF

  • Mnemonic P_IFDEF

  • Description Number of #IFDEF

Number of #IFNDEF

  • Mnemonic P_IFNDEF

  • Description Number of #IFNDEF

Number of Include

  • Mnemonic P_INCLUDE

  • Description Number of Include

Compiler FLAG Nested Level

  • Mnemonic P_NEST

  • Description Compiler FLAG Nested Level

Number of #PRAGMA

  • Mnemonic P_PRAGMA

  • Description Number of #PRAGMA

Number of #UNDEF

  • Mnemonic P_UNDEF

  • Description Number of #UNDEF

Number of #WARNING

  • Mnemonic P_WARNING

  • Description Number of #WARNING

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Use of setjump

  • Mnemonic SETJMP

  • Description Use of setjump

Signal Functions

  • Mnemonic SIGNAL

  • Description Use of signal Functions

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Special Operators

  • Mnemonic SPOP

  • Description Number of special operators used in the source file

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

IO Functions

  • Mnemonic STDIO

  • Description Use IO Functions

String Conversions

  • Mnemonic STRINGCONV

  • Description Use of String Conversions

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

System Functions

  • Mnemonic SYSCOM

  • Description Use of system Functions

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Time Handling

  • Mnemonic TIMEHDL

  • Description Use of Time Handling

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

C Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Dynamic Memory Allocation shall not be used

  • Mnemonic DYNMEMALLOC

  • Description Dynamic heap memory allocation shall not used. This precludes the use of the functions calloc, malloc, realloc and free (see [MISRA-C:2004]: RULE 20.4)

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Macro longjmp or setjmp shall not be used

  • Mnemonic JUMP

  • Description (The setjmp macro and the longjmp function shall not be used (see [MISRA-C:2004]: RULE 20.7).

Nesting Level of Preprocessing directives is too high

  • Mnemonic R_MAXPNEST

  • Description Nesting Level of Preprocessing directives is too high

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Recursion are not allowed

  • Mnemonic NORECURSION

  • Description Functions shall not called themselves either directly or indirectly (see [MISRA-C:2004]: RULE 16.2).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Macro offsetof shall not be used

  • Mnemonic OFFSETOF

  • Description The macro offsetof, in library <stddef.h>, shall not be used (see [MISRA-C:2004]: RULE 20.6).

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

Signal or Raise shall not be used

  • Mnemonic SIGNAL

  • Description The signal handling facilities of <signal.h> shall not be used (see [MISRA-C:2004]: RULE 20.8).

IO Functions shall not be used

  • Mnemonic STDIO

  • Description The input/output library <stdio.h> shall not be used in production code (see [MISRA-C:2004]: RULE 20.9).

'atof, atoi or atol' shall not be used

  • Mnemonic STRINGCONV

  • Description The library functions atof, atoi and atol from library <stdlib.h> shall not be used (see [MISRA-C:2004]: RULE 20.10).

'abort, exit, getenv or system' shall not be used

  • Mnemonic SYSCOM

  • Description The library functions abort, exit, getenv and system from library <stdlib.h> shall not be used (see [MISRA-C:2004]: RULE 20.11).

Time Handling Functions shall not be used

  • Mnemonic TIMEHDL

  • Description The time handling functions of library <time.h> shall not be used: time, strftime, clock, difftime, mktime (see [MISRA-C:2004]: RULE 20.12).

COBOL

COBOL Metrics

Arithmetic Operators

  • Mnemonic AROP

  • Description Number of arithmetic operators

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

CALL Statements

  • Mnemonic CALL

  • Description Number of CALL statements

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Comment lines with code

  • Mnemonic CLOC_CODE

  • Description Number of lines of comments in the source file(s) whose first word is a keyword.

Comment lines without alphabetic characters

  • Mnemonic CLOC_NULL

  • Description Number of lines of comments in the source file(s) without alphabetic character.

Real comment lines with alphabetic characters

  • Mnemonic CLOC_REAL

  • Description Number of real lines of comments in the source file(s) with alphabetic characters.

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Conditions

  • Mnemonic COND

  • Description Number of conditions

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Debug lines

  • Mnemonic DBUG

  • Description Number of lines of debug in the source file(s).

DISPLAY statements

  • Mnemonic DISPLAY

  • Description Number of DISPLAY statements

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operands in Data Div.

  • Mnemonic DOPD_DD

  • Description Number of distinct operands in Data Division: variables and constants ([Halstead,76]: n2)

Distinct Operands in Procedure Div.

  • Mnemonic DOPD_PD

  • Description Number of distinct operands in Procedure Division: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Distinct Operators in Data Div.

  • Mnemonic DOPT_DD

  • Description Number of distinct operators in Data Division: language keywords ([Halstead,76]: n1)

Distinct Operators in Procedure Div.

  • Mnemonic DOPT_PD

  • Description Number of distinct operators in Procedure Division: language keywords ([Halstead,76]: n1)

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

EVALUATE Statements

  • Mnemonic EVAL

  • Description Number of EVALUATE statements

Call to exit

  • Mnemonic EXIT

  • Description Number of calls to the exit function

File Declarations

  • Mnemonic FD

  • Description Number of file declarations

Files Used

  • Mnemonic FDUS

  • Description Number of references to files

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

Is IDMS active

  • Mnemonic IDMS_ACTIVE

  • Description Is IDMS active in program

IDMS instructions called

  • Mnemonic IDMS_CALLBD

  • Description Number of IDMS instructions called

IDMS records called

  • Mnemonic IDMS_CALLREC

  • Description Number of IDMS records called

IDMS calls for modification

  • Mnemonic IDMS_MOD

  • Description Number of calls for modification

IDMS calls for reading/searching

  • Mnemonic IDMS_READ

  • Description Number of calls for reading/searching

IDMS subschema definition

  • Mnemonic IDMS_SSCH

  • Description Number of IDMS subschema definition

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Number of paragraphs

  • Mnemonic PARA

  • Description Number of paragraphs.

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

PERFORM Statements

  • Mnemonic PERF

  • Description Number of PERFORM statements

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Data Declarations

  • Mnemonic SD

  • Description Number of data declarations

Data Used

  • Mnemonic SDUS

  • Description Number of used data

Number of Sections

  • Mnemonic SECT

  • Description Number of sections.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

STOP Statements

  • Mnemonic STOP

  • Description Number of STOP statements

TIMES Clauses

  • Mnemonic TIME

  • Description Number of TIMES clauses in PERFORM statements

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operand Occurrences in Data Div.

  • Mnemonic TOPD_DD

  • Description Number of occurrences of operands in Data Division: variables and constants ([Halstead,76]: N2)

Operand Occurrences in Procedure Div.

  • Mnemonic TOPD_PD

  • Description Number of occurrences of operands in Procedure Division: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Operator Occurrences in Data Div.

  • Mnemonic TOPT_DD

  • Description Number of occurrences of operators in Data Division: language keywords ([Halstead,76]: N1)

Operator Occurrences in Procedure Div.

  • Mnemonic TOPT_PD

  • Description Number of occurrences of operators in Procedure Division: language keywords ([Halstead,76]: N1)

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

UNTIL Clauses

  • Mnemonic UNTL

  • Description Number of UNTIL clauses in PERFORM statements

VARYING Clauses

  • Mnemonic VARY

  • Description Number of VARYING clauses in PERFORM statements

WHEN Clauses

  • Mnemonic WHEN

  • Description Number of WHEN and WHENOTHER clauses in EVALUATE Statements

COBOL Ruleset

BLOCK Clause

  • Mnemonic BLOCKSIZE

  • Description In the FILE-DESCRIPTION section, each file description shall always use the BLOCK CONTAINS 0 RECORDS clause. The system will assign the BLOCK-SIZE automatically when allocating the file.

Column 7 for * and D Only

  • Mnemonic COLUMN7

  • Description Only * and D shall be used in column 7.

Comment Division

  • Mnemonic COMMENT_DIVISION

  • Description A comment is recommended before each division.

Comment FD

  • Mnemonic COMMENT_FD

  • Description A comment is recommended before each file description.

Comment First Level

  • Mnemonic COMMENT_FIRST_LEVEL

  • Description A comment is recommended before each first level of IF or PERFORM.

Comment Variable 01 and 77

  • Mnemonic COMMENT_FIRST_VARIABLE

  • Description A comment is recommended before each variable 01 and 77.

Empty lines around DIVISION

  • Mnemonic CPRS_DIVISION

  • Description An empty line shall precede and follow a DIVISION.

Empty line after EXIT

  • Mnemonic CPRS_EXIT

  • Description An empty line shall follow an EXIT statement.

Bad statement indentation

  • Mnemonic CPRS_INDENT

  • Description The nested statements shall be indented.

Bad indentation of scope terminator

  • Mnemonic CPRS_SCOPE_TERMINATOR

  • Description Scope terminators must be on the same column as the beginning of the block to facilitate program readability.

Empty line after SECTION

  • Mnemonic CPRS_SECTION

  • Description An empty line shall follow a SECTION.

Variable declaration format

  • Mnemonic DCLWS

  • Description A variable shall be declared in the WORKING STORAGE using the format ^W

Paragraphs having exact same name

  • Mnemonic R_DUPPARA

  • Description Paragraphs having exact same name in the same PROGRAM-ID is forbidden.

Missing END-EVALUATE

  • Mnemonic EVALWITHENDEVAL

  • Description An EVALUATE statement shall be closed by END-EVALUATE

Close file once

  • Mnemonic FILECLOSEONCE

  • Description A file shall be closed only once

Close open file

  • Mnemonic FILEOPENCLOSE

  • Description A file shall be opened and closed in the same program

Open file once

  • Mnemonic FILEOPENONCE

  • Description A file shall be opened only once

Use FILE STATUS

  • Mnemonic FILESTATUS

  • Description FILE STATUS shall be used to manage I/O errors.

Single GOBACK

  • Mnemonic GOBACK

  • Description Only a single GOBACK shall be used in a subprgram.

IDMS FIND CURRENT

  • Mnemonic IDMSFINDCURRENT

  • Description IDMS FIND CURRENT is forbidden

IDMS One modify by PERFORM

  • Mnemonic IDMSONEMODFORPERF

  • Description Each IDMS modify statement (MODIFY/ERASE/STORE) should be in a specific perform

IDMS One same call

  • Mnemonic IDMSONESAMECALL

  • Description Avoid duplicated IDMS call.

IDMS Ready Protected Update

  • Mnemonic IDMSREADYPRTUPD

  • Description Each IDMS Ready Update statement should be defined in PROTECTED mode.

IDMS Return Code

  • Mnemonic IDMSRETURNCODE

  • Description After each IDMS statement, return code should be checked.

Missing END-IF

  • Mnemonic IFWITHENDIF

  • Description An IF statement shall be closed by an END-IF

Avoid using inline PERFORM with too many lines of code

  • Mnemonic INLINE_PERFORM_SIZE

  • Description Avoid Cobol programs containing PERFORM - END-PERFORM loops with more than 80 lines.

Standard Label

  • Mnemonic LABELSTD

  • Description In the FILE-DESCRIPTION section, each file description shall always use the LABEL RECORD STANDARD clause. Only the standard labels are checked by the system.

Missing END-ADD

  • Mnemonic MISSING_END_ADD

  • Description An ADD statement shall be closed by an END-ADD.

Missing END-CALL

  • Mnemonic MISSING_END_CALL

  • Description An CALL statement shall be closed by an END-CALL.

Missing END-COMPUTE

  • Mnemonic MISSING_END_COMPUTE

  • Description An COMPUTE statement shall be closed by an END-COMPUTE.

Missing END-DELETE

  • Mnemonic MISSING_END_DELETE

  • Description An DELETE statement shall be closed by an END-DELETE.

Missing END-DIVIDE

  • Mnemonic MISSING_END_DIVIDE

  • Description An DIVIDE statement shall be closed by an END-DIVIDE.

Missing END-MULTIPLY

  • Mnemonic MISSING_END_MULTIPLY

  • Description An MULTIPLY statement shall be closed by an END-MULTIPLY.

Missing END-READ

  • Mnemonic MISSING_END_READ

  • Description An READ statement shall be closed by an END-READ.

Missing END-RETURN

  • Mnemonic MISSING_END_RETURN

  • Description An RETURN statement shall be closed by an END-RETURN.

Missing END-REWRITE

  • Mnemonic MISSING_END_REWRITE

  • Description An REWRITE statement shall be closed by an END-REWRITE.

Missing END-SEARCH

  • Mnemonic MISSING_END_SEARCH

  • Description An SEARCH statement shall be closed by an END-SEARCH.

Missing END-START

  • Mnemonic MISSING_END_START

  • Description An START statement shall be closed by an END-START.

Missing END-STRING

  • Mnemonic MISSING_END_STRING

  • Description An STRING statement shall be closed by an END-STRING.

Missing END-SUBTRACT

  • Mnemonic MISSING_END_SUBTRACT

  • Description An SUBTRACT statement shall be closed by an END-SUBTRACT.

Missing END-UNSTRING

  • Mnemonic MISSING_END_UNSTRING

  • Description An UNSTRING statement shall be closed by an END-UNSTRING.

Missing END-WRITE

  • Mnemonic MISSING_END_WRITE

  • Description An WRITE statement shall be closed by an END-WRITE.

Missing FILLER

  • Mnemonic MISSING_FILLER

  • Description Even the 'FILLER' word is optional since Cobol85, it is recommanded to write it.

No more than 3 nested IF

  • Mnemonic NESTEDIF

  • Description There shall be no more than 3 nexted IF statements

Nested Program

  • Mnemonic NESTED_PROGRAM

  • Description Nested program is not recommanded

ALTER shall not be used

  • Mnemonic NOALTER

  • Description The ALTER statement shall not be used. Labels are decided only at execution time.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

No Conditional GOTO

  • Mnemonic NOCONDGOTO

  • Description Conditional GO TO shall not be used. Use EVALUATE instead.

No MOVE CORRESPONDING

  • Mnemonic NOCORRESPONDING

  • Description MOVE CORRESPONDING shall not be used.

COMPUTE instead of ADD

  • Mnemonic NOCPXADD

  • Description COMPUTE shall be used to add more than 2 data instead of ADD.

COMPUTE instead of SUBTRACT

  • Mnemonic NOCPXSUBTRACT

  • Description COMPUTE shall be used to add more than 2 data instead of SUBTRACT.

No DEBUG MODE

  • Mnemonic NODEBUG

  • Description DEBUGGING-MODE shall not be used

COMPUTE instead of DIVIDE

  • Mnemonic NODIVIDE

  • Description COMPUTE shall be used instead of DIVIDE.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

No INITIALIZE

  • Mnemonic NOINITIALIZE

  • Description INITIALIZE shall not be used. Use MOVE to initialize variable.

COMPUTE instead of MULTIPLY

  • Mnemonic NOMULTIPLY

  • Description COMPUTE shall be used instead of MULTIPLY.

No procedural COPY

  • Mnemonic NOPROCCOPY

  • Description Procedural COPY clauses shall not be used. Use subprograms instead.

No RENAMES

  • Mnemonic NORENAMES

  • Description The RENAMES clause shall not be used.

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

No Variables S9(9)

  • Mnemonic NOVARS9

  • Description The variables shall not be declared in S9(9) COMP. It implies a conversion

Avoid GOTO jumps out of PERFORM range

  • Mnemonic NO_GOTO_OUT_OF_PERFORM_RANGE

  • Description Avoid Cobol Programs containing sections or paragraphs that are called by PERFORM statements and that contain a GO TO statement to another section or paragraph that is not in the scope of the initial PERFORM.

Avoid OPEN/CLOSE inside loops

  • Mnemonic NO_OPEN_CLOSE_INSIDE_LOOP

  • Description Avoid Cobol programs using OPEN or CLOSE in loops. Following loops are taken into account: - PERFORM TIMES / UNTIL / VARYING

Avoid accessing data by using the position and length

  • Mnemonic NO_REFERENCE_ACCESS

  • Description Avoid Cobol programs accessing part of data by using a position and a length.

Use COMP for OCCURS

  • Mnemonic OCCURSCOMP

  • Description For the OCCURS DEPENDING ON clause, the corresponding item shall be declared using COMP or BINARY.

Avoid mixing paragraphs and sections

  • Mnemonic PARA_OR_SECT_ONLY

  • Description A program should not mix paragraphs and sections.

Perform with no THRU

  • Mnemonic PERFORMWITHTHRU

  • Description The call of a paragraph shall be made in the use of PERFORM paragraphName THRU paragraphNameExit.

Bad paragraph position used in PERFORM

  • Mnemonic POSITION_OF_PERFORM_RANGE

  • Description On a PERFORM range: P1 THRU P2, P1 must be declared before P2.

READ-WRITE Instruction

  • Mnemonic READWRITE

  • Description READ A INTO B or WRITE A FROM B forms shall be used for reading/writing a file.

Avoid using READ statement without AT END clause

  • Mnemonic READ_AT_END

  • Description Avoid Cobol programs using READ statements without the AT END clause.

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Statement shall be in uppercase

  • Mnemonic UPPERCASE

  • Description A COBOL statement shall be written in uppercase to keep the program readable.

Use SYNCHRONIZED

  • Mnemonic USESYNCH

  • Description SYNCHRONIZED shall be used for COMP, COMP-1, COMP-2, POINTER and INDEX variables.

Homonymous variable shall not be used

  • Mnemonic VARNAME

  • Description There shall be no homonymous variables.

Use WHEN OTHER

  • Mnemonic WHENOTHER

  • Description EVALUATE shall end by a WHEN OTHER clause.

C++

C++ Metrics

Constant Data

  • Mnemonic ACST

  • Description Number of constant data

Number of Attributes

  • Mnemonic ANBR

  • Description Number of attributes

Number of data without accessibility

  • Mnemonic ANON

  • Description Number of data without accessibility

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Public Data

  • Mnemonic APBL

  • Description Number of public data

Protected Data

  • Mnemonic APRT

  • Description Number of protected data

Private data

  • Mnemonic APRV

  • Description Number of private data

Assignment Operators

  • Mnemonic ASOP

  • Description Number of assignment operators used in the source file

Static Data

  • Mnemonic ASTA

  • Description Number of static data

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Public Constant

  • Mnemonic CPBL

  • Description Public Constant

Comparison Operators

  • Mnemonic CPOP

  • Description Number of comparison operators used in the source file

Protected Constant

  • Mnemonic CPRT

  • Description Protected Constant

Private Constant

  • Mnemonic CPRV

  • Description Private Constant

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Depth of Descendant Tree

  • Mnemonic DDT

  • Description Maximun depth of the inheritance tree from the class

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Depth of Inheritance Tree

  • Mnemonic DIT

  • Description Maximun depth of the class inheritance tree

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Constant Methods

  • Mnemonic MCST

  • Description Number of 'constant' methods i.e. which do not modify the object

Multiple Inheritance Indicator

  • Mnemonic MII

  • Description Number of classes from which the class inherits directly.<br/><u>Note</u>: For Java Classes and Interfaces, the MII is computed by ignoring the number of implemented classes/interfaces (which is counted by the 'IIMPL' measure).

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Public Methods

  • Mnemonic MPBL

  • Description Number of public methods

Protected Methods

  • Mnemonic MPRT

  • Description Number of protected methods

Private Methods

  • Mnemonic MPRV

  • Description Number of private methods

Static Methods

  • Mnemonic MSTA

  • Description Number of static methods

Number of Ancestors

  • Mnemonic NAC

  • Description Number of classes from which the class inherits directly or indirectly

Number of Descendants

  • Mnemonic NDC

  • Description Number of classes which inherit from the class directly or indirectly

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number Of Children

  • Mnemonic NOC

  • Description Number of classes which inherit directly from the class

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Number of #DEFINE

  • Mnemonic P_DEFINE

  • Description Number of #DEFINE

Number of #ELIF

  • Mnemonic P_ELIF

  • Description Number of #ELIF

Number of #ELSE

  • Mnemonic P_ELSE

  • Description Number of #ELSE

Number of #ENDIF

  • Mnemonic P_ENDIF

  • Description Number of #ENDIF

Number of #ERROR

  • Mnemonic P_ERROR

  • Description Number of #ERROR

Number of #IF

  • Mnemonic P_IF

  • Description Number of #IF

Number of #IFDEF

  • Mnemonic P_IFDEF

  • Description Number of #IFDEF

Number of #IFNDEF

  • Mnemonic P_IFNDEF

  • Description Number of #IFNDEF

Number of Include

  • Mnemonic P_INCLUDE

  • Description Number of Include

Compiler FLAG Nested Level

  • Mnemonic P_NEST

  • Description Compiler FLAG Nested Level

Number of #PRAGMA

  • Mnemonic P_PRAGMA

  • Description Number of #PRAGMA

Number of #UNDEF

  • Mnemonic P_UNDEF

  • Description Number of #UNDEF

Number of #WARNING

  • Mnemonic P_WARNING

  • Description Number of #WARNING

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Special Operators

  • Mnemonic SPOP

  • Description Number of special operators used in the source file

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Weighted Method per Class

  • Mnemonic XWMC

  • Description Sum of cyclomatic complexities of methods implemented outside the class definition

C++ Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Nesting Level of Preprocessing directives is too high

  • Mnemonic R_MAXPNEST

  • Description Nesting Level of Preprocessing directives is too high

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

C#

C# Metrics

Constant Data

  • Mnemonic ACST

  • Description Number of constant data

Internal Data

  • Mnemonic AINT

  • Description Number of internal data (only applicable to C#)

Number of Attributes

  • Mnemonic ANBR

  • Description Number of attributes

Number of data without accessibility

  • Mnemonic ANON

  • Description Number of data without accessibility

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Public Data

  • Mnemonic APBL

  • Description Number of public data

Protected Internal Data

  • Mnemonic APIN

  • Description Number of protected internal data (only applicable to C#)

Protected Data

  • Mnemonic APRT

  • Description Number of protected data

Private data

  • Mnemonic APRV

  • Description Number of private data

Assignment Operators

  • Mnemonic ASOP

  • Description Number of assignment operators used in the source file

Static Data

  • Mnemonic ASTA

  • Description Number of static data

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Public Constant

  • Mnemonic CPBL

  • Description Public Constant

Comparison Operators

  • Mnemonic CPOP

  • Description Number of comparison operators used in the source file

Protected Constant

  • Mnemonic CPRT

  • Description Protected Constant

Private Constant

  • Mnemonic CPRV

  • Description Private Constant

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Depth of Descendant Tree

  • Mnemonic DDT

  • Description Maximun depth of the inheritance tree from the class

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Depth of Inheritance Tree

  • Mnemonic DIT

  • Description Maximun depth of the class inheritance tree

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Foreach Statements

  • Mnemonic FORE

  • Description Number of 'foreach' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Constant Methods

  • Mnemonic MCST

  • Description Number of 'constant' methods i.e. which do not modify the object

Multiple Inheritance Indicator

  • Mnemonic MII

  • Description Number of classes from which the class inherits directly.<br/><u>Note</u>: For Java Classes and Interfaces, the MII is computed by ignoring the number of implemented classes/interfaces (which is counted by the 'IIMPL' measure).

Internal Methods

  • Mnemonic MINT

  • Description Number of internal methods (only applicable to C#)

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Public Methods

  • Mnemonic MPBL

  • Description Number of public methods

Protected Internal Methods

  • Mnemonic MPIN

  • Description Number of protected internal methods(only applicable to C#)

Protected Methods

  • Mnemonic MPRT

  • Description Number of protected methods

Private Methods

  • Mnemonic MPRV

  • Description Number of private methods

Static Methods

  • Mnemonic MSTA

  • Description Number of static methods

Number of Ancestors

  • Mnemonic NAC

  • Description Number of classes from which the class inherits directly or indirectly

Number of Descendants

  • Mnemonic NDC

  • Description Number of classes which inherit from the class directly or indirectly

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number Of Children

  • Mnemonic NOC

  • Description Number of classes which inherit directly from the class

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Constant Properties

  • Mnemonic PCST

  • Description Number of constant properties

Properties with Get

  • Mnemonic PGET

  • Description Number of properties with a setter (only applicable to C#)

Internal Properties

  • Mnemonic PINT

  • Description Number of internal properties (only applicable to C#)

Properties

  • Mnemonic PNBR

  • Description Total number of properties

Properties without Accessibility

  • Mnemonic PNON

  • Description Number of properties without accessibility specifier

Public Properties

  • Mnemonic PPBL

  • Description Number of public properties

Protected Internal Properties

  • Mnemonic PPIN

  • Description Number of protected internal properties (only applicable to C#)

Protected Properties

  • Mnemonic PPRT

  • Description Number of protected properties

Private Properties

  • Mnemonic PPRV

  • Description Number of private properties

Properties with Set

  • Mnemonic PSET

  • Description Number of properties with a getter (only applicable to C#)

Static Properties

  • Mnemonic PSTA

  • Description Number of static properties in the class

Number of #DEFINE

  • Mnemonic P_DEFINE

  • Description Number of #DEFINE

Number of #ELIF

  • Mnemonic P_ELIF

  • Description Number of #ELIF

Number of #ELSE

  • Mnemonic P_ELSE

  • Description Number of #ELSE

Number of #ENDIF

  • Mnemonic P_ENDIF

  • Description Number of #ENDIF

Number of #ENDREGION

  • Mnemonic P_ENDREGION

  • Description Number of #ENDREGION

Number of #ERROR

  • Mnemonic P_ERROR

  • Description Number of #ERROR

Number of #IF

  • Mnemonic P_IF

  • Description Number of #IF

Number of #IFDEF

  • Mnemonic P_IFDEF

  • Description Number of #IFDEF

Number of #IFNDEF

  • Mnemonic P_IFNDEF

  • Description Number of #IFNDEF

Compiler FLAG Nested Level

  • Mnemonic P_NEST

  • Description Compiler FLAG Nested Level

Number of #PRAGMA

  • Mnemonic P_PRAGMA

  • Description Number of #PRAGMA

Number of #REGION

  • Mnemonic P_REGION

  • Description Number of #REGION

Number of #UNDEF

  • Mnemonic P_UNDEF

  • Description Number of #UNDEF

Number of #WARNING

  • Mnemonic P_WARNING

  • Description Number of #WARNING

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Special Operators

  • Mnemonic SPOP

  • Description Number of special operators used in the source file

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

C# Ruleset

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

Fortran

Fortran Metrics

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Number of arithmetic if

  • Mnemonic ARIF

  • Description Count number of arithmetic if

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Number of declarative statements

  • Mnemonic DECL

  • Description Count number of declarative statements

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

% of parsed tokens

  • Mnemonic PARSE

  • Description Percent of parsed tokens

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

Fortran Ruleset

Use of allocate/deallocate

  • Mnemonic ALLOCATE_USE

  • Description A function must have the same number of allocate and deallocate.

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Use of contains

  • Mnemonic CONTAINS_USE

  • Description Use of contains is forbidden to declare functions inside another function.

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Use of continue is deprecated (Fortran)

  • Mnemonic NOCONTINUE

  • Description The 'continue' statement is deprecated.

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Use of Fortran 77

  • Mnemonic FORTRAN77_USE

  • Description A project should not contain any Fortran 77 file.

Function size

  • Mnemonic FUNCTION_SIZE

  • Description The number of lines of code of a function must not exceed the limit.

Use of module

  • Mnemonic MODULE_USE

  • Description A function must be declared inside a Fortran module

Incorrect Function Name

  • Mnemonic NAMING_FUNCTION

  • Description Function name does not fit the convention.

Incorrect Module Name

  • Mnemonic NAMING_MODULE

  • Description Module name does not fit the convention.

Parameter name

  • Mnemonic NAMING_PARAM

  • Description A parameter name must comply with the minimum length.

Incorrect Program Name

  • Mnemonic NAMING_PROGRAM

  • Description Program name does not fit the convention.

Incorrect Subroutine Name

  • Mnemonic NAMING_SUBROUTINE

  • Description Subroutine name does not fit the convention.

Number of parameters

  • Mnemonic NB_PARAM

  • Description The number of parameters received by a function should not exceed the limit.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

'cycle' shall not be used

  • Mnemonic NOCYCL

  • Description The 'cycle' statement shall not be used.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

'stop' shall not be used

  • Mnemonic NOSTOP

  • Description The 'stop' statement shall not be used.

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Use of SAVE and DATA

  • Mnemonic SAVE_DATA_USE

  • Description A function must not use the SAVE and DATA statements.

Multiple exit

  • Mnemonic SGLEXIT

  • Description For any iteration statement there shall be at most one 'exit' statement used for loop termination.

Groovy

Groovy Metrics

Number of data without accessibility

  • Mnemonic ANON

  • Description Number of data without accessibility

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Public Data

  • Mnemonic APBL

  • Description Number of public data

Assignment Operators

  • Mnemonic ASOP

  • Description Number of assignment operators used in the source file

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

Max Nested Functions

  • Mnemonic FNST

  • Description Max Nested Functions

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Public Methods

  • Mnemonic MPBL

  • Description Number of public methods

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Groovy Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

Java

Java Metrics

Constant Data

  • Mnemonic ACST

  • Description Number of constant data

Number of Attributes

  • Mnemonic ANBR

  • Description Number of attributes

Number of data without accessibility

  • Mnemonic ANON

  • Description Number of data without accessibility

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Public Data

  • Mnemonic APBL

  • Description Number of public data

Assignment Operators

  • Mnemonic ASOP

  • Description Number of assignment operators used in the source file

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Public Constant

  • Mnemonic CPBL

  • Description Public Constant

Comparison Operators

  • Mnemonic CPOP

  • Description Number of comparison operators used in the source file

Protected Constant

  • Mnemonic CPRT

  • Description Protected Constant

Private Constant

  • Mnemonic CPRV

  • Description Private Constant

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Depth of Descendant Tree

  • Mnemonic DDT

  • Description Maximun depth of the inheritance tree from the class

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Depth of Inheritance Tree

  • Mnemonic DIT

  • Description Maximun depth of the class inheritance tree

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

Number of extended classes/interfaces

  • Mnemonic IEXT

  • Description Number of classes/interfaces extended by this class/interface

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Number of implemented classes/interfaces

  • Mnemonic IIMPL

  • Description Number of classes/interfaces implemented by this class/interface

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Multiple Inheritance Indicator

  • Mnemonic MII

  • Description Number of classes from which the class inherits directly.<br/><u>Note</u>: For Java Classes and Interfaces, the MII is computed by ignoring the number of implemented classes/interfaces (which is counted by the 'IIMPL' measure).

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Public Methods

  • Mnemonic MPBL

  • Description Number of public methods

Protected Methods

  • Mnemonic MPRT

  • Description Number of protected methods

Private Methods

  • Mnemonic MPRV

  • Description Number of private methods

Static Methods

  • Mnemonic MSTA

  • Description Number of static methods

Number of Ancestors

  • Mnemonic NAC

  • Description Number of classes from which the class inherits directly or indirectly

Number of Descendants

  • Mnemonic NDC

  • Description Number of classes which inherit from the class directly or indirectly

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number Of Children

  • Mnemonic NOC

  • Description Number of classes which inherit directly from the class

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Special Operators

  • Mnemonic SPOP

  • Description Number of special operators used in the source file

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Java Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

Javascript

Javascript Metrics

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

Max Nested Functions

  • Mnemonic FNST

  • Description Max Nested Functions

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Javascript Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

MindC

MindC Metrics

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Assignment Operators

  • Mnemonic ASOP

  • Description Number of assignment operators used in the source file

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Calls To

  • Mnemonic CAL2

  • Description Number of explicit calls to the function.

Called Functions

  • Mnemonic CALD

  • Description Number of distinct functions defined in the project source file and called by the function.

Calls From

  • Mnemonic CALF

  • Description Number of explicit calls from the function.

Calling Functions

  • Mnemonic CALI

  • Description Number of distinct functions calling the function.

Called External Functions

  • Mnemonic CALX

  • Description Number of distinct external functions called by the function - external i.e. not defined in the project

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Recursive Calls

  • Mnemonic CDRI

  • Description Number of directly recursive calls in the function.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Called Depth

  • Mnemonic CGDD

  • Description Maximum depth of called functions.

Calling Depth

  • Mnemonic CGDI

  • Description Maximum depth of calling functions.

Call Graph Depth

  • Mnemonic CGDM

  • Description Maximum depth of the call graph.

Minimum Number of Indirect Cycles

  • Mnemonic CIRI

  • Description Minimum number of indirect call graph cycles in which the function is involved (excluding recursive calls).

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Comparison Operators

  • Mnemonic CPOP

  • Description Number of comparison operators used in the source file

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Minimum Number of Cycles

  • Mnemonic CYCL

  • Description Minimum number of call graph cycles in which the function is involved (including recursivity).

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Use of longjump

  • Mnemonic LONGJMP

  • Description Use of longjump

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Memory Allocation

  • Mnemonic MEMALLOC

  • Description Memory Allocation

Memory Freeing

  • Mnemonic MEMFREE

  • Description Memory Freeing

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Use of offsetof

  • Mnemonic OFFSETOF

  • Description Use of offsetof

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Number of #DEFINE

  • Mnemonic P_DEFINE

  • Description Number of #DEFINE

Number of #ELIF

  • Mnemonic P_ELIF

  • Description Number of #ELIF

Number of #ELSE

  • Mnemonic P_ELSE

  • Description Number of #ELSE

Number of #ENDIF

  • Mnemonic P_ENDIF

  • Description Number of #ENDIF

Number of #ERROR

  • Mnemonic P_ERROR

  • Description Number of #ERROR

Number of #IF

  • Mnemonic P_IF

  • Description Number of #IF

Number of #IFDEF

  • Mnemonic P_IFDEF

  • Description Number of #IFDEF

Number of #IFNDEF

  • Mnemonic P_IFNDEF

  • Description Number of #IFNDEF

Number of Include

  • Mnemonic P_INCLUDE

  • Description Number of Include

Compiler FLAG Nested Level

  • Mnemonic P_NEST

  • Description Compiler FLAG Nested Level

Number of #PRAGMA

  • Mnemonic P_PRAGMA

  • Description Number of #PRAGMA

Number of #UNDEF

  • Mnemonic P_UNDEF

  • Description Number of #UNDEF

Number of #WARNING

  • Mnemonic P_WARNING

  • Description Number of #WARNING

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Use of setjump

  • Mnemonic SETJMP

  • Description Use of setjump

Signal Functions

  • Mnemonic SIGNAL

  • Description Use of signal Functions

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Special Operators

  • Mnemonic SPOP

  • Description Number of special operators used in the source file

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

IO Functions

  • Mnemonic STDIO

  • Description Use IO Functions

String Conversions

  • Mnemonic STRINGCONV

  • Description Use of String Conversions

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

System Functions

  • Mnemonic SYSCOM

  • Description Use of system Functions

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Time Handling

  • Mnemonic TIMEHDL

  • Description Use of Time Handling

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

MindC Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Dynamic Memory Allocation shall not be used

  • Mnemonic DYNMEMALLOC

  • Description Dynamic heap memory allocation shall not used. This precludes the use of the functions calloc, malloc, realloc and free (see [MISRA-C:2004]: RULE 20.4)

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Macro longjmp or setjmp shall not be used

  • Mnemonic JUMP

  • Description (The setjmp macro and the longjmp function shall not be used (see [MISRA-C:2004]: RULE 20.7).

Nesting Level of Preprocessing directives is too high

  • Mnemonic R_MAXPNEST

  • Description Nesting Level of Preprocessing directives is too high

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Recursion are not allowed

  • Mnemonic NORECURSION

  • Description Functions shall not called themselves either directly or indirectly (see [MISRA-C:2004]: RULE 16.2).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Macro offsetof shall not be used

  • Mnemonic OFFSETOF

  • Description The macro offsetof, in library <stddef.h>, shall not be used (see [MISRA-C:2004]: RULE 20.6).

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

Signal or Raise shall not be used

  • Mnemonic SIGNAL

  • Description The signal handling facilities of <signal.h> shall not be used (see [MISRA-C:2004]: RULE 20.8).

IO Functions shall not be used

  • Mnemonic STDIO

  • Description The input/output library <stdio.h> shall not be used in production code (see [MISRA-C:2004]: RULE 20.9).

'atof, atoi or atol' shall not be used

  • Mnemonic STRINGCONV

  • Description The library functions atof, atoi and atol from library <stdlib.h> shall not be used (see [MISRA-C:2004]: RULE 20.10).

'abort, exit, getenv or system' shall not be used

  • Mnemonic SYSCOM

  • Description The library functions abort, exit, getenv and system from library <stdlib.h> shall not be used (see [MISRA-C:2004]: RULE 20.11).

Time Handling Functions shall not be used

  • Mnemonic TIMEHDL

  • Description The time handling functions of library <time.h> shall not be used: time, strftime, clock, difftime, mktime (see [MISRA-C:2004]: RULE 20.12).

Objective-C

Objective-C Metrics

Constant Data

  • Mnemonic ACST

  • Description Number of constant data

Number of Attributes

  • Mnemonic ANBR

  • Description Number of attributes

Number of data without accessibility

  • Mnemonic ANON

  • Description Number of data without accessibility

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Public Data

  • Mnemonic APBL

  • Description Number of public data

Protected Data

  • Mnemonic APRT

  • Description Number of protected data

Private data

  • Mnemonic APRV

  • Description Number of private data

Assignment Operators

  • Mnemonic ASOP

  • Description Number of assignment operators used in the source file

Static Data

  • Mnemonic ASTA

  • Description Number of static data

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Comparison Operators

  • Mnemonic CPOP

  • Description Number of comparison operators used in the source file

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Depth of Descendant Tree

  • Mnemonic DDT

  • Description Maximun depth of the inheritance tree from the class

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Depth of Inheritance Tree

  • Mnemonic DIT

  • Description Maximun depth of the class inheritance tree

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Multiple Inheritance Indicator

  • Mnemonic MII

  • Description Number of classes from which the class inherits directly.<br/><u>Note</u>: For Java Classes and Interfaces, the MII is computed by ignoring the number of implemented classes/interfaces (which is counted by the 'IIMPL' measure).

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Public Methods

  • Mnemonic MPBL

  • Description Number of public methods

Protected Methods

  • Mnemonic MPRT

  • Description Number of protected methods

Private Methods

  • Mnemonic MPRV

  • Description Number of private methods

Static Methods

  • Mnemonic MSTA

  • Description Number of static methods

Number of Ancestors

  • Mnemonic NAC

  • Description Number of classes from which the class inherits directly or indirectly

Number of Descendants

  • Mnemonic NDC

  • Description Number of classes which inherit from the class directly or indirectly

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number Of Children

  • Mnemonic NOC

  • Description Number of classes which inherit directly from the class

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Properties

  • Mnemonic PNBR

  • Description Total number of properties

Number of #DEFINE

  • Mnemonic P_DEFINE

  • Description Number of #DEFINE

Number of #ELIF

  • Mnemonic P_ELIF

  • Description Number of #ELIF

Number of #ELSE

  • Mnemonic P_ELSE

  • Description Number of #ELSE

Number of #ENDIF

  • Mnemonic P_ENDIF

  • Description Number of #ENDIF

Number of #ERROR

  • Mnemonic P_ERROR

  • Description Number of #ERROR

Number of #IF

  • Mnemonic P_IF

  • Description Number of #IF

Number of #IFDEF

  • Mnemonic P_IFDEF

  • Description Number of #IFDEF

Number of #IFNDEF

  • Mnemonic P_IFNDEF

  • Description Number of #IFNDEF

Number of Include

  • Mnemonic P_INCLUDE

  • Description Number of Include

Compiler FLAG Nested Level

  • Mnemonic P_NEST

  • Description Compiler FLAG Nested Level

Number of #PRAGMA

  • Mnemonic P_PRAGMA

  • Description Number of #PRAGMA

Number of #UNDEF

  • Mnemonic P_UNDEF

  • Description Number of #UNDEF

Number of #WARNING

  • Mnemonic P_WARNING

  • Description Number of #WARNING

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Special Operators

  • Mnemonic SPOP

  • Description Number of special operators used in the source file

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Weighted Method per Class

  • Mnemonic XWMC

  • Description Sum of cyclomatic complexities of methods implemented outside the class definition

Objective-C Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

PHP

PHP Metrics

Constant Data

  • Mnemonic ACST

  • Description Number of constant data

Number of Attributes

  • Mnemonic ANBR

  • Description Number of attributes

Number of data without accessibility

  • Mnemonic ANON

  • Description Number of data without accessibility

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Public Data

  • Mnemonic APBL

  • Description Number of public data

Protected Data

  • Mnemonic APRT

  • Description Number of protected data

Private data

  • Mnemonic APRV

  • Description Number of private data

Static Data

  • Mnemonic ASTA

  • Description Number of static data

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Depth of Descendant Tree

  • Mnemonic DDT

  • Description Maximun depth of the inheritance tree from the class

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Depth of Inheritance Tree

  • Mnemonic DIT

  • Description Maximun depth of the class inheritance tree

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Call to exit

  • Mnemonic EXIT

  • Description Number of calls to the exit function

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Foreach Statements

  • Mnemonic FORE

  • Description Number of 'foreach' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

HTML Lines of Code

  • Mnemonic HTML

  • Description Number of HTML lines of code in the source file(s).

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Constant Methods

  • Mnemonic MCST

  • Description Number of 'constant' methods i.e. which do not modify the object

Multiple Inheritance Indicator

  • Mnemonic MII

  • Description Number of classes from which the class inherits directly.<br/><u>Note</u>: For Java Classes and Interfaces, the MII is computed by ignoring the number of implemented classes/interfaces (which is counted by the 'IIMPL' measure).

PHP/HTML Mixed Lines

  • Mnemonic MIXL

  • Description Number of lines containing both PHP and HTML in the source files.

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Public Methods

  • Mnemonic MPBL

  • Description Number of public methods

Protected Methods

  • Mnemonic MPRT

  • Description Number of protected methods

Private Methods

  • Mnemonic MPRV

  • Description Number of private methods

Static Methods

  • Mnemonic MSTA

  • Description Number of static methods

Number of Ancestors

  • Mnemonic NAC

  • Description Number of classes from which the class inherits directly or indirectly

Number of Descendants

  • Mnemonic NDC

  • Description Number of classes which inherit from the class directly or indirectly

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number Of Children

  • Mnemonic NOC

  • Description Number of classes which inherit directly from the class

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

PHP Lines of Code

  • Mnemonic PHPL

  • Description Number of PHP lines of code in the source file(s).

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

PHP Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

Python

Python Metrics

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Depth of Descendant Tree

  • Mnemonic DDT

  • Description Maximun depth of the inheritance tree from the class

Depth of Inheritance Tree

  • Mnemonic DIT

  • Description Maximun depth of the class inheritance tree

Number of DocString lines

  • Mnemonic DOCL

  • Description Count number of lines of python DocString

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Call to exit

  • Mnemonic EXIT

  • Description Number of calls to the exit function

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Multiple Inheritance Indicator

  • Mnemonic MII

  • Description Number of classes from which the class inherits directly.<br/><u>Note</u>: For Java Classes and Interfaces, the MII is computed by ignoring the number of implemented classes/interfaces (which is counted by the 'IIMPL' measure).

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Number of Ancestors

  • Mnemonic NAC

  • Description Number of classes from which the class inherits directly or indirectly

Number of Descendants

  • Mnemonic NDC

  • Description Number of classes which inherit from the class directly or indirectly

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number Of Children

  • Mnemonic NOC

  • Description Number of classes which inherit directly from the class

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

% of parsed tokens

  • Mnemonic PARSE

  • Description Percent of parsed tokens

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Python Ruleset

There shall be a init method in the class.

  • Mnemonic CLASSNOINIT

  • Description There shall be a init method in the class.

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Method should have "self" as first argument

  • Mnemonic METHODSELFFIRST

  • Description Method has an attribute different the "self" as first argument.

Method without parameter

  • Mnemonic METHODWITHOUTPARAM

  • Description Method without parameter.

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Exec shall not be used.

  • Mnemonic NOEXEC

  • Description Use of 'exec'

Use of exit is not recommended

  • Mnemonic NOEXIT

  • Description exit should not be called to force the end of a program

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Print shall not be used.

  • Mnemonic NOPRINT

  • Description Use of 'print'

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

'star' parameter shall not be used.

  • Mnemonic NOSTARPARAM

  • Description Use of star parameter

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

There shall be only one Statement per line

  • Mnemonic ONESTMTPERLINE

  • Description There shall be only one Statement per line

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

PL/SQL

PL/SQL Metrics

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Number of #DEFINE

  • Mnemonic P_DEFINE

  • Description Number of #DEFINE

Number of #ELIF

  • Mnemonic P_ELIF

  • Description Number of #ELIF

Number of #ELSE

  • Mnemonic P_ELSE

  • Description Number of #ELSE

Number of #ENDIF

  • Mnemonic P_ENDIF

  • Description Number of #ENDIF

Number of #ERROR

  • Mnemonic P_ERROR

  • Description Number of #ERROR

Number of #IF

  • Mnemonic P_IF

  • Description Number of #IF

Number of #IFDEF

  • Mnemonic P_IFDEF

  • Description Number of #IFDEF

Number of #IFNDEF

  • Mnemonic P_IFNDEF

  • Description Number of #IFNDEF

Number of Include

  • Mnemonic P_INCLUDE

  • Description Number of Include

Compiler FLAG Nested Level

  • Mnemonic P_NEST

  • Description Compiler FLAG Nested Level

Number of #PRAGMA

  • Mnemonic P_PRAGMA

  • Description Number of #PRAGMA

Number of #UNDEF

  • Mnemonic P_UNDEF

  • Description Number of #UNDEF

Number of #WARNING

  • Mnemonic P_WARNING

  • Description Number of #WARNING

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

PL/SQL Ruleset

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Commit Used

  • Mnemonic NOCOMMIT

  • Description Commit instruction used in code

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Rollback Used

  • Mnemonic R_NOROLLBACK

  • Description Rollback instruction used in code

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Swift

Swift Metrics

Number of data without accessibility

  • Mnemonic ANON

  • Description Number of data without accessibility

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Swift Ruleset

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

TSQL

TSQL Metrics

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Delete Statements

  • Mnemonic DELETE

  • Description Number of Delete statements

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Insert Statements

  • Mnemonic INSERT

  • Description Number of Insert statements

Label Statements

  • Mnemonic LABEL

  • Description Number of Label statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Select Statements

  • Mnemonic SELECT

  • Description Number of Select statements

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

Update Statements

  • Mnemonic UPDATE

  • Description Number of Update statements

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

TSQL Ruleset

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

Typescript

Typescript Metrics

Number of data without accessibility

  • Mnemonic ANON

  • Description Number of data without accessibility

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

Max Nested Functions

  • Mnemonic FNST

  • Description Max Nested Functions

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Typescript Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

VB.net

VB.net Metrics

Constant Data

  • Mnemonic ACST

  • Description Number of constant data

Fiend Attributes

  • Mnemonic AFRI

  • Description Number of Friend Attributes

Number of Attributes

  • Mnemonic ANBR

  • Description Number of attributes

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Public Data

  • Mnemonic APBL

  • Description Number of public data

Protected Data

  • Mnemonic APRT

  • Description Number of protected data

Private data

  • Mnemonic APRV

  • Description Number of private data

Shadowed Attributes

  • Mnemonic ASHD

  • Description Number of Shadowed Attributes

Shared Attributes

  • Mnemonic ASHR

  • Description Number of Shared Attributes

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Header Blocks Of Comment

  • Mnemonic BHCO

  • Description Number block of comment placed before the beginning of the artefact.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Brace Lines

  • Mnemonic BRAC

  • Description Number of lines of code containing only a brace in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Stop Statements

  • Mnemonic BRKP

  • Description Number of Stop Statements (Breakpoints)

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Depth of Descendant Tree

  • Mnemonic DDT

  • Description Maximun depth of the inheritance tree from the class

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Depth of Inheritance Tree

  • Mnemonic DIT

  • Description Maximun depth of the class inheritance tree

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Friend Events

  • Mnemonic EFRI

  • Description Number of Friend Events

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Events

  • Mnemonic ENBR

  • Description Number of Events

Public Events

  • Mnemonic EPBL

  • Description Number of Public Events

Protected Events

  • Mnemonic EPRT

  • Description Number of Protected Events

Private Events

  • Mnemonic EPRV

  • Description Number of Private Events

Shadowed Events

  • Mnemonic ESHD

  • Description Number of Shadowed Events

Shared Events

  • Mnemonic ESHR

  • Description Number of Shared Events

Call to exit

  • Mnemonic EXIT

  • Description Number of calls to the exit function

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Header Lines Of Comment

  • Mnemonic HCOM

  • Description Number of comment lines placed before the beginning of the artefact.

Header Lines Of Code

  • Mnemonic HLOC

  • Description Number of lines between the function or class definition and the first opening brace.

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

End Statements

  • Mnemonic KILL

  • Description Number of End Statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Declare Members

  • Mnemonic MDEC

  • Description Number of Declare Members

Delegate Members

  • Mnemonic MDEL

  • Description Number of Delegate Members

    • Friend Members*

  • Mnemonic MFRI

  • Description Number of Friend Members

Multiple Inheritance Indicator

  • Mnemonic MII

  • Description Number of classes from which the class inherits directly.<br/><u>Note</u>: For Java Classes and Interfaces, the MII is computed by ignoring the number of implemented classes/interfaces (which is counted by the 'IIMPL' measure).

Mixed Lines

  • Mnemonic MLOC

  • Description Number of lines containing both code and comment in the source files.

Must Members

  • Mnemonic MMST

  • Description Number of Must Members

Methods without Accessibility

  • Mnemonic MNON

  • Description Number of methods without any accessibility specifier

Partial Members

  • Mnemonic MPAR

  • Description Number of Partial Members

Public Methods

  • Mnemonic MPBL

  • Description Number of public methods

Protected Methods

  • Mnemonic MPRT

  • Description Number of protected methods

Private Methods

  • Mnemonic MPRV

  • Description Number of private methods

Shadowed Members

  • Mnemonic MSHD

  • Description Number of Shadowed Members

Shared Members

  • Mnemonic MSHR

  • Description Number of Shared Members

Number of Ancestors

  • Mnemonic NAC

  • Description Number of classes from which the class inherits directly or indirectly

Number of Descendants

  • Mnemonic NDC

  • Description Number of classes which inherit from the class directly or indirectly

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number Of Children

  • Mnemonic NOC

  • Description Number of classes which inherit directly from the class

Number of Methods

  • Mnemonic NOM

  • Description Number of methods defined in the class

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

% of parsed tokens

  • Mnemonic PARSE

  • Description Percent of parsed tokens

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Friend Properties

  • Mnemonic PFRI

  • Description Number of Fiend Properties

Must Properties

  • Mnemonic PMST

  • Description Number of Must Properties

Properties

  • Mnemonic PNBR

  • Description Total number of properties

Public Properties

  • Mnemonic PPBL

  • Description Number of public properties

Protected Properties

  • Mnemonic PPRT

  • Description Number of protected properties

Private Properties

  • Mnemonic PPRV

  • Description Number of private properties

Shadowed Properties

  • Mnemonic PSHD

  • Description Number of Shadowed Properties

Shared Properties

  • Mnemonic PSHR

  • Description Number of Shared Properties

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Skipped Lines of Comment code

  • Mnemonic SKLC

  • Description Skipped Lines of Comment code i.e. lines that match a user defined regular expression to skip lines of comments.

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

VB.net Ruleset

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Missing Case Else clause

  • Mnemonic CASEELSE

  • Description The final clause of a Select statement shall be the Case Else clause.

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

Use of Exit Do statement

  • Mnemonic EXITDO

  • Description Do not use Exit Do statement to break a Do loop.

Use of Exit Function statement

  • Mnemonic EXITFCT

  • Description Do not use Exit Function statement, use Return instead.

Use of Exit For statement

  • Mnemonic EXITFOR

  • Description Do not use Exit For statement to break a For loop.

Use of Exit Property statement

  • Mnemonic EXITPROP

  • Description Do not use Exit Property statement, use Return instead.

Use of Exit Select statement

  • Mnemonic EXITSELECT

  • Description Do not use Exit Select statement to exit a Select statement.

Use of Exit Sub statement

  • Mnemonic EXITSUB

  • Description Do not use Exit Sub statement.

Use of Exit Try statement

  • Mnemonic EXITTRY

  • Description Do not use Exit Try statement to exit a Try statement.

Use of Exit While statement

  • Mnemonic EXITWHILE

  • Description Do not use Exit While statement to break a While loop.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

No case in Select

  • Mnemonic ONECASE

  • Description Every Select statement shall have at least one case clause.

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Multiple Exit Do statement

  • Mnemonic SGLEXITDO

  • Description For any iteration statement there shall be at most one Exit statement used for loop termination.

Multiple Exit (Function, Sub or Property) statement

  • Mnemonic SGLEXITFCT

  • Description A Function, Sub or Property must have only one Exit statement.

Multiple Exit For statement

  • Mnemonic SGLEXITFOR

  • Description For any iteration statement there shall be at most one Exit statement used for loop termination.

Multiple Exit While statement

  • Mnemonic SGLEXITWHILE

  • Description For any iteration statement there shall be at most one Exit statement used for loop termination.

Xaml

Xaml Metrics

Andthen Operators

  • Mnemonic ANTH

  • Description Number of 'andthen' operators

Number of attributes

  • Mnemonic ATTR

  • Description Number of attributes.

Number of comment blocks

  • Mnemonic BCOM

  • Description Number of comment blocks.

Blank Lines

  • Mnemonic BLAN

  • Description Number of blank lines of code in the source file(s).

Break in Loop

  • Mnemonic BRKL

  • Description Number of 'break' statements in loop in the function

Break in Switch

  • Mnemonic BRKS

  • Description Number of 'break' statements in 'switch' in the function

Case Blocks

  • Mnemonic CABL

  • Description Number of 'case' blocks in 'switch' in the function

Case Labels

  • Mnemonic CASE

  • Description Number of 'case' labels in the function

Catch Statements

  • Mnemonic CATC

  • Description Number of 'catch' statements in the function

Cloned Code

  • Mnemonic CC

  • Description Duplicated code of this artefact

Code Cloning Line Counting

  • Mnemonic CCLC

  • Description Number of lines in source code used when searching for code duplication

Cyclomatic Complexity

  • Mnemonic CCN

  • Description Number of linearly independent paths in the function control graph.

Control Flow Token

  • Mnemonic CFT

  • Description Number of tokens in the control flow of functions

Cloned Control Flow Tokens

  • Mnemonic CFTC

  • Description Number of duplicated tokens in control flow of functions

Comment Lines

  • Mnemonic CLOC

  • Description Number of lines of comments in the source file(s).

Clones Number

  • Mnemonic CN

  • Description Number of clones of this artefacts

Continue Statements

  • Mnemonic CONT

  • Description Number of 'continue' statements in the function

Commented Statements

  • Mnemonic CSTAT

  • Description Number of Commented Statements.

Default Statement

  • Mnemonic DEFT

  • Description Number of 'default' blocks in 'switch' in the function

Distinct Operands

  • Mnemonic DOPD

  • Description Number of distinct operands: variables and constants ([Halstead,76]: n2)

Distinct Operators

  • Mnemonic DOPT

  • Description Number of distinct operators: language keywords ([Halstead,76]: n1)

Do While Statements

  • Mnemonic DOWH

  • Description Number of 'do…​while' statements in the function

Else Statements

  • Mnemonic ELSE

  • Description Number of 'else' statements

Number of XML elements

  • Mnemonic ELT

  • Description Number of XML elements.

Comments containing FIXME

  • Mnemonic

  • Description Number of Comments containing FIXME string.

For Statements

  • Mnemonic FOR

  • Description Number of 'for' statements in the function

Structures Added

  • Mnemonic SADD

  • Description Number of control structures added since the previous version.

Structures Modified

  • Mnemonic SMOD

  • Description Number of control structures modified since the previous version.

Structures Removed

  • Mnemonic SREM

  • Description Number of control structures removed since the previous version.

Goto Statements

  • Mnemonic GOTO

  • Description Number of 'goto' statements

Cloned Code

  • Mnemonic ICC

  • Description Duplicated code in this artefact

Cloned Control Flow Tokens

  • Mnemonic ICFTC

  • Description Number of duplicated tokens in control flow of functions

If Statements

  • Mnemonic IF

  • Description Number of 'if' statements

Line Count

  • Mnemonic LC

  • Description Number of lines.

Loop Statements

  • Mnemonic LOOP

  • Description Number of loop statements in the function

Maximum Nested Structures

  • Mnemonic NEST

  • Description Maximum number of nested structures

Number of Parameters

  • Mnemonic NOP

  • Description Number of formal parameters in the function

Non-Cyclic Paths

  • Mnemonic PATH

  • Description Number of non-cyclic paths in the function.

Orelse operators

  • Mnemonic OREL

  • Description Number of 'orelse' operators

Partially parsed files

  • Mnemonic PARSING_ERROR

  • Description Number of files where a parsing error occured, resulting in a partial interpretation

Return Statements

  • Mnemonic RETURN

  • Description Number of 'return' statements in the function

Repeated Code Blocks

  • Mnemonic RS

  • Description Duplicated blocks in the function

Source Lines Of Code

  • Mnemonic SLOC

  • Description Number of lines of source code in the source file(s).

Executable Statements

  • Mnemonic STAT

  • Description Total number of executable statements.

Switch Statements

  • Mnemonic SWIT

  • Description Number of 'switch' statements in the function

Ternary operators

  • Mnemonic TERN

  • Description Number of ternary operators i.e. ?:

Number of text blocks

  • Mnemonic TEXT

  • Description Number of text blocks.

Throw Statements

  • Mnemonic THRO

  • Description Number of 'throw' statements in the function

Comments containing TODO

  • Mnemonic

  • Description Number of Comments containing TODO string.

Operand Occurrences

  • Mnemonic TOPD

  • Description Number of occurrences of operands: variables and constants ([Halstead,76]: N2)

Operator Occurrences

  • Mnemonic TOPT

  • Description Number of occurrences of operators: language keywords ([Halstead,76]: N1)

Try Statements

  • Mnemonic TRY

  • Description Number of 'try' statements in the function

Lines Added

  • Mnemonic LADD

  • Description Number of lines added since the previous version.

Lines Modified

  • Mnemonic LMOD

  • Description Number of lines modified since the previous version.

Lines Removed

  • Mnemonic LREM

  • Description Number of lines removed since the previous version.

While Statements

  • Mnemonic WHIL

  • Description Number of 'while' statements in the function

Xaml Ruleset

Missing Break

  • Mnemonic BRKFINAL

  • Description An unconditional break statement shall terminate every non-empty switch clause (see [MISRA-C:2004]: RULE 15.2).

Backward Goto shall not be used

  • Mnemonic BWGOTO

  • Description Backward gotos shall not be used.

Comment Before Paragraph

  • Mnemonic COMMENT

  • Description A comment shall introduce a section or a paragraph.

Missing compound statement

  • Mnemonic COMPOUND

  • Description The statement forming the body of a switch, while, do …​ while or for statement shall be a compound statement (see [MISRA-C:2004]: RULE 14.8).

Missing compound if

  • Mnemonic COMPOUNDIF

  • Description An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement (see [MISRA-C:2004]: RULE 14.9).

Commented-out Source Code is not allowed

  • Mnemonic R_CSTAT

  • Description Commented-out Source Code is not allowed

Missing Default

  • Mnemonic DEFAULT

  • Description The final clause of a switch statement shall be the default clause (see [MISRA-C:2004]: RULE 15.3).

Missing final else

  • Mnemonic ELSEFINAL

  • Description All if …​ else if constructs shall be terminated with an else clause (see [MISRA-C:2004]: RULE 14.10).

No Resources

  • Mnemonic FORBIDDEN_ELEMENT

  • Description Elements 'ResourceDictionary' are forbidden.

Resources Folder

  • Mnemonic IN_FOLDER

  • Description ResourceDictionary shall be in a 'Resources' directory

Assignment in Boolean

  • Mnemonic NOASGCOND

  • Description Assignment operators shall not be used in expressions that yield a boolean value

Assignment without Comparison

  • Mnemonic NOASGINBOOL

  • Description Assignment operators shall not be used in expressions that do not contain comparison operators.

Factorizable Classes

  • Mnemonic CAC_CL

  • Description Consider classes refactorization

Factorizable Files

  • Mnemonic CAC_FI

  • Description Consider files refactorization

Factorizable Functions

  • Mnemonic CAC_FN

  • Description Consider functions refactorization

Factorizable Packages

  • Mnemonic CAC_PKG

  • Description Consider packages refactorization

Cloned Classes

  • Mnemonic CC_CL

  • Description There shall be no duplicated classes

Cloned Files

  • Mnemonic CC_FI

  • Description There shall be no duplicated files

Cloned Functions

  • Mnemonic CC_FN

  • Description There shall be no duplicated functions

Cloned Algorithmic

  • Mnemonic CFTC_FN

  • Description There shall be no algorithmic cloning

There shall be a no code before first case

  • Mnemonic NOCODEBEFORECASE

  • Description There shall be a no code before the first case of a switch statement.

Continue shall not be used

  • Mnemonic NOCONT

  • Description The 'continue' statement shall not be used (see [MISRA-C:2004]: RULE 14.5).

Fallthrough shall be avoided

  • Mnemonic NOFALLTHROUGH

  • Description There shall be no fallthrough the next case in a switch statement.

FIXME shall not be commited in sources code

  • Mnemonic R_NOFIXME

  • Description FIXME shall not be commited in sources code as it brings confusion regarding code reliability.

Goto shall not be used

  • Mnemonic NOGOTO

  • Description The 'goto' statement shall not be used (see [MISRA-C:2004]: RULE 14.4).

Label out a switch

  • Mnemonic NOLABEL

  • Description A switch label shall only be used when the most closely-enclosing compound statement is the body of a switch statement (see [MISRA-C:2004]: RULE 15.1).

Avoid Duplicated Blocks in Function

  • Mnemonic RS_FN

  • Description There shall be no duplicated parts in functions

TODO shall not be commited in sources code

  • Mnemonic R_NOTODO

  • Description TODO shall not be commited in sources code as it brings confusion regarding code reliability.

Missing case in switch

  • Mnemonic ONECASE

  • Description Every switch statement shall have at least one case clause (see [MISRA-C:2004]: RULE 15.5).

Relaxed violation

  • Mnemonic RELAX

  • Description A rule violation is relaxed and justified.

Resources Filename

  • Mnemonic RESOURCES_FILENAME

  • Description All XAML resources files shall be suffixed with 'Resources.xaml'

Multiple exits are not allowed

  • Mnemonic RETURN

  • Description A function shall have a single point of exit at the end (see [MISRA-C:2004]: RULE 14.7).

Risky Empty Statement

  • Mnemonic RISKYEMPTY

  • Description Risky Empty Statement

Multiple break in loop are not allowed

  • Mnemonic SGLBRK

  • Description For any iteration statement there shall be at most one 'break' statement used for loop termination (see [MISRA-C:2004]: RULE 14.6).

3. Repository Connectors

ClearCase

Description

IBM Rational ClearCase is a software configuration management solution that provides version control, workspace management, parallel development support, and build auditing. The command executed on the server to check out source code is: $cleartool $view_root_path $view $vob_root_path.

Prior to using this repository connector, the path to the cleartool command has to be configured in the config.xml file located in the root directory of the Squore server or the Squore client:

<path name="cleartool" path="path_to_cleartool_executable"/>

Usage

ClearCase has the following options:

  • View root path (view_root_path, mandatory, default: /view): Specify the absolute path of the ClearCase view.

  • Vob Root Path (vob_root_path, mandatory, default: /projets): Specify the absolute path of the ClearCase vob.

  • View (view): Specify the label of the view to analyse sources from. If no view is specified, the current ClearCase view will be used automatically, as retrieved by the command cleartool pwv -s.

  • Server Display View (server_display_view): When viewing source code from the Explorer after building the project, this parameter is used instead of the view parameter specified earlier. Leave this field empty to use the same value as for view.

  • Sources Path (sub_path): Specify a path in the view to restrict the scope of the source code to analyse. The value of this field must not contain the vob nor the view. Leave this field empty to analyse the code in the entire view. This parameter is only necessary if you want to restrict to a directory lower than root.

The full command line syntax for ClearCase is:

-r "type=ClearCase,view_root_path=[text],vob_root_path=[text],view=[text],server_display_view=[text],sub_path=[text]"

CVS

Description

The Concurrent Versions System (CVS), is a client-server free software revision control system in the field of software development.

For more details, refer to http://savannah.nongnu.org/projects/cvs.

The following is a list of commands used by the CVS Repository Connector to retrieve sources:

cvs -d $repository export [-r $branch] $project
cvs -d $repository co -r $artefactPath -d $tmpFolder

Usage

CVS has the following options:

  • Repository (repository, mandatory): Specify the location of the CVS Repository.

  • Project (project, mandatory): Specify the name of the project to get files from.

  • Tag or Branch (branch): Specify the tag or branch to get the files from.

The full command line syntax for CVS is:

-r "type=CVS,repository=[text],project=[text],branch=[text]"

Folder Path

Description

The simplest method to analyse source code in Squore is to provide a path to a folder containing your code.

Remember that the path supplied for the analysis is a path local to the machine running the analysis, which may be different from your local machine. If you analyse source code on your local machine and then send results to the server, you will not be able to view the source code directly in Squore, since it will not have access to the source code on the other machine. A common workaround to this problem is to use UNC paths (\\Server\Share, smb://server/share…​) or a mapped server drive in Windows.

Usage

Folder Path has the following options:

  • Datapath (path, mandatory):

    • Absolute Path: the absolute path to the folder containing the files you want to include in the analysis. The path specified must be accessible from the server and user must have Access Server Resources permission.

    • Authorized Paths: a list of server paths accessible for all users, regardless of the Access Server Resources permission. This list can only be configured by a Squore administrator : Configure Authorized Server Paths.

The full command line syntax for Folder Path is:

-r "type=FROMPATH,path=[text]"

Folder (use GNATHub)

Description

Retrieve Sources from a folder on the server, use GNATHub to limit the files (compatible with GNAT Pro versions 7.4.2 up to 18.2).

This Repository Connector will only be available after you configure your server or client config.xml with the path to your gnathub executable with a <path name="gnatub" path="C:\tools\GNAThub\gnathub.exe" /> definition. Consult the Configuration Manual for more information about referencing external executables.

Usage

Folder (use GNATHub) has the following options:

  • Path of the source files (path): Specify the absolute path to the files you want to include in the analysis. The path specified must be accessible from the server.

  • Path of the gnathub.db file (gnatdb): Specify the absolute path of the gnathub.db file.

  • Root path for sources in the GNAT DB (gnat_root): Specify the root path for sources in the GNAT DB

The full command line syntax for Folder (use GNATHub) is:

-r "type=GNAThub,path=[text],gnatdb=[text],gnat_root=[text]"

Git

Description

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

For more details, refer to http://git-scm.com/.

Prior to using this repository connector, the path to the git command have to be configured in the config.xml file located in the root directory of the Squore server or the Squore client:

<path name="git" path="path_to_git_executable"/>

The following is a list of commands used by the Git Repository Connector to retrieve sources:

git clone [$username:$password@]$url $tmpFolder
git checkout $commit
git log -1 "--format=%H"
git config --get

remote.origin.url
git clone [$username:$password@]$url $tmpFolder
git checkout $commit
git fetch
git --git-dir=$gitRoot show $artefactPath

Git 1.7.1 is known to fail with a fatal: HTTP request failed error on CentOS 6.9. For this OS, it is recommended to upgrade to git 2.9 as provided by software collections on https://www.softwarecollections.org/en/scls/rhscl/rh-git29/ and point to the new binary in git_config.tcl or make the change permanent as described on https://access.redhat.com/solutions/527703.

Usage

Git has the following options:

  • URL (url, mandatory): URL of the git repository to get files from. The local, HTTP(s), SSH and Git protocols are supported.

  • Branch or commit (commit): This field allows specifying the SHA1 of a commit or a branch name. If a SHA1 is specified, it will be retieved from the default branch. If a branch label is specified, then its latest commit is analysed. Leave this field empty to analyse the latest commit of the default branch.

  • Sub-directory (subDir): Specify a subfolder name if you want to restrict the analysis to a subpath of the repository root.

  • Authentication (useAccountCredentials, default: NO_CREDENTIALS): Possible values for authentication are

    • No credentials: Used when the underlying Git is open and does not require authetication

    • Use my Squore credentials: If the login/password are the same between Squore and the underlying git

    • Define credentials: To be prompted for login/password

  • Username (username):

  • Password (password):

The full command line syntax for Git is:

-r "type=Git,url=[text],commit=[text],subDir=[text],useAccountCredentials=[multipleChoice],username=[text],password=[password]"

Perforce

Description

The Perforce server manages a central database and a master repository of file versions. Perforce supports both Git clients and clients that use Perforce’s own protocol.

For more details, refer to http://www.perforce.com/.

The Perforce repository connector assumes that the specified depot exists on the specified Perforce server, that Squore can access this depot and that the Perforce user defined has the right to access it.

The host where the analysis takes place must have a Perforce command-line client (p4) installed and fully functional.

The P4PORT environment variable is not read by Squore. You have to set it in the form. The path to the p4 command can be configured in the config.xml file located in the root directory of the Squore server or the Squore client:

<path name="p4" path="path_to_p4_executable"/>

The following is a list of commands used by the Perforce Repository Connector to retrieve sources:

p4 -p $p4port [-u username] [-P password] client -i <$tmpFolder/p4conf.txt
p4 -p $p4port [-u username] [-P password] -c $clientName sync "$depot/...@$label"
p4 -p $p4port [-u username] [-P password] client -d $clientName
p4 -p $p4port [-u username] [-P password] print -q -o $outputFile $artefactPath

The format of the p4conf.txt file is:

Client: $clientName

Root: $tmpFolder

Options: noallwrite noclobber nocompress unlocked nomodtime normdir

SubmitOptions: submitunchanged

view:

$depot/... //$clientName/...

Usage

Perforce has the following options:

  • P4PORT (p4port, mandatory): Specify the value of P4PORT using the format [protocol:]host:port (the protocol is optional). This parameter is necessary even if you have specified an environment variable on the machine where the analysis is running.

  • Depot (depot, mandatory): Specify the name of the depot (and optionnally subforders) containing the sources to be analysed.

  • Revision (label): Specify a label, changelist or date to retrieve the corresponding revision of the sources. Leave this field empty to analyse the most recent revision fo the sources.

  • Authentication (useAccountCredentials, default: NO_CREDENTIALS): Possible values for authentication are

    • No credentials: Used when the underlying system is open and does not require authentication

    • Use my Squore credentials: If the login/password are the same between Squore and the underlying system

    • Define credentials: To be prompted for login/password

  • Username (username): Username to use if authentication is set to "Define credentials"

  • Password (password): Password to use if authentication is set to "Define credentials"

The full command line syntax for Perforce is:

-r "type=Perforce,p4port=[text],depot=[text],label=[text],useAccountCredentials=[multipleChoice],username=[text],password=[password]"

PTC Integrity

Description

This Repository Connector allows analysing sources hosted in PTC Integrity, a software system lifecycle management and application lifecycle management platform developed by PTC.

For more details, refer to http://www.ptc.com/products/integrity/.

Prior to using this repository connector, the paths to the si and mksAPIViewer commands have to be configured in the config.xml file located in the root directory of the Squore server or the Squore client:

<path name="si" path="path_to_si_executable"/>

<path name="mksAPIViewer" path="path_to_mksAPIViewer_executable"/>

For versions that do not support the --xmlapi option for command viewproject, you can also turn off this method of retrieving file information. This value can be changed in the file <SQUORE_HOME>/configuration/repositoryConnectors/MKS/form.xml if needed.

Usage

PTC Integrity has the following options:

  • Server Hostname (hostname, mandatory): Specify the name of the Integrity server. This value is passed to the command line using the parameter --hostname.

  • Port (port): Specify the port used to connect to the Integrity server. This value is passed to the command line using the parameter --port.

  • Project (project): Specify the name of the project containing the sources to be analysed. This value is passed to the command line using the --project parameter.

  • Revision (revision): Specify the revision number for the sources to be analysed. This value is passed to the command line using the --projectRevision parameter.

  • Scope (scope, default: name:.c,name:*.h)*: Specifies the scope (filter) for the Integrity sandbox extraction. This value is passed to the command line using the --scope parameter.

  • Authentication (useAccountCredentials, default: NO_CREDENTIALS): Possible values for authentication are

    • No credentials: Used when the underlying system is open and does not require authentication

    • Use my Squore credentials: If the login/password are the same between Squore and the underlying system

    • Define credentials: To be prompted for login/password

  • Username (username): Username to use if authentication is set to "Define credentials"

  • Password (password): Password to use if authentication is set to "Define credentials"

In addition the following options are avaiable on command line:

  • mksTriesDisconnectOnConnectFailure(default: true): Set to true to try a disconnect and then a new connect when "si connect" failed

  • xmlapi(default: true): Set to true if your MKS version support option --xmlapi for command viewproject

The full command line syntax for PTC Integrity is:

-r "type=MKS,hostname=[text],port=[text],project=[text],revision=[text],scope=[text],useAccountCredentials=[multipleChoice],username=[text],password=[password],mksTriesDisconnectOnConnectFailure=[text],xmlapi=[text]"

SVN

Description

Connecting to an SVN server is supported using svn over ssh, or by using a username and password.

For more details, refer to https://subversion.apache.org/.

Prior to using this repository connector, the path to the svn command has to be configured in the config.xml file located in the root directory of the Squore server or the Squore client:

<path name="svn" path="path_to_svn_executable"/>

The following is a list of commands used by the SVN Repository Connector to retrieve sources. Command parameters can be changed in the file <SQUORE_HOME>/configuration/repositoryConnectors/SVN/form.xml if needed. See also below command line options svn_export, svn_info, svn_external and svn_cmd_timeout):

svn info --xml --non-interactive --trust-server-cert --no-auth-cache [--username $username] [--password $password] [-r $revision] $url
svn export --force --non-interactive --trust-server-cert --no-auth-cache [--username $username] [--password $password] [-r $revision] $url

This Repository Connector includes a hybrid SVN mode avoiding an extra checkout of source tree when using the local_path attribute. Consult the reference below for more details.

Usage

SVN has the following options:

  • URL (url, mandatory): Specify the URL of the SVN repository to export and analyse. The following protocols are supported: svn://, svn+ssh://, http://, https:// .

  • Revision (rev): Specify a revision number in this field, or leave it blank to analyse files at the HEAD revision.

  • External references (externals, default: exclude): Specify if when extracting sources from SVN the system should also extract external references.

  • Sources are already extracted in (local_path): Specify a path to a folder where the sources have already been extracted. When using this option, sources are analysed in the specified folder instead of being checked out from SVN. At the end of the analysis, the url and revision numbers are attached to the analysed sources, so that any source code access from the web interface always retrieves files from SVN. This mode is mostly used to save an extra checkout in some continuous integration scenarios.

  • Authentication (useAccountCredentials, default: NO_CREDENTIALS): Possible values for authentication are

    • No credentials: Used when the underlying system is open and does not require authentication

    • Use my Squore credentials: If the login/password are the same between Squore and the underlying system

    • Define credentials: To be prompted for login/password

  • Username (username): Username to use if authentication is set to "Define credentials"

  • Password (password): Password to use if authentication is set to "Define credentials"

In addition the following options are avaiable on command line:

  • svn_export(default: export --force --non-interactive --trust-server-cert --no-auth-cache): Non interactive SVN export command to use for extrating sources from SVN repository.

  • svn_info(default: info --xml --non-interactive --trust-server-cert --no-auth-cache): Non interactive SVN command to get information in xml format.

  • svn_external(default: propget svn:externals -R --non-interactive --trust-server-cert --no-auth-ca…​): Non interactive SVN command to get externa information recursiveley.

  • svn_cmd_timeout(default: 3600000): Timeout to stop SVN commands which could block.

The full command line syntax for SVN is:

-r "type=SVN,url=[text],rev=[text],externals=[multipleChoice],local_path=[directory],useAccountCredentials=[multipleChoice],username=[text],password=[password],svn_export=[text],svn_info=[text],svn_external=[text],svn_cmd_timeout=[text]"

Synergy

Description

Rational Synergy is a software tool that provides software configuration management (SCM) capabilities for all artifacts related to software development including source code, documents and images as well as the final built software executable and libraries.

For more details, refer to https://www.ibm.com/products/rational-synergy.

Prior to using this repository connector, the path to the ccm command have to be configured in the config.xml file located in the root directory of the Squore server or the Squore client:

<path name="ccm" path="path_to_ccm_executable"/>

The Synergy Repository Connector assumes that a project already exists and that the Synergy user defined has the right to access it.

The host where the analysis takes place must have Synergy installed and fully functional. Note that, using credentials is only supported on Windows, so use the NO_CREDENTIALS option when Synergy runs on a Linux host (consult IBM’s documentation for more details).

The following is a list of commands used by the Synergy Repository Connector to retrieve sources:

ccm start -d $db -nogui -m -q [-s $server] [-pw $password] [-n $user -pw password]
ccm prop "$path@$projectSpec"
ccm copy_to_file_system -path $tempFolder -recurse $projectSpec
ccm cat "$artefactPath@$projectSpec"
ccm stop

Usage

Synergy has the following options:

  • Server URL (server): Specify the Synergy server URL, if using a distant server. If specified, the value is used by the Synergy client via the -s parameter.

  • Database (db, mandatory): Specify the database path to analyse the sources it contains.

  • Project Specification (projectSpec, mandatory): Specify the project specification for the analysis. Source code contained in this project specification will be analysed recursively.

  • Subfolder (subFolder): Specify a subfolder name if you want to restrict the scope of the analysis to a particular folder.

  • Include Subprojects (subProject, default: yes): This option creates work area copies for the specified projects and all subprojects. If this option is not on, subprojects are ignored.

  • Ignore links (ignoreLinks, default: no): This option is used to ignore links to subprojects. This option is valid only on Linux systems.

  • XML mapping file (mappingFile): Specify the path to the XML file used to map files in the database to the file system.

  • Authentication (useAccountCredentials, default: NO_CREDENTIALS): Note that, as stated in IBM's documentation, using credentials is only supported on Windows. The "No Credentials" option must be used when Synergy runs on a Linux host. For more information, consult IBM Rational Synergy documentation.

  • Username (username): Username to use if authentication is set to "Define credentials"

  • Password (password): Password to use if authentication is set to "Define credentials"

In addition the following options are avaiable on command line:

  • ccm_home: Configure Environment - set the environment variable CCM_HOME

  • loginSCA: Set unique login for Source Code Access (only for linux), it is needed to save password in credentials.

  • mappingScript: Set a mapping script if any available. When a maping script is available a mapping file associated to the project can be provided.

The full command line syntax for Synergy is:

-r "type=Synergy,server=[text],db=[text],projectSpec=[text],subFolder=[text],subProject=[multipleChoice],ignoreLinks=[multipleChoice],mappingFile=[text],useAccountCredentials=[multipleChoice],username=[text],password=[password],ccm_home=[text],loginSCA=[text],mappingScript=[text]"

TFS

Description

Team Foundation Server (TFS) is a Microsoft product which provides source code management, reporting, requirements management, project management, automated builds, lab management, testing and release management capabilities. This Repository Connector provides access to the sources hosted in TFS’s revision control system.

The TFS repository connector (Team Foundation Server - Team Foundation Version Control) assumes that a TFS command-line client is installed and fully functional on the machine where the analysis runs. Two types of clients are supported: Team Explorer Everywhere (the java client, enabled by default) and Visual Studio Client (tf.exe).

Prior to using this repository connector, ensure that you have configured it to use the right client by adjusting settings in <SQUORE_HOME>/configuration/repositoryConnectors/TFS/form.xml file (three tags have to be configured: clientCmd, argType and viewerCmd).

The Repository Connector form must be filled according to the TFS standard (eg. the Project Path must begin with the '$' character…​). Note that this repository connector works with a temporary workspace that is deleted at the end of the analysis. The following is a list of commands used by the TFS Repository Connector to retrieve sources (this example uses the Windows client):

tf.exe workspace [/login:$username,$password] /server:$url /noprompt /new $workspace
tf.exe workfold [/login:$username,$password] /map $path $tempFolder /workspace:$workspace
tf.exe get [/login:$username,$password] /version:$version /recursive /force $path
tf.exe workspace [/login:$username,$password] /delete $workspace

The following command is used when viewing sources in the web interface:

tf.exe view [/login:$username,$password] /server:$artefactPath

When using the Java Team Explorer Everywhere client, / is replaced by - and the view command is replaced by print.

Usage

TFS has the following options:

  • URL (URL, mandatory): Specify the URL of the TFS server.

  • Path (path, mandatory): Path the project to be analysed. This path usually starts with $.

  • Version (version): Specify the version of the sources to analyse. This field accepts a changeset number, date, or label. Leave the field empty to analyse the most recent revision of the sources.

  • Authentication (useAccountCredentials, default: NO_CREDENTIALS): Possible values for authentication are

    • No credentials: Used when the underlying system is open and does not require authentication

    • Use my Squore credentials: If the login/password are the same between Squore and the underlying system

    • Define credentials: To be prompted for login/password

  • Username (username): Username to use if authentication is set to "Define credentials"

  • Password (password): Password to use if authentication is set to "Define credentials"

In addition the following options are avaiable on command line:

  • clientCmd(default: tf): Set the Team Foundation Version Control Client Name, it is generally tf but can be "cmd /c tf.cmd" on windows with Team Explorer Everywhere. Please add also the path if the command is not in your PATH environment variable

  • argType(default: -): Set the Argument passing character

    • Team Explorer Everywhere: "-" (eg. tf workspace -new myworkspace)

    • Visual Studio Client: "/" (eg. tf workspace /new myworkspace)

  • viewerCmd(default: print): Set the TFS viewer command

    • Team Explorer Everywhere command : print

    • Visual Studio tf command : view

The full command line syntax for TFS is:

-r "type=TFS,URL=[text],path=[text],version=[text],useAccountCredentials=[multipleChoice],username=[text],password=[password],clientCmd=[text],argType=[text],viewerCmd=[text]"

Zip Upload

Description

This Repository Connector allows you to upload a zip file containing your sources to analyse. Select a file to upload in the project wizard and it will be extracted and analysed on the server.

The contents of the zip file are extracted into Squore Server’s temp folder. If you want to uploaded files to persist, contact your Squore administrator so that the uploaded zip files and extracted sources are moved to a location that is not deleted at each server restart.

Usage

This Repository Connector is only available from the web UI, not from the command line interface.

Using Multiple Nodes

Squore allows using multiple repositories in the same analysis. If your project consists of some code that is spread over two distinct servers or SVN repositories, you can set up your project so that it includes both locations in the project analysis. This is done by labelling each source code node before specifying parameters, as shown below

-r "type=FROMPATH,alias=Node1,path=/home/projects/client-code"
-r "type=FROMPATH,alias=Node2,path=/home/projects/common/lib"

Note that only alpha-numeric characters are allowed to be used as labels. In the artefact tree, each node will appear as a separate top-level folder with the label provided at project creation.

Using multiple nodes, you can also analyse sources using different Repository Connectors in the same analysis:

-r "type=FROMPATH,alias=Node1,path=/home/projects/common-config"
-r "type=SVN,alias=Node2,url=svn+ssh://10.10.0.1/var/svn/project/src,rev=HEAD"

4. Data Providers

This chapter describe the available Data Providers and the default parameters that they accept via the Command Line Interface.

AntiC

Description

AntiC is a part of the jlint static analysis suite and is launched to analyse C and C++ source code and produce findings.

For more details, refer to http://jlint.sourceforge.net/.

On Linux, the antiC executable must be compiled manually before you run it for the first time by running the command:

# cd {squore_home}/addons/tools/Antic_auto/bin/ && gcc antic.c -o antic

Usage

AntiC has the following options:

  • Source code directory to analyse (dir): TAG.dir.DESCR = Leave this parameter empty if you want to analyse all sources from repository connectors specified for the project.

In addition the following options are avaiable on command line:

  • antiC: The full path to the AntiC executable can be provided with this option if it is not located as specified above.

The full command line syntax for AntiC is:

-d "type=Antic_auto,dir=[directory],antiC=[text]"

Automotive Coverage Import

Description

Automotive Coverage Import provides a generic import mechanism for coverage results at function level.

Usage

Automotive Coverage Import has the following options:

  • CSV file (csv): Enter the path to the CSV containing the coverage data.

    The expected format of each line contained in the file is PATH;NAME;TESTED_C1;OBJECT_C1;TESTED_MCC;OBJECT_MCC;TESTED_MCDC;OBJECT_MCDC

The full command line syntax for Automotive Coverage Import is:

-d "type=Automotive_Coverage,csv=[file]"

Automotive Tag Import

Description

This data provider allows setting values for attributes in the project.

Usage

Automotive Tag Import has the following options:

  • CSV file (csv): Specify the path to the file containing the metrics.

The full command line syntax for Automotive Tag Import is:

-d "type=Automotive_Tag_Import,csv=[file]"

Axivion

Axivion axivion

Description

Import Findings from Axivion

For more details, refer to http://www.axivion.com.

Usage

Axivion has the following options:

  • CSV File (csv): Specify the CSV file which contains the findings results (MISRA, Coding Style…​)

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

  • csv_separator(default: ,): Specify the CSV separator, required on CSV import

The full command line syntax for Axivion is:

-d "type=bauhaus,csv=[file],logLevel=[text],csv_separator=[text]"

BullseyeCoverage Code Coverage Analyzer

BullseyeCoverage Code Coverage Analyzer bullseye

Description

BullseyeCoverage is a code coverage analyzer for C++ and C. The coverage report file is used to generate metrics.

For more details, refer to http://www.bullseye.com/.

Usage

BullseyeCoverage Code Coverage Analyzer has the following options:

  • HTML report (html): Specify the path to the HTML report file generated by BullseyeCoverage.

The full command line syntax for BullseyeCoverage Code Coverage Analyzer is:

-d "type=BullseyeCoverage,html=[file]"

CANoe

CANoe vector logo

Description

Import "test execution verdicts" and requirements links from CANoe XML result files in order to compute test effectivness.

Usage

CANoe has the following options:

  • Results folder (dir): Specify the folder containing XML test results files from CANoe.

  • Test path (testPath, default: Tests): Define test path (for example Test/HIL Test), by default the value is Tests.

  • Import Traceability Matrix from vTESTstudio? (import_traceability_matrix, default: false): Traceability matrix file (vtc-tso file) can be generated from vTESTstudio. Using the matrix file will automatically link Tests and requirements)

  • Traceability File (vtc-tso) (traceability_file): Traceability File (vtc-tso)

  • Reset all "Review" States? (reset_review, default: false): This option reset all "Review" information which have been filled in the GUI. Initialize the review state allows to start a new analysis review from scratch.

  • Reset all "Overload" States? (reset_overload, default: false): This option reset all "Overload" information which have been filled in the GUI. Initialize the review state allows to start a new analysis review from scratch.

  • Import variant data? (create_variant, default: false): Variant data can be imported beside the test results. It is possible to get an overview of the tests results per variant. CARREFUL: a variant key must be defined.

  • Variant key (variant_options): Variant key allows to name the variant according relevant variant property. Key=ECU will list all the variant and name them according the value of the field "ECU".

  • Advanced options (advanced_options, default: false): Advanced options

  • File suffix (suff, default: .xml): Provide the suffix of CANoe test results files.

  • Consider "None" as "Passed" (consider_none_as_passed, default: true): By default, a test case which is stated as "none" (=without real evaluation step) are considered as "Passed".

  • "Hardware revision" key (sut_mapping_hw_rev, default: Hardware revision): "Hardware revision" key can be found in the node of the CANoe xml results.

  • "Software revision" key (sut_mapping_sw_rev, default: Software revision): "Software revision" key can be found in the node of the CANoe xml results.

  • "Boot Loader revision" key (sut_mapping_boot_rev): "Boot Loader revision" key can be found in the node of the CANoe xml results.

  • Add "Report File Name" to the test execution name (displayReportFileName, default: false): Add "Report File Name" to the test execution name.

    Use this option if you want to distinguish the test execution acccording their report file name.

    Adding an extra information to the name of the artefact affects the unique id of the artefact and allow to explicitely differentiate 2 test executions which have the same unique id.

  • Add "Test Unit" to the test execution name (displayTestUnit, default: false): Add "Test Unit" to the test execution name.

    Use this option if you want to distinguish the test execution acccording their Test Unit.

    Adding an extra information to the name of the artefact affects the unique id of the artefact and allow to explicitely differentiate 2 test executions which have the same unique id.

  • Add "Variant" to the test execution name (displayVariant, default: false): Add "Variant" to the test execution name.

    Use this option if you want to distinguish the test execution acccording their variant.

    Adding an extra information to the name of the artefact affects the unique id of the artefact and allow to explicitely differentiate 2 test executions which have the same unique id.

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

  • createTests(default: YES): Shoult Test artefacts be created?

The full command line syntax for CANoe is:

-d "type=CANoe,dir=[directory],logLevel=[text],testPath=[text],createTests=[multipleChoice],import_traceability_matrix=[booleanChoice],traceability_file=[file],reset_review=[booleanChoice],reset_overload=[booleanChoice],create_variant=[booleanChoice],variant_options=[text],advanced_options=[booleanChoice],suff=[text],consider_none_as_passed=[booleanChoice],sut_mapping_hw_rev=[text],sut_mapping_sw_rev=[text],sut_mapping_boot_rev=[text],displayReportFileName=[booleanChoice],displayTestUnit=[booleanChoice],displayVariant=[booleanChoice]"

Cantata

Cantata cantata

Description

Cantata is a Test Coverage tool. It provides an XML output file which can be imported to generate coverage metrics at function level.

For more details, refer to http://www.qa-systems.com/cantata.html.

Usage

Cantata has the following options:

  • Cantata XML results (xml): Specify the path to the XML results file or directory from Cantata 6.2

  • Regex Files (regexFile, default: .xml): Specify a regular expression to find Cantata xml files

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Cantata is:

-d "type=Cantata,xml=[file_or_directory],regexFile=[text],logLevel=[text]"

CheckStyle

CheckStyle CheckStyle

Description

CheckStyle is an open source tool that verifies that Java applications adhere to certain coding standards. It produces an XML file which can be imported to generate findings.

For more details, refer to http://checkstyle.sourceforge.net/.

Usage

CheckStyle has the following options:

  • CheckStyle results file(s) (xml): Point to the XML file or the directory that contains Checkstyle results. Note that the minimum supported version is Checkstyle 5.3.

  • Regex Files (regexFile, default: .xml): Specify a regular expression to find checkstyle files

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for CheckStyle is:

-d "type=CheckStyle,xml=[file_or_directory],regexFile=[text],logLevel=[text]"

CheckStyle (plugin)

CheckStyle (plugin) CheckStyle

Description

CheckStyle is an open source tool that verifies that Java applications adhere to certain coding standards. It produces an XML file which can be imported to generate findings.

For more details, refer to http://checkstyle.sourceforge.net/.

This data provider requires an extra download to extract the CheckStyle binary in <SQUORE_HOME>/addons/tools/CheckStyle_auto/. For more information, refer to the Installation and Administration Guide’s 'Third-Party Plugins and Applications' section. In this directory, the pattern of the name of the PMD installation directory is checkstyle-5.6-${TheCheckstyleVersion}, for example checkstyle-8.37. If there are multiple installation directories, the most recent version will be chosen. For more information, refer to the Installation and Administration Guide’s 'Third-Party Plugins and Applications' section.

Usage

CheckStyle (plugin) has the following options:

  • Configuration file (configFile): A Checkstyle configuration specifies which modules to plug in and apply to Java source files. Modules are structured in a tree whose root is the Checker module. Specify the absolute path of the configuration file. If no custom configuration file is found, a default configuration will be used (this default configuration is for Checkstyle versions from 8.11).

  • Xmx (xmx, default: 1024m): Maximum amount of memory allocated to the java process launching Checkstyle.

  • Excluded directory pattern (excludedDirectoryPattern): Java regular expression of directories to exclude from CheckStyle, for example: ^test|generated-sources|.*-report$ or ou ^lib$

In addition the following options are avaiable on command line:

  • defaultConfFile(default: checkstyle_for_squore.xml): If the default configuration file is not checkstyle_for_squore.xml, you can specify its name here. If there is no configuration file defined, then this file will be used.

The full command line syntax for CheckStyle (plugin) is:

-d "type=CheckStyle_auto,configFile=[file],xmx=[text],excludedDirectoryPattern=[text],defaultConfFile=[text]"

CheckStyle for SQALE (plugin)

CheckStyle for SQALE (plugin) CheckStyle

Description

CheckStyle is an open source tool that verifies that Java applications adhere to certain coding standards. It produces an XML file which can be imported to generate findings.

For more details, refer to http://checkstyle.sourceforge.net/.

This data provider requires an extra download to extract the CheckStyle binary in <SQUORE_HOME>/addons/tools/CheckStyle_auto_for_SQALE/. For more information, refer to the Installation and Administration Guide’s 'Third-Party Plugins and Applications' section.

Usage

CheckStyle for SQALE (plugin) has the following options:

  • Configuration file (configFile): A Checkstyle configuration specifies which modules to plug in and apply to Java source files. Modules are structured in a tree whose root is the Checker module. Specify the name of the configuration file only, and the data provider will try to find it in the CheckStyle_auto folder of your custom configuration. If no custom configuration file is found, a default configuration will be used.

  • Xmx (xmx, default: 1024m): Maximum amount of memory allocated to the java process launching Checkstyle.

The full command line syntax for CheckStyle for SQALE (plugin) is:

-d "type=CheckStyle_auto_for_SQALE,configFile=[file],xmx=[text]"

Cobertura format

Description

Cobertura is a free code coverage library for Java. Its XML report file can be imported to generate code coverage metrics for your Java project.

For more details, refer to http://cobertura.github.io/cobertura/.

Usage

Cobertura format has the following options:

  • XML report (xml): Specify the path to the XML report generated by Cobertura (or by a tool able to produce data in this format).

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Cobertura format is:

-d "type=Cobertura,xml=[file],logLevel=[text]"

CodeSniffer

CodeSniffer codesniffer

Description

CodeSniffer is a rulecker for PHP and Javascript

For more details, refer to http://www.squizlabs.com/php-codesniffer.

Usage

CodeSniffer has the following options:

  • CodeSniffer results file (checkstyle formatted XML) (xml): Point to the XML file that contains CodeSniffer results.

The full command line syntax for CodeSniffer is:

-d "type=codesniffer,xml=[file]"

CodeSonar

CodeSonar cslogo

Description

Codesonar is a static analysis tool for C and C++ code designed for zero tolerance defect environments. It provides an XML output file which is imported to generate findings.

For more details, refer to http://www.grammatech.com/codesonar.

Usage

CodeSonar has the following options:

  • XML results files (xml): Specify the path to the XML results file generated by Codesonar. The minimum version of Codesonar compatible with this data provider is 3.3.

  • Regex Files (regexFile, default: .xml): Specify a regular expression to find CodeSonar files

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for CodeSonar is:

-d "type=CodeSonar,xml=[file_or_directory],regexFile=[text],logLevel=[text]"

Compiler

Description

Compiler allows to import information from compiler logs.

Usage

Compiler has the following options:

  • Compiler output file(s) (txt, mandatory): Specify the path(s) to CSV compiler log file(s). To provide multiple files click on '+'.

    Each line needs to match the following format: Path;Line;Rule;Descr where Rule is one of COMP_ERR, COMPILER_WARN or COMPILER_INFO.

The full command line syntax for Compiler is:

-d "type=Compiler,txt=[file]"

Configuration Checker

Description

Use this tool to check for duplicated files or XML Elements between a custom configuration and the standard configuration.

Usage

Configuration Checker has the following options:

  • Standard Configuration Path (s):

  • Custom Configurations Path (p):

The full command line syntax for Configuration Checker is:

-d "type=conf-checker,s=[directory],p=[directory]"

Coverity

Coverity Coverity

Description

Coverity is a static analysis tool for C, C++, Java and C#. It provides an XML output which can be imported to generate findings.

For more details, refer to http://www.coverity.com/.

Usage

Coverity has the following options:

  • XML results file (xml): Specify the path to the XML file containing Coverity results.

The full command line syntax for Coverity is:

-d "type=Coverity,xml=[file]"

CPD

CPD pmd

Description

CPD is an open source tool which generates Copy/Paste metrics. The dectection of duplicated blocks is set to 100 tokens. CPD provides an XML file which can be imported to generate metrics as well as findings.

Usage

CPD has the following options:

  • CPD XML results (xml): Specify the path to the XML results file generated by CPD. The minimum supported version is PMD/CPD 4.2.5.

The full command line syntax for CPD is:

-d "type=CPD,xml=[file]"

Cppcheck

Cppcheck cppcheck

Description

Cppcheck is a static analysis tool for C/C++ applications. The tool provides an XML output which can be imported to generate findings.

For more details, refer to http://cppcheck.sourceforge.net/.

Usage

Cppcheck has the following options:

  • CPPCheck XML results (xml): Specify the path to the XML results file or the directory from CPPCheck. Note that the minimum required version of CPPCheck for this data provider is 1.61.

  • Regex Files (regexFile, default: .xml): Specify a regular expression to find CPPCheck files

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Cppcheck is:

-d "type=CPPCheck,xml=[file_or_directory],regexFile=[text],logLevel=[text]"

Cppcheck (plugin)

Cppcheck (plugin) cppcheck

Description

Cppcheck is a static analysis tool for C/C++ applications. The tool provides an XML output which can be imported to generate findings.

For more details, refer to http://cppcheck.sourceforge.net/.

On Windows, this data provider requires an extra download to extract the Cppcheck binary in <SQUORE_HOME>/addons/tools/CPPCheck_auto/ and the MS Visual C++ 2010 Redistributable Package available from http://www.microsoft.com/en-in/download/details.aspx?id=5555. On Linux, you can install the cppcheck application anywhere you want. For more information, refer to the Installation and Administration Guide’s 'Third-Party Plugins and Applications' section.

Usage

Cppcheck (plugin) has the following options:

  • Source code folder (dir): Specify the folder containing the source files to analyse. If you want to analyse all of source repositories specified for the project, leave this field empty.

  • Ignore List (ignores): Specify a semi-colon-separated list of source files or source file directories to exclude from the check. For example: "lib/;folder2/". Leave this field empty to deactivate this option and analyse all files with no exception.

  • Cppcheck addon (addon): to a Cppcheck addon. Will be passed to Cppcheck using the --addon= option.

The full command line syntax for Cppcheck (plugin) is:

-d "type=CPPCheck_auto,dir=[directory],ignores=[text],addon=[file]"

CPPTest

CPPTest Parasoft

Description

Parasoft C/Ctest is an integrated solution for automating a broad range of best practices proven to improve software development team productivity and software quality for C and C. The tool provides an XML output file which can be imported to generate findings and metrics.

For more details, refer to http://www.parasoft.com/product/cpptest/.

Usage

CPPTest has the following options:

  • Directory which contains the XML results files (results_dir): Specify the path to the CPPTest results directory. This data provider is compatible with files exported from CPPTest version 7.2.10.34 and up.

  • Results file extensions (pattern, default: *.xml): Specify the pattern of the results files

The full command line syntax for CPPTest is:

-d "type=CPPTest,results_dir=[directory],pattern=[text]"

CPU Data Import

Description

CPU Data Import provides a generic import mechanism for CPU data from a CSV or Excel file.

Usage

CPU Data Import has the following options:

  • Choose Excel or CSV import (import_type, default: excel): Specify if the import is about Excel or CSV.

  • Data File (xls_file, mandatory): Specify the location of the Excel or CSV file or directory containing CPU information.

  • Sheet Name (xls_sheetname): Specify the name of the Excel sheet that contains the CPU list.

  • Excel file regular expression (xlsx_file_pattern, default: *.xlsx$): Specify a regular expression to find Excel files, by default it's *.xlsx$

  • Specify the CSV separator (csv_separator, default: ;): Specify the CSV separator

  • CSV file regular expression (csv_file_pattern, default: *.csv$): Specify a regular expression to find CSV files, by default it's *.csv$

  • Root node name (root_node, default: Resources): Specify the name of root node in the artefact tree.

  • CPU Column name (xls_key): Specify the header name of the column which contains the CPU key.

  • Grouping Structure (xls_groups): Specify the headers for Grouping Structure, separated by ";".

  • Filtering (xls_filters): Specify the list of Header for filtering

    For example: "column_name_1=regex1;column_name_2=regex2;

  • "CPU Loop Time" Column name (cpu_loop_column_name, default: Total Loop Time [ms]): Specify the column name of the CPU Loop Time (Ex: "Total Loop Time [ms]")

  • "Average Idle Time per loop" Column name (cpu_idle_column_name, default: Average idle Time per loop [ms]): Specify the column name of the Average Idle Time per loop (Ex: "Average idle Time per loop [ms]")

  • "Worst Case Idle Time per loop" Column name (cpu_worst_column_name, default: Worse case idle Time per loop [ms]): Specify the column name of the Worst Case Idle Time per loop (Ex: "Worse case idle Time per loop [ms]")

  • Create an output file (createOutput, default: true): Create an output file

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for CPU Data Import is:

-d "type=import_cpu,import_type=[multipleChoice],xls_file=[file_or_directory],xls_sheetname=[text],xlsx_file_pattern=[text],csv_separator=[text],csv_file_pattern=[text],root_node=[text],xls_key=[text],xls_groups=[text],xls_filters=[text],cpu_loop_column_name=[text],cpu_idle_column_name=[text],cpu_worst_column_name=[text],createOutput=[booleanChoice],logLevel=[text]"

CSV Coverage Import

Description

CSV Coverage Import provides a generic import mechanism for coverage results at function level

Usage

CSV Coverage Import has the following options:

  • CSV file (csv): Enter the path to the CSV containing the coverage data.

    The expected format of each line contained in the file is PATH;NAME;TESTED_C1;OBJECT_C1;TESTED_MCC;OBJECT_MCC;TESTED_MCDC;OBJECT_MCDC;TCOV_MCC;TCOV_MCDC;TCOV_C1

The full command line syntax for CSV Coverage Import is:

-d "type=csv_coverage,csv=[file]"

CSV Findings

Description

CSV Findings is a generic tool that allows importing findings into the project.

Usage

CSV Findings has the following options:

  • CSV File(s) (csv): Specify the path(s) to your CSV file(s) containing findings. To provide multiple files click on '+'. Each line in the file must use the following format and the file should include the following header:

    FILE;FUNCTION;RULE_ID;MESSAGE;LINE;COL;STATUS;STATUS_MESSAGE;TOOL

The full command line syntax for CSV Findings is:

-d "type=csv_findings,csv=[file]"

CSV Import

Description

Imports artefacts, metrics, findings, textual information and links from one or more CSV files. The expected CSV format for each of the input files is described in the user manuals in the csv_import framework reference.

Consult csv_import Reference for more details about the expected CSV format.

Usage

CSV Import has the following options:

  • CSV Separator (separator, default: ;): Specify the CSV Separator used in the CSV file.

  • CSV Delimiter (delimiter, default: "): CSV Delimiter is used when the separator is used inside a cell value. If a delimiter is used as a char in a cell it has to be doubled.

    The ' char is not allowed as a delimiter.

  • Artefact Path Separator (pathSeparator, default: /): Specify the character used as a separator in an artefact's path in the input CSV file.

  • Case-sensitive artefact lookup (pathAreCaseSensitive, default: true): When this option is turned on, artefacts in the CSV file are matched with existing source code artefacts in a case-sensitive manner.

  • Ignore source file path (ignoreSourceFilePath, default: false): When ignoring source file path it is your responsbility to ensure that file names are unique in the project.

  • Create missing files (createMissingFile, default: false): Automatically creates the artefacts declared in the CSV file if they do not exist.

  • Ignore finding if artefact not found (ignoreIfArtefactNotFound, default: true): If a finding can not be attached to any artefact then it is either ignored (checked) or it is attached to the project node instead (unchecked).

  • Unknown rule ID (unknownRuleId): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • Measure ID for orphan artifacts count (orphanArteCountId): To save the total count of orphan findings as a metric at application level, specify the ID of the measure to use in your analysis model.

  • Measure ID for unknown rules count (orphanRulesCountId): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • Information ID receiving the list of unknown rules IDs (orphanRulesListId): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • CSV File (csv): Specify the path to the input CSV file containing artefacts, metrics, findings, textual information, links and keys.

  • Metrics CSV File (metrics): Specify the path to the CSV file containing metrics.

  • Infos CSV File (infos): Specify the path to the CSV file containing textual information.

  • Findings CSV File (findings): Specify the path to the CSV file containing findings.

  • Keys CSV File (keys): Specify the path to the CSV file containing artefact keys.

  • Links CSV File (links): Specify the path to the CSV file containing links.

  • Reports artefacts mapping problem as (level, default: info): When an artefact referenced in the CSV file can not be found in the project, reports the problem as an information or as a warning.

The full command line syntax for CSV Import is:

-d "type=csv_import,separator=[text],delimiter=[text],pathSeparator=[text],pathAreCaseSensitive=[booleanChoice],ignoreSourceFilePath=[booleanChoice],createMissingFile=[booleanChoice],ignoreIfArtefactNotFound=[booleanChoice],unknownRuleId=[text],orphanArteCountId=[text],orphanRulesCountId=[text],orphanRulesListId=[text],csv=[file],metrics=[file],infos=[file],findings=[file],keys=[file],links=[file],level=[multipleChoice]"

CSV Tag Import

Description

This data provider allows setting values for attributes in the project.

Usage

CSV Tag Import has the following options:

  • CSV file (csv): Specify the path to the file containing the metrics.

The full command line syntax for CSV Tag Import is:

-d "type=csv_tag_import,csv=[file]"

ESLint

ESLint eslint

Description

ESLint is an open source tool that verifies that JavaScript applications adhere to certain coding standards. It produces an XML file which can be imported to generate findings.

For more details, refer to https://eslint.org/.

Usage

ESLint has the following options:

  • ESLint results file (xml): Point to the XML file that contains ESLint results in Checkstyle format.

The full command line syntax for ESLint is:

-d "type=ESLint,xml=[file]"

FindBugs-SpotBugs

FindBugs SpotBugs Findbugs

Description

FindBugs (and its successor SpotBugs) is an open source tool that looks for bugs in Java code. It produces an XML result file which can be imported to generate findings.

For more details, refer to http://findbugs.sourceforge.net/.

Usage

FindBugs-SpotBugs has the following options:

  • XML results file (xml): Specify the location of the XML file or directory containing FindBugs results. Note that the minimum supported version for FindBugs is 1.3.9, and 3.1.7 to 3.1.12 for SpotBugs.

  • Regex Files (regexFile, default: .xml): Specify a regular expression to find FindBugs xml files

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for FindBugs-SpotBugs is:

-d "type=Findbugs,xml=[file_or_directory],regexFile=[text],logLevel=[text]"

FindBugs-SpotBugs (plugin)

FindBugs SpotBugs (plugin) Findbugs

Description

FindBugs is an open source tool that looks for bugs in Java code. It produces an XML result file which can be imported to generate findings. Note that the data provider requires an extra download to extract the FindBugs binary in [INSTALLDIR]/addons/tools/Findbugs/. You are free to use FindBugs 3.0 or FindBugs 2.0 depending on what your standard is. For more information, refer to the Installation and Administration Manual’s "Third-Party Plugins and Applications" section.This Data Provider also supports SpotBugs (successor to FindBugs), with the same parameters. If you are using SpotBugs, its binary also has to be accessible, in [INSTALLDIR]/addons/tools/Findbugs/.

For more details, refer to http://findbugs.sourceforge.net/.

This data provider requires an extra download to extract the FindBugs or SpotBugs binary in <SQUORE_HOME>/addons/tools/Findbugs_auto/. In this directory, the pattern of the name of the FindBugs-SpotBugs installation directory is findbugs-${TheFindBugsVersion} or spotbugs${TheSpotBugsVersion}, for example findbugs-3.0.1 or spotbugs-4.2.2. If there are multiple installation directories, the most recent version will be chosen. If there are FindBugs or SpotBugs installation, the SpotBugs installation will be chosen. For more information, refer to the Installation and Administration Guide’s 'Third-Party Plugins and Applications' section.

Usage

FindBugs-SpotBugs (plugin) has the following options:

  • Classes (class_dir, mandatory): Specify the folders and/or jar files for your project in classpath format, or point to a text file that contains one folder or jar file per line.

  • Auxiliary Class path (auxiliarypath): Specify a list of folders and/or jars in classpath format, or specify the path to a text file that contains one folder or jar per line. This information will be passed to FindBugs or SpotBugs via the -auxclasspath parameter.

  • Memory Allocation (xmx, default: 1024m): Maximum amount of memory allocated to the java process launching FindBugs or SpotBugs.

The full command line syntax for FindBugs-SpotBugs (plugin) is:

-d "type=Findbugs_auto,class_dir=[file_or_directory],auxiliarypath=[file_or_directory],xmx=[text]"

Function Relaxer

Description

Function Relaxer provides a generic import mechanism for relaxing functions in source code.

Usage

Function Relaxer has the following options:

  • CSV File (csv):

The full command line syntax for Function Relaxer is:

-d "type=Function_Relaxer,csv=[file]"

FxCop

FxCop FXCop

Description

FxCop is an application that analyzes managed code assemblies (code that targets the .NET Framework common language runtime) and reports information about the assemblies, such as possible design, localization, performance, and security improvements. FxCop generates an XML results file which can be imported to generate findings.

Usage

FxCop has the following options:

  • XML results file (xml): Specify the XML file containing FxCop's analysis results. Note that the minimum supported version of FxCop is 1.35.

The full command line syntax for FxCop is:

-d "type=FxCop,xml=[file]"

GCov

GCov GCov

Description

GCov is a Code coverage program for C application. GCov generates raw text files which can be imported to generate metrics.

For more details, refer to http://gcc.gnu.org/onlinedocs/gcc/Gcov.html.

Usage

GCov has the following options:

  • Directory containing results files (dir): Specify the path of the root directory containing the GCov results files.

  • Results files extension (ext, default: *.c.gcov): Specify the file extension of GCov results files.

The full command line syntax for GCov is:

-d "type=GCov,dir=[directory],ext=[text]"

Generic Findings XML Import

Description

Generic Findings XML Import

Usage

Generic Findings XML Import has the following options:

  • XML File (xml): Specify the XML file which contains the findings results (MISRA, Coding Style…​)

  • "Issue" mapping definition (issue):

  • "Rule Id" mapping definition (id_rule):

  • "Message" mapping definition (message):

  • "File" mapping definition (file):

  • "Line" mapping definition (line):

  • "Justification" mapping definition (justification):

The full command line syntax for Generic Findings XML Import is:

-d "type=findings_xml,xml=[file],issue=[text],id_rule=[text],message=[text],file=[text],line=[text],justification=[text]"

GNATcheck

GNATcheck GnatCheck

Description

GNATcheck is an extensible rule-based tool that allows developers to completely define a coding standard. The results are output to a log file or an XML file that can be imported to generate findings.

Usage

GNATcheck has the following options:

  • Log or XML file (txt): Specify the path to the log file or the XML file generated by the GNATcheck run.

The full command line syntax for GNATcheck is:

-d "type=GnatCheck,txt=[file]"

GNATCompiler

GNATCompiler GnatCompiler

Description

GNATCompiler is a free-software compiler for the Ada programming language which forms part of the GNU Compiler Collection. It supports all versions of the language, i.e. Ada 2012, Ada 2005, Ada 95 and Ada 83. It creates a log file that can be imported to generate findings.

Usage

GNATCompiler has the following options:

  • Log file (log): Specify the path to the log file containing the compiler warnings.

The full command line syntax for GNATCompiler is:

-d "type=GnatCompiler,log=[file]"

GNAThub

GNAThub AdaCore

Description

Import data from GNAThub. GNAThub integrates and aggregates the results of AdaCore’s various static and dynamic analysis tools (GNATmetric, GNATcheck, GNATcoverage, CodePeer). Compatible with GNAT Pro versions 7.4.2 up to 18.2.

This Data Provider will only be available after you configure your server or client config.xml with the path to your gnathub executable with a <path name="gnatub" path="C:\tools\GNAThub\gnathub.exe" /> definition. Consult the Configuration Manual for more information about referencing external executables.

Usage

GNAThub has the following options:

  • Path of the gnathub.db file (gnatdb): Specify the absolute path of the gnathub.db file.

The full command line syntax for GNAThub is:

-d "type=gnathub,gnatdb=[file]"

Import Data

Description

Import data by using a Excel, CSV, JSON or Xml file

Usage

Import Data has the following options:

  • Choose Excel, CSV, JSON or XML import (import_type, default: excel): Specify if the import is about Excel, CSV, JSON or Xml file.

  • Input file(s) (input_file, mandatory): Specify the location of the file or directory containing Excel, CSV, JSON or XML file to parse

  • Sheetname (sheetname): Sheetname to read data from, required on Excel import

  • Excel file regular expression (xlsx_file_pattern, default: *.xlsx$): Specify a regular expression to find Excel files, by default it's *.xlsx$

  • Specify the CSV separator (csv_separator, default: ;): Specify the CSV separator, required on CSV import

  • CSV file regular expression (csv_file_pattern, default: *.csv$): Specify a regular expression to find CSV files, by default it's *.csv$

  • Root Element path (root_path): Defined the root element to retrieve the list of artifacts, required on JSON or XML import

  • JSON file regular expression (json_file_pattern, default: *.json$): Specify a regular expression to find JSON files, by default it's *.json$

  • XML file regular expression (xml_file_pattern, default: *.xml$): Specify a regular expression to find XML files, by default it's *.xml$

  • Log level (logLevel, default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

  • Default name path (defaultPath, default: Unknown): Specify the name of unknown path, by default it's Unknown

  • XML Pretty Print Configuration (prettyXml, default: prettyL): Specify the pretty level (pretty, prettyL or no), by default it's prettyL

  • Artefact Type (artefact_type): Artefact Type used by Squore Analysis model.

    Example: TEST

  • Artefact Type container (artefact_type_container): Artefact Type container used by Squore Analysis model.

    Example: TEST_FOLDER

  • Artefact unique ID (artefact_uid): Optional unless you want to use links to these artefacts.

    This is the artefact unique ID, to be used by links, from this Data Provider, or another Data Provider.Examples:

    • ${ID}

    • T_${Name}

    • ${Name} ${Descr}

    Note:${NAME} designates the column called NAME

  • Links to this artefact (artefact_link): Specify how to create links between this artefact and other artefacts with the following format:

    *<LINK_TYPE>?direction=<IN or OUT>&column=<COLUMN_NAME>&separator=<SEPARATOR>$map=[elementWithSpecialCharacterValue:newIdValue]or only for xml or json files <LINK_TYPE>?direction=<IN or OUT>&array=<ARRAY_PATH_NAME>,<PATH_VALUE>*Examples:

    • TESTED_BY?column=Test

    A 'TESTED_BY' link will be created with the UID found in column 'Test'

    • IMPLEMENTED_BY?direction=IN&column=Implements

    An 'IMPLEMENTED_BY' link will be created with the UID found in column 'Implements'. Since the optional 'direction' attribute is provided, it will be set as 'IN' (default value is 'OUT')

    • TESTED_BY?column=Tests&separator=','

    'TESTED_BY' links will be created with all UIDs found in column 'Tests', separated by a comma

    • TESTED_BY?column=Tests&separator=',';REFINED_BY?column=DownLinks&separator=','

    'TESTED_BY' and 'REFINED_BY' links will be created with UIDs found in columns 'Tests' and 'DownLinks' respectively

    • type/inward?array=fields/issuelinks,inwardIssue/key&direction=IN

    'type/inward' is the path name of link, 'fields/issuelinks' is the path array name and 'inwardIssue/key' is the path value.

    • SUBTASK?array=fields/subtasks,key

    'SUBTASK' is the link name 'fields/subtasks' is the path array name and 'key' the value path.

    • type/inward?array=fields/issuelinks,inwardIssue/key&direction=IN&map[elementWithSpecialCharacterValue:newIdValue] if the element will be the link id doesn't match [A-Z_][A-Z_0-9]* the map can replace by a valid id.

  • Artefact name (artefact_name): Artefact name as displayed in Squore. Examples:

    • ${ID}

    • T_${Name}

    • ${Name} ${Descr}

    Note:${NAME} designates the column or path called NAME

  • Artefact keys (artefact_keys): Artefact keys as displayed in Squore. Examples:Id;${key}

    Note:${key} designates the column or path called NAME

  • Path to the artefact (path_list): Optional. If not used, artefacts extracted from the Excel file will be directly added to the Squore root.

    To specify the path in Squore of artefacts exracted from the Excel file, using the following format:

    *<COLUMN_NAME>?map=[<REGEX_1>:<GROUP_NAME_1>,…​,<REGEX_N>:<GROUP_NAME_N>]&groupByDate=<YES>&format=<dd-mm-YYYY>*Examples:

    • Area

    Artefacts will be regrouped by the value found in the 'Area' column

    • Area?map=[A*:Area A,B*:Area B]

    Artefacts will be regrouped into two groups:'Area A', for all values of 'Area' column starting with letter 'A', and 'Area B' for letter 'B'.

    • Started on?groupByDate=Yes&format=YYYY/mm/dd

    Artefacts will be regrouped by the date found in column 'Started on', using the format 'YYYY/mm/dd'

    Note:Date patterns are based on SimpleDateFormat Java class specifications.

  • Textual data to extract (info_list): Optional.

    To specify the list of textual data to extract from the Excel file, using the following format:

    *<METRIC_ID>?column=<COLUMN_NAME>&map=[<REGEX_1>:<TEXT_1>,…​,<REGEX_N>:<TEXT_N>]*Examples:

    • ZONE_ID?column=Zone

    Textual data found in column 'Zone' will be associated to metric ZONE_ID

    • ZONE_ID?column=Zone;OWNER?column=Belongs to

    Textual data found in columns 'Zone' and 'Belongs to' will be associated to metric ZONE_ID and OWNER respectively

    • ORIGIN?column=Comes from,map=[Cust*:External,Sub-contractor*:External,Support:Internal,Dev:Internal]

    _Textual data found in column 'Comes from' will be associated to metric ORIGIN:

    • With value 'External' if the column starts with 'Cust' or 'Sub-contractor'

    • With value 'Internal' if the column equals 'Support' or 'Dev'

    _

    • Started on?groupByDate=Yes&format=YYYY/mm/dd

    Artefacts will be regrouped by the date found in column 'Started on', using the format 'YYYY/mm/dd'

  • Numerical metrics to extract (metric_list): Optional.

    To specify the list of numerical data to extract from the Excel file, using the following format:

    *<METRIC_ID>?column=<COLUMN_NAME>&extract=<REGEX_EXRACT>&map=[<REGEX_1>:<VALUE_1>,…​,<REGEX_N>:<VALUE_N>]*Examples:

    • PRIORITY?column=Priority level

    Numerical values found in column 'Priority level' will be associated to metric PRIORITY

    • SEVERITY?column=Severity level,extract=S_

    Numerical values found in column 'Severity level' will be associated to metric SEVERITY, after having extracted (removed) the string 'S_', because in this example, column 'Severity level' contains for example 'S_1', 'S_4', etc., and we want to obtain '1', '4', etc.

    • STATUS?column=State&map=[passed:0,Passed:0,Pass:0,*nconclusive*:1,failed:2,Failed:2,FAIL:2]

    _Textual values found in column 'State' will be mapped to numerical values using these rules:

    • For values containing 'passed', 'Passed', 'Pass'

    • For values containing 'nconclusive'

    • For values containing 'failed', 'Failed, 'FAIL'

    _

  • Date metrics to extract (date_list): Optional.

    To specify the list of date data to extract from the Excel file, using the following format:

    *<METRIC_ID>?column=<COLUMN_NAME>&format=<DATE_FORMAT>*Examples:

    • CREATION_DATE?column=Created on

    Date values found in column 'Created on' will be associated to metric CREATION_DATE, using the default dd-MMM-yyyy format

    • LAST_UPDATE?column=Updated on&format=yyyy/mm/dd

    Date values found in column 'Created on' will be associated to metric CREATION_DATE, using the yyyy/mm/dd format

    Note:Date patterns are based on SimpleDateFormat Java class specifications.

  • Filters to set the list of artefacts to keep (filter_list): Optional.

    If specified only artefacts complying with the provided filters are kept. Use the following format:

    *<COLUMN_NAME>?regex=<REGEX>*Examples:

    • Name?regex=^ST*

    Only create artefacts for which column 'Name' starts with 'ST'

    • Name?regex=^ST*;Region?regex=Europe

    Same as before, but restrict to artefacts where column 'Region' is 'Europe'

  • Findings (findings_list): Optional.

    The findings generation need an operator(in, notIn,greater,grOrEq,lesser,lsOrEq) the search conditions and the values.

    Examples:

    R_MAPPED_STATUS?operator=notIn&conditions=[Status=[Open|Spec Validation|Estimated|Reopened]]&fValue='The status is not mapped with one of the aggregated status: open.'

  • Extract other artifacts (extract_artifacts): Extract other artifacts to be linked with the main artifact. Use the following format:

    <COLUMN_NAME>?type=<Artifact type&gt&hierarchy=<All hierarchy element separate by the concatenation delimitor>&isArray=<true or false>&link=<name link>&direction=<IN or OUT>

    Example: fields/labels?type=LABEL&hierarchy=Labels&isArray=true&link=HAS_LABEL&direction=IN <br\>If the type is not defined, it's the main artifact type would be used.

    If the hierarchy is not defined, the artifact will be under APPLICATION

    If the isArray is not defined, the default value is false.

    If the direction is not defined, the default value is OUT

    If the link is not defined, the artifact will still be created

    If the field is an object array, you have to enter the property of the object to search for

    Example: fields/fixVersions?type=TICKET_VERSION&hierarchy=Tickets,Versions&isArray=true*,name*&link=TARGET_VERSION&direction=IN;

  • Date format (date_format, default: yyyy-MM-dd): Formatting the date to match the given pattern

  • Import data via UID only (import_data_via_uid_only, default: 0): Specify this option if you want to add metric/info to an artefact which created in another Data Provider

  • Header row index (initial_row, default: 0): Specify the line number where headers are defined.Note:Indexes start at value '0', e.g. the 4th line has index 3.

  • Element Separator (elementSeparator, default: ;): Defined the element separator

  • Concatenation delimitor (concatSeparator, default: ,): Defined the concatenation delimitor

The full command line syntax for Import Data is:

-d "type=import_generic_data,import_type=[multipleChoice],input_file=[file_or_directory],sheetname=[text],xlsx_file_pattern=[text],csv_separator=[text],csv_file_pattern=[text],root_path=[text],json_file_pattern=[text],xml_file_pattern=[text],logLevel=[text],defaultPath=[text],prettyXml=[text],artefact_type=[text],artefact_type_container=[text],artefact_uid=[text],artefact_link=[text],artefact_name=[text],artefact_keys=[text],path_list=[text],info_list=[text],metric_list=[text],date_list=[text],filter_list=[text],findings_list=[text],extract_artifacts=[text],date_format=[text],import_data_via_uid_only=[text],initial_row=[text],elementSeparator=[text],concatSeparator=[text]"

JaCoCo

JaCoCo jacoco

Description

JaCoCo is a free code coverage library for Java. Its XML report file can be imported to generate code coverage metrics for your Java project.

For more details, refer to http://www.eclemma.org/jacoco/.

Usage

JaCoCo has the following options:

  • XML report (xml, mandatory): Specify the path to the XML report generated by JaCoCo. Note that the folder containing the XML file must also contain JaCoCo's report DTD file, available from http://www.eclemma.org/jacoco/trunk/coverage/report.dtd. XML report files are supported from version 0.6.5.

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for JaCoCo is:

-d "type=Jacoco,xml=[file],logLevel=[text]"

Jira

Description

This Data Provider extracts tickets and their attributes from a Jira instance to create ticket artefacts in your project.

For more details, refer to https://www.atlassian.com/software/jira.

The extracted JSON from Jira is then passed to the Ticket Data Import Data Provider (described in Ticket Data Import). Finer configuration of the data passed from this Data Provider to Ticket Data Import is available by editing (or overriding) <SQUORE_HOME>/addons/tools/jira/jira_config.xml.

Usage

Jira has the following options:

  • Jira REST API URL (url, mandatory): The URL used to connect to yout Jira instance's REST API URL (e.g: https://jira.domain.com/rest/api/2)

  • Jira User login (login): Specyfy your Jira User login. The login is used in Basic authentication type.

  • Jira User password (pwd): Specify your Jira User password. The password is used in Basic authentication type. This password can be encoded by the Jira Server so as not to be provided in readable form.

  • Jira User token (token): Specify your Jira User token. This token is used in Bearer authentication type. If it's defined, the login/password don't need to be provided.

  • JQL Request (jql_request): Specify a JQL request (see JIRA documentation) in order to limit the number of elements sent by the JIRA server.

    For example: project=MyProject.This parameter is optional.

  • Number of queried tickets (max_results, mandatory, default: -1): Maximum number of queried tickets returned by the query (default is -1, meaning 'retrieve all tickets').

  • Additional Fields (additional_fields, default: environment,votes,issuelinks): List additional fields to be exported from Jira.

    This field accepts a comma-separated list of field names that are added to the export request URL, for example fixVersions,versions

  • Use a proxy (useProxy, default: false): If Squore is behind a proxy and needs to access the outside, you can configure the different properties by selecting the checkbox.

  • Host name (proxyHost): Configure the host name (it's the same for http or https protocol). Example: http://my-company-proxy.com

  • Port (proxyPort): Configure the port (it's the same for http or https protocol). Example: 2892

  • Proxy User (proxyUser): Configure the user if authentication is required

  • Proxy User Password (proxyPassword): Configure the user password if authentication is required

  • Grouping Structure (artefact_groups, default: fields/components[0]/name): Specify the headers for Grouping Structure, separated by ";".

    For example: "column_name_1=regex1;column_name_2=regex2;

  • Filtering (artefact_filters, default: fields/issuetype/name=(Task|Bug|Improvement|New Feature)): Specify the list of Header for filtering

    For example: "column_name_1=regex1;column_name_2=regex2;

  • Todo list regex (in_todo_list, default: fields/status/name=.)*: Todo list regex (ticket which fit the regex will be considered as part of the TODO list for the analysis)

  • JSON Root Path (root_path, default: issues): Specify the root path in the JSON file to retrieve issues.

  • Ticket ID (artefact_id, default: id): Specify the path to the field containing the ticket ID.

  • Ticket UID (artefact_uid, default: JR#${id}): Specify the pattern used to build the ticket Unique ID. The UID can use any information collected from the JSON file as a parameter.

    Example: TK#${ID}

  • Ticket Name (artefact_name, default: ${key}): Specify the pattern used to build the name of the ticket. The name can use any information collected from the JSON file as a parameter.

    Example: ${ID} : ${Summary}

  • Ticket Keys (artefact_keys, default: key): Specify the pattern used to find the ticket keys. The keys can use any information collected from the file, separated by ";".

    Example: ${ID};key

  • Ticket Links (artefact_link, default: type/inward?array=fields/issuelinks,/inwardIssue/key&direction=IN;): Specify the pattern used to find the ticket links. The links can have special syntax, see import_generic_data documentation.

    Example: type/inward?array=fields/issuelinks,/inwardIssue/key&direction=IN;

  • Creation Date Field (creation_date, default: fields/created): Enter the path to the field containing the creation date of the ticket.

    For example: column_name&format="dd/mm/yyyy".

    If format is not specified, the following is used by default: dd-MMM-yyyy.

  • Closure Date Field (closure_date, default: fields/resolutiondate): Enter the path to the field containing the closure date of the ticket.

    For example: column_name&format="dd/mm/yyyy".

    If format is not specified, the following is used by default: dd-MMM-yyyy.

  • Due Date Field (due_date, default: fields/duedate): Enter the path to the field containing the due date of the ticket.

    For example: column_name&format="dd/mm/yyyy".

    If format is not specified, the following is used by default: dd-MMM-yyyy.

  • Last Updated Date Field (last_updated_date, default: fields/updated): Enter the path to the field containing the last updated date of the ticket.

    For example: column_name&format="dd/mm/yyyy".

    If format is not specified, the following is used by default: dd-MMM-yyyy.

  • Time Spent (time_spent, default: fields/timespent): Specify the path to the field containing time spent on the issue.

  • Remaining Time (remaining_time, default: fields/timeestimate): Specify the path to the field containing the remaining time for the issue.

  • Original Time Estimate (original_time_estimate, default: fields/timeoriginalestimate): Specify the path to the field containing the original time estimate for the issue.

  • Open Ticket Pattern (definition_open, default: fields/status/name=[To Do|Open|Reopened]): Specify the pattern applied to define tickets as open. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=[Open|New]

  • In Development Ticket Pattern (definition_rd_progress, default: fields/status/name=[In Progress|In Review]): Specify the pattern applied to define tickets as in development. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Implementing

  • Fixed Ticket Pattern (definition_vv_progress, default: fields/status/name=[Verified]): Specify the pattern applied to define tickets as fixed. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Verifying;Resolution=[fixed;removed]

  • Closed Ticket Pattern (definition_close, default: fields/status/name=[Resolved|Closed|Done]): Specify the pattern applied to define tickets as closed. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Closed

  • Defect Pattern (definition_defect, default: fields/issuetype/name=[Bug]): Specify the pattern applied to define tickets as defects. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Type=Bug

  • Enhancement Pattern (definition_enhancement, default: fields/issuetype/name=[Improvement|New Feature]): Specify the pattern applied to define tickets as enhancements. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Type=Enhancement

  • Category (category, default: fields/components[0]/name): Specify the path to the field containing the ticket category.

  • Priority (priority, default: fields/priority/name): Specify the path to the field containing the ticket priority.

  • Severity (severity, default: fields/priority/name): Specify the path to the field containing severity data.

  • Severity Mapping (severity_mapping, default: [Lowest:0,Low:1,Medium:2,High:3,Highest:4]): Specify the mapping used to associate a severity to a scale on the severity scale in the model, where 0 is least critical and 4 is most critical.

  • Status (status, default: fields/status/name): Specify the path to the field containing the status of the ticket.

  • Information Fields (informations, default: fields/environment;fields/votes/votes): Specify a semicolon-separated list of paths to fields you want to extract from the Jira JSON export to be added as textual information for the ticket artefacts.

    For example: fields/fixVersions[0]/name;fields/versions[0]/name

  • Issue URL (issue_url, default: ${self}/../../../../../browse/${key}): Specify the pattern used to build the ticket URL. The URL can use any information collected from the file as a parameter.

  • Title (title, default: fields/summary): Specify the path to the field containing the title of the ticket.

  • Description (description, default: fields/description): Specify the path to the field containing the full description of the ticket.

  • Reporter (reporter, default: fields/reporter/displayName): Specify the path to the field containing the reporter of the ticket.

  • Handler (handler, default: fields/assignee/displayName): Specify the path to the field containing the handler of the ticket.

  • Extract other artefacts (extract_artifacts): Extract other artefacts to be linked with the main artefact. Use the following format:

    <COLUMN_NAME>?type=<Artefact type>&hierarchy=<All hierarchy element separate by ','>&isArray=<true or false>&link=<name link>&direction=<IN or OUT>

    Example: fields/labels?type=LABEL&hierarchy=Labels&isArray=true&link=HAS_LABEL&direction=IN

    If the type is not defined, it's the main artefact type would be used.

    If the hierarchy is not defined, the artefact will be under APPLICATION

    If the isArray is not defined, the default value is false.

    If the direction is not defined, the default value is OUT

    If the link is not defined, the artefact will still be created

    If the field is an object array, you have to enter the property of the object to search for

    Example: fields/fixVersions?type=TICKET_VERSION&hierarchy=Tickets,Versions&isArray=true*,name*&link=TARGET_VERSION&direction=IN;

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Jira is:

-d "type=jira,url=[text],login=[text],pwd=[password],token=[password],jql_request=[text],max_results=[text],additional_fields=[text],useProxy=[booleanChoice],proxyHost=[text],proxyPort=[text],proxyUser=[text],proxyPassword=[password],artefact_groups=[text],artefact_filters=[text],in_todo_list=[text],root_path=[text],artefact_id=[text],artefact_uid=[text],artefact_name=[text],artefact_keys=[text],artefact_link=[text],creation_date=[text],closure_date=[text],due_date=[text],last_updated_date=[text],time_spent=[text],remaining_time=[text],original_time_estimate=[text],definition_open=[text],definition_rd_progress=[text],definition_vv_progress=[text],definition_close=[text],definition_defect=[text],definition_enhancement=[text],category=[text],priority=[text],severity=[text],severity_mapping=[text],status=[text],informations=[text],issue_url=[text],title=[text],description=[text],reporter=[text],handler=[text],extract_artifacts=[text],logLevel=[text]"

JSHint

JSHint jshint

Description

JSHint is an open source tool that verifies that JavaScript applications adhere to certain coding standards. It produces an XML file which can be imported to generate findings.

For more details, refer to http://jshint.com/.

Usage

JSHint has the following options:

  • JSHint results file (Checkstyle formatted): (xml): Point to the XML file that contains JSHint results Checkstyle formatted.

The full command line syntax for JSHint is:

-d "type=JSHint,xml=[file]"

JUnit Format

JUnit Format JUnit

Description

JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks. JUnit XML result files are imported as test artefacts and links to tested classes are generated in the project.

For more details, refer to http://junit.org/.

Usage

JUnit Format has the following options:

  • Results folder (resultDir, mandatory): Specify the path to the folder containing the JUnit results (or by a tool able to produce data in this format). The data provider will parse subfolders recursively. Note that the minimum support version of JUnit is 4.10.

  • File Pattern (filePattern, mandatory, default: TEST-.xml)*: Specify the pattern for files to read reports from.

  • Root Artefact (root, mandatory, default: tests[type=TEST_FOLDER]/junit[type=TEST_FOLDER]): Specify the name and type of the artefact under which the test artefacts will be created.

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for JUnit Format is:

-d "type=JUnit,resultDir=[directory],filePattern=[text],root=[text],logLevel=[text]"

Klocwork

Klocwork Klocwork

Description

Klocwork is a static analysis tool. Its XML result file can be imported to generate findings.

For more details, refer to http://www.klocwork.com.

Usage

Klocwork has the following options:

  • XML results file (xml): Specify the path to the XML results file exported from Klocwork. Note that Klocwork version 9.6.1 is the minimum required version.

The full command line syntax for Klocwork is:

-d "type=Klocwork,xml=[file]"

Klocwork MISRA

Klocwork MISRA Klocwork

Description

Klocwork is a static analysis tool. Its XML result file can be imported to generate findings.

For more details, refer to http://www.klocwork.com.

Usage

Klocwork MISRA has the following options:

  • XML results file (xml): Specify the path to the XML results file exported from Klocwork. Note that Klocwork version 9.6.1 is the minimum required version.

The full command line syntax for Klocwork MISRA is:

-d "type=Klocwork_misra,xml=[file]"

Mantis

Description

The Mantis Data Provider extracts tickets and their attributes from a Mantis installation and creates ticket artefacts.

Prerequisites:

  • This Data Provider queries Mantis tickets using the Mantis BT REST API. An API token is required to access this API.

  • The Mantis server should be configured to avoid filtering 'Authorization' headers.

For more details, refer to https://www.mantisbt.com.

The extracted JSON from Mantis BT is then passed to the Ticket Data Import Data Provider (described in Ticket Data Import). Finer configuration of the data passed from this Data Provider to Ticket Data Import is available by editing (or overriding) <SQUORE_HOME>/addons/tools/mantis/mantis_config.xml.

Usage

Mantis has the following options:

  • Mantis URL (url, mandatory): Specify the URL of the Mantis instance (e.g: https://www.mantisbt.org/bugs/api/rest)

  • Mantis API Token (api_token, mandatory): Copy the Mantis API Token generated from your Account Settings in Mantis.

  • Number of queried tickets (max_results, mandatory, default: 50): Maximum number of queried tickets returned by the query (default is 50. value=-1 means 'retrieve all tickets').

  • JSON Root Path (root_path, default: issues): Specify the root path in the JSON file to retrieve issues.

  • Ticket Name (artefact_name, default: ${id};$Summary): Specify the pattern used to build the name of the ticket. The name can use any information collected from the CSV file as a parameter.

    Example: ${ID} : ${Summary}

  • Grouping Structure (artefact_groups, default: category/name): Specify the headers for Grouping Structure, separated by ";".

    For example: "column_name_1=regex1;column_name_2=regex2;

  • Filtering (artefact_filters): Specify the list of Header for filtering

    For example: "column_name_1=regex1;column_name_2=regex2;

  • Issue URL (issue_url): Specify the pattern used to build the ticket URL. The URL can use any information collected from the CSV file as a parameter.

  • Ticket UID (artefact_uid, default: BUG#): Specify the pattern used to build the ticket Unique ID. The UID can use any information collected from the CSV file as a parameter.

    Example: TK#${ID}

  • Open Ticket Pattern (definition_open, default: status/name=[new|acknowledged]): Specify the pattern applied to define tickets as open. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=[Open|New]

  • In Development Ticket Pattern (definition_rd_progress, default: status/name=[assigned|feedback]): Specify the pattern applied to define tickets as in development. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Implementing

  • Fixed Ticket Pattern (definition_vv_progress, default: status/name=[confirmed]): Specify the pattern applied to define tickets as fixed. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Verifying;Resolution=[fixed;removed]

  • Closed Ticket Pattern (definition_close, default: status/name=[resolved]): Specify the pattern applied to define tickets as closed. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Closed

  • Defect Pattern (definition_defect, default: resolution/name=[open|fixed|duplicate|reopened|wont fix|suspended|unable to…​): Specify the pattern applied to define tickets as defects. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Type=Bug

  • Enhancement Pattern (definition_enhancement, default: resolution/name=not a bug): Specify the pattern applied to define tickets as enhancements. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Type=Enhancement

  • Todo list regex (in_todo_list, default: view_state/name=public): Todo list regex (ticket which fit the regex will be considered as part of the TODO list for the analysis)

  • Creation Date Field (creation_date, default: created_at): Enter the name of the column containing the creation date of the ticket.

    For example: column_name&format="dd/mm/yyyy".

    If format is not specified, the following is used by default: dd-MMM-yyyy.

  • Due Date Field (due_date, default: Due Date): Enter the name of the column containing the due date of the ticket.

    For example: column_name&format="dd/mm/yyyy".

    If format is not specified, the following is used by default: dd-MMM-yyyy.

  • Last Updated Date Field (last_updated_date, default: updated_at): Enter the name of the column containing the last updated date of the ticket.

    For example: column_name&format="dd/mm/yyyy".

    If format is not specified, the following is used by default: dd-MMM-yyyy.

  • Closure Date Field (closure_date, default: updated_at,status/name=[resolved]): Enter the name of the column containing the closure date of the ticket.

    For example: column_name&format="dd/mm/yyyy".

    If format is not specified, the following is used by default: dd-MMM-yyyy.

  • Description Column (description, default: summary): Specify the header of the column containing the description of the ticket.

  • Reporter Column (reporter, default: reporter/name): Specify the header of the column containing the reporter of the ticket.

  • Handler Column (handler, default: handler/name): Specify the header of the column containing the handler of the ticket.

  • Priority Column (priority, default: priority/name): Specify the header of the column containing priority data.

  • Severity Column (severity, default: severity/name): Specify the header of the column containing severity data.

  • Specify the CSV separator (csv_separator, default: |): Specify the CSV separator

  • Information Fields (informations, default: status/name;resolution/name): Specify the list of extra textual information to import from the CSV file. This parameter expects a list of headers separated by ";" characters.

    For example: Company;Country;Resolution

  • Date format (date_format, default: dd-MMM-yyyy): Formatting the date to match the given pattern

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Mantis is:

-d "type=mantis,url=[text],api_token=[text],max_results=[text],root_path=[text],artefact_name=[text],artefact_groups=[text],artefact_filters=[text],issue_url=[text],artefact_uid=[text],definition_open=[text],definition_rd_progress=[text],definition_vv_progress=[text],definition_close=[text],definition_defect=[text],definition_enhancement=[text],in_todo_list=[text],creation_date=[text],due_date=[text],last_updated_date=[text],closure_date=[text],description=[text],reporter=[text],handler=[text],priority=[text],severity=[text],csv_separator=[text],informations=[text],date_format=[text],logLevel=[text]"

Memory Data Import

Description

Memory Data Import provides a generic import mechanism for memory data from a CSV or Excel file.

Usage

Memory Data Import has the following options:

  • Choose Excel or CSV import (import_type, default: excel): Specify if the import is about Excel or CSV.

  • Data File (xls_file, mandatory): Specify the location of the Excel or CSV file or directory containing Memory information.

  • Sheet Name (xls_sheetname): Specify the name of the Excel sheet that contains the Memory list.

  • Excel file regular expression (xlsx_file_pattern, default: *.xlsx$): Specify a regular expression to find Excel files, by default it's *.xlsx$

  • Specify the CSV separator (csv_separator, default: ;): Specify the CSV separator

  • CSV file regular expression (csv_file_pattern, default: *.csv$): Specify a regular expression to find CSV files, by default it's *.csv$

  • Root node name (root_node, default: Resources): Specify the name of root node in the artefact tree.

  • Memory Column name (xls_key): Specify the header name of the column which contains the Memory key.

  • Grouping Structure (xls_groups): Specify the headers for Grouping Structure, separated by ";".

  • Filtering (xls_filters): Specify the list of Header for filtering

    For example: "column_name_1=regex1;column_name_2=regex2;

  • Memory size column name (memory_size_column_name, default: Total): Specify the header name of the column which contains the memory size.

  • Used memory column name (memory_used_column_name, default: Used): Specify the header name of the column which contains the used memory.

  • Memory type column name (memory_type_column_name, default: Type): Specify the header name of the column which contains the memory type.

  • ROM memory type name (memory_type_rom_name, default: ROM): Specify the name used for ROM memory.

  • RAM memory type name (memory_type_ram_name, default: RAM): Specify the name used for RAM memory.

  • NVM memory type name (memory_type_nvm_name, default: NVM): Specify the name used for NVM memory.

  • Create an output file (createOutput, default: true): Create an output file

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Memory Data Import is:

-d "type=import_memory,import_type=[multipleChoice],xls_file=[file_or_directory],xls_sheetname=[text],xlsx_file_pattern=[text],csv_separator=[text],csv_file_pattern=[text],root_node=[text],xls_key=[text],xls_groups=[text],xls_filters=[text],memory_size_column_name=[text],memory_used_column_name=[text],memory_type_column_name=[text],memory_type_rom_name=[text],memory_type_ram_name=[text],memory_type_nvm_name=[text],createOutput=[booleanChoice],logLevel=[text]"

MemUsage

Description

Usage

MemUsage has the following options:

  • Memory Usage excel file (excel):

The full command line syntax for MemUsage is:

-d "type=MemUsage,excel=[file]"

MISRA Rule Checking using PC-lint

MISRA Rule Checking using PC lint GimpelSoftware

Description

PC-lint is a static code analyser. The PC-lint data provider reads PC-lint log file(s) and imports MISRA violations as findings.

For more details, refer to http://www.gimpel.com/html/pcl.htm.

Usage

MISRA Rule Checking using PC-lint has the following options:

  • Log file or folder (logDir): Specify the path to the folder containing the PC-lint log files, or to a single log file.

  • Extensions to exclude (excludedExtensions, default: .h;.H): Specify the file extensions to exclude from the reported violations.

The full command line syntax for MISRA Rule Checking using PC-lint is:

-d "type=PC_Lint_MISRA,logDir=[file_or_directory],excludedExtensions=[text]"

MISRA Rule Checking with QAC

MISRA Rule Checking with QAC QAC

Description

QAC identifies problems in C source code caused by language usage that is dangerous, overly complex, non-portable, difficult to maintain, or simply diverges from coding standards. Its CSV results file can be imported to generate findings.

Usage

MISRA Rule Checking with QAC has the following options:

  • Code Folder (logDir): Specify the path to the folder that contains the annotated files to process.

    For the findings to be successfully linked to their corresponding artefact, several requirements have to be met:

    - The annotated file name should be [Original source file name].txt

    e.g. The annotation of file "controller.c" should be called "controller.c.txt"

    - The annotated file location in the annotated directory should match the associated source file location in the source directory.

    e.g. The annotation for source file "[SOURCE_DIR]/subDir1/subDir2/controller.c" should be located in "[ANNOTATIONS_DIR]/subDir1/subDir2/controller.c.txt"

    The previous comment suggests that the source and annotated directory are different.

    However, these directories can of course be identical, which ensures that locations of source and annotated files are the same.

  • Extension (ext, default: html): Specify the extension used by QAC to create annotated files.

  • Force import of all QAC violations (not only MISRA) (force_all_import, default: false): Force the import of all QAC findings ( not only the MISRA violations)

The full command line syntax for MISRA Rule Checking with QAC is:

-d "type=QAC_MISRA,logDir=[directory],ext=[text],force_all_import=[booleanChoice]"

MSTest

MSTest mstest

Description

MS-Test automates the process of testing Windows applications. It combines a Windows development language, Basic, with a testing-oriented API.

For more details, refer to https://en.wikipedia.org/wiki/Visual_Test.

Usage

MSTest has the following options:

  • MSTest results directory (resultDir): Specify the path to the results directory generated by MSTest.

  • Test result file pattern (filePattern): Specify the pattern of files to extract Test data from.

The full command line syntax for MSTest is:

-d "type=MSTest,resultDir=[directory],filePattern=[text]"

MSTest Code Coverage

Description

MSTest is a code coverage library for C#. Its XML report file can be imported to generate code coverage metrics for your C# project.

Usage

MSTest Code Coverage has the following options:

  • XML report (xml): Specify the path to the XML report generated by MSTest Visual Studio 2017.

The full command line syntax for MSTest Code Coverage is:

-d "type=MSTest_Coverage,xml=[file]"

NCover

NCover NCover

Description

NCover is a Code coverage program for C# application. NCover generates an XML results file which can be imported to generate metrics.

For more details, refer to http://www.ncover.com/.

Usage

NCover has the following options:

  • XML results file (xml): Specify the location of the XML results file generated by NCover. Note that the minimum supported version is NCover 3.0.

The full command line syntax for NCover is:

-d "type=NCover,xml=[file]"

Oracle PLSQL compiler Warning checker

Oracle PLSQL compiler Warning checker oracle

Description

This data provider reads an Oracle compiler log file and imports the warnings as findings. Findings extracted from the log file are filtered using a prefix parameter.

For more details, refer to http://www.oracle.com/.

Usage

Oracle PLSQL compiler Warning checker has the following options:

  • Compiler log file (log):

  • Prefixes (prefix): Prefixes and their replacements are specified as pairs using the syntax [prefix1|node1;prefix2|node2]. Leave this field empty to disable filtering.

    The parsing algorithm looks for lines fitting this pattern:

    [PATH;SCHEMA;ARTE_ID;ARTE_TYPE;LINE;COL;SEVERITY_TYPE;WARNING_ID;SEVERITY_ID;DESCR] and keeps lines where [PATH] begins with one of the input prefixes. In each kept [PATH], [prefix] is replaced by [node]. If [node] is empty, [prefix] is removed from [PATH], but not replaced. Some valid syntaxes for prefix:

    One prefix to remove: svn://aaaa:12345/valid/path/from/svn

    One prefix to replace: svn://aaaa:12345/valid/path/from/svn|node1

    Two prefixes to remove: svn://aaaa:12345/valid/path/from/svn|;svn://bbbb:12345/valid/path/from/other_svn|

    Two prefixes to remove: svn://aaaa:12345/valid/path/from/svn;svn://bbbb:12345/valid/path/from/other_svn

    Two prefixes to replace: svn://aaaa:12345/valid/path/from/svn|node1;svn://bbbb:12345/valid/path/from/other_svn|node2

The full command line syntax for Oracle PLSQL compiler Warning checker is:

-d "type=Oracle_PLSQLCompiler,log=[file],prefix=[text]"

OSLC

Description

OSLC-CM allows retrieving information from Change Management systems following the OSLC standard. Metrics and artefacts are created by connecting to the OSLC system and retrieving issues with the specified query.

For more details, refer to http://open-services.net/.

Usage

OSLC has the following options:

  • Change Server (server): Specify the URL of the project you want to query on the OSLC server. Typically the URL will look like this: http://myserver:8600/change/oslc/db/3454a67f-656ddd4348e5/role/User/

  • Query (query): Specify the query to send to the OSLC server (e.g.: release="9TDE/TDE_00_01_00_00"). It is passed to the request URL via the ?oslc_cm.query= parameter.

  • Query Properties (properties, default: request_type,problem_number,crstatus,severity,submission_area,functionality…​): Specify the properties to add to the query. They are passed to the OSLC query URL using the ?oslc_cm.properties= parameter.

  • Login (login):

  • Password (password):

The full command line syntax for OSLC is:

-d "type=oslc_cm,server=[text],query=[text],properties=[text],login=[text],password=[password]"

PC Lint MISRA 2012

Description

PC Lint MISRA 2012 (via XML import)

Usage

PC Lint MISRA 2012 has the following options:

  • XML File (xml): Specify the XML file which contains the findings results (MISRA, Coding Style…​)

The full command line syntax for PC Lint MISRA 2012 is:

-d "type=vectorCAST_Lint,xml=[file]"

pep8

Description

pep8 is a tool to check your Python code against some of the style conventions in PEP 88. Its CSV report file is imported to generate findings.

For more details, refer to https://pypi.python.org/pypi/pep8.

Usage

pep8 has the following options:

  • CSV results file (csv): Specify the path to the CSV report file created by pep8.

The full command line syntax for pep8 is:

-d "type=pep8,csv=[file]"

PHP Code Coverage

Description

Library that provides collection, processing, and rendering functionality for PHP code coverage information.

Usage

PHP Code Coverage has the following options:

  • Report file or folder (html_report): Specify the path to the HTML report folder or file which contains the coverage results.

The full command line syntax for PHP Code Coverage is:

-d "type=phpcodecoverage,html_report=[file_or_directory]"

PMD

PMD Pmd

Description

PMD scans Java source code and looks for potential problems like possible bugs, dead code, sub-optimal code, overcomplicated expressions, duplicate code…​ The XML results file it generates is read to create findings.

For more details, refer to http://pmd.sourceforge.net.

Usage

PMD has the following options:

  • XML results file or directory (xml): Specify the path to the PMD XML results file(s) or directory. Note that the minimum supported version of PMD for this data provider is 4.2.5.

  • Regex Files (regexFile, default: .xml): Specify a regular expression to find PMD XML files

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for PMD is:

-d "type=PMD,xml=[file_or_directory],regexFile=[text],logLevel=[text]"

PMD (plugin)

PMD (plugin) Pmd

Description

PMD scans Java source code and looks for potential problems like possible bugs, dead code, sub-optimal code, overcomplicated expressions, duplicate code …​ The XML results file it generates is read to create findings.

For more details, refer to http://pmd.sourceforge.net.

This data provider requires an extra download to extract the PMD binary in <SQUORE_HOME>/addons/tools/PMD_auto/. In this directory, the pattern of the name of the PMD installation directory is pmd-bin-${ThePMDVersion}, for example pmd-bin-6.34.0. If there are multiple installation directories, the most recent version will be chosen. For more information, refer to the Installation and Administration Guide’s 'Third-Party Plugins and Applications' section.

Usage

PMD (plugin) has the following options:

  • Ruleset file (configFile): Specify the path to the PMD XML ruleset you want to use for this analysis. If you do not specify a ruleset, the default one from INSTALLDIR/addons/tools/PMD_auto will be used.

  • Memory Allocation (xmx, default: 1024m): Maximum amount of memory allocated to the java process launching PMD.

The full command line syntax for PMD (plugin) is:

-d "type=PMD_auto,configFile=[file],xmx=[text]"

Polyspace

Polyspace Polyspace

Description

Polyspace is a static analysis tool which includes a MISRA checker. It produces an XML output which can be imported to generate findings. Polyspace Verifier detects RTE (RunTime Error) such as Division by zero, Illegal Deferencement Pointer, Out of bound array index…​ Such information is turned into statistical measures at function level. Number of Red (justified/non-justified), Number of Grey (justified/non-justified), Number of Orange (justified/non-justified), Number of Green.

Usage

Polyspace has the following options:

  • DocBook results file (xml): Specify the path to the DocBook (main XML file) generated by Polyspace.

  • Ignore source file path (ignoreSourceFilePath, default: false): Removes all path elements when doing the mapping between files in Squore project and files in the Pomyspace report. Becareful this can work only if file names in Squore project are unique.

The full command line syntax for Polyspace is:

-d "type=Polyspace,xml=[file],ignoreSourceFilePath=[booleanChoice]"

pycodestyle / pep8 (plugin)

Description

Style Guide for Python Code. Pep8 results are imported to produce findings on Python code. This data provider requires having pycodestyle or pep8 installed on the machine running the analysis and the pycodestyle or pep8 command to be available in the path. It is compatible with pycodestyle 2.4 or pep8 1.7 and may also work with older versions.

For more details, refer to https://pypi.org/project/pycodestyle.

Prior to using this repository connector, the path to the pycodestyle command has to be configured in the config.xml file located in the root directory of the Squore server or the Squore client:

<path name="pycodestyle" path="path_to_pycodestyle_or_pep8_executable"/>

Usage

pycodestyle / pep8 (plugin) has the following options:

  • Source code directory to analyse (dir): Leave this field empty to analyse all sources.

The full command line syntax for pycodestyle / pep8 (plugin) is:

-d "type=pep8_auto,dir=[directory]"

pylint

Description

Pylint is a Python source code analyzer which looks for programming errors, helps enforcing a coding standard and sniffs for some code smells (as defined in Martin Fowler’s Refactoring book). Pylint results are imported to generate findings for Python code.

For more details, refer to http://www.pylint.org/.

Usage

pylint has the following options:

  • CSV results file (csv): Specify the path to the CSV file containing pylint results. Note that the minimum version supported is 1.1.0.

The full command line syntax for pylint is:

-d "type=pylint,csv=[file]"

pylint (plugin)

Description

Coding Guide for Python Code. Pylint results are imported to produce findings on Python code. This data provider requires having pylint installed on the machine running the analysis and the pylint command to be available in the path. It is known to work with pylint 1.7.0 and may also work with older versions.

Prior to using this repository connector, the path to the pylint command has to be configured in the config.xml file located in the root directory of the Squore server or the Squore client:

<path name="pylint" path="path_to_pylint_executable"/>

Usage

pylint (plugin) has the following options:

  • Source code directory to analyse (dir): Leave this field empty to analyse all sources.

The full command line syntax for pylint (plugin) is:

-d "type=pylint_auto,dir=[directory]"

QAC 8.2

QAC 8.2 qac

Description

QA-C is a static analysis tool for MISRA checking.

Usage

QAC 8.2 has the following options:

  • QAC output file(s) (txt, mandatory): Specify the path(s) to the .tab file(s) to extract findings from. To provide multiple files click on '+'

  • Eliminate duplicated findings (eliminate_duplicate, default: false): When 2 occurences of the same finding (same rule, same file, same line, same description) is found, only one is reported.

The full command line syntax for QAC 8.2 is:

-d "type=qac,txt=[file],eliminate_duplicate=[booleanChoice]"

QAC 8.2 CERT Import

QAC 8.2 CERT Import qac

Description

QA-C is a static analysis tool for MISRA and CERT checking.

Usage

QAC 8.2 CERT Import has the following options:

  • QAC CERT output file(s) (txt, mandatory): Specify the path(s) to the .tab file(s) to extract findings from. To provide multiple files click on '+'

  • Eliminate duplicated findings (eliminate_duplicate, default: false): When 2 occurences of the same finding (same rule, same file, same line, same description) is found, only one is reported.

The full command line syntax for QAC 8.2 CERT Import is:

-d "type=qac_cert,txt=[file],eliminate_duplicate=[booleanChoice]"

Rational Logiscope

Rational Logiscope Logiscope

Description

The Logiscope suite allows the evaluation of source code quality in order to reduce maintenance cost, error correction or test effort. It can be applied to verify C, C++, Java and Ada languages and produces a CSV results file that can be imported to generate findings.

For more details, refer to http://www.kalimetrix.com/en/logiscope.

Usage

Rational Logiscope has the following options:

  • RuleChecker results file (csv): Specify the path to the CSV results file from Logiscope.

The full command line syntax for Rational Logiscope is:

-d "type=Logiscope,csv=[file]"

Rational Test RealTime

Rational Test RealTime rtrt

Description

Rational Test RealTime is a cross-platform solution for component testing and runtime analysis of embedded software. This Data Provider extracts coverage results, as well as tests and their status

Usage

Rational Test RealTime has the following options:

  • .xrd folder (logDir): Specify the path to the folder containing the .xrd files generated by RTRT.

  • Excluded file extensions (excludedExtensions, default: .h;.H):

  • Do you want to include FE (Function and Exit) in MCDC computation? (include_fe_in_mcdc, default: false):

  • Generate Test artefacts and structure from .xrd files? (generateTests, default: false):

The full command line syntax for Rational Test RealTime is:

-d "type=RTRT,logDir=[directory],excludedExtensions=[text],include_fe_in_mcdc=[booleanChoice],generateTests=[booleanChoice]"

ReqIF

ReqIF ReqIf

Description

RIF/ReqIF (Requirements Interchange Format) is an XML file format that can be used to exchange requirements, along with its associated metadata, between software tools from different vendors.

For more details, refer to http://www.omg.org/spec/ReqIF/.

Usage

ReqIF has the following options:

  • Reqif Directory (dir): Specify the directory which contains the Reqif files

  • Spec Object Type (objType, default: AUTO): Specify the SPEC_OBJECT_TYPE property LONG-NAME to be used to process the ReqIf file. Using the _AUTO_ value will let the Data Provider extract the value fro the ReqIf file, and assumes that there is only one such definition.

The full command line syntax for ReqIF is:

-d "type=ReqIf,dir=[directory],objType=[text]"

Requirement ASIL via Excel Import

Description

Requirement ASIL via Excel Import

Usage

Requirement ASIL via Excel Import has the following options:

  • Input file (input_file): Specify the location of the Excel file or directory containing information.

  • Sheetname (sheetname): Sheetname to read data from

  • Artefact name (artefact_name): Artefact name as displayed in Squore. Examples:

    • ${ID}

    • T_${Name}

    • ${Name} ${Descr}

    Note:${NAME} designates the column called NAME

  • Path to the artefact (path_list): Optional. If not used, artefacts extracted from the Excel file will be directly added to the Squore root.

    To specify the path in Squore of artefacts exracted from the Excel file, using the following format:

    *<COLUMN_NAME>?map=[<REGEX_1>:<GROUP_NAME_1>,…​,<REGEX_N>:<GROUP_NAME_N>]&groupByDate=<YES>&format=<dd-mm-YYYY>*Examples:

    • Area

    Artefacts will be regrouped by the value found in the 'Area' column

    • Area?map=[A*:Area A,B*:Area B]

    Artefacts will be regrouped into two groups:'Area A', for all values of 'Area' column starting with letter 'A', and 'Area B' for letter 'B'.

    • Started on?groupByDate=Yes&format=YYYY/mm/dd

    Artefacts will be regrouped by the date found in column 'Started on', using the format 'YYYY/mm/dd'

    Note:Date patterns are based on SimpleDateFormat Java class specifications.

  • Textual data to extract (info_list): Optional.

    To specify the list of textual data to extract from the Excel file, using the following format:

    *<METRIC_ID>?column=<COLUMN_NAME>&map=[<REGEX_1>:<TEXT_1>,…​,<REGEX_N>:<TEXT_N>]*Examples:

    • ZONE_ID?column=Zone

    Textual data found in column 'Zone' will be associated to metric ZONE_ID

    • ZONE_ID?column=Zone;OWNER?column=Belongs to

    Textual data found in columns 'Zone' and 'Belongs to' will be associated to metric ZONE_ID and OWNER respectively

    • ORIGIN?column=Comes from,map=[Cust*:External,Sub-contractor*:External,Support:Internal,Dev:Internal]

    _Textual data found in column 'Comes from' will be associated to metric ORIGIN:

    • With value 'External' if the column starts with 'Cust' or 'Sub-contractor'

    • With value 'Internal' if the column equals 'Support' or 'Dev'

    _

    • Started on?groupByDate=Yes&format=YYYY/mm/dd

    Artefacts will be regrouped by the date found in column 'Started on', using the format 'YYYY/mm/dd'

  • Numerical metrics to extract (metric_list): Optional.

    To specify the list of numerical data to extract from the Excel file, using the following format:

    *<METRIC_ID>?column=<COLUMN_NAME>&extract=<REGEX_EXRACT>&map=[<REGEX_1>:<VALUE_1>,…​,<REGEX_N>:<VALUE_N>]*Examples:

    • PRIORITY?column=Priority level

    Numerical values found in column 'Priority level' will be associated to metric PRIORITY

    • SEVERITY?column=Severity level,extract=S_

    Numerical values found in column 'Severity level' will be associated to metric SEVERITY, after having extracted (removed) the string 'S_', because in this example, column 'Severity level' contains for example 'S_1', 'S_4', etc., and we want to obtain '1', '4', etc.

    • STATUS?column=State&map=[passed:0,Passed:0,Pass:0,*nconclusive*:1,failed:2,Failed:2,FAIL:2]

    _Textual values found in column 'State' will be mapped to numerical values using these rules:

    • For values containing 'passed', 'Passed', 'Pass'

    • For values containing 'nconclusive'

    • For values containing 'failed', 'Failed, 'FAIL'

    _

  • Artefact unique ID (artefact_uid): Optional unless you want to use links to these artefacts.

    This is the artefact unique ID, to be used by links, from this Data Provider, or another Data Provider.Examples:

    • ${ID}

    • T_${Name}

    • ${Name} ${Descr}

    Note:${NAME} designates the column called NAME

  • Excel file regular expression (xlsx_file_pattern, default: *.xlsx$): Specify a regular expression to find Excel files, by default it's *.xlsx$

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Requirement ASIL via Excel Import is:

-d "type=import_req_asil,input_file=[file_or_directory],sheetname=[text],artefact_name=[text],path_list=[text],info_list=[text],metric_list=[text],artefact_uid=[text],xlsx_file_pattern=[text],logLevel=[text]"

Requirement Data Import

Description

Requirement Data Import provides a generic import mechanism for requirements from a CSV.

Requirement Data Import provides fields so you can map all your requirements and spread them over the following statuses: Proposed, Analyzed, Approved, Implemented, Verified, Postponed, Deleted, Rejected. Overlapping statuses will cause an error, but if a requirement’s status is not declared in the definition, the requirement will still be imported, and a finding will be created.

Usage

Requirement Data Import has the following options:

  • Choose Excel, CSV, JSON or XML import (import_type, default: excel): Specify if the import is about Excel, CSV, JSON or Xml file.

  • Data File (input_file, mandatory): Specify the location of the Excel or CSV file or directory containing requirements.

  • Sheet Name (xls_sheetname): Specify the sheet name that contains the requirement list.

  • Excel file regular expression (xlsx_file_pattern, default: *.xlsx$): Specify a regular expression to find Excel files, by default it's *.xlsx$

  • CSV Separator (csv_separator, default: ;): Specify the character used in the CSV file to separate columns.

  • CSV file regular expression (csv_file_pattern, default: *.csv$): Specify a regular expression to find CSV files, by default it's *.csv$

  • JSON Root Path (root_path): Specify the root path in the JSON file to retrieve requirements (when importing from a JSON file).

  • JSON file regular expression (json_file_pattern, default: *.json$): Specify a regular expression to find JSON files, by default it's *.json$

  • XML file regular expression (xml_file_pattern, default: *.xml$): Specify a regular expression to find XML files, by default it's *.xml$

  • Root Node (root_node, default: Requirements): Specify the name of the node to attach requirements to.

  • Requirement ID (artefact_id): Specify the header name of the column which contains the requirement ID.

  • Requirement version (version): Specify the header name of the column which contains the requirement version.

  • Linked Requirements IDs which satisfy this requirement (link_satisfied_by): Specify the header name of the column which contains the requirements IDs which satisfy this requirement.

  • Linked Test ID verifying this requirement (link_tested_by): Specify the header name of the column which contains the linked test ID verifying this requirement.

  • Linked Ticket ID associated to this requirement (link_ticket): Specify the header name of the column which contains the linked Ticket ID corresponding to an issue or enhancement request.

  • Requirement Name (artefact_name): Specify the pattern used to build the name of the requirement. The name can use any information collected from the CSV file as a parameter.

    Example: ${ID} : ${Summary}

  • Requirement UID (artefact_uid): Specify the pattern used to build the requirement Unique ID. The UID can use any information collected from the CSV file as a parameter.

    Example: TK#${ID}

  • Grouping Structure (artefact_groups): Specify the headers for Grouping Structure, separated by ";".

    For example: "column_name_1=regex1;column_name_2=regex2;

  • Filtering (artefact_filters): Specify the list of Header for filtering

    For example: "column_name_1=regex1;column_name_2=regex2;

  • Status (status, default: Status): Specify the status of requirement.

  • Applicable Requirement Pattern (definition_applicable): Specify the pattern applied to define requirements as Applicable. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Applicable=Yes

  • Proposed Requirement Pattern (definition_proposed): Specify the pattern applied to define requirements as proposed. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Proposed

  • Analyzed Requirement Pattern (definition_analyzed): Specify the pattern applied to define requirements as analyzed. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Examples:

    • Status=Analyzed

    • Status=[Analyzed|Introduced]

    • Status=Analyzed;Decision=[final;revised]

  • Approved Requirement Pattern (definition_approved): Specify the pattern applied to define requirements as approved. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Proposed

  • Implemented Pattern (definition_implemented): Specify the pattern applied to define requirements as Implemented. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Implemented

  • Verified Requirement Pattern (definition_verified): Specify the pattern applied to define requirements as Verified. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Verified

  • Postponed Requirement Pattern (definition_postponed): Specify the pattern applied to define requirements as Postponed. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=postponed

  • Deleted Requirement Pattern (definition_deleted): Specify the pattern applied to define requirements as deleted. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Deleted

  • Rejected Requirement Pattern (definition_rejected): Specify the pattern applied to define requirements as rejected. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Status=Rejected

  • Priority Column (priority): Specify the header of the column containing priority data.

  • 'Very high' Requirement priority Pattern (definition_priority_very_high): Specify the pattern applied to define requirements priority as 'Very High' (usually associated to value '1'). This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Priority=1

  • 'High' Requirement priority Pattern (definition_priority_high): Specify the pattern applied to define requirements priority as 'High' (usually associated to value '2'). This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Priority=2

  • 'Medium' Requirement priority Pattern (definition_priority_medium): Specify the pattern applied to define requirements priority as 'Medium' (usually associated to value '3'). This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Priority=3

  • 'Low' Requirement priority Pattern (definition_priority_low): Specify the pattern applied to define requirements priority as 'Low' (usually associated to value '4'). This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Priority=4

  • Compliance (compliance, default: Compliance): Specify the compliance of requirement.

  • 'Met' Compliance Pattern (definition_met): Specify the pattern applied to define requirement Compliance as 'Met'. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Compliance=Met

  • 'Partially Met' Compliance Pattern (definition_partially_met): Specify the pattern applied to define requirement Compliance as 'Partially Met'. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Compliance=Partially Met

  • 'Not Met' Compliance Pattern (definition_not_met): Specify the pattern applied to define requirement Compliance as 'Not Met'. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Compliance=Not Met

  • IADT (iadt, default: IADT Method): Specify the IADT of requirement.

  • 'Inspection' Test Method Pattern (definition_inspection): Specify the pattern applied to define requirement Test method as 'Inspection'. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: IADT Method=Inspection

  • 'Analysis' Test Method Pattern (definition_analysis): Specify the pattern applied to define requirement Test method as 'Analysis'. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: IADT Method=Analysis

  • 'Demonstration' Test Method Pattern (definition_demonstration): Specify the pattern applied to define requirement Test method as 'Demonstration'. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: IADT Method=Demonstration

  • 'Test' Test Method Pattern (definition_test): Specify the pattern applied to define requirement Test method as 'Test'. This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: IADT Method=Test

  • Creation Date Column (creation_date): Enter the name of the column containing the creation date of the requirement.

    Accepted formats are detailed here.

  • Last Update Column (last_updated): Enter the name of the column containing the last modification date of the requirement.

    Accepted formats are detailed here.

  • URL (url): Specify the pattern used to build the requirement URL. The URL can use any information collected from the CSV file as a parameter.

  • Description Column (description): Specify the header of the column containing the description of the requirement.

  • Criticity (criticity, default: Criticity): Specify the criticity of requirement.

  • 'A' critical factor Pattern (definition_crit_factor_A): Specify the pattern applied to define requirement critical factor as 'A' (low). This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Criticity=A.

  • 'B' critical factor Pattern (definition_crit_factor_B): Specify the pattern applied to define requirement critical factor as 'B' (medium). This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Criticity=B.

  • 'C' critical factor Pattern (definition_crit_factor_C): Specify the pattern applied to define requirement critical factor as 'C' (high). This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Criticity=C.

  • 'D' critical factor Pattern (definition_crit_factor_D): Specify the pattern applied to define requirement critical factor as 'D' (highest). This field accepts a regular expression to match one or more column headers with a list of possible values.

    Example: Criticity=D.

  • Information Fields (informations): Specify the list of extra textual information to import from the CSV file. This parameter expects a list of headers separated by ";" characters.

    For example: Company;Country;Resolution

  • Save Output (createOutput):

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Requirement Data Import is:

-d "type=import_req,import_type=[multipleChoice],input_file=[file_or_directory],xls_sheetname=[text],xlsx_file_pattern=[text],csv_separator=[text],csv_file_pattern=[text],root_path=[text],json_file_pattern=[text],xml_file_pattern=[text],root_node=[text],artefact_id=[text],version=[text],link_satisfied_by=[text],link_tested_by=[text],link_ticket=[text],artefact_name=[text],artefact_uid=[text],artefact_groups=[text],artefact_filters=[text],status=[text],definition_applicable=[text],definition_proposed=[text],definition_analyzed=[text],definition_approved=[text],definition_implemented=[text],definition_verified=[text],definition_postponed=[text],definition_deleted=[text],definition_rejected=[text],priority=[text],definition_priority_very_high=[text],definition_priority_high=[text],definition_priority_medium=[text],definition_priority_low=[text],compliance=[text],definition_met=[text],definition_partially_met=[text],definition_not_met=[text],iadt=[text],definition_inspection=[text],definition_analysis=[text],definition_demonstration=[text],definition_test=[text],creation_date=[text],last_updated=[text],url=[text],description=[text],criticity=[text],definition_crit_factor_A=[text],definition_crit_factor_B=[text],definition_crit_factor_C=[text],definition_crit_factor_D=[text],informations=[text],createOutput=[booleanChoice],logLevel=[text]"

SonarQube

SonarQube sonar

Description

This data provider imports findings from SonarQube. Note that versions prior to 6.2 may not be supported.

For more details, refer to https://www.sonarqube.org/.

Usage

SonarQube has the following options:

  • SonarQube Location (sonar, default: http://127.0.0.1:9000): Specify the URL of the SonarQube installation to work with (for example: http://localhost:9000)

  • SonarQube Component Key (key):

  • Version Name (version):

  • Login (login):

  • Password (password):

The full command line syntax for SonarQube is:

-d "type=sonarqube,sonar=[text],key=[text],version=[text],login=[text],password=[password]"

SQL Code Guard

SQL Code Guard SQLCodeGuard

Description

SQL Code Guard is a free solution for SQL Server that provides fast and comprehensive static analysis for T-Sql code, shows code complexity and objects dependencies.

For more details, refer to http://www.sqlcodeguard.com.

Usage

SQL Code Guard has the following options:

  • XML results (xml): Specify the path to the XML file containing SQL Code Guard results.

The full command line syntax for SQL Code Guard is:

-d "type=SQLCodeGuard,xml=[file]"

Squore Analyzer

Squore Analyzer Squore

Description

Squore Analyzer provides basic-level analysis of your source code.

For more details, refer to https://www.vector.com/squore.

The analyser can output info and warning messages in the build logs. Recent additions to those logs include better handling of structures in C code, which will produce these messages:

  • [Analyzer] Unknown syntax declaration for function XXXXX at line yyy to indicate that we whould have found a function but, probably due to preprocessing directives, we are not able to parse it.

  • [Analyzer] Unbalanced () blocks found in the file. Probably due to preprocessing directives, parenthesis in the file are not well balanced.

  • [Analyzer] Unbalanced {} blocks found in the file. Probably due to preprocessing directives, curly brackets in the file are not well balanced.

You can specify the languages for your source code by passing pairs of language and extensions to the languages parameter. Extensions are case-sensitive and cannot be used for two different languages. For example, a project mixing php and javascript files can be analysed with:

--dp "type=SQuORE,languages=php:.php;javascript:.js,.JS"

In order to launch an analysis using all the available languages by default, do not specify the languages parameter in your command line.

Usage

Squore Analyzer has the following options:

  • Languages (languages, default: ada;c;cpp;csharp;cobol;java;fortran77;fortran90;groovy;php;python;swift;vbn…​): Check the boxes for the languages used in the specified source repositories. Adjust the list of file extensions as necessary. Note that two languages cannot use the same file extension, and that the list of extensions is case-sensitive. Tip: Leave all the boxes unchecked and Squore Analyzer will auto-detect the language parser to use.

  • Force full analysis (rebuild_all, default: false): Analyses are incremental by default. Check this box if you want to force the source code parser to analyse all files instead of only the ones that have changed since the previous analysis. This is useful if you added new rule files or text parsing rules and you want to re-evaluate all files based on your modifications.

  • Generate control graphs (genCG, default: true): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • Use qualified names (qualified, default: false): Note: This option cannot be modified in subsequent runs after you create the first version of your project.

  • Limit analysis depth (depth, default: false): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • Add a 'Source Code' node (scnode, default: false): Using this options groups all source nodes under a common source code node instead of directly under the APPLICATION node. This is useful if other data providers group non-code artefacts like tests or requirements together under their own top-level node. This option can only be set when you create a new project and cannot be modified when creating a new version of your project.

  • 'Source Code' node label (scnode_name, default: Source Code): Specify a custom label for your main source code node. Note: this option is not modifiable. It only applies to projects where you use the "Add a 'Source Code' node" option. When left blank, it defaults to "Source Code".

  • Compact folders (compact_folder, default: true): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • Content exclusion via regexp (pattern): Specify a PERL regular expression to automatically exclude files from the analysis if their contents match the regular expression. Leave this field empty to disable content-based file exclusion.

  • File Filtering (files_choice, default: Exclude): Specify a pattern and an action to take for matching file names. Leave the pattern empty to disable file filtering.

  • pattern (pattern_files): Use a shell-like wildcard e.g. '*-test.c'.

    • * Matches any sequence of characters in string, including a null string.

    • ? Matches any single character in string.

    • [chars] Matches any character in the set given by chars. If a sequence of the form x-y appears in chars, then any character between x and y, inclusive, will match. On Windows, this is used with the -nocase option, meaning that the end points of the range are converted to lower case first. Whereas [A-z] matches '_' when matching case-sensitively ('_' falls between the 'Z' and 'a'), with -nocase this is considered like [A-Za-z].

    • \x Matches the single character x. This provides a way of avoiding the special interpretation of the characters *?[] in pattern.

    Tip: Use ';' to separate multiple patterns.

    How to specify a file:

    • By providing its name, containing or not a pattern

    • By providing its name and its path, both containing or not a pattern

    e.g.

    • *D??l?g.* : will match MyDialog.java, WinDowlog.c, …​ anywhere in the project

    • */[Dd]ialog/*D??l?g.* : will match src/java/Dialog/MyDialog.java, src/c/dialog/WinDowlog.c, but not src/Dlg/c/WinDowlog.c

  • Folder Filtering (dir_choice, default: Exclude): Specify a pattern and an action to take for matching folder names. Leave the pattern empty to disable folder filtering.

  • pattern (pattern_dir): Use a shell-like wildcard e.g. 'Test_*'.

    • * Matches any sequence of characters in string, including a null string.

    • ? Matches any single character in string.

    • [chars] Matches any character in the set given by chars. If a sequence of the form x-y appears in chars, then any character between x and y, inclusive, will match. On Windows, this is used with the -nocase option, meaning that the end points of the range are converted to lower case first. Whereas [A-z] matches '_' when matching case-sensitively ('_' falls between the 'Z' and 'a'), with -nocase this is considered like [A-Za-z].

    • \x Matches the single character x. This provides a way of avoiding the special interpretation of the characters *?[] in pattern.

    Tip: Use ';' to separate multiple patterns.

    A directory can be specified:

    • By providing its name, containing or not a pattern

    • By providing its name and its path, both containing or not a pattern. In that case the full path has to match.

    e.g.

    • source? : will match directories source, sources, …​ anywhere in the project

    • src/tests : will not match any directory because the full path can not match

    • */src/tests : will match java/src/tests, native/c/src/tests, …​

    To get the root path of the project it is possible to use the nodes variables ($src, $Node1, …​). Refers to "Using Data Provider Input Files From Version Control" in the Getting Started to learn more.

    e.g. $src/source/tests will match only the directory source/tests if it is a root directory of the project.

  • Exclude files whose size exceeds (size_limit, default: 500000): Provide the size in bytes above which files are excluded automatically from the Squore project (Big files are usually generated files or test files). Leave this field empty to deactivate this option.

  • Detect algorithmic cloning (clAlg, default: true): When checking this box, Squore Analyzer launches a cloning detection tool capable of finding algorithmic cloning in your code.

  • Detect text cloning (clTxt, default: true): When checking this box, Squore Analyzer launches a cloning detection tool capable of finding text duplication in your code.

  • Ignore blank lines (clIgnBlk, default: true): When checking this box, blanks lines are ignored when searching for text duplication

  • Ignore comment blocks (clIgnCmt, default: true): When checking this box, blocks of comments are ignored when searching for text duplication

  • Minimum size of duplicated blocks (clRSlen, default: 10): This threshold defines the minimum size (number of lines) of blocks that can be reported as cloned.

  • Textual Cloning fault ratio (clFR, default: 0.1): This threshold defines how much cloning between two artefacts is necessary for them to be considered as clones by the text duplication tool. For example, a fault ratio of 0.1 means that two artefacts are considered clones if less than 10% of their contents differ.

  • Algorithmic cloning fault ratio (clAlgFR, default: 0.1): This threshold defines how much cloning between two artefacts is necessary for them to be considered as clones by the algorithmic cloning detection tool.

  • Compute Textual stability (genTs, default: true): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • Compute Algorithmic stability (genAs, default: true): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • Detect artefact renaming (clRen, default: true): this option is deprecated and will be removed in a future release. You should not use it anymore.

  • Mark relaxed or confirmed findings as suspicious (susp, default: MODIFIED_BEFORE): Depending on the choosen option, relaxed findings can be flagged as suspicious in case of changes in and around the finding. In all cases, the following is to be considered:

    • Only changes on effective code are considered, comments are ignored.

    • Only changes inside the scope of the artefact containing the finding are considered.

  • Accept Relaxation from source code comment (relax, default: true): Relaxing Violations in Code

    Squore interprets comments formatted in one of these three ways:

    • Inline Relaxation

    This syntax is used to relax violations on the current line.

    some code; /* %RELAX<keys> : Text to justify the relaxation */

     

    • Relax Next Line

    This syntax is used to relax a violation on the first following line that is not a comment. In the example the text of the justification will be: "Text to justify the relaxation the text of the justification continues while lines are made of comments only"

    /* >RELAX<keys> : Text to justify the relaxation */

    /* the text of the justification continues while */

    /* lines are made of comments only */

    some code;

     

    • Block Relaxation

    This syntax is used to relax violations in an entire block of code.

    /* {{ RELAX<keys> : Text to justify the relaxation */

    /* like for format 2 text can be on more than one line */

    int my_func() {

       /* contains many violations */

       …​

    }

    /* }} RELAX<keys> */

    <keys> can be one of the following:

    • <*>: relax all violations

    • <MNEMO>: relax violations of the rule MNEMO

    • <MNEMO1,MNEMO2,…​,MNEMOn>: relax violations of rules MNEMO1 and MNEMO2 …​ and MNEMOn

    It is possible to relax using a status different from derogation. In that case the keyword RELAX has to be followed by :RELAXATION_STATUS

     

    e.g. RELAX:APPROVED if the status RELAXED_APPOVED is defined in the model.

     

  • Additional parameters (additional_param): These additional parameters can be used to pass instructions to external processes started by this data provider. This value is generally left empty in most cases.

The full command line syntax for Squore Analyzer is:

-d "type=SQuORE,languages=[multipleChoice],rebuild_all=[booleanChoice],genCG=[booleanChoice],qualified=[booleanChoice],depth=[booleanChoice],scnode=[booleanChoice],scnode_name=[text],compact_folder=[booleanChoice],pattern=[text],files_choice=[multipleChoice],pattern_files=[text],dir_choice=[multipleChoice],pattern_dir=[text],size_limit=[text],clAlg=[booleanChoice],clTxt=[booleanChoice],clIgnBlk=[booleanChoice],clIgnCmt=[booleanChoice],clRSlen=[text],clFR=[text],clAlgFR=[text],genTs=[booleanChoice],genAs=[booleanChoice],clRen=[booleanChoice],susp=[multipleChoice],relax=[booleanChoice],additional_param=[text]"

Squore Import

Squore Import logo

Description

Squore Import is a data provider used to import the results of another data provider analysis. It is generally only used for debugging purposes.

For more details, refer to support@vector.com.

Usage

Squore Import has the following options:

  • XML folder (inputDir): Specify the folder that contains the squore_data_*.xml files that you want to import.

The full command line syntax for Squore Import is:

-d "type=SQuOREImport,inputDir=[directory]"

Squore Virtual Project

Squore Virtual Project logo

Description

Squore Virtual Project is a data provider that can use the output of several projects to compile metrics in a meta-project composed of the import sub-projects.

For more details, refer to support@vector.com.

Usage

Squore Virtual Project has the following options:

  • Paths to output.xml files (output): Specify the paths to all the output.xml files you want to include in the virtual project. Separate paths using ';'.

The full command line syntax for Squore Virtual Project is:

-d "type=SQuOREVirtualProject,output=[file]"

Stack Data Import

Description

Stack Data Import provides a generic import mechanism for stack data from a CSV or Excel file.

Usage

Stack Data Import has the following options:

  • Choose Excel or CSV import (import_type, default: excel): Specify if the import is about Excel or CSV.

  • Data File (xls_file, mandatory): Specify the location of the Excel or CSV file or directory containing Stack information.

  • Sheet Name (xls_sheetname): Specify the sheetname that contains the Stack list.

  • Excel file regular expression (xlsx_file_pattern, default: *.xlsx$): Specify a regular expression to find Excel files, by default it's *.xlsx$

  • Specify the CSV separator (csv_separator, default: ;): Specify the CSV separator

  • CSV file regular expression (csv_file_pattern, default: *.csv$): Specify a regular expression to find CSV files, by default it's *.csv$

  • Root node name (root_node, default: Resources): Specify the name of root node in the artefact tree.

  • Stack Column name (xls_key): Specify the header name of the column which contains the Stack key.

  • Grouping Structure (xls_groups): Specify the headers for Grouping Structure, separated by ";".

  • Filtering (xls_filters): Specify the list of Header for filtering

    For example: "column_name_1=regex1;column_name_2=regex2;

  • Stack size column (stack_size_column_name, default: Stack Size [Bytes]): Specify the name of the column of Stack Size

  • Stack Average column (stack_average_column_name, default: Average Stack Size used [Bytes]): Specify the name of the column of Stack Average

  • Stack Worst column (stack_worst_column_name, default: Worse Case Stack Size used [Bytes]): Specify the name of the column of Stack Worst

  • Create an output file (createOutput, default: true): Create an output file

In addition the following options are avaiable on command line:

  • logLevel(default: INFO): Specify the log level to be used (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE) the default is INFO

The full command line syntax for Stack Data Import is:

-d "type=import_stack,import_type=[multipleChoice],xls_file=[file_or_directory],xls_sheetname=[text],xlsx_file_pattern=[text],csv_separator=[text],csv_file_pattern=[text],root_node=[text],xls_key=[text],xls_groups=[text],xls_filters=[text],stack_size_column_name=[text],stack_average_column_name=[text],stack_worst_column_name=[text],createOutput=[booleanChoice],logLevel=[text]"

StyleCop

StyleCop StyleCop

Description

StyleCop is a C# code analysis tool. Its XML output is imported to generate findings.

For more details, refer to https://stylecop.codeplex.com/.

Usage

StyleCop has the following options:

  • XML results file (xml): Specify the path to the StyleCop XML results file. The minimum version compatible with this data provider is 4.7.

The full command line syntax for StyleCop is:

-d "type=StyleCop,xml=[file]"

StyleCop (plugin)

StyleCop (plugin) StyleCop

Description

StyleCop is a C# code analysis tool. Its XML output is imported to generate findings.

For more details, refer to https://stylecop.codeplex.com/.

Note that this data provider is not supported on Linux. On windows, this data provider requires an extra download to extract the StyleCop binary in <SQUORE_HOME>/addons/tools/StyleCop_auto/ and .NET framework 3.5 to be installed on your machine (run Net.SF.StyleCopCmd.Console.exe manually once to install .NET automatically). For more information, refer to the Installation and Administration Guide’s 'Third-Party Plugins and Applications' section.

Usage

StyleCop (plugin) has the following options:

  • Solution (sln): Specify the path to the .sln file to analyse. Leave empty to analyse all .sln found in the source repository.

The full command line syntax for StyleCop (plugin) is:

-d "type=StyleCop_auto,sln=[file]"

Tessy

Tessy logo

Description

Tessy is a tool automating module/unit testing of embedded software written in dialects of C/C++. Tessy generates an XML results file which can be imported to generate metrics. This data provider supports importing files that have a xml_version="1.0" attribute in their header.

For more details, refer to https://www.hitex.com/en/tools/tessy/.

Usage

Tessy has the following options:

  • Results folder (resultDir): Specify the top folder containing XML result files from Tessy. Note that this data provider will recursively scan sub-folders looking for index.xml files to aggregate results.

The full command line syntax for Tessy is:

-d "type=Tessy,resultDir=[directory]"

Test Data Import

Description

Test Data Import provides a generic import mechanism for tests from a CSV, Excel or JSON file. Additionnally, it generates findings when the imported tests have an unknown status or type.

This Data Provider provides fields so you can map all your tests and spread them over the following statuses: Failed, Inconclusive, Passd. Overlapping statuses and types will cause an error, but if a test status is not declared in the definition, the test will still be imported, and a finding will be created.

Usage

Test Data Import has the following options:

  • Choose Excel, CSV, JSON or XML import (import_type, default: excel): Specify if the import is about Excel, CSV, JSON or Xml file.

  • Data File (input_file, mandatory): Specify the location of the Excel, CSV, JSON or XML file or directory containing tests.

  • Excel Sheet Name (xls_sheetname): Specify the sheet name that contains the test list if your import file is in Excel format.

  • Excel file regular expression (xlsx_file_pattern, default: *.xlsx$): Specify a regular expression to find Excel files, by default it's *.xlsx$

  • CSV Separator (csv_separator, default: ;): Specify the character used in the CSV file to separate columns.

  • CSV file regular expression (csv_file_pattern, default: *.csv$): Specify a regular expression to find CSV files, by default it's *.csv$

  • JSON Root Path (root_path): Specify the root path in the JSON file to retrieve tests (when importing from a JSON file).

  • JSON file regular expression (json_file_pattern, default: *.json$): Specify a regular expression to find JSON files, by default it's *.json$

  • XML file regular expression (xml_file_pattern, default: *.xml$): Specify