Building robust industrial machine learning (ML) models requires incorporating domain knowledge in feature selection. This ensures building meaningful ML models that fit the context of the industrial process that consists of complex networks of thousands of elements interconnected by flows of material, energy, and information. Despite the various automatic feature selection methods, they are still outperformed by the manual feature selection that embeds the industrial domain knowledge. This paper proposes an industrial feature selection method that (1) automatically captures domain knowledge from topology models holding information on the industrial plant and (2) identifies the relevant process signals (i.e., features) to a specified process element (i.e., to which an ML model is being built). We performed an empirical case study on an industrial use case to evaluate the effectiveness and efficiency of the proposed method in comparison to existing ones from literature.
An industrial process consists of a complex network of thousands of elements interconnected by the flow of material, energy, and information. Each of these elements can be attached to several sensors producing different process signals. Building robust industrial machine learning (ML) models requires handling this multi-dimensional process data while incorporating the process domain knowledge in the feature selection activity. Despite the variety of methods that automate this feature selection task, in industrial practice, they are outperformed with the manual feature selection by domain experts as embedding the industrial domain knowledge. In this paper, we introduce a feature selection method for industrial ML that (1) automatically captures domain knowledge from process topology models that hold information on the plant process and (2) uses it to identify the relevant features (i.e., process signals) to a specified process element to which an ML model is being built. We performed an empirical case study on two industrial use cases to evaluate the effectiveness and efficiency of the proposed method in comparison to existing ones from the literature. In the first use case, our method improved the ML model performance with accuracy of 95% and recall of 91%, compared to a baseline model that achieved 70% and 5% respectively. It also decreased the training time by 81% with a simpler model. In the second use case, our method competed equally with the other methods with regards to model performance, however, it outperformed them in decreasing the training time by 64% with a simpler model.
Building robust industrial machine learning (ML) models requires incorporating domain knowledge in feature selection. This ensures building meaningful ML models that fit the context of the industrial process that consists of complex networks of thousands of elements interconnected by flows of material, energy, and information. Despite the various automatic feature selection methods, they are still outperformed by the manual feature selection that embeds the industrial domain knowledge. This paper proposes an industrial feature selection method that (1) automatically captures domain knowledge from topology models holding information on the industrial plant and (2) identifies the relevant process signals (i.e., features) to a specified process element (i.e., to which an ML model is being built). We performed an empirical case study on an industrial use case to evaluate the effectiveness and efficiency of the proposed method in comparison to existing ones from literature.
Traditionally, industrial and IoT data analytics applications run in the cloud, leveraging its power regarding big data processing capabilities. With edge computing, opportunities for moving data processing from the cloud to the edge has emerged, i.e., compute nodes become close to where data is generated and to where the processed results are consumed. When running analytics on the edge, lag time is minimal, such that real-time data can be considered and insights can be delivered faster, which leads to improving both the effectiveness and efficiency in online decision-making. From a software architecture perspective, it is still a challenge to design systems for edge analytics as it raises many architecture-related questions. However, this architectural perspective on edge analytics has not been consolidated in literature so far. Therefore, in this paper, we first give an overview of the edge analytics topic from the perspective of our own experience from industrial projects, before we survey a subset of existing approaches for edge analytics and review them from a software architecture point of view. We investigate the differences among the surveyed architectures in order to shed some light on the covered architectural aspects of edge analytics architectures, which will be useful for future academic and industrial projects incorporating edge analytics.
The number of field devices in today’s industrial automation systems and tomorrow’s 5G-enabled ones is tremendously growing. To increase the commissioning efficiency of these devices and reduce the manual effort, earlier we proposed a simplified commissioning approach for an edge computing-based plug & use functionality using NFC tags coupled with information models. In the presented work extension, we discuss a realization of our application scenarios and use-cases for 5G-enabled field devices using the versatile OPC UA.
Software development for industrial automation applications is a growing market with high economic impact. Control engineers design and implement software for such systems using standardized programming languages (IEC 61131-3) and still require substantial manual work causing high engineering costs and potential quality issues. Methods for automatically generating control logic using knowledge extraction from formal requirements documents have been developed, but so far only been demonstrated in simplified lab settings. We have executed four case studies on large industrial plants with thousands of sensors and actuators for a rule-based control logic generation approach called CAYENNE to determine its practicability. We found that we can generate more than 70 percent of the required interlocking control logic with code generation rules that are applicable across different plants. This can lead to estimated overall development cost savings of up to 21 percent, which provides a promising outlook for methods in this class.
Improving commissioning mechanisms of field devices is a necessity under the massively increasing number of these devices today and in the future 5G-enabled industrial automation systems. Hence, we propose a simplified commissioning for an edge computing-based plug & use functionality using NFC tags with information models. This approach is expected to increase the efficiency in commissioning the field devices as it reduces the required manual user input. We also present two application scenarios for 5G-enabled field devices, which benefit from our proposed approach.
Transforming a clone-and-own (i.e., new product variants are created by copying and modifying existing artifacts) code structure and development process to a Software Product Line Engineering (PLE) approach is a tedious and error-prone task. Holistic tool support for such a process is highly desirable, especially to lower efforts and to speed up the transformation. Unfortunately, such a holistic toolchain for reverse engineering of variability, supporting variant-centric and platform-centric extraction approaches is not available. In this paper, we present a toolchain covering the first steps for moving a clone-and-own product development to a PLE approach. We validate the first prototype of the toolchain on a case study consisting of industrial firmware for smart motor controllers and we show that even this early prototype reduces time and effort for moving to a configurable platform approach in the sense of PLE.
Engineering software amounts to implementing and evolving features. While some engineering approaches advocate the explicit use of features, developers usually do not record feature locations in software artifacts. However, when evolving or maintaining features-especially in long-living or variant-rich software with many developers-the knowledge about features and their locations quickly fades and needs to be recovered. While automated or semi-automated feature-location techniques have been proposed, their accuracy is usually too low to be useful in practice. We propose a semi-automated, machine-learning-assisted feature-traceability technique that allows developers to continuously record feature-traceability information while being supported by recommendations about missed locations. We show the accuracy of our proposed technique in a preliminary evaluation, simulating the engineering of an open-source web-application that evolved in different, cloned variants.
Building meaningful interoperation with external software units requires performing the conceptual interoperability analysis that starts with identifying the conceptual interoperability constraints of each software unit, then it compares the systems' constraints to detect their conceptual mismatch. We call the conceptual interoperability constraints (the COINs) that can be of different types including structure, dynamic, and quality. Missing such constraints may lead to unexpected mismatches, expensive resolution, and running-late projects. However, it is a challenging task for software architects and analysts to manually analyze the unstructured text in API documents to identify the COINs. Not only it is a tedious and time-consuming task, but also it needs knowledge about the constraint types. In this article, we present and evaluate our idea of utilizing machine learning techniques in automating the COIN identification, which is the first step of conceptual interoperability analysis, from human text in API documents. Our empirical research started with a multiple-case study to build the ground truth dataset, on which we contributed our machine learning COIN-Classification Model. We show the model's robustness through experiments using different machine learning text-classification algorithms. The experiments' results revealed that our model can achieve up to 87% accuracy in automatically identifying the COINs in text. Thus, we implemented a tool that embeds our model to demonstrate its practical value in industrial context. Then, we evaluated the practitioners' acceptance for the tool and found that they significantly agreed on its usefulness and ease of use.
Software interoperability property plays a vital role in enabling interoperation in todayfis system-of-systems, cyber-physical systems, ecosystems, etc. Despite the critical role of interoperability analysis in enabling a successful and meaningful software interoperation, it is still facing challenges that impede performing it effectively and efficiently. We performed an online survey of software engineers with software integration experiences to identify the main difficulties of performing interoperability analysis. The results confirm that the state of available practical support and current input artifacts used during the analysis are significantly perceived as important difficulties. Respondents claim a lack of guidelines and best practices for applying interoperability analysis and claim insufficiency of shared information about interoperable software units. This indicates the need for providing directive and rigorous guidelines for practitioners to follow and to enrich the content of shared documents about interoperable software units.
The goal of this study is to identify, review, and analyze the published research works that used network analysis as a tool for understanding the human collaboration on different levels of software development. This study and its findings are expected to be of benefit for software engineering practitioners and researchers who are mining software repositories using tools from network science field. We conducted a systematic literature review, in which we analyzed a number of selected papers from different digital libraries based on inclusion and exclusion criteria. We identified $35$ primary studies (PSs) from 4 digital libraries, then we extracted data from each PS according to a predefined data extraction sheet. The results of our data analysis showed that not all of the constructed networks used in the PSs were valid as the edges of these networks did not reflect a real relationship between the entities of the network. Additionally, the used measures in the PSs were in many cases not suitable for the used networks. Also, the reported analysis results by the PSs were not, in most cases, validated using any statistical model. Finally, many of the PSs did not provide lessons or guidelines for software practitioners that can improve the software engineering practices. Although employing network analysis in mining developers' collaboration showed some satisfactory results in some of the PSs, the application of network analysis needs to be conducted more carefully. That is said, the constructed network should be representative and meaningful, the used measure needs to be suitable for the context, and the validation of the results should be considered. More and above, we state some research gaps, in which network science can be applied, with some pointers to recent advances that can be used to mine collaboration networks.
Building successful and meaningful interoperation with external software APIs requires satisfying their conceptual interoperability constraints. These constraints, which we call the COINs, include structure, dynamic, and quality specifications that if missed they lead to costly implications of unexpected mismatches and running-late projects. However, for software architects and analysts, manual analysis of unstructured text in API documents to identify conceptual interoperability constraints is a tedious and time-consuming task that requires knowledge about constraint types. In this paper, we present our empirically-based research in addressing the aforementioned issues by utilizing machine learning techniques. We started with a multiple-case study through which we contributed a ground truth dataset. Then, we built a model for this dataset and tested its robustness through experiments using different machine learning text-classification algorithms. The results show that our model enables achieving \(70.4\,\%\) precision and \(70.2\,\%\) recall in identifying seven classes of constraints (i.e., Syntax, Semantic, Structure, Dynamic, Context, Quality, and Not-COIN). This achievement increases to \(81.9\,\%\) precision and \(82.0\,\%\) recall when identifying two classes (i.e., COIN, Not-COIN). Finally, we implemented a tool prototype to demonstrate the value of our findings for architects in a practical context.
Successfully integrating an external software unit into a system requires software architects to check the conceptual constraints of this unit to ensure that it has no mismatches with the system. However, such constraints about software units are usually hidden within their architectural documents that are not publicly shared with clients. Hence, owners of the software units need to search for the constraints in the architecture document and provide them to clients. However, this manual task is not trivial and it is time consuming especially in the case of large software systems. In this paper, we demonstrate a tool-supported, systematic approach for extracting the interoperability-related constraints of software systems from their architecture and lower-level design documentation. Our proposed approach aims at helping architects in performing the conceptual interoperability analysis tasks in an effective and efficient manner. To bring the approach into practice, we developed an aiding tool that assists architects with easy-to-use interfaces. We plan to evaluate our approach empirically through a controlled experiment where we will test our hypotheses about its positive effect on architects effectiveness and efficiency in performing the interoperability analysis. Keywordsconceptual interoperability; interoperability analysis; information extraction; software architecture; tool support
Successfully using a software web-service/platform API requires satisfying its conceptual interoperability constraints that are stated within its shared documentation. However, manual and unguided analysis of text in API documents is a tedious and time consuming task. In this work, we present our empirical-based methodology of using machine learning techniques for automatically identifying conceptual interoperability constraints from natural language text. We also show some initial promising results of our research.
Identifying and resolving conceptual mismatches between two software systems are crucial for their successful interoperation. However, it is a tedious and time-consuming task for software architects to manually provide interoperability-relevant information about their software systems, especially in the case of large software systems. This paper demonstrates CoinsExtractor, a novel tool that aids architects in accomplishing this task effectively and efficiently. CoinsExtractor enables architects to determine the interoperable parts of their software system, to automatically extract the interoperability-relevant information about these parts from the existing UML documents of the system, and finally to document the extracted information in a standard way to be shared with third-party clients. To better support the conceptual analysis, CoinsExtractor categorizes the extracted information based on the concepts it presents.
Successfully integrating a software system with an existing other software system requires, beyond technical mismatches, identifying and resolving conceptual mismatches that might result in worthless integration and costly rework. Often, not all relevant architectural information about the system to integrate with is publicly available, as it is hidden in internal architectural documents and not exposed in the public API documentation. Thus, we propose a framework of conceptual interoperability information and a formalization of it. Based on this framework, a system's architect can semi-automatically extract interoperability-relevant parts from his architecture and lower-level design documentation and publish it in a standardized and formalized way. The goal is to keep the additional effort for providing the interoperability-relevant information as low as possible and to encourage architects to provide it proactively. Thus, we extract from UML diagrams and textual documentation information that is relevant for conceptual interoperability. Companies that aim at interoperation of their systems with others, e.g. Companies initiating an ecosystem, should be highly motivated to provide such interoperability information in order to grow their business impact by more successful interoperations. In a more advanced level, also the architect, who is integrating his system with a provided one, could extract interoperability-related information about his existing system and we envision to automatically match the pieces of both sides and identify conceptual mismatches.
Identifying and resolving conceptual mismatches between two software systems are crucial for their successful interoperation. However, it is a tedious and time-consuming task for software architects to manually provide interoperability-relevant information about their software systems, especially in the case of large software systems. This paper demonstrates CoinsExtractor, a novel tool that aids architects in accomplishing this task effectively and efficiently. CoinsExtractor enables architects to determine the interoperable parts of their software system, to automatically extract the interoperability-relevant information about these parts from the existing UML documents of the system, and finally to document the extracted information in a standard way to be shared with third-party clients. To better support the conceptual analysis, CoinsExtractor categorizes the extracted information based on the concepts it presents.
[Context] With the increasing industrial demands for seamless exchange of data and services among information systems, architectural solutions are a promising research direction which supports high levels of interoperability at early development stages. [Objectives] This research aims at identifying the architectural problems and before-release solutions of interoperability on its different levels in information systems, and exploring the interoperability metrics and research methods used to evaluate identified solutions. [Methods] We performed a scoping study in five digital libraries and descriptively analyzed the results of the selected studies. [Results] From the 22 studies included, we extracted a number of architectural interoperability problems on the technical, syntactical, semantic, and pragmatic levels. Many problems are caused by systems’ heterogeneity on data representation, meaning or context. The identified solutions include standards, ontologies, wrappers, or mediators. Evaluation methods to validate solutions mostly included toy examples rather than empirical studies. [Conclusions] Progress has been made in the software architecture research area to solve interoperability problems. Nevertheless, more researches need to be spent on solutions for the higher levels of interoperability accompanied with proper empirical evaluation for their effectiveness and usefulness.
Shah Rukh Humayoun合作论文数Computer Graphics and HCI Lab, University of Kaiserslautern1