Polyspace静态分析说明

阅读最新的文章来了解更多关于Polyspace的信息®下载188bet金宝搏产品。

版本2021b为Polyspace提供了新的特性和增强功能®下载188bet金宝搏产品,包括Polyspace as You code——一个明确为开发人员设计的新功能。


的Polyspace®该系列产品现在提供了下载188bet金宝搏一个专为软件开发人员设计的特性:Polyspace as You Code。此特性将Polyspace Bug Finder的代码检查功能引入集成开发环境(ide),从而避免在软件开发周期的后期查找Bug。


Polyspace的2021a版本®下载188bet金宝搏产品增加了许多现有工作流程的改进。在使用AutoSAR RTE API的C / C ++代码上运行更快的分析,并查看更多精确的结果。在包含C和C ++源文件的组合的项目上运行PolySpace Code Prover™分析。使用新可自定义的指南检查程序减少代码的软件复杂性。


    版本2020B增加了许多现有的多核空间的改进®产品工作流程。你可以右UN在C ++ 17代码上的PolySpace分析或使用PolySpace分析来利用来自构建系统的JSON编译数据库格式生成的源和编译器规范。


      许多为嵌入式系统开发软件的公司要么在研究云平台,要么在计划试点项目,要么在积极开发云软件。这些公司通常被公共云服务提供商所吸引,比如亚马逊网络服务(AWS)®)和微软Azure®因为云平台提供的竞争性价格和其他优势。


        发布2020a的Polyspace®下载188bet金宝搏产品完成了许多现有的工作流程,并引入了一些新功能。Polyspace Bug Finder™现在支持所金宝app有CERT C规则,Polyspace Access™产品可以分析导入到Simulink中的所有形下载188bet金宝搏式的C/ c++代码。金宝app新的关键特性包括检测c++代码中潜在性能问题的检查器,从用户管理的弃用函数列表中标记函数,以及检查初始化代码中的问题。


        在过去的20年里,移动、智能设备、物联网和云等技术的进步催生了数以百万计的新应用程序。为了以高质量和可预见性更快地开发应用程序,公司正在演进他们的软件开发过程。在21世纪初,“轻量级”敏捷软件开发开始流行起来。敏捷是一个迭代的软件开发过程,它重视协作、持续计划和持续测试。


        发布2019b的Polyspace®下载188bet金宝搏产品包含更多的检查器,支持更多的编译器,显示金宝app更少的误报,并且与以前的版本相比进一步减少了设置活动。关键的新特性包括Polyspace Code Prover™中的共享变量模式,以及在Simulink中验证自定义C代码的能力金宝app®以及更高支持编码标准,如Au金宝apptoSAR C ++ 14和Cert®c++与新的后c++ 11检查器。


        一个问题经常出现:PolySpace是吗?®金宝app支持我正在使用的编译器?有时,这个问题的变体被询问:为什么PolySpace等静态分析工具需要了解一个编译器?它不是如果工具编译代码,则会创建二进制文件,并执行二进制文件以检测运行时错误。运行时错误检测并不涉及实际执行代码。


        Polyspace Bug Finder Access™和Polyspace Code Prover Access™可以方便地查看分析结果,并促进团队协作。项目团队中的每个人都可以通过web界面查看、评论和分类结果。下面的工作流展示了软件开发团队的不同成员如何使用Polyspace Access产品来监控他们项目的软件质量,并查看和分类代码分析和验证结果。下载188bet金宝搏


        截至R2019A,PolySpace Bug Finder™已过渡到三种新产品:PolySpace Bug Finder,PolySpa下载188bet金宝搏ce Bug Finder Server™和PolySpace Bug Finder Access™。PolySpace代码箴言也转化为三种新产品:PolySpace代码箴言,PolySpace代码Prover Serv下载188bet金宝搏er™和PolySpace代码Prover Access™。


        Polyspace Bug Finder™和Polyspace Code Prover™的2018b版本提供了许多新功能。重点包括:更简单的设置、改进的模块化以及对安全标准的更多支持。金宝app


        的Polyspace®开发团队考虑完整的客户体验,从第一次交互到在您的环境中部署Polyspace产品。下载188bet金宝搏我们从这些互动中获得的信息驱动着我们的特征图和设计。


        杰伊·亚伯拉罕(Jay Abraham)、普尼特·拉尔(Puneet Lal)和阿尼班·冈帕德海耶(Anirban Gangopadhyay)著

        本文概述了R2018a中的两项改进,它们使检查数据竞赛和其他基于多任务的结果变得更加容易。


        由Anirban Gangopadhyay

        从R2018a开始,Polyspace Code Prover直接支持用于软件开发的AUTOSAR(汽金宝app车开放系统架构)方法。无论您在AUTOSAR软件开发工作流中的角色是什么,您现在都可以使用Polyspace Code Prover作为AUTOSAR感知的静态分析工具。


        杰伊亚伯拉罕

        软件工程师依赖集成开发环境(ide),比如Eclipse™,将开发活动整合到一个统一的界面中。使用ide,您可以编辑、编译、执行、调试和测试代码。


        Ram Cherukuri和Anirban Gangopadhyay著

        缓冲区溢出已经困扰C/ c++开发社区很多年了。虽然C语言允许开发人员通过指针直接访问内存,但它也为溢出问题打开了大门。安全编码实践可以帮助开发人员在一定程度上避免缓冲区溢出(以性能为代价),但有时缓冲区溢出可能很难发现和解决。


        由Ram Cherukuri

        MISRA发布了最新的MISRA C:2012编码指南的修正案,以减轻日益增长的网络安全漏洞风险。2016年初,修正案通过附加的编码指南解决嵌入式安全问题。这14个新的编码指南旨在弥补ISO/IEC 17961:2013中发布的安全指南之间的差距。下表根据MISRA c2012规范确定了这14个规则的分类。要了解更多关于MISRA C:2012标准中使用的分类系统,请查看理解MISRA c2012编码指南的遵从性(33:28)


        由Ram Cherukuri

        来自CERT C、ISO/IEC TS 17961、MISRA C:2012修正案1的安全编码指南,以及CWE中概述的安全漏洞,提供了一种分析和测量嵌入式软件安全性的方法。这些标准正在获得越来越多的接受,因为它们提供了一个通用框架,用于理解、定位和记录现有代码和新开发代码中的安全漏洞。


        由Ram Cherukuri

        组织和团队为他们的软件开发过程采用各种模型(例如,V和敏捷)。在每个模型中,都有不同的变化,这取决于应用程序的需求、行业和工作流的成熟度。根据软件开发工作流中的不同步骤,还有其他的变化。例如,一些组织将正式的代码评审作为他们开发过程的一部分,因为它在提高缺陷检测率方面有好处。有些则完全或严重地依赖于测试活动。考虑到这些广泛的变化,至少有一些最佳实践适用于大多数现代嵌入式软件开发工作流。


        由Ram Cherukuri

        Polyspace Code Prover™使用橙色突出显示无法在所有情况下自动证明是无错误的操作。然后您可以检查可能导致健壮性或可靠性问题的潜在运行时问题。


        作者:Ram Cherukuri, Fred Noto, Alexandre Langenieux

        CERT C是一套针对软件开发人员的指导方针,用于C语言的安全编码。它是在CERT社区wiki上按照基于社区的开发过程开发的,第一版于2008年发布,第二版于2014年发布。


        由Ram Cherukuri

        代码生成极大地简化了MISRA遵从性过程。除了确保安全性和可靠性之外,编码标准(如MISRA)的主要目标是可读性、可维护性和可移植性。因为模型是开发过程的核心,并且可以以一致的方式为不同平台从模型生成代码,所以它简化了可移植性和可维护性部分。


        由Ram Cherukuri

        之前的帖子强调了利用的好处Polyspace静态分析帮助优化和减少验证周期的测试阶段的长度。这篇文章将讨论稳健性测试的低效率,并介绍如何解决这些挑战。


        由Ram Cherukuri

        在大多数嵌入式软件开发组织中,测试是验证过程的主要部分。研究估计,大约25 - 30%的开发时间花在测试上,在某些情况下,这可能高达50%[1]。


        作者:Ram Cherukuri, Gary Ryu

        MISRA标准编码规则的最新版本是MISRA C:2012,它继承了MISRA C:2004,后者已被嵌入式系统的跨行业软件社区广泛采用。


        Ram Cherukuri, Stefan David著

        Misra标准是跨行业的广泛采用的编码标准。它已成为嵌入式软件开发和质量保证群体中常见的最佳实践。许多这些群体对至少一个适用规则的子集具有严格的遵守政策 - 如果不是所有的编码规则。这种合规政策需要审查进程来解决违反编码规则的行为,而且此过程通常可以是资源密集的。


        由Ram Cherukuri

        这让我想起了一个笑话:“换一个灯泡需要多少个工程师?””

        我们的许多客户,尤其是汽车行业的客户,在他们的软件开发和验证过程中使用了不止一个静态分析工具。

        使用多种工具的一个原因是,传统上,采用静态分析被分割成不同的活动,如编码规则遵从性、bug查找等等。开发组织可能已经采用了lint工具来执行本地bug查找,并采用了规则检查工具来验证是否符合MISRA等标准,而质量保证部门可能已经采用了用于代码度量的工具,如代码覆盖率、注释密度和圈复杂度。


        作者:Anirban Gangopadhyay和Ram Cherukuri

        在这个由两部分组成的系列文章的第一部分中,我们讨论了健壮性代码验证,这是一种将代码单元与代码库的其余部分隔离开来进行验证的方法。我们概述了几个示例,并讨论了使用这种方法的优缺点。

        在这篇文章中,我们将讨论上下文代码验证,在该验证中,您将在代码库的上下文中验证您的代码单元,该单元将被集成到代码库中。这篇文章将使用与上一篇文章相同的例子,向您介绍上下文代码验证背后的概念,然后概述使用这两种类型的代码验证(健壮性和上下文)的最佳实践。


        作者:Anirban Gangopadhyay和Ram Cherukuri

        这是两个部分系列概述代码验证方法的一部分。

        我们从一个问题开始:在软件开发的阶段应该验证我的代码吗?

        答案很简单。您应该在编译完代码之后立即验证它,此时代码就会浮现在您的脑海中。一旦您看到潜在的错误,检查和修复这些错误几乎是微不足道的。在工作流的这个阶段之后,修正错误永远不会变得容易。


        作者:Ram Cherukuri, Jeff Chapple, Stefan David和Jay Abraham

        更快的上市时间趋势可能会导致误解静态分析只是为了找到漏洞。软件开发人员必须尽可能多地消除bug,并使用快速的bug查找工具,尽管有些bug可能仍然存在。这种做法对于非安全关键的应用程序(如智能手机应用程序)可能已经足够,但对于安全关键的应用程序可能还不够。因此,安全关键型应用程序需要更严格的方法来验证安全性和稳健性,这正是静态分析的其他好处所在。在本文中,我们将打破静态分析仅仅是寻找错误的误解,并证明它可以帮助验证对编码标准的遵从性,生成关于代码质量的指标,并可在软件开发的任何阶段使用。


        杰伊·亚伯拉罕、拉姆·切鲁库里和克里斯蒂安·巴德著

        2014年2月,科技博客和新闻媒体对苹果iOS iPhone、iPod、iPad和Mac OS X设备上新发现的漏洞议论纷纷。在传输层安全(TLS)和安全套接字层(SSL)代码中出现了一个问题,这个问题可能会被所谓的中间人攻击(MitM)所利用。这一漏洞被称为Goto Fail,苹果公司很快就在其移动平台的iOS 7.0.6和桌面平台的OS X 10.9.2上修复了这一缺陷。

        问问专家


        普尼特·拉尔,Polyspace静态分析笔记联系专家

        下载188bet金宝搏产品使用