Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Static code analysis tool

Posted on 2007-03-29
10
Medium Priority
?
751 Views
Last Modified: 2013-11-25
Which static code analysis tool (or software metrics tool) is good for Java/J2EE?
0
Comment
Question by:nbkd72e
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 30

Expert Comment

by:Mayank S
ID: 18818453
There are several mentioned here:

http://www.spinellis.gr/blog/20050211/

I guess this one  is good - http://www.semdesigns.com/Products/Metrics/JavaMetrics.html
0
 

Author Comment

by:nbkd72e
ID: 18818472
Have you used it before? Why do you believe it is a good one, compare to others?
0
 
LVL 23

Expert Comment

by:Ajay-Singh
ID: 18818992
I have used OptimizeIt (http://www.borland.com/downloads/download_optimizeit.html)  - found it really useful.
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

Author Comment

by:nbkd72e
ID: 18819027
OptimizeIt is a dynamic analysis tool, which profiles Java runtime to find out performance and memory related issues.

What I am looking for is a static analysis tool, which scans and analyze Java source code to find out design and implementation issues, as well as generate metrics to indicate the complexity and quality of the code.
0
 
LVL 30

Expert Comment

by:Mayank S
ID: 18819200
>> Why do you believe it is a good one, compare to others?

My colleagues have used it, and gave good feedback
0
 

Author Comment

by:nbkd72e
ID: 18819281
Can you provide more details of the features you like and dislike? Also, have you used other tools?
0
 
LVL 33

Expert Comment

by:Jeroen Rosink
ID: 18827975
You also might take a look at:
http://javatoolbox.com/categories/code-analysers-standards-verifiers
http://www.agilejournal.com/component/option,com_magazine/func,show_article/id,36/


Still it depends what you want to measure. If it is the complexitiy you should take notice on what kind of formula they use. The obvious formulas used for measuring cyclomatic complexity are from McCabe (http://www.mccabe.com/) (http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html), Halstead (http://www.sei.cmu.edu/str/descriptions/halstead_body.html)  and McClure (http://portal.acm.org/citation.cfm?id=988131.988142&coll=GUIDE&dl=GUIDE&CFID=768228&CFTOKEN=84533385).

regards,
Jeroen
0
 

Author Comment

by:nbkd72e
ID: 18829582
The link "http://javatoolbox.com/categories/code-analysers-standards-verifiers" is nice and helpful. But it contains so many tools. Which one would you recemmend? What I need is a tool to analyze the quality of the implementation, design and even architecture of Java/J2EE applications.

Also, Halstead is a different complexity measurement than cyclomatic ones (e.g. McCabe).
Which type of OO metrics you think is useful and helpful?
0
 
LVL 33

Accepted Solution

by:
Jeroen Rosink earned 360 total points
ID: 18830051
I don't have that much experience with static analysis tools myself, only for heard and say and courses. And therefor even harder to select a tool you need. It has to fit your requirements. All I asume is that you want to increase the quality of your code and avoid errors in a later stage. With refering towards the CC I wanted to point out that not always tools give insight which kind of calculation they are using.
Still it depends on what you want to measure.

I can imagine that you want some kind of cyclomatic complexity (CC) measured which gives insight on the possibility of errors, the higher the number the complexer the code. If that code also contains a hugh number of lines of code then it also gives some expectation on raising errors. Then you also might consider the number of functions/classes which are called within the cycle. This is more a point of view regarding the chance errors occur.

Some figure you even might want is how many times a certain function/class is called. And what about the inheretence of classes.

Another way errors could occur is based on not using coding standards. I know there are also tools which check the source against your coding standards like naming conventions etc.

Perhaps this give some additional info to create a check  list what you need in your tool and compare the tools based on that checklist.

regards,
Jeroen
0
 
LVL 30

Assisted Solution

by:Mayank S
Mayank S earned 140 total points
ID: 18830362
There are many code analyzers which are open source:

http://java-source.net/open-source/code-analyzers
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Online collaboration can help businesses be more efficient, help employees grow their skills and foster a team environment.
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
The viewer will learn how to implement Singleton Design Pattern in Java.
Progress
Suggested Courses

604 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question