Comparison of Static Analysis Tools for Quality Measurement of RPG Programs

Abstract

The RPG programming language is a popular language employed widely in IBM i mainframes nowadays. Legacy mainframe systems that evolved and survived the past decades usually data intensive and even business critical applications. Recent, state of the art quality assurance tools are mostly focused on popular languages like Java, C++ or Python. In this work we compare two source code based quality management tools for the RPG language. The study is focused on the data obtained using static analysis, which is then aggregated to higher level quality attributes. SourceMeter is a command line tool-chain capable to measure various source attributes like metrics and coding rule violations. SonarQube is a quality management platform with RPG language support. To facilitate the objective comparison, we used the SourceMeter for RPG plugin for SonarQube, which seamlessly integrates into the framework extending its capabilities. The evaluation is built on analysis success and depth, source code metrics, coding rules and code duplications. We found that SourceMeter is more advanced in analysis depth, product metrics and finding duplications, while their performance of coding rules and analysis success is rather balanced. Since both tools were presented recently on the market of quality assurance tools, we expect additional releases in the future with more mature analyzers.

Publication
Proceedings of the 15th International Conference on Computational Science and Its Applications (ICCSA 2015), Banff, Alberta, Canada, Pages 177–192

BibTeX:

@InProceedings{TVF15,
    author    = {T\'oth, Zolt\'an and Vid\'acs, L\'aszl\'o and Ferenc, Rudolf},
    booktitle = {Proceedings of the 15th International Conference on Computational Science and Its Applications (ICCSA 2015)},
    title     = {Comparison of Static Analysis Tools for Quality Measurement of {RPG} Programs},
    year      = {2015},
    address   = {Banff, Alberta, Canada},
    month     = jun,
    pages     = {177--192},
    publisher = {Springer-Verlag},
    series    = {Lecture Notes in Computer Science (LNCS)},
    volume    = {9159},
    doi       = {10.1007/978-3-319-21413-9_13},
    keywords  = {Static analysis, Software quality, SonarQube, SourceMeter, IBM RPG, Metrics, Coding rules},
    url       = {https://link.springer.com/chapter/10.1007%2F978-3-319-21413-9_13},
}