CoverityPreventSQSPreventSQS(软件质量系统)是检测和解决C、C++、Java源代码中最严重的缺陷的领先的自动化方法。通过对您的构建环境、源代码和开发过程给出一个完整的分析,PreventSQS建立了获得高质量软件的标准。静态源代码分析允许我们再软件开发生命周期的早期阶段发现和修复缺陷,节省数以百万计的相关成本。PreventSQS是业界标准,因为只有Coverity理解和掌握静态源代码分析技术所具有的严格的要求。Coverity了解构建系统——PreventSQS通过在操作系统流程这个层次监测您的构建系统来获得每一个操作的清晰视图,展现您的软件。Coverity了解源代码——PreventSQS检测比当今市场上任何其他工具都更多的源代码信息;代码的结构、含义和意图都被用来揭示其中的严重的错误和不安全性。Coverity了解开发者——PreventSQS通过一个客户化的工作流、功能强大的分析器和易于使用的工具,能够使缺陷在几分钟内被定位,解决缺陷。绘制软件DNA图谱(C/C++)PreventSQS构建监测软件自动的检测您的编译系统执行的每一个操作。PreventSQS可信编译器收集您代码中的语法、语义和依赖关系的细节信息。一个完整的编译器描述库保存了所有的通过可信编译器收集的信息,所以分析引擎拥有关于源代码的全面的信息。PreventSQS通过集成一个位于您的构建系统和操作系统之间的监测层,记录构建系统和操作系统的交互,获得对于您的构建系统的一个清晰的了解。这个监测层检测所有的发起的可执行程序,和所有打开和读写的文件。当PreventSQS从您的构建系统检测到对您的编译器的调用,他执行很多步骤来了解调用操作及其对编译代码的影响。PreventSQS转换所有的命令来确切的了解本地预处理器和编译器将如何正确生成可执行程序。构建系统中的一个嵌入层记录每个文件的特有的编译,PreventSQS提供一个工具使您能够组合这些属性到他们的描述库和可执行程序中。PreventSQS编译很多种类型的C和C++源代码,包括各个编译器实现的主要的语言扩展和C、C++的各种方言。使用一个预处理器,PreventSQS也能够处理非标准的构造为语义等价构造,标准构造是前端分析器能够解释和理解的。软件DNA图谱包含了足够的构建系统和源代码信息,能够从软件DNA图谱构建一个执行程序。他收集了编译器用来生成可执行代码的所有的数据,也是保存源代码相关的所有数据的唯一的地方。您可以从保存在软件DNA图谱中的信息创建可执行程序,但反之不可。您不能从任何可执行程序中创建软件DNA图谱,因为构建系统、编译器和链接器在转换源代码到可执行程序时都会丢失信息。只有Coverity对于您的构建系统的理解允许您创建一个真实的软件DNA图谱,没有其他方法。检测严重的缺陷(C/C++)PreventSQS源代码分析引擎利用软件DNA图谱来分析您的代码的各个方面。PreventSQS模块化缺陷检测平台能够使很多模块(或检查器)同时分析您的代码,查找不同类别的缺陷。PreventSQS预配置的库说明了作为您的产品的一部分的第三方库的APIs和功能。在构建了软件DNA图谱以后,PreventSQS分析图谱来构建一个对于您的代码的完整的分析。PreventSQS应用很多、独特的分析引擎来分析所有执行模式的代码。分析引擎提供给缺陷检测检查器最精确的源代码描述,来查找缺陷。在分析引擎上构建了一系列的模块来检测三类主要的缺陷:导致系统崩溃的缺陷(内存错误、逻辑错误、指针错误等);安全性问题;和并发缺陷。这种模块化的分析架构允许Coverity持续的开发用于其他类别错误的模块。Coverity如何检查严重的软件缺陷PreventSQS分析引擎使得缺陷检测检查器拥有源代码最精确的描述。PreventSQS针对C/C++的分析引擎引擎功能路径流程引擎通过构建一个表示经过每一个函数的所有的路径的图表分析您代码中的每个函数的控制流数据追踪引擎用于分析从程序中每个路径中的声明收集的所有的整型和布尔型等数据统计引擎用于分析您的代码作为一个整体的行为特征过程间调用总结引擎一个主要的创新,使得PreventSQS可以执行整个程序的分析,分析文件间和模块间的任何层次的复杂的调用链类型流程引擎用于提高C++分析中依赖于类层次关系的报告的结果的精度虚假路径引擎用于分析每个分支条件,以确定在当前路径它将是真、假或不确定加速引擎保存横越每个路径时的每个缺陷分析所收集的信息;消除冗余路径,不需要横越任何不必要的路径来找到最多的缺陷数据传播引擎把过程间调用总结引擎产生的所有总结和数据追踪引擎记录的所有数据汇总起来,是Coverity特有的、上下文敏感的过程间分析能力的关键增量分析引擎通过缓存分析数据来提高性能,以便后续的分析仅需要包含变化的数据解决缺陷(C/C++)PreventSQS内嵌的自动分发功能把缺陷结果发给能够修复缺陷的开发人员和团队。可处理的缺陷报告在几分钟内提供一个直观的界面和说明,而不是几小时或几天。缺陷工作流管理器帮助开发团队创建客户化的检测、分析、解决PreventSQS报告的缺陷的流程。找到缺陷是美妙的,修复缺陷会更好。Coverity了解如何将源代码分析适应您的开发流程,PreventSQS提供您将缺陷列表转变为修复列表的所有的工具。PreventSQS缺陷导航工具提供一个直观的分析、诊断、解决您的代码中发现的问题的界面。每个缺陷的完整的路径在源代码中被清晰的显示,这样开发人员能够快速追踪错误的根源。缺陷的关键属性直接嵌入在源代码中,这样开发人员能够理解分析引擎用于检测错误的逻辑。在缺陷导航工具中,源代码以一个完全的交叉引用的形式显示,超链接界面使用户能够从引用点击到定义,也可以从定义到所有引用的列表。这帮助开发人员更快的鉴别复杂的交叉调用的缺陷。PreventSQS工作流管理器提供一个客户化的工作流阶段和步骤,允许用户对报告的缺陷构建缺陷修复流程。工作流管理器允许您轻松的划分您的代码为逻辑组,分配每个组的所有者。当报告缺陷,他将自动分配给组件的所有者,自动发送邮件通知。客户化工作流阶段允许您设置一系列“动作”,确定一个缺陷由检测到解决的步骤。分析引擎允许您以各种阶段粒度报告您的进度。几种预制的报告帮助您基于组件、所有者、或者缺陷类型划分结果,更好地分析您的代码中发生了什么缺陷,在哪里产生。在报告中,缺陷趋势帮助您分析缺陷引入和修复的比例。分析比较能够帮助您分析每次执行您的代码中引入了什么缺陷,什么缺陷消失了,以及什么缺陷仍然存在。能够发现的C/C++缺陷并发死锁错误使用的阻塞调用性能下降内存泄漏文件句柄泄漏定制的内存和网络资源泄漏数据库连接泄漏导致崩溃的缺陷空指针引用释放后引用多次释放不正确的内存分配不匹配的数组新建/删除不正确的程序行为逻辑错误导致的死代码未初始化变量负数的无效引用不正确的APIs使用STL使用错误API错误处理C/C++安全性问题安全编码缺陷缓冲区溢出整形溢出缺失的/不充分的恶意数据和字符串输入的验证格式化字符串的不安全SQL注入攻击交叉站点脚本攻击隐含的缺陷整个系统折衷服务拒绝攻击优先权扩张保密数据泄漏数据丢失仲裁代码执行特点和优势Coverity产品专长于最准确的找到最严重和最难检测的缺陷。我们很多的竞争对手专注于简单的标识尽可能多的可能的缺陷。但在Coverity,我们认为找到严重的缺陷和安全性问题比数字游戏更重要。重要的不是你找到了多少缺陷,而是那些缺陷的类型。以下特点使得CoverityPreventSQS特别:精确性——CoverityPreventSQS的特别之处在于平均小于20%的误报率。当许多其他的源代码分析产品以很高的误报率使得其不可用时,Coverity的虚假路径裁剪、统计分析和其它创新减少了误报的产生。附加的配置和微调能够进一步减少误报率。分析的深度——CoverityPreventSQS提供过程间数据流分析和统计分析,评审整个程序的交互和所有的可能的路径。CoverityPreventSQS检查企业特定的APIs和标志使用中的不一致性,精确的检测QA、安全评审和现场会发生的缺陷。当许多竞争工具仅提供表面的分析时,CoverityPreventSQS全面的分析您的代码。分析的广度——CoverityPreventSQS采用查找最严重的错误的最先进的技术,提高您的产品的质量和安全性。CoverityPreventSQS可以检测严重的问题,例如系统崩溃、内存泄漏、内存错误、不确定行为、并发缺陷和安全性问题。低拥有成本——CoverityPreventSQS无缝的与您已有的环境集成,能够快速部署和配置。可扩展——CoverityPreventSQS使您能够在我们的强大的分析引擎上创建定制的检查器,来满足您的开发组织和代码的特定需求。您可以设置定制的规则,来强化编码标准或者检测代码中的错误。强大的可配置性——CoverityPreventSQS能够快速的分析您的代码,通常百万行的代码仅需要几个小时,其他的工具需要几天,甚至几个星期来分析大规模代码。CoverityextendCoverityExtend使得企业能够针对特定的缺陷,在开发过程中强化业界兼容的标准和需求。CoverityExtend是您能够快速、方便的创建客户化的检查器,查找您的业务或领域特定的编码规则的违背。通过CoverityExtend,您能够针对您最关心的问题,所以您能够构建更好的产品,减少上市时间,和降低风险。CoverityExtend提供以下功能,以及CoverityPreventSQS包含的功能强大的质量、安全和并发问题检查器:消除在代码的所有路径中的严重的特定产品的缺陷方便的开发面向内部编码策略和工业标准的兼容产品包建立客户化的代码评审流程,和自动化部分的人工代码评审工作Structure101分析、定义和控制软件架构Structure101自动的可视化复杂的C/C++和Java代码的架构结构和依赖关系。使得Coverity的软件DNA图谱可以获得一个您的软件的完整的分析,Structure101提供给架构师和开发人员所必需的功能,包括:多视图显示系统架构,包括依赖关系图,依赖结构矩阵(DSM)图,和层次原理图,每个图都提供了您的软件结构的特有视角复杂性度量,显示具有过度复杂性(XS)的代码,包括循环依赖和过度的圈复杂度。Structure101提供无可比拟的架构分析能力,包括:自动的可视化已有的继承架构,所有的依赖关系清晰的显示,快速提供架构师和开发人员一个代码结构的分析。架构修改可以通过版本间和基线间的结构比较准确的分析,架构和依赖关系的改变被高亮显示。影响分析能够在作出修改之前执行,允许设计者分析可能的重新设计的影响。设计规则强化自动的检测和标识规则的违背,确保将来架构的一致性和预防复杂性。VisualizeDesignTanglesUnderstandDesignViolationswithDependencyGraphswithLayeredSchematicsHighlightExcessComplexityHighlyScalable(XS,Fat,Tangle)DependencyStructureMatrix(DSM)支持的平台CoverityPreverntSQS可以支持广泛的平台和编译器。C/C++源代码分析器支持的平台AppleMacOSX10.4CygwinFreeBSDHPUXLinuxMacOSXNetBSD(2.0)SolarisSparcSolarisX86Windows支持的C/C++编译器ARMADS/RVCTFreescaleCodewarriorGNUC/C++GreenHillsHPaCCHi-TechPICCIARIntelC/C++MarvellMSAMi