DocumentCode
2384808
Title
A static code analysis tool for control system software
Author
Nair, Sreeja ; Jetley, Raoul ; Nair, Anil ; Hauck-Stattelmann, Stefan
Author_Institution
ABB Corp. Res., Bangalore, India
fYear
2015
fDate
2-6 March 2015
Firstpage
459
Lastpage
463
Abstract
Latent errors in control system software can be hard to detect through traditional testing techniques. Such errors, if left undetected, could manifest themselves as failures during run-time that could be potentially catastrophic and very expensive to fix. In this paper, we present a static code analysis approach to detect potential sources of such run-time errors during compile time itself, thus ensuring easy identification, safe execution and reducing the effort required during debugging. In order to detect run-time errors, the control system application is first parsed to generate a set of abstract syntax trees, which in turn are used to derive the control flow graph for the application. A hybrid algorithm, based on abstract interpretation and traditional data flow analysis techniques is used to check the control flow graph for type constraints, reachability and liveness properties. Additionally, the abstract syntax trees are used to check for datatype mismatches and compliance violations. A proof of concept prototype is implemented to demonstrate how the algorithm/approach can be used to analyze control applications developed using domain specific languages such as those complying with the IEC 61131-3 standard.
Keywords
control engineering computing; data flow analysis; flow graphs; program compilers; program debugging; reachability analysis; software tools; source code (software); IEC 61131-3 standard; abstract interpretation; abstract syntax trees; compile time; compliance violations; control flow graph; control system application; control system software; data flow analysis; datatype mismatches; debugging; domain specific languages; hybrid algorithm; latent errors; liveness properties; parsing; reachability; run-time errors detection; static code analysis tool; type constraints; Abstracts; Control systems; Prototypes; Semantics; Software; Standards; Syntactics;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Analysis, Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference on
Conference_Location
Montreal, QC
Type
conf
DOI
10.1109/SANER.2015.7081856
Filename
7081856
Link To Document