Page tree
Skip to end of metadata
Go to start of metadata

Error rendering macro 'redirect'

Invalid URL: "CISQ - CWE - OWASP rules". Please provide a valid URL to redirect to.

This page presents the CISQ/OMG Quality Measurement Rules coverage at system- and technology-level for applications based on C++ technology and Microsoft SQL supported by CAST AIP. C++ and Microsoft SQL is an example of a common technology stack used in many applications. If necessary, CAST can help create an overview of CISQ coverage for other combinations of technologies.

OMG CharacteristicsOMG Rule Id and NameLevelsAIP QR IdAIP QR NameDescription of CoverageSource Techno
MaintainabilityASCMM-MNT-02: Class Element Excessive Inheritance of Class Elements with Concrete Implementation  Technology578Avoid Classes with multiple inheritanceMultiple inheritance increases the code complexity. Therefore the cost of maintenance will also increase.C++
MaintainabilityASCMM-MNT-02: Class Element Excessive Inheritance of Class Elements with Concrete Implementation  TechnologyN/A Not applicable in the context of database technologies. Relational databases don't deal with objects (and, thus, inheritance) - they deal with entities and relationships.SQL
MaintainabilityASCMM-MNT-04: Callable and Method Control Element Number of Outward CallsSystem / Technology / Unit7778Avoid Artifacts with High Fan-OutDirect implementation of the rule.C++ / SQL
MaintainabilityASCMM-MNT-07: Inter-Module Dependency CyclesTechnology-  C++
MaintainabilityASCMM-MNT-07: Inter-Module Dependency CyclesTechnologyN/A Not applicable in the context of database technologies. The modules are usually developed using a programming language.SQL
MaintainabilityASCMM-MNT-09: Horizontal Layer Excessive NumberSystemACArchitecture CheckerExcessive number of layers are detected when defining the architecture.C++
MaintainabilityASCMM-MNT-09: Horizontal Layer Excessive NumberSystemN/A Not applicable to DBMS technologiesSQL
MaintainabilityASCMM-MNT-10: Named Callable and Method Control Element Multi-Layer SpanSystemACArchitecture CheckerComponents that span several layers are detected when defining the architecture.C++
MaintainabilityASCMM-MNT-10: Named Callable and Method Control Element Multi-Layer SpanSystemN/A Not applicable to DBMS technologiesSQL
MaintainabilityASCMM-MNT-12: Named Callable and Method Control Element with Layer-skipping CallSystemACArchitecture CheckerDefining the architecture with Architecture Checker and specifying the authorized links between the layers allow to pinpoint the components with layer-skipping calls.C++
MaintainabilityASCMM-MNT-12: Named Callable and Method Control Element with Layer-skipping CallSystemN/A Not applicable to DBMS technologiesSQL
MaintainabilityASCMM-MNT-17: Class Element Excessive Inheritance LevelTechnology7802Avoid Classes with a High Depth of Inheritance TreeDirect implementation of the rule.C++
MaintainabilityASCMM-MNT-17: Class Element Excessive Inheritance LevelTechnologyN/A Not applicable in the context of database technologies. SQL
MaintainabilityASCMM-MNT-18: Class Element Excessive Number of ChildrenTechnology7792Avoid Classes with a High Number Of ChildrenDirect implementation of the rule.C++
MaintainabilityASCMM-MNT-18: Class Element Excessive Number of ChildrenTechnologyN/A Not applicable in the context of database technologies. SQL
MaintainabilityASCMM-MNT-20: Unreachable Named Callable or Method Control ElementSystem / Technology7860Avoid unreferenced Functions and Stored ProceduresDirect implementation of the rule.C++ / SQL
MaintainabilityASCMM-MNT-20: Unreachable Named Callable or Method Control ElementSystem / Technology7908Avoid unreferenced MethodsDirect implementation of the rule.C++
Performance EfficiencyASCPEM-PRF-04: Data Resource Read and Write Access Excessive ComplexitySystem / Technology / Unit7808Avoid Artifacts with SQL statement including subqueriesSub-queries contribute to SQL query complexity. This AIP rule checks for nested SQL queries.C++
Performance EfficiencyASCPEM-PRF-04: Data Resource Read and Write Access Excessive ComplexitySystem / Technology / Unit7808Avoid Artifacts with SQL statement including subqueriesSub-queries contribute to SQL query complexity. This AIP rule checks for nested SQL queries.SQL
Performance EfficiencyASCPEM-PRF-05: Data Resource Read Access Unsupported by Index ElementSystem / Technology / Unit-  .C++
Performance EfficiencyASCPEM-PRF-05: Data Resource Read Access Unsupported by Index ElementSystem / Technology / Unit7902Avoid SQL queries that no index can supportDirect implementation of the rule.SQL
Performance EfficiencyASCPEM-PRF-08: Control Elements Requiring Significant Resource Element within Control Flow Loop BlockSystem / Technology / Unit7424Avoid using SQL queries inside a loopSQL queries can be expensive in terms of resources. This AIP rule checks for queries executed inside loops.C++ / SQL
Performance EfficiencyASCPEM-PRF-09: Non-Stored SQL Callable Control Element with Excessive Number of Data Resource AccessTechnology / Unit-  C++ / SQL
Performance EfficiencyASCPEM-PRF-10: Non-SQL Named Callable and Method Control Element with Excessive Number of Data Resource AccessSystem-  C++ / SQL
Performance EfficiencyASCPEM-PRF-11: Data Access Control Element from Outside Designated Data Manager ComponentSystem / TechnologyACArchitecture CheckerDefining the architecture with Architecture Checker and specifying the authorized links between the layers allow to pinpoint the components with layer-skipping calls.C++
Performance EfficiencyASCPEM-PRF-11: Data Access Control Element from Outside Designated Data Manager ComponentSystem / TechnologyN/A Not applicable to DBMS technologiesSQL
Performance EfficiencyASCPEM-PRF-12: Storable and Member Data Element Excessive Number of Aggregated Storable and Member Data ElementsTechnology / Unit-  C++
Performance EfficiencyASCPEM-PRF-12: Storable and Member Data Element Excessive Number of Aggregated Storable and Member Data ElementsTechnology / UnitN/A Not applicable in the context of database technologies.SQL
Performance EfficiencyASCPEM-PRF-14: Storable and Member Data Element Memory Allocation Missing De-Allocation Control ElementTechnology / Unit-  C++ / SQL
Performance EfficiencyASCPEM-PRF-15: Storable and Member Data Element Reference Missing De-Referencing Control ElementTechnology / Unit-  C++
Performance EfficiencyASCPEM-PRF-15: Storable and Member Data Element Reference Missing De-Referencing Control ElementTechnology / UnitN/A Not applicable in the context of database technologies.SQL
ReliabilityASCRM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit-  C++ / SQL
ReliabilityASCRM-CWE-252-data: Unchecked Return Parameter Value of named Callable and Method Control Element with Read, Write, and Manage Access to Data ResourceSystem / Technology / Unit-  C++ / SQL
ReliabilityASCRM-CWE-704: Incorrect Type Conversion or CastTechnology / Unit-  C++ / SQL
ReliabilityASCRM-CWE-772: Missing Release of Resource after Effective LifetimeTechnology / Unit-  C++ / SQL
ReliabilityASCRM-CWE-788: Memory Location Access After End of BufferTechnology / Unit-  C++ / SQL
ReliabilityASCRM-RLB-02: Serializable  Storable Data Element without Serialization Control ElementTechnology / Unit-  C++
ReliabilityASCRM-RLB-02: Serializable  Storable Data Element without Serialization Control ElementTechnology / UnitN/A Not applicable in the context of database technologies.SQL
ReliabilityASCRM-RLB-03: Serializable Storable Data Element with non-Serializable Item ElementsTechnology / Unit-  C++
ReliabilityASCRM-RLB-03: Serializable Storable Data Element with non-Serializable Item ElementsTechnology / UnitN/A Not applicable in the context of database technologies. SQL
ReliabilityASCRM-RLB-04: Persistant  Storable Data Element without Proper Comparison Control ElementTechnology / Unit-  C++
ReliabilityASCRM-RLB-04: Persistant  Storable Data Element without Proper Comparison Control ElementTechnology / UnitN/A Not applicable in the context of database technologies.SQL
ReliabilityASCRM-RLB-05: Runtime Resource Management Control Element in a Component Built to Run on Application ServersTechnology / Unit-  C++
ReliabilityASCRM-RLB-05: Runtime Resource Management Control Element in a Component Built to Run on Application ServersTechnology / UnitN/A Not applicable in the context of database technologies.SQL
ReliabilityASCRM-RLB-10: Data Access Control Element from Outside Designated Data Manager ComponentSystem / TechnologyACArchitecture CheckerDefining the architecture with Architecture Checker and specifying the authorized links between the layers allow to pinpoint the components with layer-skipping calls.C++
ReliabilityASCRM-RLB-10: Data Access Control Element from Outside Designated Data Manager ComponentSystem / TechnologyN/A Not applicable to DBMS technologiesSQL
ReliabilityASCRM-RLB-11: Named Callable and Method Control Element in Multi-Thread Context with non-Final Static Storable or Member Element Technology-  C++
ReliabilityASCRM-RLB-11: Named Callable and Method Control Element in Multi-Thread Context with non-Final Static Storable or Member Element TechnologyN/A Not applicable in the context of database technologies.SQL
ReliabilityASCRM-RLB-13: Inter-Module Dependency CyclesTechnology-  C++
ReliabilityASCRM-RLB-13: Inter-Module Dependency CyclesTechnologyN/A Not applicable in the context of database technologies. SQL
ReliabilityASCRM-RLB-14: Parent Class Element with References to Child Class ElementTechnology-  C++
ReliabilityASCRM-RLB-14: Parent Class Element with References to Child Class ElementTechnologyN/A Not applicable in the context of database technologies. SQL
SecurityASCSM-CWE-022: Path Traversal Improper Input NeutralizationSystem / Technology7990Avoid using realpath() functionContributes to the recommendation, the function 'realpath()' is considered as very risky and must not be used since it is not possible to specify correctly the size for the output bufferC++
ecurityASCSM-CWE-022: Path Traversal Improper Input NeutralizationSystem / TechnologyN/A Not applicable in the context of database technologies. SQL
SecurityASCSM-CWE-078: OS Command Injection Improper Input NeutralizationSystem / Technology-  C++
SecurityASCSM-CWE-078: OS Command Injection Improper Input NeutralizationSystem / TechnologyN/A Not applicable in the context of database technologies. SQL
SecurityASCSM-CWE-079: Cross-site Scripting Improper Input NeutralizationSystem / Technology-  C++
SecurityASCSM-CWE-079: Cross-site Scripting Improper Input NeutralizationSystem / TechnologyN/A Not applicable in the context of database technologies. SQL
SecurityASCSM-CWE-089: SQL Injection Improper Input NeutralizationSystem / Technology-  C++
SecurityASCSM-CWE-089: SQL Injection Improper Input NeutralizationSystem / TechnologyN/A Not applicable in the context of database technologies. SQL
SecurityASCSM-CWE-99: Name or Reference Resolution Improper Input NeutralizationSystem / Technology / Unit-  C++
SecurityASCSM-CWE-99: Name or Reference Resolution Improper Input NeutralizationSystem / Technology / UnitN/A Not applicable in the context of database technologies.SQL
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7970Never use strcpy() functionContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7972Never use sprintf() or vsprintf() functionsContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7976Never use gets() functionContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7992Avoid using getpass() functionContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7988Avoid using snprintf() function familyContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7986Avoid using streadd() functionContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7984Avoid using strecpy() functionContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7982Avoid using strlen() function familyContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7980Avoid using strtrns() functionContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit7978Avoid using the scanf() function familyContributes to the recommendation C++
SecurityASCSM-CWE-120: Buffer Copy without Checking Size of InputTechnology / Unit-  SQL
SecurityASCSM-CWE-129: Array Index Improper Input NeutralizationSystem / Technology-  C++
SecurityASCSM-CWE-129: Array Index Improper Input NeutralizationSystem / TechnologyN/A Not applicable in the context of database technologies. SQL
SecurityASCSM-CWE-134: Format String Improper Input NeutralizationSystem / Technology-  C++
SecurityASCSM-CWE-134: Format String Improper Input NeutralizationSystem / TechnologyN/A Not applicable in the context of database technologies. SQL
SecurityASCSM-CWE-434: File Upload Improper Input NeutralizationSystem / Technology-  C++
SecurityASCSM-CWE-434: File Upload Improper Input NeutralizationSystem / TechnologyN/A Not applicable in the context of database technologies. SQL
SecurityASCSM-CWE-606: Unchecked Input for Loop ConditionSystem / Technology-  C++ / SQL
SecurityASCSM-CWE-667: Shared Resource Improper LockingTechnology-  C++ / SQL
SecurityASCSM-CWE-672: Expired or Released Resource UsageTechnology / Unit-  C++ / SQL
SecurityASCSM-CWE-681: Numeric Types Incorrect ConversionTechnology / Unit8002Never perform C-style cast between incompatible Class pointersEnsure that the required type casting is used when dealing with incompatible class pointers.C++
SecurityASCSM-CWE-681: Numeric Types Incorrect ConversionTechnology / Unit8058A pointer to a derived Class shall only be cast implicitly to a pointer to base ClassEnsure that the required type casting is used when dealing with incompatible class pointers.C++
SecurityASCSM-CWE-681: Numeric Types Incorrect ConversionTechnology / Unit8060A pointer to a base Class shall only be cast to a pointer to a derived Class by means of 'dynamic_cast'Ensure that the required type casting is used when dealing with incompatible class pointers.C++
 SecurityASCSM-CWE-681: Numeric Types Incorrect ConversionTechnology / Unit-  SQL
SecurityASCSM-CWE-772: Missing Release of Resource after Effective LifetimeTechnology / Unit-  C++ / SQL
SecurityASCSM-CWE-789: Uncontrolled Memory AllocationSystem / Technology-  C++ / SQL
SecurityASCSM-CWE-798: Hard-Coded Credentials Usage for Remote AuthenticationTechnology / Unit-  C++ / SQL
SecurityASCSM-CWE-835: Loop with Unreachable Exit Condition (Infinite Loop)Technology / Unit-  C++ / SQL

Unit-level CISQ/OMG Quality Measurement Rules for a C++ and Microsoft SQL application can be found here: CISQ/OMG Automated Source Code Measurement Standards Coverage for a C++ and Microsoft SQL application - Unit-level

  • No labels