Comprehensive Systems for Software Interoperability Problems

Abstract

Software interoperability is a recurring issue in nearly every bigger software project where two or more (legacy) software systems are involved. One aspect of interoperability, that is considered especially tricky is semantic interoperability, i.e., aligning the concepts, entities, data structures from multiple systems with each other. The model-driven software engineering community has investigated this issue under different names: model management, model synchronisation, inter-model consistency. From a theoretical side, there are two noteworthy common approaches: Goguen’s Colimit-approach (for general systems' theory) and Triple Graph Grammars (TGGs). The former describes that idea that one may always consider a “global integrated system” as the colimit of a diagram of interacting systems, while the latter is the foundation for a powerful framework of binary model synchronizers derived from a declarative description (grammar). In our investigation, it, however, turned out that both approaches each have significant drawback when considering them in practical applications: The colimit turns out to be a “forgetful” operation and TGGs are limited to a binary setting (it is a well-known fact from logic and databases that there are multi-ary relations that cannot be factored into a system of binary relations). Thus, we invented a novel formalism, called comprehensive systems, first introduced in 1, and theoretically flashed out in 2 and 3. Comprehensive systems provide an alternative to the colimit approach, which can be thought of as instead of “merging” a diagram into a singular object, they “flatten” the whole diagram. Moreover, they are designed for a general n-ary ($n \geq 2$) settings and thus can be considered as a generalization of triple graphs. In a series of papers, we have shown that comprehensive systems admit SPO and DPO rewriting in the setting of a weak adhesive HLR category. From a practical perspective, comprehensive systems serve as the theoretical foundation of a prototypical software interoperability tool called CorrLang.
In this talk, I will provide a brief historical overview over interoperability, model management, and model synchronisation, provide the motivation for comprehensive systems, sketch their theoretical properties (with an emphasis on partial morphisms), and, if time allows, demonstrate how comprehensive systems are reified in a concrete tool (CorrLang).

Date
Friday, December 15, 2023 15:00 Europe/Paris
Event
GReTA seminar
Zoom registration: click here! Please consider joining the meeting already within the 15min prior to the start of the seminar to ensure your setup is functioning properly. You may connect with either the Zoom web or Zoom desktop clients.

Please note that the meeting will be recorded and live-streamed to YouTube:

Patrick Stünkel
Patrick Stünkel
Associate Professor

Patrick originally hails from a very applied software background, working several years in the software industry in Germany before he ventured more deeply theoretical world of software (engineering) foundations. While conducting his Bachelor and Master studies at a small private university of applied sciences in northern Germany under the supervision of Michael Löwe, who happened to one of the key persons in the early days of algebraic graph transformation, he first encountered category theory. Intrigued by this highly abstract field and in search of better way to solve software interoperability problems, Patrick began a PhD position Norwegian coastal city of Bergen. Six years, one thesis, two part-time positions, he arrived at an associate professor position at the Høgskulen på Vestlandet. While the scope of research projects activities now spans several more applied fields again like process mining, workflow management systems, data pipeline engineering, and healthcare information systems, the main interest of Patricks research remains on interoperability (the recurring theme of his career) and theoretical foundations of software (engineering).