자바 정적 검색 도구 에 대한 간단 한 소개
11290 단어 자바
[ :http://www.taobaotest.com/blogs/qa?bid=9015 ]
、 、 。
, , 。
、 、 ,
, 、 , ,
; , 、
, 、 ,
、 、 、
。”。 ,
: , ,
, , ...
。
:
PMD
1)PMD , Java , :
1) bug: try/catch/finally/switch
2) : 、 、
3) :String/StringBuffer
4) : if 、 while for
5) : / / bugs
2)PMD :
1) ,PMD 。 ,
Java 。
2)PMD , Java
3) , Java 。
3) ,PMD JDeveloper、Eclipse、jEdit、JBuilder、BlueJ、
CodeGuide、NetBeans、Sun JavaStudio Enterprise/Creator、
IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator Emacs
。
4)PMD : 。 :
Java PDM, , XPath
, Java 。
5) PDM ,PMD 。
, 。PMD bug,
, bug , PMD 。
,PMD 。
FindBugs
1)FindBugs , LGPL ,
。 style format,
bug , (false positives)
。 bytecode(*.class、*.jar) 。 ,
Eclipse plug-in, Ant task 。
2)findbugs : findbugs 60 Bad practice,80
Correntness,1 Internationalization,12 Malicious code
vulnerability,27 Multithreaded correntness,23 Performance,
43 Dodgy。
3)Findbugs :
1)FindBugs , ,
(class ) 。
2)FindBugs 、 ( Ant、Maven )、
Swing GUI Eclipse NetBeans IDE 。
3)FindBugs XML , 。
4) FindBugs,
。
5) style format, bug ,
(false positives) 。
4)FindBugs bug pattern :
java programing bug pattern,equals()
Null pointer ,Method check , field ,
Multi-thread , , wait(), Code ,
object , return
Checkstyle
1) : Checkstyle Java 。
2) :
1) ,
。
2)Checkstyle , ,
, 。
3)Checkstyle IDE ,
Checkstyle, 。
4)Checkstyle , ,
, , ,
, Checkstyle ,
, bug 。
3)CheckStyle :
1) Java , 。
2) (checkstyle-metadata.xml )
register check 。
3) , ,
( AST ) style (AST,A child-Sibling Tree,
, TokenTypes 。)
4) Style , 。
com.puppycrawl.tools.checkstyle.api.Check ,
: public int[] getDefaultTokens()
public void visitToken(DetailAST ast). ,
, getDefaultTokens AST ,
visitToken , ,
visitToken 。
Hammurapi
1) : Hammurapi / (review) 。
Java 。 。
, 。 Checkstyle , Ant
XML 。
2) :
1)Hammurapi 。
2)Hammurapi , ,
。
3)Hammurapi :
Hammurapi 。
。 。 ,
:3+4. 5
。 , + 。 3 4 Hammurapi
ANTLR( ) 。 ANTLR API 。
,Hammurapi API, ANTLR JSEL(Java
), 。 ,
。 , (Visitor )
。 ,
。
Lint4j
1) :Lint4J Java , Java
, 、 。
IDE
2) :
1)
2) bug
3)
4) EJB
Sonar
1) : Sonar 。Sonar 2.0
Java 、 ,Sonar 2.1
。
CheckStyle,PMD,Findbugs , ,
, ,
。 ,
2) :
1) : , 。
2) 。
3) : , , 。
4) : 。
5) : 。
6)
3)Sonar2.1:
Sonar Squid 、Sonar
, , ,
。
Squid 、Java API
、 。
Sonar 2.1 새로운 특성:
1) “Libraries” , ,
Maven 。
Sonar ,
。 ,
, 。
2) “Dependencies” 。 ,
Commons Logging 1.1 。
3) 플러그 인 Sonar 。
“System Info” 、 Java
。 Sonar 。
4) 。
Sonar Maven
。
Web Service size widget 。
JDepend
1)JDepend Java ,
Java class , Java (package)
, / , ,
, ,
, , , 。
JDepend ,
, , , 。
2) :
1)
2)
3)
4)
5) package
3)Depend Java :
1)Number of Classes and Interfaces:
2)Abstractness (A): 。
。
3)Afferent Couplings (Ca): 。 ( )
( ) (i.e. incoming dependencies), ,
, 。
4)Efferent Couplings (Ce): 。
(i.e. outgoing dependencies), ,
( ), 。
5)Instability (I): 。I=Ce/(Ce+Ca)。
[0,1] 。I=0 , I=1 。
6)Distance from the Main Sequence (D):
, A + I = 1 。
7)Package Dependency Cycles: 。
8. IBM Checking Tool for Bugs Errors and Mistakes( BEAM)
1) : IBM , C, C++ Java
, 。
, 。
2) :
1) ,
2) bug , ,
3) (theorem proving)
,
9. LDRA Testbed
1) :LDRA Testbed ,
。 ,
, 、 ,
。 ,
。
2)LDRA Testbed , , 。
1) : , 。
2) : , ,
3) LDRA testbed
、
LDRA Testbed
LDRA Testbed :
40%
75%
10. Yasca
1) :yasca ,
findbugs/pmd/jlint/rats/cppcheck, java
c++ .Yasca ,
、 。 , FindBugs
PMD ,JLint , Cppcheck , ,
Yasca , HTML , CSV , XML ,
SQLite , 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.