java代码静态分析工具 java 静态分析

程序静态分析的著名的静态分析工具Meta-Compilation(Coverity)
由Stanford大学的Dawson Engler副教授等研究开发java代码静态分析工具,该静态分析工具允许用户使用一种称作metal的状态机语言编写自定义的时序规则java代码静态分析工具,从而实现了静态分析工具的可扩展性 。MC的实际效果非常优秀,号称在Linux内核中找出来数百个安全漏洞 。MC目前已经商业化 , 属于Coverity Inc.2014年被Synopsys收购 。目前学术领域比较认可的静态分析工具 , 其技术处于领先地位 。
mygcc 由一个法国人N. Volanschi开发,其思想来源于MC , 试图将自定义的错误检测集成到编译时 。
Klocwork
国内用的最为广泛的静态分析工具,由加拿大北电于1996年研发 , 是中国最早的能够检测语义缺陷的静态分析工具 。截止到2015年其版本号为V10,也就是大家常说的K10
LDRA Testbed
英国的编码规则类检测工具,前身为Liverpool大学开发,能够支持C/C++数千种条目的规则检测,包括MISRA C/C++, GJB5369等 , 是最早进入中国市场的静态分析工具 , 在军队、军工广泛使用,但其技术仅支持风格类检测 , 无法进行语义缺陷分析,导致一些常用的运行时缺陷无法发现或者较高误漏报,由此市场占有率逐步下降 。截止到2015年其版本号为9.5
HP Fortify
美国HP公司的支持安全漏洞类的检测工具,能够检测C/C++/Java/PHP/ASP/JavaScript等多种语言 , 数千种检测项,是国内使用最为广泛的静态分析工具 。但该工具整体的误报漏报率较高,虽然支持很多种安全漏洞,但需要用户做很多的二次开发工作 。
Cobot(库博)
北京大学软件工程中心研发的静态分析工具,能够支持编码规则,语义缺陷的程序分析 , 能够支持C/C++数千条规则和缺陷的检测 , 是java代码静态分析工具我国唯一可以称的上是静态分析产品的商业化工具 。由于其自主知识产权,对国内的操作系统,编码标准支持的较好,检测精度也基本与上述工具持平,所以也得到了很多用户的认可 。
Parasoft C++Test
美国Parasoft公司研发的支持C、C++静态分析的工具,该工具除了可以检测编码规则外,还能检测少量的语义缺陷,此外能够进行测试用例生成 。
findbugs,pmd,checkstyles三者都是代码规范静态检查工具,它们之间有何异同区别是: findbug与pclint都是针对软件漏洞进行代码检测的工具软件 。findbug针对的是Java代码,pclint针对的是C代码或者C++ 。Findbugs是一款Java静态代码分析工具 , 与其他静态分析工具(如Checkstyle和PMD)不同 , Findbugs 不注重样式或者格式
你常用的Java工具库都有哪些Java SDK 肯定是使用最广的库 , 所以本文的名单焦点是流行的第三方库 。该列表可能并不完善,所以如果你觉得有什么应该出现在列表中的,请留下您的评论 。非常感谢!
1、核心库
Apache Commons Lang:来自Apache的核心库,为java.lang API补充了许多常用的工具类,如字符串操作、对象的创建等 。
Google Guava:来自谷歌的核心库,包括集合(Collection)、缓存(Caching)、支持原语(Primitives)等 。(示例)
2、HTML、XML Parser
Jsoup:一个简化了的 HTML操作的库 。(示例)
STaX:一组可以高效处理 XML的API 。(示例)
3、Web框架
Spring:Java平台上众所周知的开源框架和依赖注入容器 。(示例)
Struts2:来自Apache的流行Web框架 。(示例)
Google Web Toolkit:Google提供的开发工具库,主要用于构建和优化复杂的Web程序用 。(示例)