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

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

3天内不再提示

关于Polyspace静态分析的具体作用分析和介绍

MATLAB 来源:djl 2019-09-18 15:41 次阅读


更快地投放市场的趋势容易产生以下误解:静态分析只是发现错误。软件开发人员必须尽可能多地消除错误,并会使用错误快速发现工具,但很可能仍然存在一些错误。这种做法对于非安全关键型应用(如智能手机应用)可能足够了,但对于安全关键型应用可能是不够的。

因此,安全关键型应用需要更严格的方法来验证安全性和稳健性,这就是静态分析可以带来的其他好处。在本文中,我们将消除静态分析只是发现错误这一误解,并证明它可以帮助验证是否符合编码标准,生成有关代码质量的指标,并可以在软件开发的任何阶段使用。

毫无疑问,发现错误肯定是静态代码分析的一个重要方面。但是,静态分析技术的范围广泛,从简单的语法检查或基于启发式的方法,到基于形式化方法的高级验证,不一而足。

这一范围还体现在市场上各种各样的静态分析工具。例如,一些高级编译器有一个采用静态分析形式的内置语法检查器。在该范围的另一端是基于形式化方法的工具,如可以执行语义分析的 Polyspace,为您的软件提供详细的运行行为。

Polyspace Bug Finder 是一种可以帮助发现错误的静态分析工具,但它还可用于:

检查您的软件是否符合编码标准,如 MISRA C/C++、JSF++ 和自定义规则

生成代码度量指标以帮助您改进代码质量。

此外,使用 Polyspace Code Prover,您还可以证明您的软件不会由于特定类型的关键运行时错误而崩溃。

因此,这些工具已经超出了简单的错误发现,在验证和确认过程中非常有价值。例如,下图中的代码是形式验证的结果,该结果确认在任何运行条件下都不会发生溢出错误:

关于Polyspace静态分析的具体作用分析和介绍

如前所述,您可以使用静态分析来检查您的代码是否符合特定的编码准则或标准,从而避免使用不安全或不可靠的结构。它还可以帮助您捕捉表明代码质量的关键指标,如圈复杂度、执行不到的代码、使用共享全局变量和递归 、省去编写测试用例的开销。这些指标可以帮助您找出设计问题,例如可能最终影响软件性能和可靠性的代码架构。

使用非初始化变量或不受保护的共享变量可能在特定的测试用例中显示意想不到的结果。然后,您可能会承担调试任务,花费大量的时间试图找出问题所在。更糟糕的是,由于此类运行时错误的不可预知性,这些缺陷可能不会在测试过程中显示出来。

静态分析更为广泛的优势并不广为人知,因此它在软件开发工作流程的后期才被采用。因为它被简单地认为是一种发现错误的方法,所以它通常在软件开发的最后阶段才被采用(例如,静态分析是质量工程团队发布代码之前的最后一关)。超过90%的潜在客户在进入了项目的结束阶段后才与我们联系,了解我们的静态分析解决方案。

但是,如果您想利用上面讨论的所有优势,则应在开发的早期阶段引入静态分析。实际上,使用编译器就是一个这样的例子,因为编译器是一个非常简单的静态分析工具,可帮助开发代码的语法和语义。研究发现,尽早发现和修复编码错误可以获得显著的成本效益。还可以缩短您所开发软件所需的测试时间。因此,静态分析在早期引入您的工作流非常重要,它远不是简单地识别错误。

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

    关注

    30

    文章

    4555

    浏览量

    66759
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48610
  • 静态分析
    +关注

    关注

    1

    文章

    34

    浏览量

    3836
收藏 人收藏

    评论

    相关推荐

    如下电流检测电路具体是怎么分析的?

    在如图电路中,+和DC+之间串接低值电阻,检测正母线流过电流。 请教该电路具体是怎么工作的?尤其是在这两个三极管的工作过程?如果电流从左往右流过,+点电压高于DC+,该怎么分析? 如果电流是回馈
    发表于 03-03 11:29

    如何在IC封装中分析并解决与具体引线键合相关的设计问题?

    如何在IC 封装中分析并解决与具体引线键合相关的设计问题?
    的头像 发表于 11-28 17:08 306次阅读
    如何在IC封装中<b class='flag-5'>分析</b>并解决与<b class='flag-5'>具体</b>引线键合相关的设计问题?

    LTspice的常用的几种电路分析功能和操作

    。 ” 01 — 直流分析 直流分析是最基本的分析功能,可以分析直流电压源和电流源作用于电路的工作状态。它包括
    的头像 发表于 11-03 16:16 6963次阅读
    LTspice的常用的几种电路<b class='flag-5'>分析</b>功能和操作

    频谱分析仪的五种带宽介绍

    频谱分析仪无论在选型还是在使用中,都有各种带宽选择,比如频谱仪测量带宽,分辨率带宽,分析带宽等,本篇文章介绍一下各种带宽的含义和作用
    的头像 发表于 10-23 11:58 1672次阅读
    频谱<b class='flag-5'>分析</b>仪的五种带宽<b class='flag-5'>介绍</b>

    功率分析仪的功能和作用

    功率分析仪是一种专门用于测量、分析和评估电力系统的电力参数的仪器。它具有很多功能和作用,可以帮助用户对电力系统进行全面了解和管理。本文将详细介绍功率
    的头像 发表于 10-19 13:21 611次阅读

    电容有移相作用,那移相具体是什么作用

    电容有移相作用,那移相具体是什么作用关于电容的移相作用,其实可以从三个方面来进行详细解析: 1. 从物理学角度来说,电容储存电荷,当电压
    的头像 发表于 10-17 16:15 1987次阅读

    功率分析作用是什么?

    功率分析仪是一款用于测试电力系统和电力设备参数的仪器。它可以用于测量交、直流电源的多种参数,如电压、电流、功率、功率因素、电能等。功率分析仪在电力系统、电力设备制造、电子、工业自动化等领域都有广泛的应用。本文将详细介绍功率
    的头像 发表于 09-20 11:30 588次阅读
    功率<b class='flag-5'>分析</b>仪<b class='flag-5'>作用</b>是什么?

    医疗器械软件风险分析介绍 医疗设备软件静态和动态分析技巧

    静态和动态分析是满足软件测试合规性的关键,但这些过程并不容易实施。这篇文章提供了有关如何自动化该过程的专家指南。
    的头像 发表于 08-11 11:07 1298次阅读
    医疗器械软件风险<b class='flag-5'>分析</b><b class='flag-5'>介绍</b> 医疗设备软件<b class='flag-5'>静态</b>和动态<b class='flag-5'>分析</b>技巧

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

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

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

    向量和动态仿真 。本文将介绍静态时序分析的基本概念和方法,包括时序约束,时序路径,时序裕量,setup检查和hold检查等。 时序路径 同步电路设计中,时序是一个主要的考虑因素,它影响了电路的性能和功能。为了验证电路是否能在最
    的头像 发表于 06-28 09:38 802次阅读
    <b class='flag-5'>静态</b>时序<b class='flag-5'>分析</b>的基本概念和方法

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

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

    具体分析RLC谐振电路

    RLC谐振电路,分为RLC 电路的串联谐振和并联谐振,下面主要从这两种谐振电路形式来具体分析
    的头像 发表于 06-08 15:21 1.2w次阅读
    <b class='flag-5'>具体分析</b>RLC谐振电路

    FPGA静态时序分析简单解读

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

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

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