Polyspace 产品和软件开发工作流
Polyspace® 系列产品为在整个软件开发生命周期中管理、测量和监控 C/C++ 代码质量提供了统一的解决方案。
静态分析产品 Polyspace Bug Finder™ 和 Polyspace Code Prover™ 检查 C/C++ 代码中是否存在运行时错误、编码标准违规项、安全漏洞和其他问题:
Polyspace Code Prover 可以涵盖程序中所有可能的执行路径,并按照一定的数学规则沿着这些路径跟踪数据流。详尽的控制和数据流分析可以补充动态测试,并揭露在常规鲁棒性测试中可能无法发现的潜在运行时错误。
Polyspace Bug Finder 可以扫描程序中是否存在更明显的缺陷、安全漏洞、编码标准违规以及可能导致运行时错误或意外结果的其他问题。
动态测试产品 Polyspace Test™ 提供了用于在嵌入式系统中开发、管理与执行 C 和 C++ 代码单元测试和集成测试的工具。使用 Polyspace Test,您可以使用基于 C/C++ xUnit 的 API 或在图形用户界面中编写测试,在主机或嵌入式目标上执行测试,自动化测试执行,并将测试与需求关联以实现可追溯性。您还可以通过计算代码覆盖率度量来测量测试的完整性,并自动生成测试以补充手动测试编写。
在软件开发中使用 Polyspace 产品
Polyspace 产品套件为软件开发过程的所有阶段提供支持:
提交代码前:
开发人员在开发过程中或在提交前可以运行 Polyspace 桌面端或以 IDE 为中心的产品来检查其代码以满足预定义的质量目标。
这些产品可以集成到 IDE 中(例如 Visual Studio Code、Visual Studio® 或 Eclipse™),也可以在编译期间通过脚本运行。可以在 IDE 或桌面端产品的图形用户界面中审查分析结果。
Polyspace 提供了用于桌面端的以下产品。这些产品设计为针对完整的工程或较小的代码模块(小至单个源文件)运行。
Polyspace Bug Finder:用于检查 C 和 C++ 源代码中是否存在编译器无法检测出的语义错误(例如使用
=而非==)、并发性问题、安全漏洞和其他缺陷。Polyspace Code Prover:用于执行更深入的检查,并证明 C 和 C++ 源代码中不存在溢出、除以零、数组访问越界和其他运行时错误。
Polyspace Test :用于在主机或嵌入式目标上编写并运行 C/C++ 测试。
提交代码后:
作为持续集成过程(使用 Jenkins® 之类的工具)中的编译步骤,Polyspace 服务器端产品可以针对新提交的代码自动运行。该分析在服务器端运行,并且会将结果上传到 Web 界面以便进行协同审查。
Polyspace 提供用于服务器端的以下产品:
Polyspace Bug Finder Server™ :自动在服务器端运行 Bug Finder,并且将结果上传到 Web 界面以便进行审查; Polyspace Access™ :用于审查上传的结果。
Polyspace Code Prover Server :自动在服务器端运行 Code Prover,并且将结果上传到 Web 界面以便进行审查; Polyspace Access :用于审查上传的结果。
Polyspace Test :自动在服务器端运行测试,并且将结果上传到 Web 界面以便进行审查;Polyspace Access :用于审查上传的测试结果。
通常,服务器端产品在软件编译和测试过程中在若干台编译服务器上运行,并检查新提交的代码。每位评审(开发人员、质量保证工程师或开发经理)都有一个 Polyspace Access 许可证,用于审查上传的分析结果。
此外,如果开发人员能够访问 Polyspace Access 来通过 Web 界面审查提交后的结果,则他们还可以在其 IDE 中安装 Polyspace as You Code 以运行提交前分析。当作为 IDE 扩展安装时,Polyspace as You Code® 执行单个文件范围内的 Bug Finder 式分析,并在开发人员进行编码的同时向其提供近乎即时的反馈。
下图显示了 Polyspace 产品的一种可能部署:

当同时使用桌面端和服务器端产品时,您的提交前工作流可以顺利过渡到提交后工作流。
协调 Polyspace 的提交前和提交后使用
当您在软件开发工作流的不同阶段运行多个 Polyspace 产品时,后期运行可以从早期使用中获益,反之亦然。尤其是:
在 IDE 中使用 Polyspace as You Code 的开发人员可以轻松修复可能会在单个文件中找到并解决的缺陷和编码标准违规项。在提交代码后运行的后续 Polyspace Bug Finder Server 分析将不再显示这些问题。
Polyspace Bug Finder Server 分析的结果可以用作 Polyspace as You Code 运行的基线。使用最新 Polyspace Bug Finder Server 结果作为 IDE 运行基线的开发人员,可以仅重点关注代码更改导致的问题。
用于 Ada 代码的 Polyspace 产品
Polyspace 提供用于校验 Ada 代码的以下产品:
Polyspace Client™ for Ada :用于在桌面端检查 Ada 代码是否存在运行时错误。
Polyspace Server for Ada :用于在服务器端检查 Ada 代码是否存在运行时错误。
您可以使用桌面端产品在桌面端运行分析,也可以使用桌面端产品和服务器端产品的组合在服务器端运行分析。分析结果将下载到桌面端以供审查。
如果您有一个 Polyspace Code Prover Access 许可证并已设置 Polyspace Code Prover Access 的 Web 界面,则您可以将每个单独的 Ada 结果从 Ada 桌面端产品上传到该 Web 界面,以便进行协同审查。