This page presents the CISQ/OMG Quality Measurement Rules at unit-level for applications based on .NET technology and Microsoft SQL supported by CAST AIP. .NET and Microsoft SQL is an example of a common technology stack used in many applications. If necessary, CAST can help create overview of CISQ coverage for other combinations of technologies.
OMG Characteristics | OMG Rule Id and Name | Levels | AIP QR Id | AIP QR Name | Description | Source Techno |
---|---|---|---|---|---|---|
Maintainability | ASCMM-MNT-01: Control Flow Transfer Control Element outside Switch Block | Unit | 8032 | Avoid using a break statement in 'for' loops | OMG rule applied to the case of "break" in "for" loop | .NET |
Maintainability | ASCMM-MNT-01: Control Flow Transfer Control Element outside Switch Block | Unit | 7816 | Avoid using GOTO statement | The rule will list all Functions and Procedures using "GOTO" statements in the participating database. | SQL |
Maintainability | ASCMM-MNT-03: Storable and Member Data Element Initialization with Hard-Coded Literals | Unit | - | .NET / SQL | ||
Maintainability | ASCMM-MNT-05: Loop Value Update within the Loop | Unit | - | .NET / SQL | ||
Maintainability | ASCMM-MNT-06: Commented Code Element Excessive Volume | Unit | 7126 | Avoid Artifacts with high Commented-out Code Lines/Code Lines ratio | Direct implementation of the rule. | .NET / SQL |
Maintainability | ASCMM-MNT-08: Source Element Excessive Size | Unit | 7842 | Avoid large Artifacts - too many Lines of Code | Direct implementation of the rule. | .NET / SQL |
Maintainability | ASCMM-MNT-11: Callable and Method Control Element Excessive Cyclomatic Complexity Value | Unit | 7766 | Avoid Artifacts with High Cyclomatic Complexity | Direct implementation of the rule. | .NET / SQL |
Maintainability | ASCMM-MNT-13: Callable and Method Control Element Excessive Number of Parameters | Unit | 7770 | Avoid Artifacts with too many parameters | Direct implementation of the rule. | .NET / SQL |
Maintainability | ASCMM-MNT-14: Callable and Method Control Element Excessive Number of Control Elements involving Data Element from Data Manager or File Resource | Unit | - | .NET / SQL | ||
Maintainability | ASCMM-MNT-15: Public Member Element | Unit | 3576 | Avoid declaring public Fields | The Public Data Ratio is directly linked to Public Member Elements. | .NET |
Maintainability | ASCMM-MNT-15: Public Member Element | Unit | - | SQL | ||
Maintainability | ASCMM-MNT-16: Method Control Element Usage of Member Element from other Class Element | Unit | - | .NET | ||
Maintainability | ASCMM-MNT-16: Method Control Element Usage of Member Element from other Class Element | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Maintainability | ASCMM-MNT-19: Named Callable and Method Control Element Excessive Similarity | Unit | 7156 | Avoid Too Many Copy Pasted Artifacts | Element similarity is addressed by the copy/paste ratio measured by the AIP rule. | .NET |
Maintainability | ASCMM-MNT-19: Named Callable and Method Control Element Excessive Similarity | Unit | 7156 | Avoid Too Many Copy Pasted Artifacts | Element similarity is addressed by the copy/paste ratio measured by the AIP rule. | SQL |
Performance Efficiency | ASCPEM-PRF-01: Static Block Element containing Class Instance Creation Control Element | Unit | - | .NET / SQL | ||
Performance Efficiency | ASCPEM-PRF-02: Immutable Storable and Member Data Element Creation | Unit | 7198 | Avoid String concatenation in loops | OMG rule implemented for the case of concatenation inside loops | .NET |
Performance Efficiency | ASCPEM-PRF-02: Immutable Storable and Member Data Element Creation | Unit | 7790
| Avoid Cursors inside a loop | This rule lists all SQL Artifacts (except table and view) accessing a cursor inside a loop. | SQL |
Performance Efficiency | ASCPEM-PRF-03: Static Member Data Element outside of a Singleton Class Element | Unit | - | .NET | ||
Performance Efficiency | ASCPEM-PRF-03: Static Member Data Element outside of a Singleton Class Element | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Performance Efficiency | ASCPEM-PRF-06: Large Data Resource ColumnSet Excessive Number of Index Elements | Unit | 7348 | Avoid too many Indexes on one Table | Direct implementation of the rule. | .NET |
Performance Efficiency | ASCPEM-PRF-06: Large Data Resource ColumnSet Excessive Number of Index Elements | Unit | - | SQL | ||
Performance Efficiency | ASCPEM-PRF-07: Large Data Resource ColumnSet with Index Element of Excessive Size | Unit | 7350 | Avoid Tables having Indexes with a too large Index definition | Direct implementation of the rule. | .NET |
Performance Efficiency | ASCPEM-PRF-07: Large Data Resource ColumnSet with Index Element of Excessive Size | Unit | - | SQL | ||
Performance Efficiency | ASCPEM-PRF-13: Data Resource Access not using Connection Pooling capability | Unit | - | .NET | ||
Performance Efficiency | ASCPEM-PRF-13: Data Resource Access not using Connection Pooling capability | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-CWE-252-resource: Unchecked Return Parameter Value of named Callable and Method Control Element with Read, Write, and Manage Access to Platform Resource | Unit | - | .NET / SQL | ||
Reliability | ASCRM-CWE-396: Declaration of Catch for Generic Exception | Unit | 7862 | Avoid catching an exception of type Exception, RuntimeException, or Throwable | Implementation of the OMG rule in the .NET context, for all the basic Exception types | .NET |
Reliability | ASCRM-CWE-396: Declaration of Catch for Generic Exception | Unit | - | SQL | ||
Reliability | ASCRM-CWE-397: Declaration of Throws for Generic Exception | Unit | 7824 | The exception Exception should never been thrown. Always Subclass Exception and throw the subclassed Classes. | Direct implementation of the rule. | .NET |
Reliability | ASCRM-CWE-397: Declaration of Throws for Generic Exception | Unit | - | SQL | ||
Reliability | ASCRM-CWE-456: Storable and Member Data Element Missing Initialization | Unit | - | .NET / SQL | ||
Reliability | ASCRM-CWE-674:Uncontrolled Recursion | Unit | 7388 | Avoid artifacts having recursive calls | Direct implementation of the rule. | .NET / SQL |
Reliability | ASCRM-RLB-01: Empty Exception Block | Unit | 7782 | Avoid empty finally blocks | Direct implementation of the rule. | .NET |
7788 | Avoid empty catch blocks | Direct implementation of the rule. | .NET | |||
Reliability | ASCRM-RLB-01: Empty Exception Block | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-RLB-06: Storable or Member Data Element containing Pointer Item Element without Proper Copy Control Element | Unit | - | .NET | ||
Reliability | ASCRM-RLB-06: Storable or Member Data Element containing Pointer Item Element without Proper Copy Control Element | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-RLB-07: Class Instance Self Destruction Control Element | Unit | - | .NET | ||
Reliability | ASCRM-RLB-07: Class Instance Self Destruction Control Element | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-RLB-08: Named Callable and Method Control Elements with Variadic Parameter Element | Unit | - | .NET | ||
Reliability | ASCRM-RLB-08: Named Callable and Method Control Elements with Variadic Parameter Element | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-RLB-09: Float Type Storable and Member Data Element Comparison with Equality Operator | Unit | - | .NET / SQL | ||
Reliability | ASCRM-RLB-12: Singleton Class Instance Creation without Proper Lock Element Management | Unit | - | .NET | ||
Reliability | ASCRM-RLB-12: Singleton Class Instance Creation without Proper Lock Element Management | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-RLB-15: Class Element with Virtual Method Element without Virtual Destructor | Unit | N/A | Already managed by the framework | .NET | |
Reliability | ASCRM-RLB-15: Class Element with Virtual Method Element without Virtual Destructor | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-RLB-16: Parent Class Element without Virtual Destructor Method Element | Unit | N/A | Already managed by the framework | .NET | |
Reliability | ASCRM-RLB-16: Parent Class Element without Virtual Destructor Method Element | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-RLB-17: Child Class Element wihout Virtual Destructor unlike its Parent Class Element | Unit | N/A | Already managed by the framework | .NET | |
Reliability | ASCRM-RLB-17: Child Class Element without Virtual Destructor unlike its Parent Class Element | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Reliability | ASCRM-RLB-18: Storable and Member Data Element Initialization with Hard-Coded Network Resource Configuration Data | Unit | - | .NET / SQL | ||
Reliability | ASCRM-RLB-19: Synchronous Call Time-Out Absence | Unit | - | .NET | ||
Reliability | ASCRM-RLB-19: Synchronous Call Time-Out Absence | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Security | ASCSM-CWE-252-resource: Unchecked Return Parameter Value of named Callable and Method Control Element with Read, Write, and Manage Access to Platform Resource | Unit | - | .NET / SQL | ||
Security | ASCSM-CWE-327: Broken or Risky Cryptographic Algorithm Usage | Unit | - | .NET | ||
Security | ASCSM-CWE-327: Broken or Risky Cryptographic Algorithm Usage | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Security | ASCSM-CWE-396: Declaration of Catch for Generic Exception | Unit | 7862 | Avoid catching an exception of type Exception, RuntimeException, or Throwable | Implementation of the OMG rule in the .NET context, for all the basic Exception types | .NET |
Security | ASCSM-CWE-396: Declaration of Catch for Generic Exception | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Security | ASCSM-CWE-397: Declaration of Throws for Generic Exception | Unit | 7824 | The exception Exception should never been thrown. Always Subclass Exception and throw the subclassed Classes. | Direct implementation of the rule. | .NET |
Security | ASCSM-CWE-397: Declaration of Throws for Generic Exception | Unit | N/A | Not applicable in the context of database technologies. | SQL | |
Security | ASCSM-CWE-456: Storable and Member Data Element Missing Initialization | Unit | - | .NET | ||
Security | ASCSM-CWE-456: Storable and Member Data Element Missing Initialization | Unit | N/A | Not applicable in the context of database technologies. | SQL |