290 likes | 310 Views
This review examines different software metrics tools and their characteristics, with a focus on platform and language independence, supported metrics, code and metrics history storing features, and related works in the field.
E N D
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
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 (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!!!