by Hannes Thaller, Rudolf Ramler, Josef Pichler, Alexander Egyed
Abstract:
The reuse of code fragments by copying and pasting is widely practiced in software development and results in code clones. Cloning is considered an anti-pattern as it negatively affects program correctness and increases maintenance efforts. Programmable Logic Controller (PLC) software is no exception in the code clone discussion as reuse in development and maintenance is frequently achieved through copy, paste, and modification. Even though the presence of code clones may not necessary be a problem per se, it is important to detect, track and manage clones as the software system evolves. Unfortunately, tool support for clone detection and management is not commonly available for PLC software systems or limited to generic tools with a reduced set of features. In this paper, we investigate code clones in a real-world PLC software system based on IEC 61131-3 Structured Text and C/C++. We extended a widely used tool for clone detection with normalization support. Furthermore, we evaluated the different types and natures of code clones in the studied system and their relevance for refactoring. Results shed light on the applicability and usefulness of clone detection in the context of industrial automation systems and it demonstrates the benefit of adapting detection and management tools for IEC 611313-3 languages.
Reference:
Exploring Code Clones in Programmable Logic Controller Software (Hannes Thaller, Rudolf Ramler, Josef Pichler, Alexander Egyed), In CoRR, volume abs/1706.03934, 2017.
Bibtex Entry:
@Article{DBLP:journals/corr/ThallerRPE17,
author = {Hannes Thaller and Rudolf Ramler and Josef Pichler and Alexander Egyed},
title = {Exploring Code Clones in Programmable Logic Controller Software},
journal = {CoRR},
year = {2017},
volume = {abs/1706.03934},
abstract = {The reuse of code fragments by copying and pasting is widely practiced
in software development and results in code clones. Cloning is considered
an anti-pattern as it negatively affects program correctness and
increases maintenance efforts. Programmable Logic Controller (PLC)
software is no exception in the code clone discussion as reuse in
development and maintenance is frequently achieved through copy,
paste, and modification. Even though the presence of code clones
may not necessary be a problem per se, it is important to detect,
track and manage clones as the software system evolves. Unfortunately,
tool support for clone detection and management is not commonly available
for PLC software systems or limited to generic tools with a reduced
set of features. In this paper, we investigate code clones in a real-world
PLC software system based on IEC 61131-3 Structured Text and C/C++.
We extended a widely used tool for clone detection with normalization
support. Furthermore, we evaluated the different types and natures
of code clones in the studied system and their relevance for refactoring.
Results shed light on the applicability and usefulness of clone detection
in the context of industrial automation systems and it demonstrates
the benefit of adapting detection and management tools for IEC 611313-3
languages.},
biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/ThallerRPE17},
booktitle = {Proceedings of 22nd International Conference of Emerging Technologies and Factory Automation (ETFA 2017), Limassol, Cypres},
file = {:Conferences\\ETFA 2017 - Exploring Code Clones in Programmable Logic Controller Software\\Exploring Code Clones in Programmable Logic Controller Software-preprint.pdf:PDF},
keywords = {SCCH},
timestamp = {Mon, 03 Jul 2017 13:29:02 +0200},
url = {http://arxiv.org/abs/1706.03934},
}