arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2108.09753cs.SEcs.PL
收藏

针对IEC 61131-3程序设计语言的定制克隆检测

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

Kamil Rosiak, Alexander Schlie, Lukas Linsbauer, Birgit Vogel-Heuser, Ina Schaefer

摘要:

自动化生产系统(aPS)是由硬件和软件组成的高度定制的系统。这种aPS由可编程逻辑控制器(PLC)控制,通常根据IEC 61131-3标准,该标准将系统实现划分为所谓的程序组织单元(POU)作为最小软件单元,并且由可以任意嵌套的多种文本和图形程序设计语言组成。在开发此类系统的过程中,一个常见的做法是通过复制、粘贴然后修改代码来重用实现工件。这种方法被称为代码克隆。它用于细粒度级别,其中POU在系统变体中克隆。它还应用于粗粒度系统级别,其中整个系统被克隆和调整以创建系统变体,例如为另一个客户。这种开发变体的特殊做法通常被称为克隆并拥有。它允许快速开发变体,以满足不同的客户要求或更改的法规指南。然而,克隆并拥有是一种不可持续的方法,并且不能随着变体数量的增加而扩展。它对软件系统的整体质量有不利的影响,例如将bug传播到其他变体,这会损害维护。为了支持这些系统的有效开发和维护,需要进行详细的代码克隆分析。一方面,分析变体内的代码克隆(即,经典意义上的克隆检测)支持专家将相应的代码重构为库组件。另一方面,分析克隆变体之间的共性和差异(即,可变性分析)支持维护和进一步的重用,并促进将变体迁移到软件产品线(SPL)中。

英文摘要:

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).

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑