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) TOOLPRODUCER LATFORME INDEP. PL INDEP. CODE HISTORY METRICS HISTORY METRICS CCHLOCOOOTHERS SLOC David A. Wheeler Code Counter Pro GeroneSoft Source Monitor Campwood Software UnderstandSciTools RSM M Squared Technologies Krakatau Power Software -+(*)
Summary(2) These 6 tools represent current situation Two categories of tools are identified 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(3) Changes analysis tool C programming language based on AST code representation Static analysis tool (for student assignments) 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 implementation in JAVA PL programming language independency code representation by adapted AST to be unique for all PLs ability to count as many metrics as possible code representation by adapted AST to be unique for different metrics ability to store code history 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