Transcript ppt

On a
Literature/Tool Review
on
Software Metrics Tools
Gordana Rakic
Contents







Motivation
Goal
Criteria
Tools
Summary
Related works
Conclusion
Motivation

(1)
Earlier stated goals – to develop tool which







Is platform independent
Is programming language independent
Supports as much as possible metrics
Interprets the meaning of computed numerical results
Provides suggestion what typical actions should be taken
in order to improve the software quality
Discourages cheating
Is sensitive to the existence of additional code
Motivation
(2)
Contents







Motivation
Goal
Criteria
Tools
Summary
Related works
Conclusion
Goal of the review
To answer the question:
“IS OUR PLAN GOOD ENOUGH???”
With special attention to first and second
phases and tool characteristics related to it
Contents







Motivation
Goal
Criteria
Tools
Summary
Related works
Conclusion
Criterions





Platform dependency
Programming language dependency
Supported metrics
History of code storing facility
History of metrics storing facility
Contents







Motivation
Goal
Criteria
Tools
Summary
Related works
Conclusion
Tools
(1)
Code Counter Pro (by GeroneSoft)





Runs on Windows Operating System
Language independent 
Few LOC metrics 
Code History – NO
Metrics history supported - .CSV, .XML, .HTML files
SLOC (by David A. Wheeler)

similar but for Linux OS
Tools

(2)
Source Monitor (by Campwood Software)





Runs on Windows
8 supported programming languages
(C++, C#, C, VB, VB.NET, Java, Delphi, HTML)
11 supported metrics
(style, OO)
Code history – NO
Metrics history supported - .CSV, .XML, .HTML
files
Tools

(3)
Understand (by SciTool)





Multiplatform tool – not completely platform independent
9 programming languages supported
(Ada, C++, C#, FORTRAN, Java, JOVIAL, Delphi/Pascal,
and/or PL/M)
More than 65 metrics supported
Code history – NO
Metrics history supported - comma delimited text files
Tools

(4)
RSM - Resource Standard Metrics
(by M Squared Technologies)





Platforms supported - Windows, Unix and Linux
4 Programming Languages supported
(C, C++, C# and Java) 
More than 100 metrics supported 
Code history – internal representation of code reports
could be stored in file 
Metrics history – reports could be stored in .CSV, .XML,
.HTML and other format files
Tools

(5)
Krakatau (by PowerSoftware)





Windows platform
Language independent***
~35 metrics
Code history – NO
Metrics history – Yes (.CSV, .XML, .HTML files)
*** = almost is and could become independent
Contents







Motivation
Goal
Criteria
Tools
Summary
Related works
Conclusion
Summary
(1)
METRICS
TOOL
PRODUCER
LATFORME
INDEP.
PL
INDEP.
CODE
HISTORY
METRICS
HISTORY
CC
H
LOC
OO
OTHERS
SLOC
David A.
Wheeler
-
+
-
+
- - +
-
-
Code
Counter Pro
GeroneSoft
-
+
-
+
- - +
-
-
Source
Monitor
Campwood
Software
-
-
-
+
+ - +
+
+
Understand
SciTools
+
-
-
+
+ + +
+
+
RSM
M Squared
Technologies
+
-
+
+
+ + +
+
+
Krakatau
Power
Software
-
+(*)
-
+
+ + +
+
+
Summary


These 6 tools represent current situation
Two categories of tools are identified



(2)
I - language independent tools counting only
few simple metrics
II – tools those are counting numerous metrics
but with restriction on supported language
Krakatau – partially bridges the gap
between tool categories
Summary

(3)
New tool should be…






platform independent
programming language independent
able to count as many metrics as possible
able to store code history
able to store metrics history
…
Contents







Motivation
Goal
Criteria
Tools
Summary
Related works
Conclusion
Related work

(1)
In this section



Current researches in software metrics tools field
Current researches in related fields
Current software metrics tools development
projects and product characteristics
Related work

(2)
Code clone analysis

Several language independent tools

Source code representation by AST

Different code segment fragments compare
algorithms
Related work

Changes analysis tool



C programming language
based on AST code representation
Static analysis tool (for student assignments)



(3)
JAVA programming language
Based on AST code representation
LANGUAGE DEPENDENT but useful works!!!
Related work

(4)
ATHENA – software certification tool based on metrics



Work published in 1989
Written in C for LINUX
Based on



AST code representation
Different parsers for different languages
Language independent – but in that period


implemented for only 2 language
hypothesis about realization for all languages by writing grammars
or parsers implementation
BUT there are no information about further development!!!
Related work

(5)
Codesquale - metrics tool




Development in progress
Based on AST generated by ANTLR parser generator
Implemented in JAVA PL
Currently realized for
(information from July 2007)



java programs
1 metric – number of methods per class
Preferring to extend set of languages and metrics
BUT there are no information about further development!!!
Related work

(5)
Summary



AST code representation resulted in language
independency in related field
AST code representation could result in
language independency in software metrics tools
development
AST modifications may be needed
Contents







Motivation
Goal
Criteria
Tools
Summary
Related works
Conclusion
Conclusion
(1)
Goals
 are well stated
 could be reached by

platform independency


programming language independency


code representation by adapted AST to be unique for different
metrics
ability to store code history


code representation by adapted AST to be unique for all PLs
ability to count as many metrics as possible


implementation in JAVA PL
storing AST code in file (XML)
ability to store metrics history

storing metrics values in file (XML)
Conclusion

(2)
AST adaptation and it’s characteristics
improvement to become unique for all
languages could be possible by


Parser generator usage
Modification of AST in grammar before parser
generating

not different implementation for different
languages!!!
Thank you