During the development of automated production systems, software increases in relevance to realize certain functionality. To comply with changing requirements, software variants are oftentimes created by copying and subsequently modifying existing assets. Referred to as clone-and-own, this strategy results in a portfolio of redundant and almost-alike assets with unclear relations. Migrating a portfolio of software systems emerged using clone-and-own towards a software product line (SPL) fashion, which can facilitate strategic reuse, remains a challenging task. It requires the entire portfolio to be analyzed and, thereby, identifying common and variable assets as well as their specific relations. This project aims to analyze software systems of automated production systems, which are, given their implementation in five programming languages according to the IEC61131-3 standard, especially challenging. The derived SPL and the variability identified within software variants is used to create a variability model, which allows for individual variants to be derived using configuration parameters. Respective parameters are furthermore associated with the specific software assets realizing the configured functionality. To ensure the applicability of developed methods in an industrial context, this project furthermore aims to find appropriate means to visualize and display results for usage by domain practitioners.
In the domain of automated production systems, software gains importance to realize certain functionality. Respective control software for operation on programmable logic controllers (PLCs) is primarily based on the IEC61131-3 standard. Variants of software are oftentimes derived by copying and modifying existing systems, a strategy referred to as clone-and-own. Reasons for this approach are oftentimes specific to the domain of automated production systems. Given their signal-based and loop-based programs and a mixture of five programming languages within the IEC61131-3 standard, finding means to appropriately modularize systems and to facilitate structured reuse remains a challenge. Furthermore, changes to control software are done after deployment to adjust system behavior to comply with customer-specific demands. Additionally, incompatible software platforms of different manufactures amplify variant diversity. In the domain of software engineering, the concept of software product lines, which can facilitate structured reuse and strategic variant creation, has been subject to intensive research. Typically, development effort for such SPL is high at first, as it requires the identification of common and varying software assets between all variants, as well as their further analysis to identify reusable assets across variants. Such information are then combined to create a problem space variability model, which allows for different configurations of the SPL to be derived, such as certain features to realize specific functionality. Moreover, a solution space variability model is created, which contains reusable software assets associated with features in the problem space. However, migrating software variants derived from unstructured reuse towards an SPL fashion is a challenging endeavor, which defines the main challenge for SPL adoption in the domain of automated production systems. This research project addresses this challenge and aims to find means to enable structured reuse of software assets in the domain of automated production systems and to enable the semi-automatic migration of an existing variant portfolio towards an SPL fashion. Requirements from industrial practices shall be accounted for to ensure the applicability of developed methods. However, migrating software variants of automated production systems, which emerged using clone-and-own, requires their automatic analysis and the identification of their variability information. Furthermore, identified variability requires appropriate means to be visualized in such form, so that domain experts may reason about the results and manage them. To transition a variant portfolio towards structured reuse by means of an SPL requires the software to be restructured within reusable artifacts. Such process furthermore requires suitable ways to visualize respective assets and to display their variability.