0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Polyspace的静态分析的详细解析和应用

MATLAB 来源:djl 作者:龚小平 2019-09-16 17:15 次阅读

Polyspace是MathWorks产品家族的一员, 也许有人还不知道它能做什么以及作用原理是什么。简单来说,Polyspace是基于抽象解释原理的代码级静态分析和验证工具。

的确,由于时间和成本的关系我们不可能做穷举测试,但并不能就此推断我们没有测试的工况是安全的。

以汽车行业为例,已发生的多次召回事件经分析是因为软件缺陷尤其是运行时错误(run-time error)造成的。所谓的运行时错误,是指在通常的调试过程中需要程序运行起来之后才可能显现的错误,如指针越界、数据溢出等。换句话说,如果测试用例没有覆盖到特定的输入条件时,这些问题可能就没有机会被发现。

关于Polyspace的静态分析的详细解析和应用

Windows平台下调试运行时错误发生的案例

除汽车行业以外,航空航天、铁路、医疗等所谓高完整性系统行业,嵌入式软件往往承载着系统大部分重要功能的实现,一旦发生问题会带来异常严重的后果。软件的静态分析作为动态功能测试的重要补充,在这些行业应用非常广泛。

所谓的静态分析,指在不运行程序的情况下,基于数学方法的分析来验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。通俗地说,静态分析可以通过不写测试用例达到动态穷举测试的效果,是用来提高代码鲁棒性和证明软件安全性的重要手段。

Polyspace所采用的静态分析方法是抽象解释,是软件形式化验证方法(Formal Verification)的一种,它在处理复杂的计算问题或模型的过程中通过对问题进行近似抽象,取出其中的关键部分进行分析,从而减少问题的复杂程度。

关于Polyspace的静态分析的详细解析和应用

抽象解释

简单举例,判断x/(x-y)是否有除零的风险的问题可以转换为左下图 x和y的取值范围是否有可能落在y=x的红线上。Polyspace基于程序控制结构、函数调用关系、多任务分析等,通过复杂的数据流析取过程抽象到右下图绿色多面空间中来判断是否有可能落在y=x上。

关于Polyspace的静态分析的详细解析和应用

Polyspace中的抽象解释

经Polyspace分析后的代码结果以不同颜色表:

绿色代表为安全代码,无需花过多精力审查;

红色代码问题代码,需要立刻解决;

灰色代表不可达代码,需要审查是设计错误还是有意为之;

橙色代表有风险代码,需要重点审查。

另外还可以设定编码规范(如MISRA)和自定义代码风格,违反之处以紫色显示;同时可以看到代码变量随控制流的数据范围变化情况,快速查找和定位问题原因。

关于Polyspace的静态分析的详细解析和应用

Polyspace的分析结果

不论是自动代码还是手写代码甚或混合代码,Polyspace可以承担类似“质量门”的角色,帮助查找常见软件缺陷、进行代码规范检查、提供软件度量信息,更进一步通过证明不存在运行时错误交付安全代码,大大提高代码审查的效率并可提供安全认证所需的相关证据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4553

    浏览量

    66665
  • 静态分析
    +关注

    关注

    1

    文章

    34

    浏览量

    3835
收藏 人收藏

    评论

    相关推荐

    关于PSDR和DSPR遇到的两个问题求解

    PSPR 主要用途放置静态函数,提示高函数数执行效率 DSPR 主要用途于全局变量、场景保护的上下文管理与等数据 以上是我找到的关于 PSPR 和 DSPR 的解析,我有两个问题: 1。PSPR
    发表于 02-26 07:57

    详细解析电动车辆技术问题

    电子发烧友网站提供《详细解析电动车辆技术问题.pdf》资料免费下载
    发表于 11-02 09:44 2次下载
    <b class='flag-5'>详细</b><b class='flag-5'>解析</b>电动车辆技术问题

    什么是静态?收音机放大电路的静态分析指标是什么?

    未加信号时三极管的直流工作状态被称为静态,也可以说成放大电路没有输入信号时的工作状态,放大电路的质量与静态值的关系很大。
    的头像 发表于 09-27 16:46 1589次阅读
    什么是<b class='flag-5'>静态</b>?收音机放大电路的<b class='flag-5'>静态</b><b class='flag-5'>分析</b>指标是什么?

    为什么放大电路的静态工作点要设计在Q点?

    个点上,电路处于一种稳定的状态,并且信号可以被放大。Q点是一个很重要的指标,用来表征放大电路的静态工作点。放大电路的静态工作点与电压、电流相关,因此设计Q点至关重要。 本文将从以下几个方面详细介绍放大电路的
    的头像 发表于 09-13 14:16 1786次阅读

    详细解析CW32F030C8T6的时钟树

    本章针对CW32F030C8T6的时钟树进行详细解析,续第一章启动文件的相关讲解。
    的头像 发表于 08-17 11:42 1062次阅读
    <b class='flag-5'>详细</b><b class='flag-5'>解析</b>CW32F030C8T6的时钟树

    嵌入软件静态解析工具

    模块(函数)说明书・模块结构图・模块(函数)表・structure说明书,structure表 根据静态解析功能,生成外部变量对照表,typedef表,各种参照表 具有通过静态分析
    发表于 08-02 11:51

    什么是静态代码分析静态代码分析概述

    静态分析可帮助面临压力的开发团队。高质量的版本需要按时交付。需要满足编码和合规性标准。错误不是一种选择。 这就是开发团队使用静态分析工具/源代码分析
    的头像 发表于 07-19 12:09 913次阅读
    什么是<b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>?<b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>概述

    静态时序分析的相关概念

      本文主要介绍了静态时序分析 STA。
    的头像 发表于 07-04 14:40 574次阅读
    <b class='flag-5'>静态</b>时序<b class='flag-5'>分析</b>的相关概念

    静态时序分析的基本概念和方法

    引言 在同步电路设计中,时序是一个非常重要的因素,它决定了电路能否以预期的时钟速率运行。为了验证电路的时序性能,我们需要进行 静态时序分析 ,即 在最坏情况下检查所有可能的时序违规路径,而不需要测试
    的头像 发表于 06-28 09:38 791次阅读
    <b class='flag-5'>静态</b>时序<b class='flag-5'>分析</b>的基本概念和方法

    STA-0.静态时序分析概述

    静态时序分析(Static Timing Analysis, 以下统一简称 **STA** )是验证数字集成电路时序是否合格的一种方法,其中需要进行大量的数字计算,需要依靠工具进行,但是我们必须了解其中的原理。
    的头像 发表于 06-27 11:43 564次阅读
    STA-0.<b class='flag-5'>静态</b>时序<b class='flag-5'>分析</b>概述

    恒讯科技分析静态ip是什么意思?有什么优缺点?

    静态ip是什么意思?“静态”一词的意思是不变的,这很好地描述了静态ip地址的工作原理。静态ip的含义是指分配给设备并保持不变的ip地址,而不是每次设备连接到Internet时都会更改的
    的头像 发表于 06-01 16:57 1184次阅读

    FPGA静态时序分析简单解读

    任何学FPGA的人都跑不掉的一个问题就是进行静态时序分析静态时序分析的公式,老实说很晦涩,而且总能看到不同的版本,内容又不那么一致,为了彻底解决这个问题,我研究了一天,终于找到了一种
    的头像 发表于 05-29 10:24 365次阅读
    FPGA<b class='flag-5'>静态</b>时序<b class='flag-5'>分析</b>简单解读

    静态分析和动态分析的区别

    静态分析和动态分析是一种双管齐下的方法,可以在可靠性、错误检测、效率和安全性方面改进开发过程。为什么它们都很重要?它们又有什么区别呢?
    的头像 发表于 05-16 16:03 3914次阅读

    浅谈汽车控制器系统和应用软件开发工具

    Polyspace是一款强大的代码静态分析工具,用于检测软件代码中的潜在错误和安全漏洞。它可以分析代码并确定可能导致错误或漏洞的代码段,并提供详细
    发表于 04-24 17:46 588次阅读
    浅谈汽车控制器系统和应用软件开发工具

    关于舰船交流电网中绝缘监测及故障定位的分析

    关于电网中会用到的绝缘监测和故障定位分析。如何计算,影响因素等详细介绍。
    的头像 发表于 04-23 15:26 942次阅读
    <b class='flag-5'>关于</b>舰船交流电网中绝缘监测及故障定位的<b class='flag-5'>分析</b>