这个页面展示CISQ/OMG质量测量规则在系统和技术层面的覆盖,这些应用基于JEE技术和CAST AIP支持的Oracle SQL。JEE和Oracle SQL是许多应用中使用的常见技术堆栈的一个例子。必要时CAST可以帮助为其它技术组合创建CISQ覆盖率的概述。
OMG 特征 | OMG 规则和名称 | 级别 | AIP QR Id | AIP QR 名称 | 说明 | 源技术 |
---|---|---|---|---|---|---|
可维护性 | ASCMM-MNT-02: 类元素过度继承类元素的具体实现 | 技术 | N/A | JEE | ||
可维护性 | ASCMM-MNT-02: 类元素过度继承类元素的具体实现 | 技术 | N/A | 不适用于数据库技术环境。关系数据库不处理对象(因此也不处理继承)——它们处理实体和关系。 | SQL | |
可维护性 | ASCMM-MNT-04: 可调用和方法控制外部调用的元素数 | 系统 / 技术 / 单元 | 7778 | 避免输出端处的工件 | 直接执行规则。 然而对于JEE, OMG要求输出端数阈值的默认值为5,而AIP中的默认值为4。 | JEE / SQL |
可维护性 | ASCMM-MNT-07: 模块间依赖周期 | 技术 | 7292 | 避免包之间的循环调用和继承 | 直接执行规则。 | JEE |
可维护性 | ASCMM-MNT-07: 模块间依赖周期 | 技术 | N/A | 不适用于数据库技术环境。这些模块通常使用编程语言开发。 | SQL | |
可维护性 | ASCMM-MNT-09: 水平层数过多 | 系统 | AC | 架构检查器 | 在定义架构时,会检测到过多的层。 | JEE |
可维护性 | ASCMM-MNT-09: 水平层数过多 | 系统 | N/A | 不适用于DBMS技术。 | SQL | |
可维护性 | ASCMM-MNT-10: 命名可调用和方法控制元素的多层跨度 | 系统 | AC | 架构检查器 | 在定义架构时,将检测跨多个层的组件。 | JEE |
可维护性 | ASCMM-MNT-10: 命名可调用和方法控制元素的多层跨度 | 系统 | N/A | 不适用于DBMS技术。 | SQL | |
可维护性 | ASCMM-MNT-12: 命名可调用和方法控制元素的多层跨度 | 系统 | AC | 架构检查器 | 使用架构检查器定义架构并指定层之间的授权链接允许使用跳过层的调用精确定位组件。 | JEE |
可维护性 | ASCMM-MNT-12: 命名可调用和方法控制元素的多层跨度 | 系统 | N/A | 不适用于DBMS技术。 | SQL | |
可维护性 | ASCMM-MNT-17: 类元素过度继承级别 | 技术 | 7802 | 避免使用高层次的继承树 | 直接执行规则。 | JEE |
可维护性 | ASCMM-MNT-17: 类元素过度继承级别 | 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
可维护性 | ASCMM-MNT-18: 类元素的子元素过多 | 技术 | 7792 | 避免数量较多的子类 | 直接执行规则。 | JEE |
可维护性 | ASCMM-MNT-18: 类元素的子元素过多 | 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
可维护性 | ASCMM-MNT-20: 无法访问的命名为可调用的或方法控制元素 | 系统 / 技术 | 7860 | 避免未引用的函数 | JEE:规则的直接实现。 SQL:此规则列出所有未引用的函数、过程和包函数和过程。 | JEE / SQL |
可维护性 | ASCMM-MNT-20: 无法访问的命名为可调用的或方法控制元素 | 系统 / 技术 | 7908 | 避免未引用的方法 | 直接执行规则。 | JEE |
性能效率 | ASCPEM-PRF-04: 数据资源读写访问过于复杂 | 系统 / 技术 / 单元 | 7808 | 避免使用包含子查询的SQL语句的工件 | 子查询增加了SQL查询的复杂性。这个AIP规则检查嵌套的SQL查询。 | JEE |
性能效率 | ASCPEM-PRF-04: 数据资源读写访问过于复杂 | 系统 / 技术 / 单元 | 7130 | 避免具有嵌套子查询深度的工件 | 嵌套子查询增加了SQL查询的复杂性。这个AIP规则检查嵌套的SQL查询。 | JEE |
性能效率 | ASCPEM-PRF-05: 索引元素不支持数据资源的读访问 | 系统 / 技术 / 单元 | - | JEE | ||
性能效率 | ASCPEM-PRF-05: 索引元素不支持数据资源的读访问 | 系统 / 技术 / 单元 | 7902 | 避免任何索引都不支持的SQL查询 | 直接执行规则。 | SQL |
性能效率 | ASCPEM-PRF-08: 控制流循环块中需要重要资源元素的控制元素 | 系统 / 技术 / 单元 | 7206 | 避免使用InstanceOf内部循环 | OMG规则应用于循环内部类型检查的情况。 | JEE |
性能效率 | ASCPEM-PRF-08: 控制流循环块中需要重要资源元素的控制元素 | 系统 / 技术 / 单元 | 7200 | 避免在循环中串接字符串 | OMG规则是为循环内部的连接而实现的。 | JEE |
性能效率 | ASCPEM-PRF-08: 控制流循环块中需要重要资源元素的控制元素 | 系统 / 技术 / 单元 | 7210 | 避免在循环中实例化 | OMG规则是为循环中的类实例化实现的。 | JEE |
性能效率 | ASCPEM-PRF-08: 控制流循环块中需要重要资源元素的控制元素 | 系统 / 技术 / 单元 | 7954 | 避免在循环内部间接串接字符串 | OMG规则用于在循环中调用的函数中进行连接。 | JEE |
性能效率 | ASCPEM-PRF-08: 控制流循环块中需要重要资源元素的控制元素 | 系统 / 技术 / 单元 | 7204 | 避免在循环终止表达式中调用方法 | OMG规则是为循环条件下的方法调用实现的。 | JEE |
性能效率 | ASCPEM-PRF-08: 控制流循环块中需要重要资源元素的控制元素 | 系统 / 技术 / 单元 | 7424 | 避免在循环中使用SQL查询 | SQL查询在资源方面可能很昂贵。这个AIP规则检查在循环中执行的查询。 | JEE / SQL |
性能效率 | ASCPEM-PRF-08: 控制流循环块中需要重要资源元素的控制元素 | 系统 / 技术 / 单元 | 7962 | 避免在循环中直接或间接地远程调用 | OMG规则是为循环中的EJB或SAL调用实现的。 | JEE |
性能效率 | ASCPEM-PRF-09: 具有过多数据资源访问的非存储SQL可调用控件元素 | 技术 / 单元 | 7914 | 避免直接访问数据库表 | OMG规则的严格实现:禁止在Java代码中使用非存储的SQL过程 | JEE |
性能效率 | ASCPEM-PRF-09: 具有过多数据资源访问的非存储SQL可调用控件元素 | 技术 / 单元 | - | SQL | ||
性能效率 | ASCPEM-PRF-10: 非SQL命名的可调用和方法控件元素,具有过多的数据资源访问 | 系统 | 8110 | 当需要多个数据访问时,使用专用存储过程 | OMG规则在Java代码中为SQL调用实现。它考虑了通过显式SQL命令和存储过程进行的任何数据库访问。 | JEE |
性能效率 | ASCPEM-PRF-10: 非SQL命名的可调用和方法控件元素,具有过多的数据资源访问 | 系统 | - | SQL | ||
性能效率 | ASCPEM-PRF-11: 来自外部指定数据管理器组件的数据访问控制元素 | 系统 / 技术 | AC | 架构检查器 | 使用架构检查器定义架构并指定层之间的授权链接允许使用跳过层的调用精确定位组件。 | JEE |
性能效率 | ASCPEM-PRF-11: 来自外部指定数据管理器组件的数据访问控制元素 | 系统 / 技术 | N/A | 不适用于DBMS技术。 | SQL | |
性能效率 | ASCPEM-PRF-12: 可存储以及成员数据元素可存储和成员数据元素的聚合过多 | 技术 / 单元 | 7424 | 避免在循环中使用SQL查询 | SQL查询在资源方面可能很昂贵。这个AIP规则检查在循环中执行的查询。 | JEE |
性能效率 | ASCPEM-PRF-12: 可存储以及成员数据元素可存储和成员数据元素的聚合过多 | 技术 / 单元 | N/A | 不适用于数据库技术环境。 | SQL | |
性能效率 | ASCPEM-PRF-14: 可存储以及成员数据元素内存分配缺少反分配控制元素 | 技术 / 单元 | N/A | 不适用于Java环境中,在Java环境中内存是完全管理的。 | JEE / SQL | |
性能效率 | ASCPEM-PRF-15: 可存储以及成员数据元素引用缺少去引用控件元素 | 技术 / 单元 | 7562 | 避免类型集合的静态字段 | OMG规则是为静态集合变量实现的,这些静态集合变量是具有潜在增加内存的存储结构,它们是在应用的生命周期中创建的,不可能被解除引用。 | JEE |
性能效率 | ASCPEM-PRF-15: 可存储以及成员数据元素引用缺少去引用控件元素 | 技术 / 单元 | N/A | 不适用于数据库技术环境。 | SQL | |
可靠性 | ASCRM-CWE-120: 不检查输入大小的缓冲区复制 | 技术 / 单元 | - | JEE / SQL | ||
可靠性 | ASCRM-CWE-252-data: 未选中的返回指定可调用和方法控制元素的参数值,该元素具有对数据资源的读、写和管理访问权限 | 系统 / 技术 / 单元 | 8112 | 避免数据处理操作执行状态处理不当 | 通过检查数据访问操作期间异常触发器的正确处理,在Java上下文中实现OMG规则。 | JEE |
可靠性 | ASCRM-CWE-252-data: 未选中的返回指定可调用和方法控制元素的参数值,该元素具有对数据资源的读、写和管理访问权限 | 系统 / 技术 / 单元 | - | SQL | ||
可靠性 | ASCRM-CWE-704: 类型转换或CAST不正确 | 技术 / 单元 | - | JEE / SQL | ||
可靠性 | ASCRM-CWE-772: 在有效生命周期之后缺少资源的释放 | 技术 / 单元 | 8108 | 尽快关闭外面的流 | OMG规则是在Java流的情况下实现的 | JEE |
可靠性 | ASCRM-CWE-772: 在有效生命周期之后缺少资源的释放 | 技术 / 单元 | 8104 | 尽快关闭数据库资源 | 为Java DB访问(JDBC、JPA和Hibernate)实现的OMG规则 | JEE |
可靠性 | ASCRM-CWE-772: 在有效生命周期之后缺少资源的释放 | 技术 / 单元 | - | SQL | ||
可靠性 | ASCRM-CWE-788: 缓冲区结束后的内存位置访问 | 技术 / 单元 | N/A | 在Java中,语言检测到超绑定访问,并将抛出异常 | JEE / SQL | |
可靠性 | ASCRM-RLB-02: 没有序列化控制元素的可序列化存储数据元素 | 技术 / 单元 | - | 不适用于数据库技术环境。 | JEE / SQL | |
可靠性 | ASCRM-RLB-03: 具有非序列化项元素的可序列化存储数据元素 | 技术 / 单元 | 7650 | 可序列化类的所有类型都必须是可序列化的 | 直接执行规则。 | JEE |
可靠性 | ASCRM-RLB-03:具有非序列化项元素的可序列化存储数据元素 | 技术 / 单元 | N/A | 不适用于数据库技术环境。 | SQL | |
可靠性 | ASCRM-RLB-04: 没有适当比较控制元素的可持久存储数据元素 | 技术 / 单元 | 7504 | 持久化类应该实现hashCode()和equals() | OMG规则是在Hibernate持久性的情况下实现的。 | JEE |
可靠性 | ASCRM-RLB-04: 没有适当比较控制元素的可持久存储数据元素 | 技术 / 单元 | N/A | 不适用于数据库技术环境。 | SQL | |
可靠性 | ASCRM-RLB-05: 用于在应用服务器上运行的组件中的运行时资源管理控制元素 | 技术 / 单元 | 7728 | 避免为在应用服务器上运行的应用创建线程 | OMG规则用于禁止创建线程。 | JEE |
可靠性 | ASCRM-RLB-05: 用于在应用服务器上运行的组件中的运行时资源管理控制元素 | 技术 / 单元 | N/A | 不适用于数据库技术环境。 | SQL | |
可靠性 | ASCRM-RLB-10: 来自外部指定数据管理器组件的数据访问控制元素 | 系统 / 技术 | AC | 架构检查器 | 使用架构查器定义架构并指定层之间的授权链接允许使用跳过层的调用精确定位组件。 | JEE |
可靠性 | ASCRM-RLB-10: 来自外部指定数据管理器组件的数据访问控制元素 | 系统 / 技术 | N/A | 不适用于DBMS技术。。 | SQL | |
可靠性 | ASCRM-RLB-11: 具有非最终静态存储或成员元素的多线程环境中命名的可调用和方法控制元素 | 技术 | 7154 | 避免操作类中不是最终静态的字段 | OMG规则是在使用Struts操作实现多线程的情况下实现的。 | JEE |
可靠性 | ASCRM-RLB-11: 具有非最终静态存储或成员元素的多线程环境中命名的可调用和方法控制元素 | 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
可靠性 | ASCRM-RLB-13: 模块间依赖周期 | 技术 | 7292 | 避免包之间的循环调用和继承 | 直接执行规则。 | JEE |
可靠性 | ASCRM-RLB-13: 模块间依赖周期 | 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
可靠性 | ASCRM-RLB-14: 引用子类元素的父类元素 | 技术 | 7934 | 避免知道子类(或接口)的超类(或接口) | 直接执行规则。 | JEE |
可靠性 | ASCRM-RLB-14: 引用子类元素的父类元素 | 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
安全性 | ASCSM-CWE-022: 路径遍历输入中性化不当 | 系统 / 技术 | 7752 | 避免文件路径操作漏洞 ( CWE-73 ) | 直接执行规则。 | JEE |
安全性 | ASCSM-CWE-022: 路径遍历输入中性化不当 | 系统 / 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
安全性 | ASCSM-CWE-078: OS命令注入错误的输入中性化 | 系统 / 技术 | 7748 | 避免OS命令注入漏洞 ( CWE-78 ) | 直接执行规则。 | JEE |
安全性 | ASCSM-CWE-078: OS命令注入错误的输入中性化 | 系统 / 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
安全性 | ASCSM-CWE-079: 跨站点脚本编写错误的输入中性化 | 系统 / 技术 | 7740 | 避免跨站点脚本DOM漏洞 ( CWE-79 ) | 直接执行规则。 | JEE |
安全性 | ASCSM-CWE-079: 跨站点脚本编写错误的输入中性化 | 系统 / 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
安全性 | ASCSM-CWE-089: SQL注入不当的输入中性化 | 系统 / 技术 | 7742 | 避免SQL注入漏洞 ( CWE-89 ) | 直接执行规则。 | JEE |
安全性 | ASCSM-CWE-089: SQL注入不当的输入中性化 | 系统 / 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
安全性 | ASCSM-CWE-99: 名称或引用解析错误的输入中性化 | 系统 / 技术 / 单元 | 7732 | 避免未经验证的输入 | 检查JSP环境中的输入验证 | JEE |
安全性 | ASCSM-CWE-99: 名称或引用解析错误的输入中性化 | 系统 / 技术 / 单元 | N/A | 不适用于数据库技术环境。 | SQL | |
安全性 | ASCSM-CWE-120: 不检查输入大小的缓冲区复制 | 技术 / 单元 | - | JEE / SQL | ||
安全性 | ASCSM-CWE-129: 数组索引不正确的输入中性化 | 系统 / 技术 | - | 不适用于数据库技术环境。 | JEE / SQL | |
安全性 | ASCSM-CWE-134: 格式化字符串不恰当的输入中性化 | 系统 / 技术 | 8098 | 避免无控制格式字符串 (CWE-134) | 直接执行规则。 | JEE |
安全性 | ASCSM-CWE-134: 格式化字符串不恰当的输入中性化 | 系统 / 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
安全性 | ASCSM-CWE-434: 上传错误的输入中性化 | 系统 / 技术 | 7752 | 避免文件路径操作漏洞 ( CWE-73 ) | 直接执行规则。 | JEE |
8218 | 直接执行规则。 | JEE | ||||
安全性 | ASCSM-CWE-434: 文件上传不当输入中性化 | 系统 / 技术 | N/A | 不适用于数据库技术环境。 | SQL | |
安全性 | ASCSM-CWE-606: 未选中循环条件的输入 | 系统 / 技术 | - | JEE / SQL | ||
安全性 | ASCSM-CWE-667: 共享资源错误锁定 | 技术 | - | JEE / SQL | ||
安全性 | ASCSM-CWE-672: 过期或释放的资源使用 | 技术 / 单元 | 8214 | 直接执行规则。 | JEE | |
安全性 | ASCSM-CWE-672: 过期或释放的资源使用 | 技术 / 单元 | - | SQL | ||
安全性 | ASCSM-CWE-681: 数字类型错误转换 | 技术 / 单元 | 8216 | 直接执行规则。 | JEE | |
安全性 | ASCSM-CWE-681: 数字类型错误转换 | 技术 / 单元 | - | SQL | ||
安全性 | ASCSM-CWE-772: 在有效生命周期之后缺少资源的释放 | 技术 / 单元 | 8108 | 尽快关闭外面的流 | OMG规则是在Java流的情况下实现的。 | JEE |
安全性 | ASCSM-CWE-772: 在有效生命周期之后缺少资源的释放 | 技术 / 单元 | 8104 | 尽快关闭数据库资源 | 为Java DB访问(JDBC、JPA和Hibernate)实现的OMG规则。 | JEE |
安全性 | ASCSM-CWE-772: 在有效生命周期之后缺少资源的释放 | 技术 / 单元 | - | SQL | ||
安全性 | ASCSM-CWE-789: 不受控制的内存分配 | 系统 / 技术 | - | JEE / SQL | ||
安全性 | ASCSM-CWE-798: 用于远程身份验证的硬编码凭据使用 | 技术 / 单元 | 8222 | 直接执行规则。 | JEE | |
安全性 | ASCSM-CWE-798: 用于远程身份验证的硬编码凭据使用 | 技术 / 单元 | - | SQL | ||
安全性 | ASCSM-CWE-835: 具有无法达到出口条件的循环(无限循环) | 技术 / 单元 | 7388 | 避免工件具有递归调用 | 直接执行规则。 | JEE |
安全性 | ASCSM-CWE-835: 具有无法达到出口条件的循环(无限循环) | 技术 / 单元 | - | SQL |
针对JEE和Oracle SQL应用的单元层CISQ/OMG质量度量规则详见:针对JEE和Oracle SQL应用的CISQ/OMG自动化源代码测量标准覆盖 - 单元层