Klocwork 介绍

更新时间:2024-01-09 21:12:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Klocwork - 源代码缺陷自动分析工具

概述:

Klocwork 软件是Klocwork 公司基于专利技术分析引擎开发的,综合应用了多种近年来最先进的静态分析技术,是出色的软件静态分析软件。Klocwork 产品与其它同类产品相比,具有很多突出的特征:Klocwork 支持的语言种类多,能够分析C、C++和Java 代码;能够发现的软件缺陷种类全面,既包括软件质量缺陷,又包括安全漏洞方面的缺陷,还可以分析对软件架构、编程规则的违反情况;软件分析功能全面,既能分析软件的缺陷,又能进行可视化的架构分析、优化;能够分析软件的各种度量;能够提供与多种主流IDE 开发环境的集成;能够分析超大型软件(上千万代码行)。

主要功能:

? 缺陷检测

提供多角度的各种缺陷类型的分析。自动化的缺陷检测功能易于使用,定制灵活,具有图形化的构建和报表管理图形界面,拥有业界领先的消息过滤器,极具柔性的配置,和强大的学习调整知识库;Klocwork 能够分析C/C++和Java代码,生成代码问题报告,能够发现的缺陷类型举例。(详细参见附录):

C/C++缺陷类型样例 空指针释放 内存管理问题(如:内存泄漏) 数组越界 未初始化数据使用 编码风格问题(如:在条件中赋值)

Java 缺陷类型样例 效率错误(如:空的finalize 方法) 可维护性问题(如:空的catch 从句) 可靠性问题(如资源泄漏) ? 安全漏洞检测

Klocwork 确信软件安全性是软件质量中一个重要的、并越来越受重视的方面。同样的,所有的Klocwork 安全漏洞分析是基于市场领先的缺陷检测能力,从原来的缺陷检测分离出来单独的安全漏洞检测和违反推荐的安全代码最佳实践的缺陷检测。能够检测到的安全漏洞类型举例(详细参见附录)

C/C++安全漏洞分类 访问控制缺陷 缓冲区溢出 DNS欺骗 忽略返回值 注入缺陷 不安全的存储 未经验证的用户输入

Java安全漏洞分类 拒绝服务 注入缺陷(如:SQL注入、进程注入等) 未经验证的输入 移动代码安全 有漏洞的会话管理 跨站点脚本 出错处理不当

有漏洞的访问控制

? 软件架构分析

Klocwork 帮助组织为任何需要理解软件架构的项目进行准备工作,如:外包项目、改造利用一段老的代码、或者向已有系统添加新功能。利用Klocwork,架构师、管理人员和开发人员能够重新获得对他们软件和产品的架构理解,并在进行任何代码修改的时候进行功能强大的影响分析。当结合使用Klocwork 的缺陷和安全漏洞检测,它提供一个强大的功能集帮助理解在您软件架构异常和缺陷发生率的关联关系。

架构分析可以进行代码结构可视化展示,显示已有应用系统的物理结构,应用系统中的依赖关系连同应用系统以及外部环境间的依赖关系。使用自动的流程图功能,从源代码分析得出程序的流程图,理解文件的处理流程,来帮助进行更加高效的编码。

? 软件度量分析

基于实际从软件源代码采集得到的信息,Klocwork 直接帮助执行官和开发经理理解、预测、和指导公司在软件安全和质量方面的成长。Klocwork 随产品发布100 多种关于文件、类、和函数/方法的代码度量,包括了从McCabe 复杂度、Halstead 程序度量、代码行数、继承数、循环数等各种基本度量。客户还可以根据自己的质量目标,任意组合这些基本度量进行运算生成复合度量。

? 可定制的代码分析

许多组织有自己独特的编码标准、安全策略或质量目标。经过扩展Klocwork产品,您可以将我们的分析引擎应用到您独特的、公司特色的问题上。另外,Klocwork 产品的可扩展性能够用于实现行业特定的编码标准,保证遵守最新的最佳实践。客户可使用Klocwork 文档中介绍的扩展性API 或者使用Klocwork上提供的专业服务编写适合您的检查器。

? 开发人员IDE 集成

Klocwork 与众不同的核心之一就是我们能够集成到您选定的开发环境中去。通过集成,在开发人员的桌面上即可自动进行代码的检查,您可创建更为优秀的软件并通过在开发过程早期捕捉到潜在的问题而降低开发成本。Klocwork能够与Eclipse、Wind River Workbench 2.3、Visual Studio 6/2002/2003/2005、IBMRational Application Developer for Websphere Software、Gvim、Emacs、VisualSlickEdit、Platform Builder、KDevelop、MetroWerks CodeWarrior、IntelliJ 等集成。

工具带来的好处:

? 软件开发人员-在桌面阶段消除软件缺陷和安全漏洞

软件缺陷有时发生在开发拷贝的时候,或者在为复杂系统增强功能时因为疏忽而造成。无论什么情况,在代码进入到代码流(开发流)之前尽早自动的检测到问题,这将有助于提高代码的质量,在第一时间消灭所出现的缺陷。

Klocwork 理解任务-关键开发环境的复杂性,理解开发人员需要什么。Klocwork 容易与开发环境集成,通过自动化的分析结果快速改进代码。Klocwork提供多种使用界面,可以选择以命令行的方式、在IDE 里进行分析、或者使用直观易用的基于Web 的界面。

? 软件开发经理-在提交到QA 之前获取您软件质量的可视化和控制

通过使用Klocwork,软件开发经理可以同时关注多个项目的质量情况;可以跟踪关键质量和安全测量在每次构建时的趋势;通过使用Klocwork,开发经理能获得直接来源于软件的实际的质量数据,在开发阶段尽早获得对的软件安全和质量的可视化及其客观数据按团队和/或关键软件组件的趋势和分布。一旦存在质量问题的部分或高风险区域被认识到和隔离开,就可以通过为团队设置度量门限实施连续的质量改进程序,保证任何被提交到构建库的代码符合团队的标准集。

? 软件架构师-理解和优化架构

软件架构师使用Klocwork,通过组件和依赖分析理解系统:还可以发现架构异常(如循环依赖)、模型改进,并与开发人员进行沟通。Klocwork 从最高层次(组件、包)到最低层次的实体产生一个源代码的可视化模型。这个功能帮助理解软件组件之间的所有关系,使用了哪些API,哪里存在架构异常。“what-if”分析使您能够优化您的软件,简化软件结构和改进维护性。Klocwork 的策略协助使架构师能够与开发人员沟通架构目标并保证其未来的维护。

? 安全经理或审查人员-在被利用之前,防止安全漏洞发生

基于Web 的报告门户使安全经理能够查看和审查软件中的安全漏洞。安全漏洞数据可按架构进行叠加,从而帮助调查存在高风险的组件和路径。Klocwork自动化审查软件安全漏洞和所有风险的过程,生成的报告能准确标识出软件中的安全漏洞,并按严重性分配优先级。这保证了潜在的灾难性问题被标记出来从而能够立即采取措施,而低优先级的问题如某种编码风格可以在稍后的时间进行调查。安全审查人员通过比较漏洞的数量和密度,能够决定哪个架构组件存在最高的风险。还可设置策略保证更好、更安全,编码实践将依策略而行,这些也都会集成在开发人员的环境里。

软件运行平台:

运行于Windows2000/XP/Vista、Linux、Solaris 操作系统。

支持的编译器:

?Wind River Diab ?GNU C/C++ ?Microsoft Visual C++ ?Sun CC ?Green Hills ghs ?Metrowerks mwcc ?ArmCC

?支持任何其他的ANSI C 兼容的编译器 ?Java JDK (1.4 and higher)__0

本文来源:https://www.bwwdw.com/article/ig9o.html

Top