CAST Appmarq
  • Benchmark Analytics
  • Demographics
  • CRASH Reports
  • Signin Register

Health Factors

  Total Quality Index (TQI)

3786 rules

Total Quality Index measures the general maintainability level of the application based on hundreds of metrics provided by CAST.

  Robustness

1426 rules

Robustness measures the level of risk and the likelihood of having application failures and defects resulting from modifications.

  Security

1418 rules

Security measures the likelihood of potential security breaches linked to coding practices and application source code.

  Efficiency

535 rules

Efficiency measures the likelihood of potential performance bottlenecks and the potential future scalability issues linked to coding practices.

  Changeability

1292 rules

Changeability measures how easily applications can be modified in order to implement new features, correct errors, or change the applications environment.

  Transferability

1284 rules

Transferability measures how easily applications can be moved across teams or team members including in-house and outsourced development teams.
Want more stats? Register now!

Quality Rules

Always cache the returned objects in variables to be reused

Always specify a result set id when doing result set operations like Open/get next or open for update/replace (EGL)

Always unsubscribe events in Angular onDestroy method

Always use find for Id->Child nested selectors

Avoid accessing multiple times the same SAP Table or View in an SAP include (DELETE)

Avoid accessing multiple times the same SAP Table or View in an SAP include (INSERT)

Avoid accessing multiple times the same SAP Table or View in an SAP include (UPDATE)

Avoid accessing multiple times the same SAP Table or View in an SAP Program (DELETE)

Avoid accessing multiple times the same SAP Table or View in an SAP Program (INSERT)

Avoid accessing multiple times the same SAP Table or View in an SAP Program (UPDATE)

CRITICAL  Avoid adding or removing displayable children from updateDisplayList (Flex specific) (Flex)

Avoid artifacts having Incorrect Type Conversion or Cast

Avoid Artifacts with a Complex SELECT Clause

Avoid Artifacts with a Complex SELECT Clause (ABAP)

CRITICAL  Avoid Artifacts with a Complex SELECT Clause (EGL)

Avoid Artifacts with a complex SELECT clause (JEE)

Avoid Artifacts with a Complex SELECT Clause (PowerBuilder)

Avoid Artifacts with a Complex SELECT Clause (SQL)

Avoid Artifacts with a Complex SELECT Clause (Visual Basic)

Avoid Artifacts with Group By

Avoid Artifacts with Group By (ABAP)

Avoid Artifacts with Group By (PowerBuilder)

Avoid Artifacts with Group By (Visual Basic)

Avoid Artifacts with High Depth of Nested Subqueries

Avoid Artifacts with High RAW SQL Complexity

Avoid Artifacts with High RAW SQL Complexity (ABAP)

Avoid Artifacts with High RAW SQL Complexity (PowerBuilder)

Avoid Artifacts with High RAW SQL Complexity (Visual Basic)

Avoid Artifacts with queries on more than 4 Tables

Avoid Artifacts With Queries on more than 4 Tables (ABAP)

Avoid Artifacts With Queries on more than 4 Tables (PowerBuilder)

Avoid Artifacts With Queries on more than 4 Tables (Visual Basic)

Avoid Artifacts with queries on too many Tables and or Views

Avoid Artifacts With Queries on too many Tables (EGL)

Avoid Artifacts with SQL statement including subqueries

CRITICAL  Avoid Artifacts with Subqueries

Avoid Artifacts with Subqueries

Avoid Artifacts with Subqueries (ABAP)

Avoid Artifacts with Subqueries (EGL)

Avoid calculated fields in WHERE-clauses and ON-clauses of CDS views (S4/HANA)

Avoid calling finalize()

Avoid calling programs statically

Avoid calling properties that clone values in loops

CRITICAL  Avoid calls to the StyleManager that do not pass FALSE as the second parameter (Flex)

CRITICAL  Avoid call to AcceptChanges in a loop

Avoid casting and converting a pointer type to an integral type (C/C++)

Avoid changing DataSource member before ValueMember/DisplayMember

Avoid client provided dictionaries to have high request sizes

CRITICAL  Avoid control statement in Constructor (must be as lightweight as possible) (Flex)

CRITICAL  Avoid copying needless the variables (PHP)

CRITICAL  Avoid Cursors inside a loop

CRITICAL  Avoid Cursors inside a loop (PL/SQL Oracle)

Avoid Cursors inside a loop (SQL)

CRITICAL  Avoid Cursors inside a loop (SQL Server)

Avoid Cursors inside XX-Shared loop

Avoid declaring VB Variables without typing them

Avoid declaring VB Variables without typing them

Avoid defining and calling functions inside loops

Avoid defining Functions with 'struct' or 'class' parameters passed by value

Avoid definition of synonym as PUBLIC in PL/SQL context

Avoid direct definition of JavaScript Functions in a Web page

Avoid direct definition of JavaScript Functions in a Web page (Javascript/HTML5)

CRITICAL  Avoid direct or indirect remote calls inside a loop

Avoid direct or indirect remote calls inside an XX-Shared loop

CRITICAL  Avoid doing select on Datatable in loop

Avoid Dynamic SQL Objects With Queries on more than 4 Tables (C++)

Avoid Dynamic SQL Objects With Queries on more than 4 Tables (C Lang.)

Avoid Dynamic SQL Objects With Queries on more than 4 Tables (JEE)

Avoid Dynamic SQL Objects With Queries on more than 4 Tables (PowerBuilder)

Avoid Dynamic SQL Objects With Queries on more than 4 Tables (Visual Basic)

Avoid EJBs using 'synchronized' qualifier, 'wait', 'notify' and 'notifyAll' Methods

CRITICAL  Avoid empty catch blocks (PHP)

Avoid executing multiple OPEN statements

CRITICAL  Avoid exists and not exists independent clauses

CRITICAL  Avoid exists independent clauses

Avoid explicit comparison with NULL

Avoid flexible array members (C/C++)

Avoid for-in loop

CRITICAL  Avoid Function and Procedures using Builtin Function "String" (PL1)

Avoid Functions and Procedures having cursors declared with "FOR FETCH ONLY" clause not having "WITH ROWSET POSITIONING" also specified (PL1)

Avoid Functions and Procedures having subscripts used in arrays or in do loops and not declared as BINARY FIXED(31) (PL1)

CRITICAL  Avoid Functions and Procedures not using the REORDER option (PL1)

Avoid Functions and Procedures using BIN FIXED(15) instead of BIN FIXED(31) for all local variables (PL1)

CRITICAL  Avoid Functions and Procedures using BLKSIZE or RECSIZE (PL1)

Avoid Functions and Procedures with DB2 SQL containing the builtin function UPPER, LOWER or SUBSTR in the WHERE clause (PL1)

Avoid Functions and Procedures with DB2 SQL containing "UNION" clause without "ALL" option (PL1)

Avoid Functions and Procedures with "OR" logical operator in DB2 queries and in cursor definitions (PL1)

Avoid functions having UNION instead of UNION ALL (EGL)

Avoid Functions/Methods with a complex SELECT clause (C++)

Avoid Functions/Methods with High RAW SQL Complexity (C++)

Avoid Functions/Methods with queries on too many Tables (C++)

Avoid Functions/Methods with SQL statement including Subqueries (C++)

Avoid Functions/Methods with SQL statement using Group By clause (C++)

Avoid Functions/Procedures/Triggers with a complex SELECT clause (PL/SQL Oracle)

Avoid Functions/Procedures with a complex SELECT clause (DB2 Server)

Avoid Functions/Procedures with a complex SELECT clause (SQL Server)

Avoid Functions/Procedures with High RAW SQL Complexity (DB2 Server)

Avoid Functions/Procedures with High RAW SQL Complexity (SQL Server)

Avoid Functions/Procedures with queries on too many Tables (DB2 Server)

Avoid Functions/Procedures with queries on too many Tables (PL/SQL Oracle)

Avoid Functions/Procedures with queries on too many Tables (SQL Server)

Avoid Functions/Procedures with SQL statement including Subqueries (DB2 Server)

Avoid Functions/Procedures with SQL statement including Subqueries (PL/SQL Oracle)

Avoid Functions/Procedures with SQL statement including Subqueries (SQL Server)

Avoid Functions/Procedures with SQL statement using Group By clause (DB2 Server)

Avoid Functions/Procedures with SQL statement using Group By clause (PL/SQL Oracle)

Avoid Functions/Procedures with SQL statement using Group By clause (SQL Server)

Avoid Functions with a complex SELECT clause (C Lang.)

Avoid Functions with High RAW SQL Complexity (C Lang.)

Avoid Functions with queries on too many Tables (C Lang.)

Avoid Functions with SQL statement including Subqueries (C Lang.)

Avoid Functions with SQL statement using Group By clause (C Lang.)

Avoid having joins with more than 4 Tables

Avoid having multiple artifacts deleting data on the same NoSQL collection

Avoid having multiple artifacts deleting data on the same NoSQL collections

Avoid having multiple artifacts deleting data on the same NoSQL collections (JEE)

Avoid having multiple Artifacts inserting data on the same NoSQL Collection

Avoid having multiple Artifacts inserting data on the same NoSQL Collection

Avoid having multiple Artifacts inserting data on the same NoSQL Collection (JEE)

Avoid having multiple Artifacts updating data on the same NoSQL Collection

Avoid having multiple Artifacts updating data on the same NoSQL Collection

Avoid having multiple Artifacts updating data on the same NoSQL Collection (JEE)

Avoid having multiple routes for the same path with Node.js Express App

Avoid having multiple routes for the same path with Node.js Express App (TypeScript)

CRITICAL  Avoid having object not instantiated using parenthesis - Symfony STD (PHP)

Avoid having SQL code in Triggers named "pre-record"

CRITICAL  Avoid having variables passed by reference when calling a function (PHP)

CRITICAL  Avoid Hibernate Entity with 'select-before-update' set to true if not associated to table that fires an UPDATE trigger

Avoid improperly written triangular joins with XXL tables

Avoid improperly written triangular joins with XXL tables in PL/SQL code

Avoid include JavaScript Files

Avoid indirect exception handling inside loops

Avoid indirect String concatenation inside loops

Avoid indirect String concatenation inside XX-shared loops

CRITICAL  Avoid instanciating a variable in a loop (Flex)

Avoid instantiating Boolean

CRITICAL  Avoid instantiations inside loops

CRITICAL  Avoid instantiations inside loops

Avoid instantiations inside XX-Shared loops

Avoid JavaScript to block page loading

CRITICAL  Avoid JMS Synchronous Activities (TIBCO BW)

Avoid large number of String concatenation

Avoid large number of String concatenation

Avoid leaving open file resources

Avoid LOCK TABLE statements in SQL code for COBOL Programs

Avoid Logical Files using DYNSLT (DB400)

CRITICAL  Avoid Logical Files using DYNSLT (DDS400)

Avoid looping chain of synonyms

Avoid looping chain of synonyms in PL/SQL context

Avoid Main Procedures having complex queries (PL1)

Avoid Main Procedures having queries with joins on more than 4 Tables (PL1)

Avoid Main Procedures having "SELECT * FROM …" clause (PL1)

Avoid Main Procedures having SQL queries using NOT EXISTS (PL1)

Avoid Main Procedures having SQL queries using NOT IN (PL1)

CRITICAL  Avoid Main Procedures using GROUP BY statement (PL1)

Avoid Main Procedures with High Raw SQL Complexity (SQL complexity greater than X) (PL1)

Avoid method invocation in a loop termination expression

CRITICAL  Avoid method invocation in a loop termination expression (PHP)

Avoid method invocation in an XX-Shared loop termination expression

CRITICAL  Avoid Methods with Object Instantiation in loops (PHP)

CRITICAL  Avoid modelLocator that is Bindable at a class level (Flex)

Avoid NATURAL JOIN queries

Avoid nested loops

CRITICAL  Avoid nested SELECT ... ENDSELECT statements

Avoid nested Stored Procedures using temporary Tables

Avoid non-SARGable queries

Avoid not enabling throttling while setting service behavior

CRITICAL  Avoid OPEN/CLOSE inside loops

CRITICAL  Avoid Opening Cursor in a loop (EGL)

CRITICAL  Avoid Open SQL queries in loops

CRITICAL  Avoid Open SQL SELECT queries without WHERE condition

CRITICAL  Avoid Open SQL SELECT queries without WHERE condition on XXL Tables

Avoid orphaned synonyms in PL/SQL context

Avoid passing an existing array with spread operator as an argument using vararg as parameters (Kotlin)

Avoid passing parameter by value

Avoid passing the variables of a function by reference(PHP)

CRITICAL  Avoid PLC Copybooks using FIXED variable type declaration (PL1)

CRITICAL  Avoid PLC Copybooks using variables with ALLOCATE and without FREE (PL1)

Avoid PLC Copybook with a very low comment/code ratio (PL1)

Avoid PLC Procedures & Functions with a very low comment/code ratio (PL1)

CRITICAL  Avoid PLI Main procedures using variables with ALLOCATE and without FREE (PL1)

Avoid PLI Procedures & Functions with a very low comment/code ratio (PL1)

Avoid PL/SQL Artifacts with High RAW SQL Complexity (PL/SQL Oracle)

CRITICAL  Avoid popup using dynamic filters (Flex)

Avoid Programs having cursors that doesn't contain the "FOR UPDATE" clause and not containing the "FOR READ ONLY" or "FOR FETCH ONLY" clause (PL1)

CRITICAL  Avoid Programs not using explicitly OPEN and CLOSE files (PL1)

Avoid Programs with a Complex SELECT Clause (Cobol)

Avoid Programs with COUNT(*) statement (RPG300)

CRITICAL  Avoid Programs with COUNT(*) statement (RPG300)

CRITICAL  Avoid Programs with COUNT(*) statement (RPG400)

Avoid Programs with COUNT(*) statement (RPG400)

Avoid Programs with COUNT(*) statement (RPG_FP)

Avoid Programs with Group By (Cobol)

Avoid Programs with High RAW SQL Complexity (Cobol)

Avoid Programs with High RAW SQL Complexity (RPG400)

Avoid Programs with High RAW SQL Complexity (RPG_FP)

Avoid Programs With Queries on more than 4 Tables (Cobol)

CRITICAL  Avoid Programs With Queries on more than 4 Tables (RPG300)

Avoid Programs With Queries on more than 4 Tables (RPG300)

CRITICAL  Avoid Programs With Queries on more than 4 Tables (RPG400)

Avoid Programs With Queries on more than 4 Tables (RPG400)

Avoid Programs With Queries on more than 4 Tables (RPG_FP)

Avoid Programs With Queries using GROUP BY (RPG300)

CRITICAL  Avoid Programs With Queries using GROUP BY (RPG300)

CRITICAL  Avoid Programs With Queries using GROUP BY (RPG400)

Avoid Programs With Queries using GROUP BY (RPG400)

Avoid Programs With Queries using GROUP BY (RPG_FP)

CRITICAL  Avoid Programs with SELECT * statement (RPG300)

Avoid Programs with SELECT * statement (RPG300)

Avoid Programs with SELECT * statement (RPG400)

CRITICAL  Avoid Programs with SELECT * statement (RPG400)

Avoid Programs with SELECT * statement (RPG_FP)

Avoid Programs with subqueries (Cobol)

CRITICAL  Avoid Programs with Subqueries (RPG300)

Avoid Programs with Subqueries (RPG300)

Avoid Programs with Subqueries (RPG400)

CRITICAL  Avoid Programs with Subqueries (RPG400)

Avoid Programs with Subqueries (RPG_FP)

CRITICAL  Avoid Programs with too many FROM Clauses (RPG300)

Avoid Programs with too many FROM Clauses (RPG300)

Avoid Programs with too many FROM Clauses (RPG400)

CRITICAL  Avoid Programs with too many FROM Clauses (RPG400)

Avoid Programs with too many FROM Clauses (RPG_FP)

Avoid Programs with too many WHERE Clauses (RPG300)

CRITICAL  Avoid Programs with too many WHERE Clauses (RPG300)

Avoid Programs with too many WHERE Clauses (RPG400)

CRITICAL  Avoid Programs with too many WHERE Clauses (RPG400)

Avoid Programs with too many WHERE Clauses (RPG_FP)

Avoid Psysical Files using large buffers (DB400)

Avoid queries using old style join convention instead of ANSI-Standard joins

Avoid queries using old style join convention instead of ANSI-Standard joins

CRITICAL  Avoid READ TABLE without BINARY SEARCH

Avoid redundant indexes

Avoid Rule HINT /*+ rule */ or --+ rule in PL/SQL code

CRITICAL  Avoid running SQL queries inside a loop

CRITICAL  Avoid Sections with Group By (PHP)

CRITICAL  Avoid Sections With Queries on more than 4 Tables (PHP)

Avoid Sections with string concatenations (PHP)

CRITICAL  Avoid select-before-update when the Table is not associated to an UPDATE Trigger

Avoid SELECT ... BYPASSING BUFFER

Avoid "SELECT *" or "SELECT SINGLE *" queries

Avoid "SELECT *" queries

Avoid "SELECT *" queries (EGL)

CRITICAL  Avoid Select * queries in PHP Section (PHP)

Avoid "SELECT *" queries (SQL)

Avoid SQL Artifacts with High RAW SQL Complexity (JEE)

Avoid SQL Artifacts with queries on too many Tables (JEE)

Avoid SQL Artifacts with SQL statement including Subqueries (JEE)

Avoid SQL Artifacts with SQL statement using Group By clause (JEE)

Avoid SQL queries not using the first column of a composite index in the WHERE clause

CRITICAL  Avoid SQL queries on XXL tables not using the first column of a composite index in the WHERE clause

CRITICAL  Avoid SQL queries on XXL tables that no index can support

CRITICAL  Avoid SQL queries on XXL tables that no index can support

CRITICAL  Avoid SQL queries on XXL tables that no index can support (ABAP)

CRITICAL  Avoid SQL queries on XXL Tables that no index can support (AllTechno)

Avoid SQL queries on XXL tables that no index can support for artifacts with high fan-in

CRITICAL  Avoid SQL queries on XXL Tables using Functions on indexed Columns in the WHERE clause

CRITICAL  Avoid SQL queries on XXL Tables with implicit conversions in the WHERE clause

Avoid SQL queries that no index can support

Avoid SQL queries that no index can support

CRITICAL  Avoid SQL queries that no index can support (ABAP)

Avoid SQL queries that no index can support (AllTechno)

Avoid SQL queries that no index can support for artifacts with high fan-in

Avoid SQL queries using functions on indexed columns in the WHERE clause

Avoid SQL queries with implicit conversions in the WHERE clause

CRITICAL  Avoid Stateful Beans not removed

Avoid static Field of type collection

Avoid string concatenation in loops

CRITICAL  Avoid String concatenation in loops

CRITICAL  Avoid String concatenation in loops

Avoid String concatenation in loops for artifacts with high fan in

Avoid String concatenation in XX-shared loops

Avoid String concatenation in XX-Shared loops

Avoid String initialization with String object (created using the 'new' keyword)

Avoid synonym with both private and public definition

Avoid synonym with both private & PUBLIC Definition in PL/SQL context

Avoid Tables having Indexes with a too large Index definition

Avoid tables not involved in a Foreign Key (DB2 Server)

Avoid tables not involved in a Foreign Key (PL/SQL Oracle)

Avoid tables not involved in a Foreign Key (SQL Server)

Avoid Tables not using referential integrity

Avoid Tables without a clustered Index

CRITICAL  Avoid Tables without Primary Key

CRITICAL  Avoid Tables without Primary Key

CRITICAL  Avoid tables without primary key / unique key constraint / unique index

Avoid the use of InstanceOf inside loops

Avoid the use of InstanceOf inside XX-shared loops

Avoid the use of is inside loops

Avoid the use of the default JavaScript implementation [].forEach in AngularJS web app

Avoid thread creation for application running on application server

Avoid throwing an exception object of pointer type (C++)

Avoid to call a function in a termination loop

CRITICAL  Avoid too many EJB bean

Avoid too many Indexes on one Table

Avoid too many SQL calls for methods with high fan-in

Avoid to use Log.debug() without calling Log.isDebugEnabled()

Avoid to use querySelectorAll

Avoid transactions with database resource open capability but without the associated close capability

Avoid transactions with too many severe Efficiency - Memory, Network and Disk Space Management issues along the path

Avoid transactions with too many severe Efficiency - SQL and Data Handling Performance issues along the path

Avoid Universal Selectors

CRITICAL  Avoid UPDATE trigger firing when not necessary

CRITICAL  Avoid UPDATE trigger firing when not necessary

Avoid UPDATE trigger firing when not necessary in XX-Shared object

Avoid usage of 'std::find_first_of'

Avoid use of DLYJOB (CL400)

CRITICAL  Avoid use of DLYJOB (CL400)

CRITICAL  Avoid use of *NOMAX (CL400)

Avoid use of *NOMAX (CL400)

CRITICAL  Avoid use of OPNQRYF (CL400)

Avoid use of OPNQRYF (CL400)

CRITICAL  Avoid use of RCLRSC (CL400)

Avoid use of RCLRSC (CL400)

Avoid use of Session variables from Session_OnEnd

CRITICAL  Avoid use of "truncate table"

CRITICAL  Avoid using arrays as parameters of str functions (PHP)

Avoid using a web service with AngularJS $resource inside a loop

Avoid using a web service with Python aiohttp ClientSession inside a loop

Avoid using a web service with Python httplib2 Http inside a loop

Avoid using a web service with Python httplib HTTPConnection inside a loop

Avoid using a web service with Python requests inside a loop

Avoid using a web service with Python urllib2 inside a loop

Avoid using a web service with Python urllib.request inside a loop

Avoid using a web service with WebSocket inside a loop

Avoid using a web service with XMLHttpRequest inside a loop

CRITICAL  Avoid using CHECK, EXIT,or RETURN in SELECT ... ENDSELECT loops BETA

Avoid using COMPUTE statement for elementary arithmetic operation

Avoid using copyStr and compareStr functions (EGL)

CRITICAL  Avoid using count function inside a for loop

Avoid using Count or LongCount where Any can be used

Avoid using css() of many elements

Avoid using Cursors

CRITICAL  Avoid using Cursors (DB2 Server)

Avoid using Cursors (SQL Server)

CRITICAL  Avoid using database hints BETA

Avoid using Document.all collection

CRITICAL  Avoid using double quote for long strings without variables

Avoid using DriverManager

Avoid using Dynamic instantiation

CRITICAL  Avoid using dynamic SQL (EXECUTE IMMEDIATE) (RPG300)

Avoid using dynamic SQL (EXECUTE IMMEDIATE) (RPG300)

CRITICAL  Avoid using dynamic SQL (EXECUTE IMMEDIATE) (RPG400)

Avoid using dynamic SQL (EXECUTE IMMEDIATE) (RPG400)

Avoid using dynamic SQL (EXECUTE IMMEDIATE) (RPG_FP)

CRITICAL  Avoid using dynamic SQL in SQL Artifacts

Avoid using element type in jQuery

CRITICAL  Avoid using empty SELECT ... ENDSELECT loop BETA

Avoid using @error suppression (PHP)

CRITICAL  Avoid using execute immediate

Avoid using explain() in production code (JEE)

CRITICAL  Avoid using finalize()

Avoid using FOR ALL ENTRIES IN without emptiness check

Avoid using FOR ALL ENTRIES IN without emptiness check on XXL Tables

Avoid using forEach()

Avoid using "foreach" to iterate over a explicit range (Kotlin)

Avoid using GC.Collect()

Avoid using global SAVE in Fortran-90 Functions (Fortran)

Avoid using global SAVE in Fortran-90 Modules (Fortran)

Avoid using global SAVE in Fortran-90 Programs (Fortran)

Avoid using global SAVE in Fortran-90 Subroutines (Fortran)

CRITICAL  Avoid using GROUP BY in SQL statement (EGL)

Avoid using Hashtable

CRITICAL  Avoid using include_once

Avoid using incorrect XML parsing model

CRITICAL  Avoid using INITIALIZE statement on data structures

Avoid using IS [NOT] NULL in WHERE condition

Avoid using Javascript Document.all collection

Avoid using late binding

Avoid using LIKE conditions without wildcards

Avoid using LONG & LONG RAW datatype for Table Columns

Avoid using LOOP INTO, use LOOP ASSIGNING instead

Avoid using memory management Functions (free/malloc/realloc)

Avoid using MERGE

Avoid using 'new[]', prefer 'std::vector' or 'std::array'

Avoid using ngFor loop without TrackBy option

Avoid using "ng-repeat" loop without "track by" option

CRITICAL  Avoid using NOT EXISTS (RPG300)

Avoid using NOT EXISTS (RPG300)

CRITICAL  Avoid using NOT EXISTS (RPG400)

Avoid using NOT EXISTS (RPG400)

Avoid using NOT EXISTS (RPG_FP)

Avoid using NOT IN (RPG300)

CRITICAL  Avoid using NOT IN (RPG300)

CRITICAL  Avoid using NOT IN (RPG400)

Avoid using NOT IN (RPG400)

Avoid using NOT IN (RPG_FP)

Avoid using "nullable" Columns except in the last position in a Table

Avoid using "ORDER BY" in SELECTS

CRITICAL  Avoid using period for echo function

CRITICAL  Avoid using PLI Main Procedures using FIXED variable type declaration (PL1)

CRITICAL  Avoid using prepare statement (EGL)

CRITICAL  Avoid using "print" function

Avoid using Programs having textLiteralDefaultIsString property set to NO (EGL)

Avoid using queries with too many Tables in record groups (Forms)

CRITICAL  Avoid using regular expressions

Avoid using relative path

CRITICAL  Avoid using $row[xxx] (PHP)

Avoid using Rx.Observable.fromEvent without having a debouncetime set

Avoid using SEARCH ALL without sorted key or index

Avoid using "SELECT DISTINCT", use DELETE-ADJACENT

Avoid using SELECT ... ENDSELECT statement

Avoid using SELECT ... ENDSELECT statement on XXL Tables

Avoid using SELECT ... FOR UPDATE

CRITICAL  Avoid using SELECT ... INTO CORRESPONDING FIELDS OF

CRITICAL  Avoid using short tags like "

Avoid using signals management Functions

Avoid using SORT

CRITICAL  Avoid using SQL queries inside a loop

CRITICAL  Avoid using SQL queries inside a loop (SQL)

Avoid using SQL queries inside an XX-Shared loop

Avoid using string concatenation when using __dirname and __filename

Avoid using string concatenation when using nodejs __dirname and __filename variables (TypeScript)

Avoid using string datatype (EGL)

Avoid using String.Empty for empty string tests

CRITICAL  Avoid using STRING without overflow check

Avoid using 'System.gc'

CRITICAL  Avoid using the call of data service with Node.js inside a loop

Avoid using the call of web service $.ajax inside a loop

CRITICAL  Avoid using the call of web service inside a loop (VueJS)

Avoid using the call of web service with AngularJS $http inside a loop

Avoid using the call of web service with iOS/Objective-C API inside a loop

Avoid using the call of web service with iOS/Objective-C API inside a loop

Avoid using the call of web service with iOS/Swift API inside a loop

Avoid using the call of web service with Node.js http.get or http.request inside a loop

Avoid using the GROUP BY clause

Avoid using the NOT LIKE operator in WHERE clauses

Avoid using time() to get the system time (PHP)

Avoid using too much dot notation in loop

Avoid using Unicode or dbCHar datatypes (EGL)

CRITICAL  Avoid using UPDATE and DELETE without WHERE condition BETA

Avoid using URL.equals(Object obj) or URL.hashCode()

Avoid using Vector

Avoid using v-if on the same element as v-for

Avoid using web service calls inside a loop

CRITICAL  Avoid Variables declared as Variants

CRITICAL  Avoid XXL tables without primary key / unique key constraint / unique index

Avoid XX-Shared SQL queries on XXL tables not using the first column of a composite index in the WHERE clause

Avoid XX-Shared SQL queries on XXL Tables that no index can support (AllTechno)

Avoid XX-Shared SQL queries on XXL Tables using Functions on indexed Columns in the WHERE clause

Avoid XX-Shared SQL queries on XXL Tables with implicit conversions in the WHERE clause

Avoid XX-Shared SQL queries with a cartesian product on XXL Tables

CRITICAL  Blocking synchronous calls should have associated timeouts

Call 'base.Dispose()' or 'MyBase.Finalize()' in the "finally" block of 'Dispose(bool)' methods

Call 'super.finalize ()' in the "finally" block of 'finalize ()' methods

Check the use of "foreach" custom tag library

CRITICAL  Close database resources ASAP

CRITICAL  Close SQL connection ASAP

CRITICAL  Close the outermost stream ASAP

Close the outermost stream ASAP in XX-Shared object

Collection must be the same between getter and setter

CRITICAL  CWE-672: Expired or Released Resource should not be used

DataReader must be called using CommandBehavior.CloseConnection enumeration

Declare as static all Methods not using Instance Fields

Declare as static all Methods not using Instance Fields

Disable constraints before merging DataSet

Dispose() methods should call GC.SuppressFinalize

CRITICAL  DISTINCT should not be used in SQL SELECT statements

Do not mix ANSI and non-ANSI JOIN syntax in the same query

Do not mix Ansi joins syntax with Oracle proprietary joins syntax in the same query

CRITICAL  Do not return a dereferenced pointer allocated inside the function

CRITICAL  Do not use Cartesian products in Universe properties

Each opened file must be closed

Each table should have a clustered index

CRITICAL  EJB Entity access through their local Interface

CRITICAL  EJB Session access through their local Interface

Ensure Node.js filesystem are closed (TypeScript)

Ensure that dynamically allocated memory on local pointer in functions/methods is freed.

Ensure to turn off and clear event listeners after component is destroyed

CRITICAL  File descriptor block must be defined with 0 record

CRITICAL  Invoke 'delete' with the same form as the matching 'new'

Large Programs should be called dynamically

CRITICAL  Lazy fetching should be used for Hibernate collection

LIKE operator should not start with a wildcard character

Limit the use of the attribute ALLOCATE in Fortran-90 Functions (Fortran)

Limit the use of the attribute ALLOCATE in Fortran-90 Modules (Fortran)

Limit the use of the attribute ALLOCATE in Fortran-90 Programs (Fortran)

Limit the use of the attribute ALLOCATE in Fortran-90 Subroutines (Fortran)

LONG and LONG RAW datatypes should no longer be used

CRITICAL  Never throw an exception from a Destructor

CRITICAL  Never use an array to map Hibernate collection

CRITICAL  Never use array to map a collection

Never use SQL queries with a cartesian product

CRITICAL  Never use SQL queries with a cartesian product

Never use SQL queries with a cartesian product (ABAP)

Never use SQL queries with a cartesian product (AllTechno)

CRITICAL  Never use SQL queries with a cartesian product on XXL tables

CRITICAL  Never use SQL queries with a cartesian product on XXL Tables

Prefer PRIVATE to PUBLIC synonym

Prefer setting cardinality for CDS view associations (S4/HANA)

Prefer setting "many to one" cardinality for "left outer join" in CDS Views (S4/HANA)

Prefer UNION ALL to UNION

Prefer using associations instead "left outer join" in CDS Views (S4/HANA)

Prefer using Asynchronous Loading

CRITICAL  Prefer using indexes instead of subscripts

Provide a private default Constructor for utility Classes

Provide a private default Constructor for utility Classes

Provide a private default Constructor for utility Classes or use free Functions in a Namespace

CRITICAL  Replace OR conditions testing equality on the same identifier in SQL WHERE clauses by an IN test condition

Runtime Resource Management Control Element in a Component Built to Run on Application Servers

Serialize session objects

Specify column names instead of column numbers in ORDER BY clauses

Split universes of more than X MB

Subprograms called multiple times should be called statically

CRITICAL  Subscripts and iterators must be defined with BINARY usage

CRITICAL  Turn off "Multiple SQL statements for each measure"

Unavoid un-deallocated variables or arrays in Fortran-90 Functions (Fortran)

Unavoid un-deallocated variables or arrays in Fortran-90 Modules (Fortran)

Unavoid un-deallocated variables or arrays in Fortran-90 Programs (Fortran)

Unavoid un-deallocated variables or arrays in Fortran-90 Subroutines (Fortran)

Use aggregate awareness for indicators

Use a third party connection pool

Use BeginUpdate/EndUpdate when adding Items.Add method in loop

CRITICAL  Use dedicated stored procedures when multiple data accesses are needed (ASCPEM-PRF-10)

CRITICAL  Use indexes to access the table elements instead of Subscript

CRITICAL  Use lazy fetching for collection

CRITICAL  Use MINUS or EXCEPT operator instead of NOT EXISTS and NOT IN subqueries

Use of style sheets

Use Option Explicit

Use table-per-class-hierarchy when subclasses have few properties

Use table-per-subclass strategy when subclasses have many properties

Use "type=" to select elements by type

Use varchar2 instead of char and varchar

CRITICAL  Utilization of "DoEvents" inside a loop

VARCHAR2 and NVARCHAR2 should be used

When using binary data items (COMP), then use the SYNCHRONIZED clause