软件可靠性保障技术与风险管理策略
静态分析技术
静态分析(SA)是一种不执行代码就能分析软件属性的方法,其严格程度各异,涵盖从语法检查(如代码检查工具)到形式验证技术等多种分析方式。静态分析可分为手动和自动两种,手动分析需要数学证明,自动分析则借助静态分析工具进行自动检查。
静态分析通常可按严格程度递增分为以下三大类:
1. 代码合规性和指标分析 :代码合规性检查会依据一组既定的语法规则对源代码进行检查,这些规则被视为良好实践。支持代码合规性的工具通常会包含指标分析,用于评估代码复杂度,例如:
- 圈复杂度(模块中的决策点数量)
- 路径复杂度(代码模块中可能的路径数量)
代码合规性检查器可以通过识别构造不佳的代码、语法不符合规范或可能导致缺陷的复杂控制流,增强对代码质量的信心。这可以降低代码出现意外行为的概率,但不能完全消除。一般来说,适用于验证和确认软件系统的静态分析技术取决于服务水平目标或协议(SLO/SLA)中定义的服务可用性等因素。在这种情况下,代码合规性适用于所有级别的SLO和SLA。
2. 完整性分析 :完整性分析旨在确保程序不会进入编程语言未定义的状态,这通常等同于运行时错误,如读取数组越界、读取未初始化的内存位置或除以零等。它还会考虑与语言无关的缺陷,如缓冲区溢出或任何可能影响代码正确执行的并发问题(如数据竞争、竞态条件等),以及并发模块之间意外的交互,如死锁。完整性分析是对系统性能和可用性最有益的分析方法。去除常见的漏洞可确保系统无意外异常地运行,特别是对于需要更高可用性(99.9%及以上)的系统。如果存在完整性错误,系统在功能上就是不正确的,完整性分析可
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



