Custom-Tailored Clone Detection for IEC 61131-3 Programming Languages

08/22/2021
by   Kamil Rosiak, et al.
0

Automated production systems (aPS) are highly customized systems that consist of hardware and software. Such aPS are controlled by a programmable logic controller (PLC), often in accordance with the IEC 61131-3 standard that divides system implementation into so-called program organization units (POUs) as the smallest software unit and is comprised of multiple textual and graphical programming languages that can be arbitrarily nested. A common practice during the development of such systems is reusing implementation artifacts by copying, pasting, and then modifying code. This approach is referred to as code cloning. It is used on a fine-granular level where a POU is cloned within a system variant. It is also applied on the coarse-granular system level, where the entire system is cloned and adapted to create a system variant, for example for another customer. This ad hoc practice for the development of variants is commonly referred to as clone-and-own. It allows the fast development of variants to meet varying customer requirements or altered regulatory guidelines. However, clone-and-own is a non-sustainable approach and does not scale with an increasing number of variants. It has a detrimental effect on the overall quality of a software system, such as the propagation of bugs to other variants, which harms maintenance. In order to support the effective development and maintenance of such systems, a detailed code clone analysis is required. On the one hand, an analysis of code clones within a variant (i.e., clone detection in the classical sense) supports experts in refactoring respective code into library components. On the other hand, an analysis of commonalities and differences between cloned variants (i.e., variability analysis) supports the maintenance and further reuse and facilitates the migration of variants into a software product line (SPL).

READ FULL TEXT

page 9

page 11

page 15

research
04/12/2021

Extractive Multi Product-Line Engineering

Cloning is a general approach to create new functionality within variant...
research
07/20/2023

Software Product Line Engineering via Software Transplantation

For companies producing related products, a Software Product Line (SPL) ...
research
10/01/2020

Automatic and Efficient Variability-Aware Lifting of Functional Programs

A software analysis is a computer program that takes some representation...
research
01/01/2019

Information Systems Development and Evolution: A replication study on work distribution in Norwegian Organizations

The information systems landscape is at first sight very different from ...
research
07/01/2021

IsiSPL: Toward an Automated Reactive Approach to build Software Product Lines

Over the past decades, Software Product Lines (SPLs) have demonstrated t...
research
02/28/2021

Seamless Variability Management With the Virtual Platform

Customization is a general trend in software engineering, demanding syst...
research
01/13/2020

Tabled Typeclass Resolution

Typeclasses provide an elegant and effective way of managing ad-hoc poly...

Please sign up or login with your details

Forgot password? Click here to reset