Klocwork_Insight_产品介绍3.ppt

上传人:文库蛋蛋多 文档编号:2291918 上传时间:2023-02-09 格式:PPT 页数:54 大小:6.11MB
返回 下载 相关 举报
Klocwork_Insight_产品介绍3.ppt_第1页
第1页 / 共54页
Klocwork_Insight_产品介绍3.ppt_第2页
第2页 / 共54页
Klocwork_Insight_产品介绍3.ppt_第3页
第3页 / 共54页
Klocwork_Insight_产品介绍3.ppt_第4页
第4页 / 共54页
Klocwork_Insight_产品介绍3.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《Klocwork_Insight_产品介绍3.ppt》由会员分享,可在线阅读,更多相关《Klocwork_Insight_产品介绍3.ppt(54页珍藏版)》请在三一办公上搜索。

1、Klocwork Insight介绍,北京智诚创想科技有限公司,内容提要,Confidential,Klocwork 公司简介自动化源代码分析技术简介Klocwork Insight 介绍产品演示,Klocwork 公司简介,Klocwork公司,总部位于美国麻省伯灵顿和加拿大渥太华分支机构:亚特兰大芝加哥达拉斯特区华盛顿圣何塞全球市场采用合作伙伴策略北京智诚创想科技有限公司是中国的唯一合作伙伴,Confidential,Klocwork公司简介,起源:始于1996年Nortel Networks 深度静态分析的重大项目,14年的技术经验2001年成立Klocwork公司Klocwork公司产

2、品名称:KlocworkKlocwork 版本:Insight(9.0)Klocwork获得众多国际奖项,Confidential,Klocwork公司简介,Safety-CriticalEmbedded,ComputerSoftware,ComputerHardware,Network&Telecom,Finance&Insurance,流入到下一阶段的缺陷个数减少75%QA报告的缺陷数量减少50%直接与缺陷相关的成本减少30%,Spotlight Success:,Safety-CriticalSoftware,ComputerSoftware,ComputerHardware,Netwo

3、rk&Telecom,Finance&Insurance,Spotlight Success:,Confidential,超过600家成功客户,Klocwork公司简介,Confidential,国内客户北京德信无线/杭州德信软件天碁科技(T3G)上海毅仁科技(E28)ArcSoft杭州研发中心Alcatel Lucent ShanghaiAlcatel Shanghai Bell中国软件信息安全评测中心中船705所中船709所中船715所中船716所金美通信航天12所CETC 54所,自动化源代码分析技术简介,源代码分析(SCA)基础,Confidential,源代码分析技术用于识别源代码中

4、的缺陷逻辑错误和编码缺陷(如:内存管理问题,空指针的解引用,未初始化变量,数组越界等)安全漏洞并发违反和边界条件架构的正确性软件度量的计算和管理编码规则检查与传统的动态分析技术(单元测试或渗透测试)不同基于静态分析技术分析工作是在构建阶段进行,并且只分析程序或模块的源代码完全分析每条可达路径,而不限于能够观测到的动态行为源代码分析工具的应用:构建阶段开发人员桌面,自动化源代码分析技术简介,Klocwork的静态分析方法:抽象语法树(Abstract Syntax Trees-AST)以一种无歧义的方式覆盖代码结构中的所有分支,主要用来验证基本语法以及代码结构 路径分析(Code Path An

5、alysis)基于理解程序执行路径中的任一特定时刻数据对象的状态来进行更为全面的分析源代码分析工具的能力:代码质量度量:以代码的可维护性、可测性为目标进行代码优化代码行数、注释率复杂度(圈复杂度)编码规则检查代码架构分析(架构关系、流程图)Runtime缺陷检测,Confidential,自动化源代码分析技术简介,Confidential,目前的源代码分析,过程改进的基本原则之一:“同步”进行缺陷的限制 通过在系统构建过程中应用源代码分析,在系统测试(QA)之前发现更多的代码缺陷 下一代源代码分析将缺陷监测进一步提前到代码检入之前,自动化源代码分析技术简介,Klocwork Insight-第

6、三代源代码分析产品,Confidential,新一代的源代码分析产品,自动化源代码分析技术简介,桌面分析与系统分析,System SCA 优势由于“全系统”可见,因而对于良好的分析准确性而言是必要的对管理非常重要,能够分析基于每次构建的质量趋势报告Systems SCA 局限性无法实现“in-phase defect containment”开发人员不得不检入含有缺陷的代码,才能发现缺陷开发人员仍然陷入“rinse and repeat”bug finding/fix/check-in cycle,Developer SCA 优势在对其他人造成影响之前,能够立刻修复缺陷使得“in-phase”

7、缺陷限制成为可能Developer SCA 局限性缺乏全系统上下文,准确性成问题开发人员无法及时交流对缺陷状态的修改,自动化源代码分析技术简介,桌面分析与系统分析相关联,Klocwork developer desktop 自动与系统分析上下文进行关联最佳性能、最佳准确性、全系统上下文传递到本地在解决缺陷时,创建 peer-to-peer 协同缺陷“fingerprint”运行缺陷ID和开发人员的行为与缺陷保持一致,开发人员不会对同一缺陷进行重复工作与IDE集成,或者通过简单的命令行调用Klocwork Insight 是唯一一个能够将桌面源代码分析的高效性与系统范围分析的强大、准确完美结合在

8、一起的源代码分析工具,自动化源代码分析技术简介,使用源代码分析工具的效果在发布代码之前将代码里面存在的问题报告出来,避免将致命的漏洞或缺陷流转到不受控制的状态通过自动化的技术提高现有代码检查进程的效率通过100%覆盖所有的边界条件来增强现有的QA资源在新产品推向市场时,保护企业品牌形象,Klocwork Insight介绍,Klocwork Insight介绍,Klocwork Insight 软件架构,Source,KMC,Architectural Analysis,kwcheck,Klocwork Review(Web browser),kwadmin,R/OSERVER,R/WSERV

9、ER,KLOCWORKSERVER,CLIENTTOOL,SCMSERVER,BUILDSERVER,FLEXLMSERVER,WebSERVER,DatabaseSERVER,IDE Plugin,Klocwork Insight介绍,Klocwork的特性:分析的缺陷全面、准确综合准确率统计80以上分析性能出色代码规模代码复杂度计算机环境强大的适应性能够分析上千万行代码分布式并行分析(支持多核、多CPU、多服务器分布式计算)自动提取源程序构建信息避免手工输入的繁琐和不准确知识库技术适应不同的编译环境和集成第三方的库函数具备扩展机制,支持二次开发客户端与服务器的有机连接实现分析代码时机和准确

10、性的完美结合,Klocwork Insight介绍,Klocwork分析过程通过自动化构建发现技术提取源代码构建信息代码分析阶段经过Klocwork编译生成带有缺陷信息的中间文件结合知识库文件进行缺陷分析,同时生成函数行为知识库分析结果存入数据库,用户通过客户端进行访问,Klocwork Insight介绍,Klocwork Insight的功能:软件缺陷与安全漏洞检测软件质量趋势分析软件质量度量分析软件体系架构分析定制软件开发策略,缺陷和安全漏洞检测,可以检测200多种C/C+缺陷和安全漏洞C/C+软件缺陷样例:空指针引用内存管理问题(如内存泄漏、释放未分配的内存)数组越界、堆栈溢出未初始化

11、数据使用编码风格类问题(如:条件赋值)C/C+安全漏洞样例:访问控制问题数组越界缓冲区溢出(潜在的缓冲区溢出)DNS欺骗注入缺陷未经验证的用户输入,缺陷和安全漏洞检测,可以检测近200种Java缺陷和安全漏洞Java软件缺陷样例:效率问题(如:空的finalize方法)可维护性问题(如:空的catch语句)可靠性问题(如:资源泄漏 Leaks、空对象)Java安全漏洞样例:访问控制缺陷数组越界拒绝服务出错处理不当移植代码安全注入缺陷(e.g.SQL Injection)跨站点攻击未经验证的输入,缺陷和安全漏洞检测-系统级分析,通过浏览器查看分析结果(Klocwork Review),缺陷和安全

12、漏洞检测-系统级分析,Klocwork问题管理(Klocwork Review),缺陷和安全漏洞检测-系统级分析,Klocwork问题分析(Klocwork Review),在线帮助,问题的详细描述,追踪条件 追踪事件 跨模块调用,缺陷和安全漏洞检测-系统级分析,Klocwork问题追踪(Klocwork Review),缺陷和安全漏洞检测-系统级分析,Klocwork导出问题列表(Klocwork Review),缺陷和安全漏洞检测-个人桌面级分析,Confidential,IDE support for C/C+Microsoft Visual Studio 6,.Net 2002,.Ne

13、t 2003,2005Eclipse 3.0,3.1,3.2,EuropaIDE support for JavaIntelliJ IDEAEclipse 3.0,3.1,3.2,Europa所有平台上支持简便的命令行方式Microsoft WindowsLinuxSolaris专业服务 支持为更多的其他开发环境的集成SlickEdit,gvim,emacs,缺陷和安全漏洞检测-个人桌面级分析,Klocwork与IDE集成(Eclipse,Visual Studio,Workbench),缺陷和安全漏洞检测-个人桌面级分析,一般情况下,基于本地文件的分析速度较快,但是准确性可能会较低考虑如下例

14、子:void bar(int*p)*p=32;void foo()bar(NULL);显然存在 NPD(Null pointer dereference)错误,缺陷和安全漏洞检测-个人桌面级分析,而 系统级分析提供了跨模块的分析能力 考虑例子:File:m1.cvoid foo(int*ptr)*ptr=32;File:m2.cvoid bar()foo(NULL);如果 m1.c 和 m2.c 都参加了编译,发现这个错误就很容易如果开发人员只编写其中一个文件,只分析其中一个文件,就会得到不准确的结果,缺陷和安全漏洞检测-个人桌面级分析 连接服务器,缺陷和安全漏洞检测-个人桌面级分析 连接服务

15、器,Project Server,Project,KMC,Klocwork Review,Server端系统级分析,使用完整的代码基进行服务器端分析项目范围的依赖图和知识库在分析过程中被创建项目范围的问题列表也被创建并提交到项目库,IDE or CLI用户端分析,缺陷和安全漏洞检测-个人桌面级分析 连接服务器,Project Server,Project,KMC,IDE or CLI用户端分析,Klocwork Review,Server Analysis,在桌面上打开一个项目时,最新的配置和问题列表将自动从服务器同步到用户的本地环境.分析结果被传送到开发人员那里,无需进行本地的分析另外,一个

16、完整的最新的依赖图使得本地分析更加准确,缺陷和安全漏洞检测-个人桌面级分析 连接服务器,如果开发人员在分析自己文件的时候,存在如上例一样的“盲区”,那么本地的分析能力就是不可预测的,或者说不准确的 将完整的依赖图和行为知识库从服务器同步到桌面环境,就解决了这个问题使用整个系统的大背景分析本地文件的修改这样,就能让Klocwork知道修改本地的文件会对非本地的模块有哪些影响从前面的例子中,负责 m2.c 的开发人员在他的本地桌面环境中进行分析,就能够得到准确的分析结果,发现那个NPD的错误m2.c 使用系统知识库进行本地分析,系统知识库中体现了这样的信息:m1.c 会在不进行空指针检查的情况下

17、dereference 其参数,缺陷和安全漏洞检测 自定义检查器,Klocwork支持自定义检查器KAST检查器;Checker Studio提供图形化表达式示意方式/BinaryExprOp:OpCode=KTC_OPCODE_EQLeft.isFloatPoint()|Right.isFloatPoint控制流检查器;Klocwork自动生成检查器的框架;定义Source;定义Sink;,质量趋势分析,Klocwork质量趋势分析展示开发过程中代码问题的分布和发展趋势趋势分析可以按照下面的几种基本类别来进行统计:软件模块(Component)存在状态(state)问题类别(Category

18、)处理状态(status)严重等级(Severity)处理人员(owner)趋势分析还可以根据按照时间/构建版本进行统计,趋势分析报告按照软件模块进行统计,质量趋势分析,趋势分析报告按照问题类别进行统计,质量趋势分析,趋势分析报告按照严重等级进行统计,质量趋势分析,趋势分析报告按照存在状态进行统计,质量趋势分析,趋势分析报告按照处理状态进行统计,质量趋势分析,趋势分析报告按照处理人员进行统计,质量趋势分析,趋势分析报告多次构建对比分析,质量趋势分析,是否做到了in-phase containment?收集关于桌面上发现并修复了哪些问题(没有进入代码控制流).理解检入之前做了哪些修改,质量趋势分

19、析,代码度量分析,代码质量度量分析从McCabe复杂度到Halstead程序度量,以及代码行数、继承数和循环数等一百多种基本度量。Klocwork支持用户根据基本度量来定义复合度量指标。基本度量举例:圈复杂度Cyclomatic complexity(VG);FUNCTION,CLASS-METHOD;CYCLOMATIC;30;20复合度量举例:可维护性Maintainability;FUNCTION,CLASS-METHOD;100-(NOINDPATHS+CYCLOMATIC)*0.23+log(HALSTEAD)*5.3);0;20,架构分析 理解架构,Klocwork软件架构分析(K

20、locwork Architect)以图形化的方式来展示代码实体之间的关联关系几十种代码关系:函数调用定义和声明宏定义和使用文件包含继承引用变量读、写,使用Klocwork架构功能进行软件变更影响分析,架构分析 理解架构,使用Klocwork软件架构工具绘制程序流程图:,架构分析 理解架构,使用Klocwork架构分析功能优化软件架构组件化发现/组件化改造优化异常的关联关系,架构分析 优化架构,架构规则检查,Klocwork支持用户定制架构设计策略项目经理可以定制一些规则来约束开发人员的开发行为。例:约束架构接口关系,Klocwork Insight应用,将Klocwork应用到实际工作中:,Klocwork Insight应用,将Klocwork集成到开发过程中,演示,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号